edu.bonn.xulu.plugin.data.grid
Class MultiGrid

java.lang.Object
  extended by AbstractObjectTraceable
      extended by edu.bonn.xulu.data.AbstractXuluObject
          extended by edu.bonn.xulu.plugin.data.grid.GridList
              extended by edu.bonn.xulu.plugin.data.grid.MultiGrid
All Implemented Interfaces:
XuluComponent, XuluConstants, XuluObject

public class MultiGrid
extends GridList

Dieser Datentyp stellt eine Liste von Rastern (WritableGrid da. In der Liste koennen nur gleichartige Raster (gleiche Groesse und gleiche Georeferenz) gespeichert werden. Deshalb hat das Objekt neben der Raster-Liste noch weitere Eigenschaften (Properties):

  1. GridListe: Die Liste der Raster (ListProperty[WritableGrid])
  2. Style: Darstellungs-Style fuer die Raster (ScalarProperty[Object])
  3. Count: Die Anzahl der Raster in der Liste (ScalarProperty[Integer])
  4. X-Coordinate: Georeferenz Longitude (ScalarProperty[Double])
  5. Y-Coordinate: Georeferenz Latitude (ScalarProperty[Double])
  6. Width: Reale Breite der Raster (ScalarProperty[Double])
  7. Height: Reale Hoehe der Raster (ScalarProperty[Double])
  8. Width in Cells: Breite der Raster in Zellen (ScalarProperty[Integer])
  9. Height in Cells: Hoehe der Raster in Zellen (ScalarProperty[Integer])
  10. Cell Width: Breite einer Rasterzelle (ScalarProperty[Double])
  11. Cell Height: Hoehe einer Rasterzelle (ScalarProperty[Double])
  12. Data Type: Datentyp den eine Rasterzelle aufnehmen kann (ScalarProperty[Integer])

Die Eigenschaften 4 bis 12 sind komplett von den zu grunde liegenden Rastern abhaengig (Eigenschaft 1) und koennen nicht veraendert werden. Ein schreibender Zugriff auf diese Properties hat keine Auswirkung.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)

Field Summary
static String PROP_CELLHEIGHT
          Name der Eigenschaft, die die Zellen-Hoehe des Rasters beinhaltet.
static String PROP_CELLWIDTH
          Name der Eigenschaft, die die Zellen-Breite des Rasters beinhaltet.
static String PROP_COORDX
          Name der Eigenschaft, die die X-Koordinate des Rasters beinhaltet.
static String PROP_COORDY
          Name der Eigenschaft, die die Y-Koordinate des Rasters beinhaltet.
static String PROP_HEIGHT
          Name der Eigenschaft, die die reale Hoehe des Rasters beinhaltet.
static String PROP_HEIGHTC
          Name der Eigenschaft, die die Hoehe des Rasters in Zellen beinhaltet.
static String PROP_TYPE
          Name der Eigenschaft, die die Zellen-Typ des Rasters beinhaltet.
static String PROP_WIDTH
          Name der Eigenschaft, die die reale Breite des Rasters beinhaltet.
static String PROP_WIDTHC
          Name der Eigenschaft, die die Breite des Rasters in Zellen beinhaltet.
 
Fields inherited from class edu.bonn.xulu.plugin.data.grid.GridList
PROP_COUNT, PROP_GRIDS
 
Fields inherited from class edu.bonn.xulu.data.AbstractXuluObject
propertyChangeListener, propSet
 
Fields inherited from interface edu.bonn.xulu.data.XuluObject
PROP_STYLE
 
Fields inherited from interface edu.bonn.xulu.appl.XuluConstants
BUG_MAIL_ADDR, EXTENTION_BUNDLE, ICONS_DIR, LOCALES_BASE, RESOURCE_DIR, SWING_RES, VERSION, VERSION_DATE, XULU_ICON, XULU_INFOICON, XULU_STARTICON, XULU_VIS_RES, XULUERR_RES, XULUGUI_RES
 
Constructor Summary
MultiGrid(int type, int widthc, int heightc, int minX, int minY, double x, double y, double width, double height, CoordinateReferenceSystem crs, WritableGridFactory fac)
          Erzeugt eine neue Raster-Liste.
MultiGrid(WritableGrid[] gc, WritableGridFactory fac)
          Erzeugt eine neue Raster-Liste.
MultiGrid(WritableGridFactory fac)
          Erzeugt eine neue (leere) Raster-Liste.
MultiGrid(WritableGrid template, WritableGridFactory fac)
          Erzeugt eine neue (leere) Raster-Liste.
 
Method Summary
 void addGrid()
          Fuegt der Liste ein leeres Raster hinzu.
 void addGrid(Object initVal)
          Fuegt der Liste ein leeres Raster hinzu.
 void addGrid(WritableGrid grid)
          Fuegt der Liste ein Raster hinzu.
protected  void checkStructure(WritableGrid gc)
          Prueft, ob die Struktur eines Rasters mit der des Multi-Grid vertraeglich ist.
 Object[] getGridSample(double... coords)
          Liefert die Werte aller Rasters.
 Object[] getRasterSample(int... coords)
          Liefert die Werte aller Rasters.
 WritableGrid getTemplateGrid()
          Liefert ein Beispiel-Raster, das die Raster-Art repraesentiert, die in der Liste gespeichert werden koennen.
 boolean isTemplateDimensionSet()
          Prueft, ob fuer das MultiGrid eine Vorlage gesetzt ist.
 void replaceGrid(int idx, WritableGrid grid)
          Ersetzt ein Raster in der Liste.
 void setTemplateDimension(int type, int widthc, int heightc, int minX, int minY, double x, double y, double width, double height, CoordinateReferenceSystem crs)
          Belegt die Variablen der Raster-Vorlage, welche fuer jedes Raster gelten muss, welches in die Liste ergefuegt werden soll.
 void setTemplateDimension(WritableGrid template)
          Belegt die Variablen der Raster-Vorlage, welche fuer jedes Raster gelten muss, welches in die Liste ergefuegt werden soll.
 WritableGrid[] toArray()
           
 
Methods inherited from class edu.bonn.xulu.plugin.data.grid.GridList
getFirstNotNullGrid, getFirstNotNullGrid, getGrid, getGridCount, removeGrid
 
Methods inherited from class edu.bonn.xulu.data.AbstractXuluObject
containsMultipleValues, containsProperty, dispose, equalsInStructure, getAttrCount, getAttrTypes, getDescription, getID, getName, getProperties, getProperties, getProperty, getPropertyCount, getPropertyNames, getPropertyTypes, getStructureName, isAccessed, isDisposed, isStructureNamed, setDescription, setName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_COORDX

public static final String PROP_COORDX
Name der Eigenschaft, die die X-Koordinate des Rasters beinhaltet.

See Also:
Constant Field Values

PROP_COORDY

public static final String PROP_COORDY
Name der Eigenschaft, die die Y-Koordinate des Rasters beinhaltet.

See Also:
Constant Field Values

PROP_WIDTH

public static final String PROP_WIDTH
Name der Eigenschaft, die die reale Breite des Rasters beinhaltet.

See Also:
Constant Field Values

PROP_HEIGHT

public static final String PROP_HEIGHT
Name der Eigenschaft, die die reale Hoehe des Rasters beinhaltet.

See Also:
Constant Field Values

PROP_WIDTHC

public static final String PROP_WIDTHC
Name der Eigenschaft, die die Breite des Rasters in Zellen beinhaltet.

See Also:
Constant Field Values

PROP_HEIGHTC

public static final String PROP_HEIGHTC
Name der Eigenschaft, die die Hoehe des Rasters in Zellen beinhaltet.

See Also:
Constant Field Values

PROP_CELLWIDTH

public static final String PROP_CELLWIDTH
Name der Eigenschaft, die die Zellen-Breite des Rasters beinhaltet.

See Also:
Constant Field Values

PROP_CELLHEIGHT

public static final String PROP_CELLHEIGHT
Name der Eigenschaft, die die Zellen-Hoehe des Rasters beinhaltet.

See Also:
Constant Field Values

PROP_TYPE

public static final String PROP_TYPE
Name der Eigenschaft, die die Zellen-Typ des Rasters beinhaltet.

See Also:
Constant Field Values
Constructor Detail

MultiGrid

public MultiGrid(WritableGrid template,
                 WritableGridFactory fac)
Erzeugt eine neue (leere) Raster-Liste.

Parameters:
template - Vorlage fuer das Raster-Format, das in der Liste gespeichert werden kann
fac - Factory mit der weitere Instanzen erzeugt werden koennen

MultiGrid

public MultiGrid(WritableGridFactory fac)
Erzeugt eine neue (leere) Raster-Liste. Das Format fuer die Raster wird von dem ersten Element uebernommen, welches in die Liste eingefuegt wird.

Parameters:
fac - Factory mit der weitere Instanzen erzeugt werden koennen

MultiGrid

public MultiGrid(WritableGrid[] gc,
                 WritableGridFactory fac)
Erzeugt eine neue Raster-Liste.

Parameters:
gc - Raster fuer die Liste (das erste wird als Vorlage verwendet!)
fac - Factory mit der weitere Instanzen erzeugt werden koennen
Throws:
ArrayIndexOutOfBoundsException - falls der uebergebene Array kein Element enthaelt

MultiGrid

public MultiGrid(int type,
                 int widthc,
                 int heightc,
                 int minX,
                 int minY,
                 double x,
                 double y,
                 double width,
                 double height,
                 CoordinateReferenceSystem crs,
                 WritableGridFactory fac)
Erzeugt eine neue Raster-Liste. Die uebergebenen Raster-Parameter bilden die Vorlage fuer die Raster-Art, die in der Liste gespeichert werden koennen.

Parameters:
widthc - Breite in Zellen
heightc - Hoehe in Zellen
x - Georeferenz Longitute (Suedliche/Untere Kante)
y - Georeferenz Latitude (Westliche/Linke Kante)
width - Breite
height - Hoehe
crs - Referenzsystem
fac - Factory mit der weitere Instanzen erzeugt werden koennen
Method Detail

setTemplateDimension

public void setTemplateDimension(int type,
                                 int widthc,
                                 int heightc,
                                 int minX,
                                 int minY,
                                 double x,
                                 double y,
                                 double width,
                                 double height,
                                 CoordinateReferenceSystem crs)
Belegt die Variablen der Raster-Vorlage, welche fuer jedes Raster gelten muss, welches in die Liste ergefuegt werden soll.


setTemplateDimension

public void setTemplateDimension(WritableGrid template)
Belegt die Variablen der Raster-Vorlage, welche fuer jedes Raster gelten muss, welches in die Liste ergefuegt werden soll.


isTemplateDimensionSet

public boolean isTemplateDimensionSet()
Prueft, ob fuer das MultiGrid eine Vorlage gesetzt ist.


addGrid

public void addGrid(Object initVal)
Fuegt der Liste ein leeres Raster hinzu.

Overrides:
addGrid in class GridList
Parameters:
initVal - initialer Wert aller Raster-Zellen

addGrid

public void addGrid()
Fuegt der Liste ein leeres Raster hinzu.


addGrid

public void addGrid(WritableGrid grid)
Fuegt der Liste ein Raster hinzu. Dieses muss von der selben Groesse und Georeferenz sein, wie die bereits in der Liste befindlichen Raster.

Overrides:
addGrid in class GridList
Throws:
IllegalArgumentException - falls das neue Raster in Groesse oder Georeferenz nicht zum Rest der Liste passt

replaceGrid

public void replaceGrid(int idx,
                        WritableGrid grid)
Ersetzt ein Raster in der Liste. Das neue Raster muss von der selben Groesse und Georeferenz sein, wie die restlichen in der Liste befindlichen Raster.

Overrides:
replaceGrid in class GridList
Parameters:
idx - Listen-Index
grid - zu entfernendes Raster
Throws:
IllegalArgumentException - falls das neue Raster in Groesse oder Georeferenz nicht zum Rest der Liste passt

checkStructure

protected void checkStructure(WritableGrid gc)
Prueft, ob die Struktur eines Rasters mit der des Multi-Grid vertraeglich ist.

Parameters:
gc - ein WritableGrid
Throws:
IllegalArgumentException - falls sich das angegebene Raster in Groesse Aufloesung oder Geo-Referenz vom Template-Grid des Multi-Grid unterscheidet

getTemplateGrid

public WritableGrid getTemplateGrid()
Liefert ein Beispiel-Raster, das die Raster-Art repraesentiert, die in der Liste gespeichert werden koennen. Dieses liefert fuer alle Zellen den Wert 0 und kann nicht veraendert werden.

Returns:
null wenn noch kein Beispiel-Raster gesetzt ist

getGridSample

public Object[] getGridSample(double... coords)
Liefert die Werte aller Rasters.

Parameters:
coords - Georeferenz

getRasterSample

public Object[] getRasterSample(int... coords)
Liefert die Werte aller Rasters.

Parameters:
coords - Raster-Position

toArray

public WritableGrid[] toArray()
Returns:
an array of all grids in the MultiGrid