[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