Package adams.gui.selection
Class AbstractDatabaseSelectionPanel<T>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.selection.AbstractSelectionPanel
-
- adams.gui.selection.AbstractTableBasedSelectionPanel<T>
-
- adams.gui.selection.AbstractDatabaseSelectionPanel<T>
-
- Type Parameters:
T
- the type of items to display
- All Implemented Interfaces:
CleanUpHandler
,DatabaseConnectionHandler
,DatabaseConnectionProvider
,DatabaseConnectionUser
,DatabaseConnectionChangeListener
,ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
AbstractConditionalDatabaseSelectionPanel
,AbstractSelectDatabaseFieldPanel
public abstract class AbstractDatabaseSelectionPanel<T> extends AbstractTableBasedSelectionPanel<T> implements DatabaseConnectionChangeListener, DatabaseConnectionHandler
Abstract ancestor for table-based selection panels that use the database as backend.- Version:
- $Revision$
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class adams.gui.selection.AbstractTableBasedSelectionPanel
AbstractTableBasedSelectionPanel.AbstractSelectionTableModel<T>, AbstractTableBasedSelectionPanel.SelectionPopupMenuSupplier
-
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
Fields Modifier and Type Field Description protected BaseButton
m_ButtonRefresh
the button for refreshing the fields.protected AbstractDatabaseConnection
m_DatabaseConnection
the database connection in use.protected boolean
m_DataDisplayed
whether data has been displayed already.-
Fields inherited from class adams.gui.selection.AbstractTableBasedSelectionPanel
m_Current, m_DoubleClickListeners, m_LabelCounts, m_PanelAdditional, m_PanelAll, m_PanelCounts, m_PopupMenuSupplier, m_SearchPanel, m_Self, m_TableData, m_TableDataModel
-
Fields inherited from class adams.gui.selection.AbstractSelectionPanel
DEFAULT_REFRESH_TIMEOUT
-
Fields inherited from class adams.gui.core.BasePanel
m_FileChooser
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors Constructor Description AbstractDatabaseSelectionPanel()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addRefreshActionListener(ActionListener l)
Adds the given listener to the Refresh button.protected void
beforeShow()
Hook method just before the dialog is made visible.void
cleanUp()
Cleans up data structures, frees up memory.protected void
databaseConnected()
Gets called when the database connection gets established.void
databaseConnectionStateChanged(DatabaseConnectionChangeEvent e)
A change in the database connection occurred.protected abstract void
databaseDisconnected()
Gets called when the database connection gets disconnected.protected abstract void
doRefresh()
Performs the actual refresh.AbstractDatabaseConnection
getDatabaseConnection()
Returns the currently used database connection object, can be null.protected abstract AbstractDatabaseConnection
getDefaultDatabaseConnection()
Returns the default database connection.protected void
initGUI()
Initializes the GUI elements.protected void
initialize()
For initializing members.protected void
postRefresh(T[] items)
Performs actions after the refresh, like enabling buttons, updating counts and changing mouse cursor back to normal one.protected void
preRefresh()
Performs actions before the refresh, like disabling buttons and changing mouse cursor to waiting one.void
refresh()
Refreshes the items.protected void
refresh(T[] items)
Refreshes the items.abstract void
refreshIfNecessary()
Simulates a click on the refresh button, if necessary.void
removeRefreshActionListener(ActionListener l)
Removes the given listener from the Refresh button.void
setDatabaseConnection(AbstractDatabaseConnection value)
Sets the database connection object to use.void
setEnabled(boolean value)
Sets the enabled state of the panel.void
setItems(T[] value)
Sets the initially selected set names.void
setVisible(boolean value)
closes/shows the dialog.-
Methods inherited from class adams.gui.selection.AbstractTableBasedSelectionPanel
addDoubleClickListener, addListSelectionListener, addToMissing, getCurrentItems, getItem, getItemClass, getItemCount, getItems, getPopupMenuSupplier, getSelectedItemCount, getSelectedRowCount, grabFocus, isCountsVisible, isMultipleSelection, isValidItem, newSearchPanel, newTableModel, notifyDoubleClickListeners, processMissing, removeDoubleClickListener, removeListSelectionListener, scrollIntoView, search, select, setCountsVisible, setDefaultPopupMenuSupplier, setItem, setMultipleSelection, setPopupMenuSupplier, updateCounts
-
Methods inherited from class adams.gui.selection.AbstractSelectionPanel
waitForEnabled, waitForEnabled
-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, closeParent, finishInit, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle
-
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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, 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, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
m_ButtonRefresh
protected BaseButton m_ButtonRefresh
the button for refreshing the fields.
-
m_DataDisplayed
protected boolean m_DataDisplayed
whether data has been displayed already.
-
m_DatabaseConnection
protected AbstractDatabaseConnection m_DatabaseConnection
the database connection in use.
-
-
Method Detail
-
initialize
protected void initialize()
For initializing members.- Overrides:
initialize
in classAbstractTableBasedSelectionPanel<T>
-
initGUI
protected void initGUI()
Initializes the GUI elements.- Overrides:
initGUI
in classAbstractTableBasedSelectionPanel<T>
-
getDefaultDatabaseConnection
protected abstract AbstractDatabaseConnection getDefaultDatabaseConnection()
Returns the default database connection.- Returns:
- the default connection
-
setEnabled
public void setEnabled(boolean value)
Sets the enabled state of the panel.- Overrides:
setEnabled
in classAbstractTableBasedSelectionPanel<T>
- Parameters:
value
- if true then the components will be enabled
-
refreshIfNecessary
public abstract void refreshIfNecessary()
Simulates a click on the refresh button, if necessary.- See Also:
refresh()
-
preRefresh
protected void preRefresh()
Performs actions before the refresh, like disabling buttons and changing mouse cursor to waiting one.
-
doRefresh
protected abstract void doRefresh()
Performs the actual refresh.
-
postRefresh
protected void postRefresh(T[] items)
Performs actions after the refresh, like enabling buttons, updating counts and changing mouse cursor back to normal one.
-
refresh
public void refresh()
Refreshes the items.
-
refresh
protected void refresh(T[] items)
Refreshes the items.
-
setItems
public void setItems(T[] value)
Sets the initially selected set names.- Overrides:
setItems
in classAbstractTableBasedSelectionPanel<T>
- Parameters:
value
- the set names to select
-
setVisible
public void setVisible(boolean value)
closes/shows the dialog.- Overrides:
setVisible
in classBasePanel
- Parameters:
value
- if true then display the dialog, otherwise close it
-
addRefreshActionListener
public void addRefreshActionListener(ActionListener l)
Adds the given listener to the Refresh button.- Parameters:
l
- the listener to add
-
removeRefreshActionListener
public void removeRefreshActionListener(ActionListener l)
Removes the given listener from the Refresh button.- Parameters:
l
- the listener to remove
-
databaseConnected
protected void databaseConnected()
Gets called when the database connection gets established.
-
databaseDisconnected
protected abstract void databaseDisconnected()
Gets called when the database connection gets disconnected.
-
databaseConnectionStateChanged
public void databaseConnectionStateChanged(DatabaseConnectionChangeEvent e)
A change in the database connection occurred.- Specified by:
databaseConnectionStateChanged
in interfaceDatabaseConnectionChangeListener
- Parameters:
e
- the event
-
getDatabaseConnection
public AbstractDatabaseConnection getDatabaseConnection()
Returns the currently used database connection object, can be null.- Specified by:
getDatabaseConnection
in interfaceDatabaseConnectionProvider
- Returns:
- the current object
-
setDatabaseConnection
public void setDatabaseConnection(AbstractDatabaseConnection value)
Sets the database connection object to use.- Specified by:
setDatabaseConnection
in interfaceDatabaseConnectionHandler
- Parameters:
value
- the object to use
-
beforeShow
protected void beforeShow()
Hook method just before the dialog is made visible.- Overrides:
beforeShow
in classAbstractTableBasedSelectionPanel<T>
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUp
in interfaceCleanUpHandler
- Overrides:
cleanUp
in classAbstractTableBasedSelectionPanel<T>
-
-