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 AbstractFieldCacheManagerm_CacheManagerThe caches to manage.protected BaseComboBoxm_ComboBoxDataTypethe data types to display.protected FieldTypem_FieldTypethe type of fields to display.protected JLabelm_LabelDataTypethe label for the data type combobox.protected JLabelm_LabelManualFieldsthe label for the manual list.protected BaseTextFieldm_TextManualFieldsthe 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 voidaddCacheListener(FieldType fieldtype)Adds a cache listener.voidcacheUpdated(FieldCacheUpdateEvent event)Gets called when the cache gets refreshed.voidcleanUp()Cleans up data structures, frees up memory.protected voiddatabaseDisconnected()Gets called when the database connection gets disconnected.protected voiddoRefresh()Performs the actual refresh.protected voidfinishInit()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.DataTypegetDataType()Returns the currently selected data type, if any.protected AbstractFieldCacheManagergetFieldCacheManager()Returns the cache manager.protected abstract FieldProvidergetFieldProvider()Returns the field provider to use.FieldTypegetFieldType()Returns the field type.protected abstract ClassgetItemClass()Returns the class of the items displayed, same as "T".T[]getItems()Returns the current fields.protected voidinitGUI()Initializes the GUI elements.protected voidinitialize()Initializes the members.protected booleanisValidItem(T item)Checks whether the item is valid.protected abstract AbstractFieldCacheManagernewFieldCacheManager()Creates a new instance of the cache manager.protected abstract TnewInstance(String name, DataType type)Creates a new field instance.protected AbstractTableBasedSelectionPanel.AbstractSelectionTableModel<T>newTableModel()Returns an empty table model.protected voidprocessMissing(Vector<T> missing)Hook method for processing items that were not found when trying to select them initially.voidrefreshIfNecessary()Simulates a click on the refresh button, if necessary (i.e., the cache is null).protected voidrefreshModel()Refreshes the data model.protected voidremoveCacheListener(FieldType fieldtype)Removes a cache listener.voidsetDataType(DataType value)Sets the data type to display.voidsetFieldType(FieldType value)Sets the field type.voidsetItems(T[] value)Sets the initially selected set names.voidsetMultipleSelection(boolean value)Sets whether multiple or single selection is used.voidsort()Sorts the table.protected voidupdateTableModel()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:
initializein classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
initGUI
protected void initGUI()
Initializes the GUI elements.- Overrides:
initGUIin classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
finishInit
protected void finishInit()
finishes the initialization.- Overrides:
finishInitin 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:
newTableModelin classAbstractTableBasedSelectionPanel<T extends AbstractField>- Returns:
- the model
-
getItemClass
protected abstract Class getItemClass()
Returns the class of the items displayed, same as "T".- Specified by:
getItemClassin 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:
isValidItemin 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:
getCurrentItemsin 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:
setItemsin classAbstractDatabaseSelectionPanel<T extends AbstractField>- Parameters:
value- the set names to select
-
getItems
public T[] getItems()
Returns the current fields.- Overrides:
getItemsin classAbstractTableBasedSelectionPanel<T extends AbstractField>- Returns:
- the fields
-
setMultipleSelection
public void setMultipleSelection(boolean value)
Sets whether multiple or single selection is used.- Overrides:
setMultipleSelectionin 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:
refreshIfNecessaryin classAbstractDatabaseSelectionPanel<T extends AbstractField>- See Also:
AbstractDatabaseSelectionPanel.refresh()
-
doRefresh
protected void doRefresh()
Performs the actual refresh.- Specified by:
doRefreshin 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:
databaseDisconnectedin 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:
cacheUpdatedin 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:
cleanUpin interfaceCleanUpHandler- Overrides:
cleanUpin classAbstractDatabaseSelectionPanel<T extends AbstractField>
-
-