[Schmitzm-commits] r78 - trunk/src/schmitzm/geotools/gui

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Wed Apr 22 14:36:16 CEST 2009


Author: alfonx
Date: 2009-04-22 14:36:15 +0200 (Wed, 22 Apr 2009)
New Revision: 78

Modified:
   trunk/src/schmitzm/geotools/gui/FeatureCollectionFilterPanel.java
   trunk/src/schmitzm/geotools/gui/FeatureTablePane.java
   trunk/src/schmitzm/geotools/gui/JMapPane.java
   trunk/src/schmitzm/geotools/gui/SelectableFeatureTablePane.java
Log:
* Tried hard to get the SelectionCheckboxColumn out of the FilterPanel.. but ....

Modified: trunk/src/schmitzm/geotools/gui/FeatureCollectionFilterPanel.java
===================================================================
--- trunk/src/schmitzm/geotools/gui/FeatureCollectionFilterPanel.java	2009-04-22 11:48:11 UTC (rev 77)
+++ trunk/src/schmitzm/geotools/gui/FeatureCollectionFilterPanel.java	2009-04-22 12:36:15 UTC (rev 78)
@@ -63,7 +63,7 @@
   public static final String TESTRESULT_LABEL = FeatureCollectionFilterPanel.class.getName()+".TestResultLabel";
 
   /** Panel fuer Filter-Vorschau. */
-  protected FeatureTablePane previewPanel = null;
+  private FeatureTablePane previewPanel = null;
   /** Button zum Testen der Formel */
   protected JButton testButton = null;
   /** Label mit Ergebnis des Formel-Tests */
@@ -116,57 +116,67 @@
    * Oberklasse definiert wird, wird dabei aus dem Panel entfernt!
    */
   protected void initGUI() {
-    super.initGUI();
+		super.initGUI();
 
-    // Button zum Testen des Filters
-    testButton = new JButton( GeotoolsGUIUtil.RESOURCE.getString(TEST_BUTTON) );
-    testButton.addActionListener( new ActionListener() {
-      public void actionPerformed(ActionEvent e) {
-        performRuleTest();
-      }
-    });
-    // Label fuer Fehler-Meldungen
-    testResult = new JLabel("");
+		// Button zum Testen des Filters
+		testButton = new JButton(GeotoolsGUIUtil.RESOURCE
+				.getString(TEST_BUTTON));
+		testButton.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				performRuleTest();
+			}
+		});
+		// Label fuer Fehler-Meldungen
+		testResult = new JLabel("");
 
-    previewPanel = new FeatureTablePane( null, geomPrev ) {
-      // In der Tabelle sollen einzelne Werte selektiert werden koennen
-      // und diese bei einem Doppelklick in die Formel uebernommen werden
-      protected void initGUI(boolean geomPreview) {
-        super.initGUI(geomPreview);
-        // nur einzelne Zellen duerfen selektiert werden
-        featuresTable.setColumnSelectionAllowed( true );
-        featuresTable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
-        // beim Klick auf eine Tabellenzelle, soll der Wert in die Formel
-        // uebernommen werden
-        featuresTable.addMouseListener(new MouseAdapter() {
-          public void mouseClicked(MouseEvent e) {
-            if (e.getButton() == MouseEvent.BUTTON1 &&
-                e.getClickCount() == 2)
-              insertValueInRule( featuresTable.getValueAt(
-                featuresTable.getSelectedRow(),
-                featuresTable.getSelectedColumn())
-              );
-          }
-        });
-      }
+		if (getPreviewPanel() == null)
+			setPreviewPanel(new FeatureTablePane(null, geomPrev) {
+				// In der Tabelle sollen einzelne Werte selektiert werden
+				// koennen
+				// und diese bei einem Doppelklick in die Formel uebernommen
+				// werden
+				protected void initGUI(boolean geomPreview) {
+					super.initGUI(geomPreview);
+					// nur einzelne Zellen duerfen selektiert werden
+					featuresTable.setColumnSelectionAllowed(true);
+					featuresTable
+							.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+					// beim Klick auf eine Tabellenzelle, soll der Wert in die
+					// Formel
+					// uebernommen werden
+					featuresTable.addMouseListener(new MouseAdapter() {
+						public void mouseClicked(MouseEvent e) {
+							if (e.getButton() == MouseEvent.BUTTON1
+									&& e.getClickCount() == 2)
 
-      // Im Vorschau-Panel sollen nicht die in der Tabelle selektieren
-      // Features angezeigt werden, sondern immer ALLE Features der Tabelle (also
-      // das Resultat des Filters)
-      public void performListSelection() {
-      }
-    };
-    // Geometry-Attribute sollen nicht angezeigt werden
-    previewPanel.setAttributeFilter( AttributeTypeFilter.NO_GEOMETRY );
+								// * TODO SK: Might have to be changed to Sorted
+								// / RowModel stuff ....?!
+								insertValueInRule(featuresTable.getValueAt(
+										featuresTable.getSelectedRow(),
+										featuresTable.getSelectedColumn()));
+						}
+					});
+				}
 
-    SwingUtil.setPreferredHeight( previewPanel, 50 );
+				// Im Vorschau-Panel sollen nicht die in der Tabelle selektieren
+				// Features angezeigt werden, sondern immer ALLE Features der
+				// Tabelle (also
+				// das Resultat des Filters)
+				public void performListSelection() {
+				}
 
-    // zusaetzliche Komponenten einfuegen
-    add( testButton,   layoutConstraints.get(TEST_BUTTON) );
-    add( testResult,   layoutConstraints.get(TESTRESULT_LABEL) );
-    add( previewPanel, layoutConstraints.get(PREVIEW_PANEL) );
-  }
+			});
+		// Geometry-Attribute sollen nicht angezeigt werden
+		getPreviewPanel().setAttributeFilter(AttributeTypeFilter.NO_GEOMETRY);
 
+		SwingUtil.setPreferredHeight(getPreviewPanel(), 50);
+
+		// zusaetzliche Komponenten einfuegen
+		add(testButton, layoutConstraints.get(TEST_BUTTON));
+		add(testResult, layoutConstraints.get(TESTRESULT_LABEL));
+		add(getPreviewPanel(), layoutConstraints.get(PREVIEW_PANEL));
+	}
+
   /**
    * Setzt den Filter, der die dargestellten Attribute bestimmt.
    * @param attrFilter Filter
@@ -175,7 +185,7 @@
     super.setAttributeFilter(attrFilter);
     // Filter auch auf die in der Vorschau dargestellten
     // Attribut-Spalten anwenden
-    previewPanel.setAttributeFilter(attrFilter);
+    getPreviewPanel().setAttributeFilter(attrFilter);
   }
 
   /**
@@ -192,7 +202,7 @@
    * Fuegt an der Curserposition einen Wert in die Formel ein.
    * @param value Object
    */
-  private void insertValueInRule(Object value) {
+  protected void insertValueInRule(Object value) {
     if ( value == null )
       value = "";
     
@@ -231,10 +241,10 @@
   protected void performRuleTest() {
     try {
       FeatureCollection subCollection = filterFeatureCollection();
-      previewPanel.setFeatureCollection( subCollection );
+      getPreviewPanel().setFeatureCollection( subCollection );
       testResult.setText("");
     } catch (Exception err) {
-      previewPanel.setFeatureCollection( null );
+      getPreviewPanel().setFeatureCollection( null );
       testResult.setText( err.getMessage() );
     }
     rule.grabFocus();
@@ -255,8 +265,8 @@
     if ( !fc.getSchema().equals( getFeatureType() ) )
       throw new IllegalArgumentException("FeatureCollection does not fit to schema of the panel!");
     this.fc = fc;
-    if ( previewPanel != null )
-      previewPanel.setFeatureCollection( fc );
+    if ( getPreviewPanel() != null )
+      getPreviewPanel().setFeatureCollection( fc );
   }
 
   /**
@@ -272,14 +282,14 @@
    * @param style Style fuer die Features
    */
   public void setFeatureStyle( Style style ) {
-    previewPanel.setFeatureStyle( style );
+    getPreviewPanel().setFeatureStyle( style );
   }
 
   /**
    * Liefert den Style, in dem die Features in der Vorschau dargestellt werden.
    */
   public Style getFeatureStyle() {
-    return previewPanel.getFeatureStyle();
+    return getPreviewPanel().getFeatureStyle();
   }
 
   /**
@@ -299,4 +309,12 @@
   public FeatureCollection filterFeatureCollection( FeatureCollection fc ) {
     return fc.subCollection( createFilter() );
   }
+
+public void setPreviewPanel(FeatureTablePane previewPanel) {
+	this.previewPanel = previewPanel;
 }
+
+public FeatureTablePane getPreviewPanel() {
+	return previewPanel;
+}
+}

Modified: trunk/src/schmitzm/geotools/gui/FeatureTablePane.java
===================================================================
--- trunk/src/schmitzm/geotools/gui/FeatureTablePane.java	2009-04-22 11:48:11 UTC (rev 77)
+++ trunk/src/schmitzm/geotools/gui/FeatureTablePane.java	2009-04-22 12:36:15 UTC (rev 78)
@@ -223,7 +223,6 @@
     // in Vorschau anzeigen
     featuresTableModel.addTableModelListener( new TableModelListener() {
       public void tableChanged(TableModelEvent e) {
-    	  System.out.println(e);
         showFeaturesInMap( getFeatureCollection() );
       }
     } );

Modified: trunk/src/schmitzm/geotools/gui/JMapPane.java
===================================================================
--- trunk/src/schmitzm/geotools/gui/JMapPane.java	2009-04-22 11:48:11 UTC (rev 77)
+++ trunk/src/schmitzm/geotools/gui/JMapPane.java	2009-04-22 12:36:15 UTC (rev 78)
@@ -2072,7 +2072,6 @@
 				// are tested anyway...
 				return f.getAttribute(1);
 			}
-
 			/** CHANGE SK 9.8.08 END */
 
 			if (f.getNumberOfAttributes() != 2

Modified: trunk/src/schmitzm/geotools/gui/SelectableFeatureTablePane.java
===================================================================
--- trunk/src/schmitzm/geotools/gui/SelectableFeatureTablePane.java	2009-04-22 11:48:11 UTC (rev 77)
+++ trunk/src/schmitzm/geotools/gui/SelectableFeatureTablePane.java	2009-04-22 12:36:15 UTC (rev 78)
@@ -12,6 +12,7 @@
 
 import java.awt.BorderLayout;
 import java.awt.Component;
+import java.awt.Cursor;
 import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import java.net.URL;
@@ -188,7 +189,10 @@
 			@Override
 			public void actionPerformed(ActionEvent e) {
 
+				setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+				
 				getTable().getSelectionModel().setValueIsAdjusting(true);
+				
 				for (int i = 0; i < getTable().getModel().getRowCount(); i++) {
 					if (getTable().getSelectionModel().isSelectedIndex(i)) {
 						getTable().getSelectionModel().removeSelectionInterval(
@@ -199,6 +203,7 @@
 					}
 				}
 				getTable().getSelectionModel().setValueIsAdjusting(false);
+				setCursor(null);
 
 			}
 



More information about the Schmitzm-commits mailing list