[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