schmitzm.geotools.gui
Class FeatureCollectionFilterPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by schmitzm.swing.JPanel
                      extended by schmitzm.swing.CaptionsChangeablePanel
                          extended by schmitzm.swing.OperationTreePanel
                              extended by schmitzm.geotools.gui.FeatureFilterPanel
                                  extended by schmitzm.geotools.gui.FeatureCollectionFilterPanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, CaptionsChangeable

public class FeatureCollectionFilterPanel
extends FeatureFilterPanel

Diese Klasse stellt ein Panel zur Verfuegung, mit der ein Filter in Form einer arithmetischen (und boolschen) Formel erstellt werden kann. Wie der String geparst wird (z.B. CQL), wird durch einen FilterParser bestimmt.
Neben den Komponenten zur Definition/Eingabe des Filters enthaelt das Panel einen Vorschau-Bereich, in dem eine FeatureCollection angezeigt wird, auf der der Filter angewandt wird.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
FeatureOperationTree, FeatureOperationTreeParser, FeatureOperationTreeFilter, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  JPanel defineFilterPanel
          A Panel with a titled border that contains all buttons used to define the filter
static String FILER_DEFINITION_BORDER_TITLE
          Constant for the BorderTitle of the filter definition part
static String PREVIEW_MAPPANE_TOOLTIP
          Constant for the ToolTip of the preview mappane
static String PREVIEW_PANEL
          Konstante fuer die Layout-Constraints des Vorschau-Bereich.
static String RESULTS_BORDER_TITLE
          Constant for the BorderTitle of the results panel
static String TEST_BUTTON
          Konstante fuer die Layout-Constraints des Testen-Button.
protected  JButton testButton
          Button zum Testen der Formel
protected  Throwable testError
          Speichert den letzten Fehler in der Filter-Regel.
protected  JLabel testResult
          Label mit Ergebnis des Formel-Tests
static String TESTRESULT_LABEL
          Konstante fuer die Layout-Constraints des Testen-Button.
protected  JButton testResultDetails
          Button fuer Details des Formel-Tests-Ergebnis
static String TESTRESULTDETAILS_BUTTON
          Konstante fuer die Layout-Constraints des Details-Button.
static String TESTRESULTDETAILS_TOOLTIP
          Konstante fuer den Tooltip des Details-Button.
 
Fields inherited from class schmitzm.geotools.gui.FeatureFilterPanel
ATTRIBUTE_LABEL, ATTRIBUTE_TABLE, attributeLabel, attributeTable, attributeTableModel, filterParser
 
Fields inherited from class schmitzm.swing.OperationTreePanel
layoutConstraints, OPERATOR_COMBOBOX, OPERATOR_LABEL, operators, opHints, rule, RULE_LABEL, RULE_TEXTFIELD, RULE_TOOLTIP, START_BUTTON, startButton, THIS
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
  FeatureCollectionFilterPanel(FilterParser parser,  fc, boolean geomPrev, AttributeTypeFilter attributeFilter)
          Erzeugt ein neues Panel.
protected FeatureCollectionFilterPanel(FilterParser parser,  fc, boolean geomPrev, boolean initGUI, AttributeTypeFilter attributeFilter)
          Erzeugt ein neues Panel
 
Method Summary
  filterFeatureCollection()
          Wendet die im Panel eingetragene Filter-Formel auf die FeatureCollection des Vorschau-Fensters an und liefert die entsprechende Sub-Collection.
  filterFeatureCollection( fc)
          Wendet die im Panel eingetragene Filter-Formel auf eine FeatureCollection and und liefert die entsprechende Sub-Collection.
  getFeatureCollection()
          Liefert die ungefilterte FeatureCollection, auf der gefiltert wird.
 Style getFeatureStyle()
          Liefert den Style, in dem die Features in der Vorschau dargestellt werden.
 FeatureTablePane getPreviewPanel()
          Liefert die aktuell gesetzt Vorschaukomponente.
protected  void initGUI()
          Initalisiert die GUI des Fensters.
protected  void insertValueInRule(Object value)
          Fuegt an der Curserposition einen Wert in die Formel ein.
protected  void performRuleTest()
          Wird ausgefuehrt, wenn der Testen-Button gedrueckt wird.
 void resetCaptions(Map<String,Object> captionMap)
          Setzt die Labels des Panels neu.
protected  void resetComponentsAfterTest(Throwable err)
          (De)aktiviert Label und Button fuer die Fehlermeldung entsprechend einer etwaigen Fehlermeldung.
 void setAttributeFilter(AttributeTypeFilter attrFilter)
          Setzt den Filter, der die dargestellten Attribute bestimmt.
 void setFeatureCollection( fc)
          Setzt die FeatureCollection, die (gefiltert) in der Vorschau angezeigt wird.
 void setFeatureStyle(Style style)
          Setzt den Style, in dem die Features in der Vorschau dargestellt werden.
 void setPreviewPanel(FeatureTablePane previewPanel)
          Öffentliche Methode um die Belegung der Vorschaukomponente zu ändern.
 void setRule(String rule)
          Setzt die aktuell im Dialog eingegebene Formel und aktualisiert die Vorschau.
 
Methods inherited from class schmitzm.geotools.gui.FeatureFilterPanel
createFilter, getAttributeFilter, getFeatureType, getFilterParser, getRule, setFeatureType, setFilterParser
 
Methods inherited from class schmitzm.swing.OperationTreePanel
acceptOperator, checkInputsAndError, performCalculation, performOperatorInsert
 
Methods inherited from class schmitzm.swing.CaptionsChangeablePanel
resetCaptions, resetCaptions
 
Methods inherited from class schmitzm.swing.JPanel
print, setBackground, setEnabled
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PREVIEW_PANEL

public static final String PREVIEW_PANEL
Konstante fuer die Layout-Constraints des Vorschau-Bereich.

See Also:
OperationTreePanel.layoutConstraints, previewPanel

TEST_BUTTON

public static final String TEST_BUTTON
Konstante fuer die Layout-Constraints des Testen-Button.

See Also:
OperationTreePanel.layoutConstraints, resetCaptions(Map), testButton

TESTRESULT_LABEL

public static final String TESTRESULT_LABEL
Konstante fuer die Layout-Constraints des Testen-Button.

See Also:
OperationTreePanel.layoutConstraints, testButton

TESTRESULTDETAILS_BUTTON

public static final String TESTRESULTDETAILS_BUTTON
Konstante fuer die Layout-Constraints des Details-Button.

See Also:
OperationTreePanel.layoutConstraints, testResultDetails

TESTRESULTDETAILS_TOOLTIP

public static final String TESTRESULTDETAILS_TOOLTIP
Konstante fuer den Tooltip des Details-Button.

See Also:
testResultDetails

RESULTS_BORDER_TITLE

public static final String RESULTS_BORDER_TITLE
Constant for the BorderTitle of the results panel


FILER_DEFINITION_BORDER_TITLE

public static final String FILER_DEFINITION_BORDER_TITLE
Constant for the BorderTitle of the filter definition part


PREVIEW_MAPPANE_TOOLTIP

public static final String PREVIEW_MAPPANE_TOOLTIP
Constant for the ToolTip of the preview mappane


testButton

protected JButton testButton
Button zum Testen der Formel


testResult

protected JLabel testResult
Label mit Ergebnis des Formel-Tests


testResultDetails

protected JButton testResultDetails
Button fuer Details des Formel-Tests-Ergebnis


testError

protected Throwable testError
Speichert den letzten Fehler in der Filter-Regel.


defineFilterPanel

protected JPanel defineFilterPanel
A Panel with a titled border that contains all buttons used to define the filter

Constructor Detail

FeatureCollectionFilterPanel

public FeatureCollectionFilterPanel(FilterParser parser,
                                     fc,
                                    boolean geomPrev,
                                    AttributeTypeFilter attributeFilter)
Erzeugt ein neues Panel.

Parameters:
parser - Parser um aus dem im Panel eingegebenen String einen Filter zu erstellen.
fc - definiert die zur Verfuegung gestellten SimpleFeature-Attribute
geomPrev - bestimmt, ob ein Preview-Bereich angezeigt wird (true) oder nicht (false)
See Also:
FeatureCollection#getSchema()

FeatureCollectionFilterPanel

protected FeatureCollectionFilterPanel(FilterParser parser,
                                        fc,
                                       boolean geomPrev,
                                       boolean initGUI,
                                       AttributeTypeFilter attributeFilter)
Erzeugt ein neues Panel

Parameters:
parser - Parser um aus dem im Panel eingegebenen String einen Filter zu erstellen.
fc - definiert die zur Verfuegung gestellten SimpleFeature-Attribute
initGUI - Flag, ob initGUI() am Ende des Konstruktor aufgerufen werden soll (wenn false muss die explizit durch die Unterklasse erfolgen!)
attributeFilter - If null null, will be used.
Method Detail

initGUI

protected void initGUI()
Initalisiert die GUI des Fensters. Der "Start-Button" der durch die Oberklasse definiert wird, wird dabei aus dem Panel entfernt!

Overrides:
initGUI in class FeatureFilterPanel

setAttributeFilter

public void setAttributeFilter(AttributeTypeFilter attrFilter)
Setzt den Filter, der die dargestellten Attribute bestimmt.

Overrides:
setAttributeFilter in class FeatureFilterPanel
Parameters:
attrFilter - Filter
See Also:
FeatureTypeTableModel.setAttributeFilter(AttributeTypeFilter)

resetCaptions

public void resetCaptions(Map<String,Object> captionMap)
Setzt die Labels des Panels neu.

Specified by:
resetCaptions in interface CaptionsChangeable
Overrides:
resetCaptions in class FeatureFilterPanel
Parameters:
captionMap - Map
See Also:
FeatureFilterPanel.resetCaptions(Map)

insertValueInRule

protected void insertValueInRule(Object value)
Fuegt an der Curserposition einen Wert in die Formel ein.

Parameters:
value - Object

setRule

public void setRule(String rule)
Setzt die aktuell im Dialog eingegebene Formel und aktualisiert die Vorschau.

Overrides:
setRule in class FeatureFilterPanel
Parameters:
rule - Formel als String

performRuleTest

protected void performRuleTest()
Wird ausgefuehrt, wenn der Testen-Button gedrueckt wird. Erzeugt einen Filter aus der angegebenen Formel, wertet diese auf der FeatureCollection aus und zeigt das Resultat im Vorschau-Bereich an.
Tritt ein Fehler auf, wird die entsprechende Meldung im Label testResult (neben dem Button) angezeigt.


resetComponentsAfterTest

protected void resetComponentsAfterTest(Throwable err)
(De)aktiviert Label und Button fuer die Fehlermeldung entsprechend einer etwaigen Fehlermeldung. Wird ausgefuehrt nachdem der "Test"-Button geklickt wurde.

Parameters:
err - Fehler (kann null sein)

setFeatureCollection

public void setFeatureCollection( fc)
Setzt die FeatureCollection, die (gefiltert) in der Vorschau angezeigt wird.

Parameters:
fc - eine FeatureCollection, die zum SimpleFeature-Type (Schema) des Formel-Panels passt
Throws:
IllegalArgumentException - falls die FeatureCollection nicht zum Schema des Panels passt
See Also:
FeatureCollection#getSchema()

getFeatureCollection

public  getFeatureCollection()
Liefert die ungefilterte FeatureCollection, auf der gefiltert wird.


setFeatureStyle

public void setFeatureStyle(Style style)
Setzt den Style, in dem die Features in der Vorschau dargestellt werden.

Parameters:
style - Style fuer die Features

getFeatureStyle

public Style getFeatureStyle()
Liefert den Style, in dem die Features in der Vorschau dargestellt werden.


filterFeatureCollection

public  filterFeatureCollection()
Wendet die im Panel eingetragene Filter-Formel auf die FeatureCollection des Vorschau-Fensters an und liefert die entsprechende Sub-Collection.

See Also:
FeatureCollection#subCollection(Filter)

filterFeatureCollection

public  filterFeatureCollection( fc)
Wendet die im Panel eingetragene Filter-Formel auf eine FeatureCollection and und liefert die entsprechende Sub-Collection.

See Also:
FeatureCollection#subCollection(Filter)

setPreviewPanel

public void setPreviewPanel(FeatureTablePane previewPanel)
Öffentliche Methode um die Belegung der Vorschaukomponente zu ändern. Sollte vor dem Aufruf von initGUI() gesetzt werden, da diese Methode getPreviewPanel() benutzt.

Parameters:
previewPanel - Das zu setzende FeatureTablePane oder eine eigene Erweiterung

getPreviewPanel

public FeatureTablePane getPreviewPanel()
Liefert die aktuell gesetzt Vorschaukomponente. Kann auch null zurückgeben. Wir in initGUI() verwendet.