org.tentackle.appworx
Class AppDbObjectSearchDialog

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by org.tentackle.ui.FormDialog
                          extended by org.tentackle.appworx.AppDbObjectSearchDialog
All Implemented Interfaces:
ContainerListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants, FormContainer, FormWindow

public class AppDbObjectSearchDialog
extends FormDialog

A generic search dialog.

Author:
harald
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
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
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AppDbObjectSearchDialog(ContextDb contextDb, Class<? extends AppDbObject> searchClass, Class[] selectClasses, boolean allowCreate, boolean modal)
          Creates a search dialog.
AppDbObjectSearchDialog(QbfPlugin qbfPlugin, Class[] selectClasses, boolean allowCreate, boolean modal)
          Creates a search dialog.
AppDbObjectSearchDialog(Window owner, ContextDb contextDb, Class<? extends AppDbObject> searchClass, Class[] selectClasses, boolean allowCreate, boolean modal)
          Creates a search dialog.
AppDbObjectSearchDialog(Window owner, QbfPlugin qbfPlugin, Class[] selectClasses, boolean allowCreate, boolean modal)
          Creates a search dialog.
 
Method Summary
 boolean checkAutoClose()
          Checks if window should be autoclosed.
protected  void clearResult()
          Clears the search result.
static AppDbObjectSearchDialog createAppDbObjectSearchDialog(Component comp, ContextDb contextDb, Class<? extends AppDbObject> searchClass, Class[] selectClasses, boolean allowCreate, boolean modal)
          Creates a search dialog.
static AppDbObjectSearchDialog createAppDbObjectSearchDialog(Component comp, QbfPlugin qbfPlugin, Class[] selectClasses, boolean allowCreate, boolean modal)
          Creates a search dialog.
protected  void doCancel()
          Cancels the dialog.
(clears the selection and the qbf parameter).
protected  void doMoreSearch()
          Search in results.
protected  void doSearch(Db db)
          Runs the database search.
 AppDbObjectNaviPanel getNaviPanel()
          Gives access to the current navigation panel.
 QbfParameter getQbfParameter()
          Gets the qbf parameter.
 QbfPlugin getQbfPlugin()
          get the Qbf-Plugin
 AppDbObject getSelectedObject()
          Gets the (first) selected object.
 List<AppDbObject> getSelectedObjects()
          Gets the list of all selected objects.
protected  void insertTree(List<AppDbObject> list)
          Inserts a list of objects into the navigation panel.
 boolean isAutoSelectFirstItem()
          Returns whether the first object is automatically selected or not.
 boolean isMultiSelection()
          Returns whether multiple selections are allowed or not.
 boolean isNoShowIfSingle()
          Returnss whether the dialog should not show up if there is only one object matching.
 boolean isQbfSelection()
          Returns whether this dialog is configured to "save a query".
protected  QbfPlugin makePlugin(ContextDb contextDb, Class<? extends AppDbObject> searchClass)
          Determines the plugin from the searchClass.
protected  void runSearch()
          Runs the search.
 void setAutoSelectFirstItem(boolean autoSelectFistItem)
          Sets whether the first object is automatically selected or not.
 void setButtonsEnabled(boolean flag)
          Enables/disables all buttons.
 void setMultiSelection(boolean multiSelection)
          Sets whether multiple selections are allowed or not.
 void setNoShowIfSingle(boolean noShowIfSingle)
          Sets whether the dialog should not show up if there is only one object matching.
 void setQbfParameter(QbfParameter qbfParameter)
          Sets the qbf parameter.
 void setQbfPlugin(QbfPlugin qbfPlugin)
          Set the qbf-Plugin (if custom)
 void setQbfSelection(boolean qbfSelection)
          Enables a button for "save query" and configures the dialog to dispose if that button is pressed.
protected  void setup(ContextDb contextDb, Class<? extends AppDbObject> searchClass, Class[] selectClasses, boolean allowCreate)
          Sets up the dialog by context and searchclass.
protected  void setup(QbfPlugin qbfPlugin, Class[] selectClasses, boolean allowCreate)
          Sets up the dialog by plugin.
 AppDbObject showDialog()
          Shows the dialog (modal or non-modal).
 
Methods inherited from class org.tentackle.ui.FormDialog
addFormWrapListener, alignLocation, areValuesChanged, componentAdded, componentRemoved, fireFormWrappedFocus, getAutoClose, getFormValues, getHelpURL, getKeepChangedValues, getParentWindow, getRelatedWindow, getTimeOfLastValuesChanged, getTooltipDisplay, getUIVersion, invalidateParentInfo, isAllChangeable, isAutoCloseable, isAutoPosition, isHonourAllChangeable, pack, paint, processWindowEvent, removeFormWrapListener, saveValues, setAllChangeable, setAutoClose, setAutoPosition, setFormValues, setFormValuesKeepChanged, setHelpURL, setHonourAllChangeable, setKeepChangedValues, setRelatedWindow, setTimeOfLastValuesChanged, setTooltipDisplay, setUIVersion, showHelp, triggerValuesChanged
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.tentackle.ui.FormContainer
getTitle, setTitle
 

Constructor Detail

AppDbObjectSearchDialog

public AppDbObjectSearchDialog(Window owner,
                               ContextDb contextDb,
                               Class<? extends AppDbObject> searchClass,
                               Class[] selectClasses,
                               boolean allowCreate,
                               boolean modal)
Creates a search dialog.

Parameters:
owner - the owner window, null if none
contextDb - the database context
searchClass - the object class'es table to search in, null = all tables
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass
modal - true if modal dialog

AppDbObjectSearchDialog

public AppDbObjectSearchDialog(ContextDb contextDb,
                               Class<? extends AppDbObject> searchClass,
                               Class[] selectClasses,
                               boolean allowCreate,
                               boolean modal)
Creates a search dialog.

Parameters:
contextDb - the database context
searchClass - the object class'es table to search in, null = all tables
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass
modal - true if modal dialog

AppDbObjectSearchDialog

public AppDbObjectSearchDialog(Window owner,
                               QbfPlugin qbfPlugin,
                               Class[] selectClasses,
                               boolean allowCreate,
                               boolean modal)
Creates a search dialog.

Parameters:
owner - the owner window, null if none
qbfPlugin - the QBF plugin
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass
modal - true if modal dialog

AppDbObjectSearchDialog

public AppDbObjectSearchDialog(QbfPlugin qbfPlugin,
                               Class[] selectClasses,
                               boolean allowCreate,
                               boolean modal)
Creates a search dialog.

Parameters:
qbfPlugin - the QBF plugin
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass
modal - true if modal dialog
Method Detail

createAppDbObjectSearchDialog

public static AppDbObjectSearchDialog createAppDbObjectSearchDialog(Component comp,
                                                                    QbfPlugin qbfPlugin,
                                                                    Class[] selectClasses,
                                                                    boolean allowCreate,
                                                                    boolean modal)
Creates a search dialog.

Parameters:
comp - the component to determine the owner window, null if none
qbfPlugin - the QBF plugin
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass
modal - true if modal dialog
Returns:
the search dialog

createAppDbObjectSearchDialog

public static AppDbObjectSearchDialog createAppDbObjectSearchDialog(Component comp,
                                                                    ContextDb contextDb,
                                                                    Class<? extends AppDbObject> searchClass,
                                                                    Class[] selectClasses,
                                                                    boolean allowCreate,
                                                                    boolean modal)
Creates a search dialog.

Parameters:
comp - the component to determine the owner window, null if none
contextDb - the database context
searchClass - the object class'es table to search in, null = all tables
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass
modal - true if modal dialog
Returns:
the search dialog

getQbfPlugin

public QbfPlugin getQbfPlugin()
get the Qbf-Plugin

Returns:
Value of property qbfPlugin.

setQbfPlugin

public void setQbfPlugin(QbfPlugin qbfPlugin)
Set the qbf-Plugin (if custom)

Parameters:
qbfPlugin - New value of property qbfPlugin.

checkAutoClose

public boolean checkAutoClose()
Checks if window should be autoclosed.

The default implementation returns true if the window is isAutoCloseable(), isVisible(), the time since the last change has elapsed and the formvalues were not changed.

Overridden to allow autoclosing whether the values in QbfPanels are changed or not. The time of last change is set in insertTree() and whenever a QBF-Field is changed.

Specified by:
checkAutoClose in interface FormWindow
Overrides:
checkAutoClose in class FormDialog
Returns:
true if window can safely be closed due to autoclosing-rules.

setButtonsEnabled

public void setButtonsEnabled(boolean flag)
Enables/disables all buttons.

Notice: the buttons of the plugin panel are not modified.

Parameters:
flag - true if all buttons enabled, false if all disabled

getNaviPanel

public AppDbObjectNaviPanel getNaviPanel()
Gives access to the current navigation panel.

Returns:
the navigation panel

setMultiSelection

public void setMultiSelection(boolean multiSelection)
Sets whether multiple selections are allowed or not.

Parameters:
multiSelection - true if allowed, false if only single object (default)

isMultiSelection

public boolean isMultiSelection()
Returns whether multiple selections are allowed or not.

Returns:
true if allowed, false if only single object (default)

setAutoSelectFirstItem

public void setAutoSelectFirstItem(boolean autoSelectFistItem)
Sets whether the first object is automatically selected or not.

Parameters:
autoSelectFistItem - true if selected, false if not (default)

isAutoSelectFirstItem

public boolean isAutoSelectFirstItem()
Returns whether the first object is automatically selected or not.

Returns:
true if selected, false if not (default)

setQbfParameter

public void setQbfParameter(QbfParameter qbfParameter)
Sets the qbf parameter.

Parameters:
qbfParameter - the qbf parameter

getQbfParameter

public QbfParameter getQbfParameter()
Gets the qbf parameter.

Returns:
the qbf parameter

showDialog

public AppDbObject showDialog()
Shows the dialog (modal or non-modal).

Notice: if multiSelection=true the first selected object is returned. U se getSelectedObjects() to get all objects

Returns:
the selected object, null if nothing selected or non-modal

getSelectedObject

public AppDbObject getSelectedObject()
Gets the (first) selected object.

Returns:
the selected object, null if none

getSelectedObjects

public List<AppDbObject> getSelectedObjects()
Gets the list of all selected objects.

Returns:
the selected objects, null if none

isQbfSelection

public boolean isQbfSelection()
Returns whether this dialog is configured to "save a query".

Returns:
true if qbf selection mode enabled, default is false

setQbfSelection

public void setQbfSelection(boolean qbfSelection)
Enables a button for "save query" and configures the dialog to dispose if that button is pressed.

Parameters:
qbfSelection - true to enable qbf selection mode, default is false

isNoShowIfSingle

public boolean isNoShowIfSingle()
Returnss whether the dialog should not show up if there is only one object matching.

Returns:
true if return single object immediately, false if show (default)

setNoShowIfSingle

public void setNoShowIfSingle(boolean noShowIfSingle)
Sets whether the dialog should not show up if there is only one object matching.

Parameters:
noShowIfSingle - true if return single object immediately, false if show (default)

runSearch

protected void runSearch()
Runs the search.

Depending on the qbf parameter the search is run in a separate thread.

See Also:
QbfParameter.searchInExtraThread

doSearch

protected void doSearch(Db db)
Runs the database search.

Parameters:
db - the optional db, null if use default from qbf parameter

doMoreSearch

protected void doMoreSearch()
Search in results.


insertTree

protected void insertTree(List<AppDbObject> list)
Inserts a list of objects into the navigation panel.

Parameters:
list - the list of objects

doCancel

protected void doCancel()
Cancels the dialog.
(clears the selection and the qbf parameter).


makePlugin

protected QbfPlugin makePlugin(ContextDb contextDb,
                               Class<? extends AppDbObject> searchClass)
                        throws ApplicationException
Determines the plugin from the searchClass.

Parameters:
contextDb - the database context
searchClass - the allowed selections
Returns:
the plugin
Throws:
ApplicationException - if plugin could not be determined

setup

protected void setup(ContextDb contextDb,
                     Class<? extends AppDbObject> searchClass,
                     Class[] selectClasses,
                     boolean allowCreate)
Sets up the dialog by context and searchclass.

Parameters:
contextDb - the database context
searchClass - the object class'es table to search in, null = all tables
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass

setup

protected void setup(QbfPlugin qbfPlugin,
                     Class[] selectClasses,
                     boolean allowCreate)
Sets up the dialog by plugin.

Parameters:
qbfPlugin - the QBF plugin
selectClasses - the allowed selections
allowCreate - true if "new"-button for creation of a new object of searchClass

clearResult

protected void clearResult()
Clears the search result.



Copyright © 2001-2008 Harald Krake, Bergstr. 48, 78098 Triberg, Germany, harald@krake.de