[Schmitzm-commits] r561 - in branches/1.0-gt2-2.6/src: schmitzm/geotools/gui schmitzm/swing skrueger/geotools
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue Nov 24 16:02:29 CET 2009
Author: mojays
Date: 2009-11-24 16:02:27 +0100 (Tue, 24 Nov 2009)
New Revision: 561
Modified:
branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GeoMapPane.java
branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GridPanel.java
branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapFrame.java
branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapPane.java
branches/1.0-gt2-2.6/src/schmitzm/swing/SwingUtil.java
branches/1.0-gt2-2.6/src/skrueger/geotools/XMapPane.java
Log:
BugFix:
- SwingUtil.setRelativeFramePosition(..)
Enhancements:
- Show/Hide grid bar in GridPanel (and GeoMapPane)
- XMapPane in GeoMapPane encapsulated in extra JPanel to maintain e.g. border
- map area "sunk" by border in LayeredMapPane
Modified: branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GeoMapPane.java
===================================================================
--- branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GeoMapPane.java 2009-11-24 14:57:05 UTC (rev 560)
+++ branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GeoMapPane.java 2009-11-24 15:02:27 UTC (rev 561)
@@ -29,6 +29,7 @@
******************************************************************************/
package schmitzm.geotools.gui;
+import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
@@ -36,6 +37,8 @@
import java.awt.Insets;
import java.util.HashMap;
+import javax.swing.BorderFactory;
+
import org.geotools.map.MapContext;
import org.geotools.renderer.GTRenderer;
import org.geotools.renderer.lite.StreamingRenderer;
@@ -48,6 +51,7 @@
import schmitzm.geotools.map.event.ScaleChangedEvent;
import schmitzm.swing.JPanel;
import schmitzm.swing.SwingUtil;
+import skrueger.geotools.XMapPane;
/**
* Das {@code GeoMapPane} erweitert das {@link SelectableXMapPane} um einen
@@ -96,6 +100,13 @@
/** Karten-Bereich des {@code GeoMapPane}. */
protected SelectableXMapPane mapPane = null;
+
+ /** Panel, das den Kartenbereich ({@link #mapPane}) enthaelt.
+ * Hierueber lassen sich bestimmte Eigenschaften (z.B. Border) steuern,
+ * die aufgrund des optimierten Renderings fuer das {@link XMapPane}
+ * nicht direkt gesetzt werden koennen. */
+ protected JPanel mapPanePanel = null;
+
/** Massstab-Balken */
private ScalePane scalePane = null;
/**
@@ -144,6 +155,8 @@
*/
public GeoMapPane(SelectableXMapPane mapPane, GridPanel vGrid, GridPanel hGrid,
ScalePane scalePane) {
+
+ // Massstab-Balken
this.scalePane = scalePane;
setOpaque(true);
@@ -163,7 +176,6 @@
this.setHorGrid((hGrid != null) ? hGrid : new GridPanel(
GridPanel.HORIZONTAL, this.mapPane));
- // Massstab-Balken
// Standard-Werte fuer GUI-Anordnung setzen
layoutConstraints.put(DLC_MAP, new GridBagConstraints(1, 0, 1, 1, 1.0,
@@ -193,7 +205,7 @@
this.setLayout(new GridBagLayout());
// Karten-Darestellung initialisieren
-// this.mapPane.setBorder(BorderFactory.createLoweredBevelBorder());
+// this.mapPane.setBorder(BorderFactory.createLoweredBevelBorder());
SwingUtil.setPreferredWidth(this.mapPane, 200);
// MapListener that listens to Scale and MapArea changes
@@ -209,6 +221,17 @@
}
}
});
+
+ // MapPane nochmal in ein Panel einfuegen, ueber das z.B.
+ // die Border gesteuert werden kann (aufgrund des optimierten
+ // Renderings des XMapPane koennen einige Eigenschaften nicht
+ // direkt auf dem XMapPane gesetzt werden!)
+ mapPanePanel = new JPanel( new BorderLayout() );
+// Hier nur die "Moeglichkeit" schaffen, Border aber noch nicht setzen!
+// Default: keine Border, aber Grid-Balken; wird z.B. in LayeredMapPane geaendert
+// mapPanePanel.setBorder( BorderFactory.createLoweredBevelBorder() );
+ setGridBarVisible(false);
+ mapPanePanel.add(mapPane,BorderLayout.CENTER);
// Komponenten in Layout anordnen
this.add(getVertGrid(), layoutConstraints.get(DLC_VGRID));
@@ -219,10 +242,7 @@
// aktualisiert wird und die Aenderungen (Area, Scale) im
// Update des Massstab-Balken und der der Koordinaten-Leiste
// bereits zur Verfuegung stehen!
- this.add(mapPane, layoutConstraints.get(DLC_MAP));
-
- // // Hintergrundfarbe aller enthaltenen Komponenten auf Weiss setzen
- // setBackground(BGCOLOR, true);
+ this.add(mapPanePanel, layoutConstraints.get(DLC_MAP));
}
/**
@@ -234,6 +254,23 @@
mapPane.refresh();
}
+ /**
+ * Prueft, ob neben den Koordinaten-Abschnitten die Leiste dargestellt wird.
+ */
+ public boolean isGridBarVisible() {
+ return horGrid != null && horGrid.isGridBarVisible();
+ }
+
+ /**
+ * Bestimmt, ob neben den Koordinaten-Abschnitten die Leiste dargestellt wird.
+ */
+ public void setGridBarVisible(boolean visible) {
+ if (horGrid != null)
+ horGrid.setGridBarVisible(visible);
+ if (vertGrid != null)
+ vertGrid.setGridBarVisible(visible);
+ }
+
/**
* Nach dem {@code super}-Aufruf, wird der Massstab neu gesetzt (und somit
* neu angezeigt), falls sich der Massstab der Karte geaendert hat. Dies ist
@@ -254,7 +291,16 @@
return mapPane;
}
- /**
+ /**
+ * Liefert das {@link JPanel}, in dem der Kartenbereich gekapselt ist.
+ * Hierbei handelt es sich nicht direkt um das {@link XMapPane}, sondern
+ * um ein neues Panel, was wiederum das {@link XMapPane} enthaelt!
+ */
+ public final JPanel getMapPanePanel() {
+ return mapPanePanel;
+ }
+
+ /**
* Liefert den {@link MapContext} der die einzelnen Karten-Layer verwaltet.
*/
public final MapContext getMapContext() {
Modified: branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GridPanel.java
===================================================================
--- branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GridPanel.java 2009-11-24 14:57:05 UTC (rev 560)
+++ branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/GridPanel.java 2009-11-24 15:02:27 UTC (rev 561)
@@ -87,6 +87,10 @@
* Kann in manchen Situationen sinnvoll sein. */
protected boolean forceXYIndexSwitch = false;
+ /** Speichert, ob neben den Koordinaten-Abschnitten auch eine Leiste
+ * dargestellt wird (Defaul: {@code true}). */
+ protected boolean gridBarVisible = true;
+
/**
* Erzeugt eine WGS84-Koordinaten-Leiste fuer ein {@link SelectableXMapPane}.
* @param orientation Orientierung ({@link #HORIZONTAL} oder {@link #VERTICAL})
@@ -141,6 +145,21 @@
}
/**
+ * Prueft, ob neben den Koordinaten-Abschnitten die Leiste dargestellt wird.
+ */
+ public boolean isGridBarVisible() {
+ return gridBarVisible;
+ }
+
+ /**
+ * Bestimmt, ob neben den Koordinaten-Abschnitten die Leiste dargestellt wird.
+ */
+ public void setGridBarVisible(boolean visible) {
+ gridBarVisible = visible;
+ repaint();
+ }
+
+ /**
* Liefert den {@link GridPanelFormatter}, mit dem die Darstellung der
* Koordinaten bestimmt wird.
*/
@@ -310,13 +329,13 @@
// Passende Grid-Unterteilung in Grad
double gridDist = formatter.determineGridDistance(this, mapMin,mapMax,maxSize);
-// SK: 25. Sep 2009: Asgeschaltet auf Grund ästetischer Agumente ;-)
-// // Leiste zeichnen
-// if ( isHorizontal() )
-// g2.drawLine(0,0,maxSize,0);
-// else
-// g2.drawLine(formatter.getWidthForVertical(this)-1,0,formatter.getWidthForVertical(this)-1,maxSize);
-//
+ // Leiste zeichnen
+ if ( isGridBarVisible() ) {
+ if ( isHorizontal() )
+ g2.drawLine(0,0,maxSize,0);
+ else
+ g2.drawLine(formatter.getWidthForVertical(this)-1,0,formatter.getWidthForVertical(this)-1,maxSize);
+ }
// Abschnitte zeichnen
double firstGrid = Math.ceil(mapMin/gridDist)*gridDist; // 1. Abschnitt in Lat bzw. Lon
Modified: branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapFrame.java
===================================================================
--- branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapFrame.java 2009-11-24 14:57:05 UTC (rev 560)
+++ branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapFrame.java 2009-11-24 15:02:27 UTC (rev 561)
@@ -86,7 +86,7 @@
private JPanel contentPane = null;
/** Karten- und Layer-Kontroll-Bereich. */
protected LayeredMapPane layeredMapPane = null;
- private SelectableXMapPane mapPane = null;
+ private SelectableXMapPane mapPane = null;
private MapContext mapContext = null;
/** Status-Balken. */
protected MapPaneStatusBar statusBar = null;
Modified: branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapPane.java
===================================================================
--- branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapPane.java 2009-11-24 14:57:05 UTC (rev 560)
+++ branches/1.0-gt2-2.6/src/schmitzm/geotools/gui/LayeredMapPane.java 2009-11-24 15:02:27 UTC (rev 561)
@@ -32,6 +32,7 @@
import java.awt.BorderLayout;
import java.util.Hashtable;
+import javax.swing.BorderFactory;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
@@ -55,48 +56,54 @@
import schmitzm.swing.MultiSplitPane;
/**
- * Diese Klasse stellt ein Panel dar, in dem layer-basiert Objekte
- * grafisch dargestellt werden koennen.<br>
+ * Diese Klasse stellt ein Panel dar, in dem layer-basiert Objekte grafisch
+ * dargestellt werden koennen.<br>
* Welche Objekte dargestellt werden koennen, ist der Beschreibung der
* {@link #isVisualisable(Object)}-Methode zu entnehmen.<br>
* Das Fenster besteht aus 2 durch einen Divider voneinander getrennten
* Komponenten:
* <ol>
- * <li>Eine Map ({@link SelectableXMapPane}) zu grafischen Darstellung der Layer</li>
+ * <li>Eine Map ({@link SelectableXMapPane}) zu grafischen Darstellung der Layer
+ * </li>
* <li>Eine Liste mit Steuerungskomponenten, ueber die die einzelnen Layer
- * angesprochen werden koennen (ein/ausblenden, zoomen, ...).</li>
+ * angesprochen werden koennen (ein/ausblenden, zoomen, ...).</li>
* </ol>
- * Die grafischen Layer (in der Map) koennen wahlweise (de)aktiviert werden. Dies
- * geschieht durch setzen/entfernen eines Haekchens in der entsprechenden
+ * Die grafischen Layer (in der Map) koennen wahlweise (de)aktiviert werden.
+ * Dies geschieht durch setzen/entfernen eines Haekchens in der entsprechenden
* Steuerungskomponente. Diese enthaelt zudem ein Kontextmenue, ueber welches
* <ul>
* <li>das jeweilige Layer aus der Map entfernt werden kann</li>
- * <li>das jeweilige Layer in der Map eine Ebene nach oben/unten verschoben werden kann</li>
- * <li>die Map sogezoomt werden kann, dass das jeweilige Layer komplett angezeigt wird</li>
+ * <li>das jeweilige Layer in der Map eine Ebene nach oben/unten verschoben
+ * werden kann</li>
+ * <li>die Map sogezoomt werden kann, dass das jeweilige Layer komplett
+ * angezeigt wird</li>
* </ul>
* Darueberhinaus verwaltet das {@code LayerMapPane} eine Liste von
* {@link ColorMapManager Farbpaletten} fuer Rasterdaten, die durch die
* Layer-Kontrolle den Raster-Layern zugewiesen werden koennen.<br>
* Um Layer einzufuegen koennen die {@code addLayer(.)}-Methoden dieser Klasse
* verwendet werden (dabei wird ein Default-Style verwendet) oder die
- * entsprechenden Methoden des {@link MapContext} ({@code getMapPane().getContext()}).
+ * entsprechenden Methoden des {@link MapContext} ({@code
+ * getMapPane().getContext()}).
* @author Martin Schmitz
* @version 1.0
*/
public class LayeredMapPane extends JPanel {
- protected MultiSplitPane horSplitPane = new MultiSplitPane(2,JSplitPane.HORIZONTAL_SPLIT);
- /** Komponente, in der die Karten, der Massstab und das Koordinaten-Raster
- * dargestellt werden */
+ protected MultiSplitPane horSplitPane = new MultiSplitPane(2,
+ JSplitPane.HORIZONTAL_SPLIT);
+ /**
+ * Komponente, in der die Karten, der Massstab und das Koordinaten-Raster
+ * dargestellt werden
+ */
protected GeoMapPane geoMapPane = null;
- private MapContext mapContext = null;
- private SelectableXMapPane mapPane = null;
- private Hashtable<MapLayer,Object> layerObjects = new Hashtable<MapLayer,Object>();
+ private MapContext mapContext = null;
+ private SelectableXMapPane mapPane = null;
+ private Hashtable<MapLayer, Object> layerObjects = new Hashtable<MapLayer, Object>();
/** Komponente, in der die Layer-Kontrolle dargestellt ist. */
protected MapContextControlPane layerControlList = null;
/** Auswahl an Farb-Paletten fuer Raster-Daten */
protected ColorMapManager colorMaps = null;
-
/**
* Erzeugt eine neue Komponente.
*/
@@ -107,42 +114,56 @@
/**
* Erzeugt eine neue Komponente.
* @param geoMapPane Komponente, die zum Anzeigen der Karten verwendet wird
- * (wenn {@code null} wird eine neue {@link GeoMapPane}-Instanz
- * erzeugt)
+ * (wenn {@code null} wird eine neue {@link GeoMapPane}-Instanz
+ * erzeugt)
*/
public LayeredMapPane(GeoMapPane geoMapPane) {
super();
- if ( geoMapPane == null )
+ if (geoMapPane == null) {
geoMapPane = new GeoMapPane();
- this.setLayout( new BorderLayout() );
+ // Kartenbereich ueber Border "versenken"
+ geoMapPane.getMapPanePanel()
+ .setBorder(BorderFactory.createLoweredBevelBorder());
+ // Aufgrund der Border werden die Koordinaten-Leisten
+ // nicht mehr benoetigt
+ geoMapPane.setGridBarVisible(false);
+ }
+ this.setLayout(new BorderLayout());
// rechter Bereich: Map, Grids und Scale
- this.geoMapPane = geoMapPane != null ? geoMapPane : new GeoMapPane();
- this.mapPane = geoMapPane.getMapPane();
+ this.geoMapPane = geoMapPane;
+ this.mapPane = geoMapPane.getMapPane();
this.mapContext = mapPane.getMapContext();
- this.mapContext.addMapLayerListListener( new MapLayerListListener() {
- public void layerAdded(MapLayerListEvent e) { }
- public void layerChanged(MapLayerListEvent e) { }
- public void layerMoved(MapLayerListEvent e) { }
+ this.mapContext.addMapLayerListListener(new MapLayerListListener() {
+ public void layerAdded(MapLayerListEvent e) {
+ }
+
+ public void layerChanged(MapLayerListEvent e) {
+ }
+
+ public void layerMoved(MapLayerListEvent e) {
+ }
+
public void layerRemoved(MapLayerListEvent e) {
- layerObjects.remove( e.getLayer() );
+ layerObjects.remove(e.getLayer());
}
- } );
+ });
// linker Bereich: Layer-Liste mit Auswahl der Layer
- this.colorMaps = new ColorMapManager();
- this.layerControlList = new MapContextControlPane( mapPane, colorMaps );
+ this.colorMaps = new ColorMapManager();
+ this.layerControlList = new MapContextControlPane(mapPane, colorMaps);
// horizontales SplitPane initialisieren
- for (int i=0; i<horSplitPane.getContainerCount(); i++)
- horSplitPane.getContainer(i).setLayout( new BorderLayout() );
- horSplitPane.setResizeWeigth( new double[] {0.2,0.8} );
+ for (int i = 0; i < horSplitPane.getContainerCount(); i++)
+ horSplitPane.getContainer(i).setLayout(new BorderLayout());
+ horSplitPane.setResizeWeigth(new double[] { 0.2, 0.8 });
horSplitPane.setDividerSize(5);
horSplitPane.setInnerBorder(null);
- horSplitPane.getContainer(0).add(new JScrollPane(layerControlList),BorderLayout.CENTER);
+ horSplitPane.getContainer(0).add(new JScrollPane(layerControlList),
+ BorderLayout.CENTER);
horSplitPane.getContainer(1).add(geoMapPane);
- this.add( horSplitPane );
+ this.add(horSplitPane);
}
/**
@@ -171,26 +192,25 @@
* Prueft, ob Instanzen einer bestimmten Klasse von {@link LayeredMapFrame}
* visualisiert werden koennen. Dies gilt fuer
* <ul>
- * <li>{@link GridCoverage2D org.geotools.coverage.grid.GridCoverage2D}</li>
- * <li>{@link FeatureCollection org.geotools.feature.FeatureCollection}</li>
+ * <li>{@link GridCoverage2D org.geotools.coverage.grid.GridCoverage2D}</li>
+ * <li>{@link FeatureCollection org.geotools.feature.FeatureCollection}</li>
* </ul>
*/
public boolean isVisualisable(Class c) {
- return GridCoverage2D.class.isAssignableFrom( c ) ||
- FeatureCollection.class.isAssignableFrom( c );
+ return GridCoverage2D.class.isAssignableFrom(c) ||
+ FeatureCollection.class.isAssignableFrom(c);
}
/**
- * Prueft, ob eine Objekt-Instanz von {@link LayeredMapFrame}
- * visualisiert werden kann. Dies gilt fuer Instanzen von
+ * Prueft, ob eine Objekt-Instanz von {@link LayeredMapFrame} visualisiert
+ * werden kann. Dies gilt fuer Instanzen von
* <ul>
- * <li>{@link GridCoverage2D org.geotools.coverage.grid.GridCoverage2D}</li>
- * <li>{@link FeatureCollection org.geotools.feature.FeatureCollection}</li>
+ * <li>{@link GridCoverage2D org.geotools.coverage.grid.GridCoverage2D}</li>
+ * <li>{@link FeatureCollection org.geotools.feature.FeatureCollection}</li>
* </ul>
*/
public boolean isVisualisable(Object o) {
- return o instanceof GridCoverage2D ||
- o instanceof FeatureCollection;
+ return o instanceof GridCoverage2D || o instanceof FeatureCollection;
}
/**
@@ -200,49 +220,63 @@
* @param style Darstellungs-Style fuer das Layer
*/
public MapLayer addLayer(GridCoverage2D gc, String desc, Style style) {
-// GridSampleDimension gsd = gc.getSampleDimensions()[0];
-// for (int i = 0; i < gsd.getCategories().size(); i++) {
-// Category cat = (Category) gsd.getCategories().get(i);
-// System.out.print("'" + cat.getName() + "'\t" + cat.getRange().toString() +"\t"+cat.isQuantitative()+"\t");
-// for (int j = 0; j < cat.getColors().length; j++)
-// System.out.print(cat.getColors()[j].toString() + ",");
-// System.out.println("\n > " + cat.toString() + " (" + cat.getClass().getName() + ")");
-// }
+ // GridSampleDimension gsd = gc.getSampleDimensions()[0];
+ // for (int i = 0; i < gsd.getCategories().size(); i++) {
+ // Category cat = (Category) gsd.getCategories().get(i);
+ // System.out.print("'" + cat.getName() + "'\t" + cat.getRange().toString()
+ // +"\t"+cat.isQuantitative()+"\t");
+ // for (int j = 0; j < cat.getColors().length; j++)
+ // System.out.print(cat.getColors()[j].toString() + ",");
+ // System.out.println("\n > " + cat.toString() + " (" +
+ // cat.getClass().getName() + ")");
+ // }
-// // Farbiges Grid erzeugen
-// Category[] c = new Category[0];
-// try {
-// c = new Category[] {
-//// (Category) gsd.getCategories().get(0),
-//// (Category) gsd.getCategories().get(1)
-// CoverageUtil.createGeophysicsCategory( new Category("", new Color[]{Color.WHITE, Color.BLACK}, new NumberRange(0.0,255.0),1,0), true ),
-// CoverageUtil.createGeophysicsCategory( new Category("No data", Color.YELLOW, Float.NaN), false ),
-//// CoverageUtil.createGeophysicsCategory( new Category("No data", new Color(0, 0, 0), Float.NaN), true ),
-//// CoverageUtil.createGeophysicsCategory( new Category("0", Color.BLACK, 0.0f), true ),
-//// CoverageUtil.createGeophysicsCategory( new Category("1", Color.BLACK, 1.0f), true ),
-//// CoverageUtil.createGeophysicsCategory( new Category("2", Color.BLACK, 2.0f), true ),
-//// CoverageUtil.createGeophysicsCategory( new Category("3", Color.BLACK, 3.0f), true ),
-//// CoverageUtil.createGeophysicsCategory( new Category("4", Color.BLACK, 4.0f), true ),
-//// CoverageUtil.createGeophysicsCategory( new Category("5", Color.BLACK, 5.0f), true )
-// };
-// } catch ( Exception err ) {
-// err.printStackTrace();
-// }
-// gc = recolorGrid(gc,0,c);
-//
-// gsd = gc.getSampleDimensions()[0];
-// for (int i = 0; i < gsd.getCategories().size(); i++) {
-// Category cat = (Category) gsd.getCategories().get(i);
-// System.out.print("'" + cat.getName() + "'\t" + cat.getRange().toString() +"\t"+cat.isQuantitative()+"\t");
-// for (int j = 0; j < cat.getColors().length; j++)
-// System.out.print(cat.getColors()[j].toString() + ",");
-// System.out.println("\n > " + cat.toString() + " (" + cat.getClass().getName() + ")");
-// }
+ // // Farbiges Grid erzeugen
+ // Category[] c = new Category[0];
+ // try {
+ // c = new Category[] {
+ // // (Category) gsd.getCategories().get(0),
+ // // (Category) gsd.getCategories().get(1)
+ // CoverageUtil.createGeophysicsCategory( new Category("", new
+ // Color[]{Color.WHITE, Color.BLACK}, new NumberRange(0.0,255.0),1,0), true
+ // ),
+ // CoverageUtil.createGeophysicsCategory( new Category("No data",
+ // Color.YELLOW, Float.NaN), false ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("No data", new
+ // Color(0, 0, 0), Float.NaN), true ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("0", Color.BLACK,
+ // 0.0f), true ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("1", Color.BLACK,
+ // 1.0f), true ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("2", Color.BLACK,
+ // 2.0f), true ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("3", Color.BLACK,
+ // 3.0f), true ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("4", Color.BLACK,
+ // 4.0f), true ),
+ // // CoverageUtil.createGeophysicsCategory( new Category("5", Color.BLACK,
+ // 5.0f), true )
+ // };
+ // } catch ( Exception err ) {
+ // err.printStackTrace();
+ // }
+ // gc = recolorGrid(gc,0,c);
+ //
+ // gsd = gc.getSampleDimensions()[0];
+ // for (int i = 0; i < gsd.getCategories().size(); i++) {
+ // Category cat = (Category) gsd.getCategories().get(i);
+ // System.out.print("'" + cat.getName() + "'\t" + cat.getRange().toString()
+ // +"\t"+cat.isQuantitative()+"\t");
+ // for (int j = 0; j < cat.getColors().length; j++)
+ // System.out.print(cat.getColors()[j].toString() + ",");
+ // System.out.println("\n > " + cat.toString() + " (" +
+ // cat.getClass().getName() + ")");
+ // }
// Falls kein Style angegeben ist, aus der Standard-Farbpalete erstellen
- if ( style == null ) {
- ColorMap colorMap = colorMaps.getDefaultColorMap();
- style = GridUtil.createStyle(colorMap,1.0);
+ if (style == null) {
+ ColorMap colorMap = colorMaps.getDefaultColorMap();
+ style = GridUtil.createStyle(colorMap, 1.0);
}
// Layer erzeugen
mapContext.addLayer(gc, style);
@@ -252,13 +286,12 @@
// neuer Anzeigebereich: Das komplette Raster
if (mapPane.getMapArea() == null) {
Envelope e = gc.getEnvelope();
- com.vividsolutions.jts.geom.Envelope newArea = new com.vividsolutions.jts.
- geom.Envelope(
- e.getUpperCorner().getOrdinate(0), // X1
- e.getLowerCorner().getOrdinate(0), // X2
- e.getUpperCorner().getOrdinate(1), // Y1
- e.getLowerCorner().getOrdinate(1) // Y2
- );
+ com.vividsolutions.jts.geom.Envelope newArea = new com.vividsolutions.jts.geom.Envelope(
+ e.getUpperCorner().getOrdinate(0), // X1
+ e.getLowerCorner().getOrdinate(0), // X2
+ e.getUpperCorner().getOrdinate(1), // Y1
+ e.getLowerCorner().getOrdinate(1) // Y2
+ );
mapPane.setMapArea(newArea);
}
@@ -266,7 +299,7 @@
mapPane.repaint();
// Wenn Rendering geklappt hat, zum Layer gehoerendes Objekt merken
- layerObjects.put(newLayer,gc);
+ layerObjects.put(newLayer, gc);
return newLayer;
}
@@ -278,7 +311,7 @@
* @param style Darstellungs-Style fuer das Layer
*/
public MapLayer addLayer(FeatureCollection fc, String desc, Style style) {
- if ( style == null )
+ if (style == null)
style = FeatureUtil.createDefaultStyle(fc);
// Layer erzeugen
mapContext.addLayer(fc, style);
@@ -293,7 +326,7 @@
mapPane.repaint();
// Wenn Rendering geklappt hat, zum Layer gehoerendes Objekt merken
- layerObjects.put(newLayer,fc);
+ layerObjects.put(newLayer, fc);
return newLayer;
}
@@ -304,16 +337,18 @@
* @param desc Beschreibung fuer das Objekt
* @param style Darstellungs-Style fuer das Layer
* @exception UnsupportedOperationException falls ein nicht-darstellbares
- * Objekt uebergeben wird
+ * Objekt uebergeben wird
* @see #isVisualisable(Object)
* @see #isVisualisable(Class)
*/
public MapLayer addLayer(Object obj, String desc, Style style) {
- if ( obj instanceof GridCoverage2D )
- return addLayer( (GridCoverage2D)obj, desc, style );
- if ( obj instanceof FeatureCollection )
- return addLayer( (FeatureCollection)obj, desc, style );
- throw new UnsupportedOperationException("LayeredMapFrame can not visualise objects of class "+obj.getClass().getName());
+ if (obj instanceof GridCoverage2D)
+ return addLayer((GridCoverage2D) obj, desc, style);
+ if (obj instanceof FeatureCollection)
+ return addLayer((FeatureCollection) obj, desc, style);
+ throw new UnsupportedOperationException(
+ "LayeredMapFrame can not visualise objects of class " +
+ obj.getClass().getName());
}
/**
@@ -322,36 +357,30 @@
* @param obj ein (darstellbares) Objekt
* @param desc Beschreibung fuer das Objekt
* @exception UnsupportedOperationException falls ein nicht-darstellbares
- * Objekt uebergeben wird
+ * Objekt uebergeben wird
* @see #isVisualisable(Object)
* @see #isVisualisable(Class)
*/
public MapLayer addLayer(Object obj, String desc) {
- return addLayer(obj,desc,null);
+ return addLayer(obj, desc, null);
}
/**
* Erzeugt ein neues {@link GridCoverage2D} mit einer neuen Farb-Zuordnung.
* @param grid Basis-Grid
* @param band Band, dessen Farbe veraendert werden soll
- * @param cat Rasterwert/Farb-Zuordnungen
+ * @param cat Rasterwert/Farb-Zuordnungen
*/
- private static GridCoverage2D recolorGrid(GridCoverage2D grid, int band, Category[] cat) {
+ private static GridCoverage2D recolorGrid(GridCoverage2D grid, int band,
+ Category[] cat) {
GridSampleDimension[] gsd = grid.getSampleDimensions();
- gsd[band] = new GridSampleDimension(
- gsd[band].getDescription(),
- cat,
- gsd[band].getUnits()
- );
+ gsd[band] = new GridSampleDimension(gsd[band].getDescription(), cat,
+ gsd[band].getUnits());
- return new GridCoverageFactory().create(
- grid.getName(),
- grid.getRenderedImage(),
- grid.getEnvelope(),
- gsd,
- new GridCoverage2D[] {grid},
- null
- );
+ return new GridCoverageFactory().create(grid.getName(),
+ grid.getRenderedImage(),
+ grid.getEnvelope(), gsd,
+ new GridCoverage2D[] { grid }, null);
}
}
Modified: branches/1.0-gt2-2.6/src/schmitzm/swing/SwingUtil.java
===================================================================
--- branches/1.0-gt2-2.6/src/schmitzm/swing/SwingUtil.java 2009-11-24 14:57:05 UTC (rev 560)
+++ branches/1.0-gt2-2.6/src/schmitzm/swing/SwingUtil.java 2009-11-24 15:02:27 UTC (rev 561)
@@ -452,7 +452,7 @@
// Added by SK, 17.4.2009
Window window = SwingUtil.getParentWindow(comp);
- relComp = getParentWindow(comp);
+ relComp = getParentWindow(relComp);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension relSize = (relComp == null) ? screenSize : relComp.getSize();
Modified: branches/1.0-gt2-2.6/src/skrueger/geotools/XMapPane.java
===================================================================
--- branches/1.0-gt2-2.6/src/skrueger/geotools/XMapPane.java 2009-11-24 14:57:05 UTC (rev 560)
+++ branches/1.0-gt2-2.6/src/skrueger/geotools/XMapPane.java 2009-11-24 15:02:27 UTC (rev 561)
@@ -28,6 +28,7 @@
import javax.jws.soap.SOAPBinding.Style;
import javax.swing.Timer;
+import javax.swing.border.Border;
import org.apache.log4j.Logger;
import org.geotools.feature.FeatureCollection;
@@ -1720,6 +1721,10 @@
requestStartRendering();
}
+
+ public void setBorder(Border b) {
+ super.setBorder(b);
+ }
/**
* Triggers to repaint (fast) and re-render (slow) the JMapPane.
@@ -1741,6 +1746,12 @@
// repaint();
// }
+ /**
+ * Set the new map area.
+ * @param newMapArea
+ * @return <code>true</code> if the mapArea has been changed and a repaint
+ * has been triggered.
+ */
public boolean setMapArea(final Envelope newMapArea) {
if (newMapArea == null)
return false;
@@ -1751,6 +1762,7 @@
}
/**
+ * Set the new map area.
* @param newMapArea
* @return <code>true</code> if the mapArea has been changed and a repaint
* has been triggered.
More information about the Schmitzm-commits
mailing list