Package adams.gui.selection
Class AbstractSelectDatabaseFieldPanel<T extends AbstractField>
- 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>
-
- adams.gui.selection.AbstractSelectDatabaseFieldPanel<T>
-
- All Implemented Interfaces:
CleanUpHandler
,DatabaseConnectionHandler
,DatabaseConnectionProvider
,DatabaseConnectionUser
,DatabaseConnectionChangeListener
,FieldCacheUpdateListener
,ImageObserver
,MenuContainer
,Serializable
,Accessible
public abstract class AbstractSelectDatabaseFieldPanel<T extends AbstractField> extends AbstractDatabaseSelectionPanel<T> implements FieldCacheUpdateListener
A panel for selecting a field (obtained from a database).- 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 static AbstractFieldCacheManager
m_CacheManager
The caches to manage.protected BaseComboBox
m_ComboBoxDataType
the data types to display.protected FieldType
m_FieldType
the type of fields to display.protected JLabel
m_LabelDataType
the label for the data type combobox.protected JLabel
m_LabelManualFields
the label for the manual list.protected BaseTextField
m_TextManualFields
the textfield for manually entering a list of fields (blank separated).-
Fields inherited from class adams.gui.selection.AbstractDatabaseSelectionPanel
m_ButtonRefresh, m_DatabaseConnection, m_DataDisplayed
-
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 AbstractSelectDatabaseFieldPanel()
Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addCacheListener(FieldType fieldtype)
Adds a cache listener.void
cacheUpdated(FieldCacheUpdateEvent event)
Gets called when the cache gets refreshed.void
cleanUp()
Cleans up data structures, frees up memory.protected void
databaseDisconnected()
Gets called when the database connection gets disconnected.protected void
doRefresh()
Performs the actual refresh.protected void
finishInit()
finishes the initialization.protected abstract T[]
fixClass(T[] items)
Fixes the class of the fields (regular, prefix or suffix).protected T[]
getCurrentItems()
Returns the current fields.DataType
getDataType()
Returns the currently selected data type, if any.protected AbstractFieldCacheManager
getFieldCacheManager()
Returns the cache manager.protected abstract FieldProvider
getFieldProvider()
Returns the field provider to use.FieldType
getFieldType()
Returns the field type.protected abstract Class
getItemClass()
Returns the class of the items displayed, same as "T".T[]
getItems()
Returns the current fields.protected void
initGUI()
Initializes the GUI elements.protected void
initialize()
Initializes the members.protected boolean
isValidItem(T item)
Checks whether the item is valid.protected abstract AbstractFieldCacheManager
newFieldCacheManager()
Creates a new instance of the cache manager.protected abstract T
newInstance(String name, DataType type)
Creates a new field instance.protected AbstractTableBasedSelectionPanel.AbstractSelectionTableModel<T>
newTableModel()
Returns an empty table model.protected void
processMissing(Vector<T> missing)
Hook method for processing items that were not found when trying to select them initially.void
refreshIfNecessary()
Simulates a click on the refresh button, if necessary (i.e., the cache is null).protected void
refreshModel()
Refreshes the data model.protected void
removeCacheListener(FieldType fieldtype)
Removes a cache listener.void
setDataType(DataType value)
Sets the data type to display.void
setFieldType(FieldType value)
Sets the field type.void
setItems(T[] value)
Sets the initially selected set names.void
setMultipleSelection(boolean value)
Sets whether multiple or single selection is used.void
sort()
Sorts the table.protected void
updateTableModel()
Updates the table model.-
Methods inherited from class adams.gui.selection.AbstractDatabaseSelectionPanel
addRefreshActionListener, beforeShow, databaseConnected, databaseConnectionStateChanged, getDatabaseConnection, getDefaultDatabaseConnection, postRefresh, preRefresh, refresh, refresh, removeRefreshActionListener, setDatabaseConnection, setEnabled, setVisible
-
Methods inherited from class adams.gui.selection.AbstractTableBasedSelectionPanel
addDoubleClickListener, addListSelectionListener, addToMissing, getItem, getItemCount, getPopupMenuSupplier, getSelectedItemCount, getSelectedRowCount, grabFocus, isCountsVisible, isMultipleSelection, newSearchPanel, notifyDoubleClickListeners, processMissing, removeDoubleClickListener, removeListSelectionListener, scrollIntoView, search, select, setCountsVisible, setDefaultPopupMenuSupplier, setItem, setPopupMenuSupplier, updateCounts
-
Methods inherited from class adams.gui.selection.AbstractSelectionPanel
waitForEnabled, waitForEnabled
-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, closeParent, 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_CacheManager
protected static AbstractFieldCacheManager m_CacheManager
The caches to manage.
-
m_LabelManualFields
protected JLabel m_LabelManualFields
the label for the manual list.
-
m_TextManualFields
protected BaseTextField m_TextManualFields
the textfield for manually entering a list of fields (blank separated).
-
m_LabelDataType
protected JLabel m_LabelDataType
the label for the data type combobox.
-
m_ComboBoxDataType
protected BaseComboBox m_ComboBoxDataType
the data types to display.
-
m_FieldType
protected FieldType m_FieldType
the type of fields to display.
-
-
Method Detail
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
initGUI
protected void initGUI()
Initializes the GUI elements.- Overrides:
initGUI
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
finishInit
protected void finishInit()
finishes the initialization.- Overrides:
finishInit
in classBasePanel
-
newFieldCacheManager
protected abstract AbstractFieldCacheManager newFieldCacheManager()
Creates a new instance of the cache manager.- Returns:
- the new manager
-
getFieldCacheManager
protected AbstractFieldCacheManager getFieldCacheManager()
Returns the cache manager.- Returns:
- the cache manager
-
getFieldProvider
protected abstract FieldProvider getFieldProvider()
Returns the field provider to use.- Returns:
- the field provider
-
newTableModel
protected AbstractTableBasedSelectionPanel.AbstractSelectionTableModel<T> newTableModel()
Returns an empty table model.- Specified by:
newTableModel
in classAbstractTableBasedSelectionPanel<T extends AbstractField>
- Returns:
- the model
-
getItemClass
protected abstract Class getItemClass()
Returns the class of the items displayed, same as "T".- Specified by:
getItemClass
in classAbstractTableBasedSelectionPanel<T extends AbstractField>
- Returns:
- the class of the items
-
newInstance
protected abstract T newInstance(String name, DataType type)
Creates a new field instance.- Parameters:
name
- the name of the fieldtype
- the type of the field- Returns:
- the generated field
-
setFieldType
public void setFieldType(FieldType value)
Sets the field type.- Parameters:
value
- the new field type
-
refreshModel
protected void refreshModel()
Refreshes the data model.
-
getFieldType
public FieldType getFieldType()
Returns the field type.- Returns:
- the current field type
-
processMissing
protected void processMissing(Vector<T> missing)
Hook method for processing items that were not found when trying to select them initially.
The missing items are displayed in the "manual" field.- Parameters:
missing
- the missing items
-
isValidItem
protected boolean isValidItem(T item)
Checks whether the item is valid.
Checks for null and whether field has a name.- Overrides:
isValidItem
in classAbstractTableBasedSelectionPanel<T extends AbstractField>
- Parameters:
item
- the item to check- Returns:
- true if valid
-
setDataType
public void setDataType(DataType value)
Sets the data type to display. Ignored if PrefixFields displayed.- Parameters:
value
- the type to display, use null to display all
-
getDataType
public DataType getDataType()
Returns the currently selected data type, if any.- Returns:
- the data type, null if "All" was selected (or PrefixFields displayed)
-
getCurrentItems
protected T[] getCurrentItems()
Returns the current fields. Manually entered ones have precedence over the selected ones.- Overrides:
getCurrentItems
in classAbstractTableBasedSelectionPanel<T extends AbstractField>
- Returns:
- the currently entered/selected fields
-
fixClass
protected abstract T[] fixClass(T[] items)
Fixes the class of the fields (regular, prefix or suffix).- Parameters:
items
- the items to fix- Returns:
- the fixed items
-
setItems
public void setItems(T[] value)
Sets the initially selected set names.- Overrides:
setItems
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
- Parameters:
value
- the set names to select
-
getItems
public T[] getItems()
Returns the current fields.- Overrides:
getItems
in classAbstractTableBasedSelectionPanel<T extends AbstractField>
- Returns:
- the fields
-
setMultipleSelection
public void setMultipleSelection(boolean value)
Sets whether multiple or single selection is used.- Overrides:
setMultipleSelection
in classAbstractTableBasedSelectionPanel<T extends AbstractField>
- Parameters:
value
- if true multiple IDs can be selected
-
refreshIfNecessary
public void refreshIfNecessary()
Simulates a click on the refresh button, if necessary (i.e., the cache is null).- Specified by:
refreshIfNecessary
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
- See Also:
AbstractDatabaseSelectionPanel.refresh()
-
doRefresh
protected void doRefresh()
Performs the actual refresh.- Specified by:
doRefresh
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
sort
public void sort()
Sorts the table.
-
databaseDisconnected
protected void databaseDisconnected()
Gets called when the database connection gets disconnected.- Specified by:
databaseDisconnected
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
updateTableModel
protected void updateTableModel()
Updates the table model.
-
cacheUpdated
public void cacheUpdated(FieldCacheUpdateEvent event)
Gets called when the cache gets refreshed.- Specified by:
cacheUpdated
in interfaceFieldCacheUpdateListener
- Parameters:
event
- the event
-
addCacheListener
protected void addCacheListener(FieldType fieldtype)
Adds a cache listener.- Parameters:
l
- the listener to add
-
removeCacheListener
protected void removeCacheListener(FieldType fieldtype)
Removes a cache listener.- Parameters:
fieldtype
- the fieldtype to unregister the listener forl
- the listener to remove
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUp
in interfaceCleanUpHandler
- Overrides:
cleanUp
in classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
-