net.sf.dc.console
Class TableSearchPanel

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 net.sf.dc.console.DCPanel
                      extended by net.sf.dc.console.TablePanel
                          extended by net.sf.dc.console.TableSearchPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
BookCategoryForm.CatagorySearchPanel, SearchAudioCDPanel, SearchAudioTrackPanel, SearchBookPanel, SearchMoviePanel, SearchMusicFilePanel, SearchSoftwarePanel, SoftwareCategoryForm.CatagorySearchPanel

public abstract class TableSearchPanel
extends TablePanel

Base for all search panels (for objects like Software, Mp3 and Movie). Has an implemenation for supporting a child panel (in case of an Object with children). The functionality is not fully implemented in this class as only (for now) the Audio Track and Audio CD panel have a parent-child relation.

Since:
1.4
Version:
1.9
Author:
Robert-Jan van der Waals
See Also:
Serialized Form

Nested Class Summary
 class TableSearchPanel.SearchButtonAction
           
 
Nested classes/interfaces inherited from class net.sf.dc.console.TablePanel
TablePanel.AddRowAction, TablePanel.CancelAction, TablePanel.ClearButtonAction, TablePanel.CreatePdfReport, TablePanel.FieldSelectorAction, TablePanel.OpenItemFormAction, TablePanel.PopupMenu, TablePanel.RemoveRowAction, TablePanel.TableActionsPanel, TablePanel.UpdateAllAction
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  TableSearchPanel childPanel
           
 
Fields inherited from class net.sf.dc.console.TablePanel
panelTableActions, popupMenu, table, tableMouseListener, task
 
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
TableSearchPanel(DCModule module, java.lang.String title, javax.swing.ImageIcon icon)
          Initializes the panel.
 
Method Summary
 void addObjects(java.util.Collection collection)
           
 boolean changesSaved()
          Indicates whether all changes to the UI table have been saved to the database
 void clearTable()
          Clears this table and the child table
 void createPdfReport()
          Creates a PDF report.
 void deleteValues()
          Permanently removes an item / items from the database.
 DCObject[] getChangedObjects()
          Retrieves all changed objects Note: use carefully.
abstract  javax.swing.JComponent[] getExtraComponents()
           
 DCObject getObjectForRow(int row, boolean allChildren)
          Returns a data crow object for the selected row.
 java.lang.String getParentID()
          Returns the parent ID for which items are shown (in case this is a child panel)
 void loadChildValues()
          Tells the child panel to load children for the current row
 void openItemForm()
          Opens the item form
 void removeFromCache(java.lang.String sID)
          Removes the object with the given ID from the cache
 void removeHiddenFields(int[] indices)
          Removes hidden fields from the search table.
abstract  void removeNewChild(java.lang.String sID)
           
 void removeRows(java.lang.String[] ids)
          Remove the rows from the table with the given indices
 void saveChangedValues(boolean threaded)
          Saves all the changed values.
 void saveChildItems()
          Retrieves children for the selected parent object.
 void saveSelectedValues()
          Saves the selected values
 void setBackground(java.awt.Color color)
           
 void setParentID(java.lang.String sID)
          When this search panel is acting as a child for another panel the ID of the parent item for which items are shown in the child panel is stored.
 
Methods inherited from class net.sf.dc.console.TablePanel
addObject, allowActions, cancelEdit, cancelTask, denyActions, fillTable, getChildModule, getModule, getObjects, hasChild, isTaskRunning, openItemForm, removeSelectedRows, setRequiredFields, showFieldSelector, startAmazonUpdate, startIMDBUpdate, updateRow, updateRowAt
 
Methods inherited from class net.sf.dc.console.DCPanel
getHelpIndex, getIcon, getStatusPanel, getTitle, initProgressBar, setHelpIndex, setStatus, updateProgressBar
 
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, 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, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, 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

childPanel

protected TableSearchPanel childPanel
Constructor Detail

TableSearchPanel

public TableSearchPanel(DCModule module,
                        java.lang.String title,
                        javax.swing.ImageIcon icon)
Initializes the panel. Should be called by the child by calling super(module). The popup menu and the action panel are automatically created.

Parameters:
module - the module for which this panel is created
title - the title of this panel
icon - the icon of this panel
Method Detail

getExtraComponents

public abstract javax.swing.JComponent[] getExtraComponents()

setParentID

public void setParentID(java.lang.String sID)
When this search panel is acting as a child for another panel the ID of the parent item for which items are shown in the child panel is stored.

Parameters:
sID - parent ID

getParentID

public java.lang.String getParentID()
Returns the parent ID for which items are shown (in case this is a child panel)


clearTable

public void clearTable()
Clears this table and the child table

Overrides:
clearTable in class TablePanel

removeFromCache

public void removeFromCache(java.lang.String sID)
Removes the object with the given ID from the cache

Parameters:
sID - Object ID

openItemForm

public void openItemForm()
Opens the item form

Specified by:
openItemForm in class TablePanel

createPdfReport

public void createPdfReport()
Creates a PDF report. All visible fields are reported on. A file browser is opened in which the user can indicate where the pdf file should be stored.

Specified by:
createPdfReport in class TablePanel

removeNewChild

public abstract void removeNewChild(java.lang.String sID)

deleteValues

public void deleteValues()
Permanently removes an item / items from the database. The user must always confirm the delete action first before it is executed !


saveSelectedValues

public void saveSelectedValues()
Saves the selected values


saveChangedValues

public void saveChangedValues(boolean threaded)
Saves all the changed values. The orginal values are stored in the 'cache' hashtable.

Parameters:
threaded - indicates if the save should be done threaded or in the ui thread

getObjectForRow

public DCObject getObjectForRow(int row,
                                boolean allChildren)
Returns a data crow object for the selected row. Child objects are added to the parent data crow object.

Parameters:
row - the row for which a data crow object should be created

removeRows

public void removeRows(java.lang.String[] ids)
Description copied from class: TablePanel
Remove the rows from the table with the given indices

Overrides:
removeRows in class TablePanel

getChangedObjects

public DCObject[] getChangedObjects()
Retrieves all changed objects Note: use carefully. In case of an update all this might mean that thousands of items are loaded into memory ! Right now this method is solely used for child panels


removeHiddenFields

public void removeHiddenFields(int[] indices)
Removes hidden fields from the search table.

Overrides:
removeHiddenFields in class TablePanel

changesSaved

public boolean changesSaved()
Indicates whether all changes to the UI table have been saved to the database


saveChildItems

public void saveChildItems()
Retrieves children for the selected parent object. The children are retrieved by the ID of the parent.


loadChildValues

public void loadChildValues()
Tells the child panel to load children for the current row


setBackground

public void setBackground(java.awt.Color color)
Overrides:
setBackground in class DCPanel

addObjects

public void addObjects(java.util.Collection collection)
Specified by:
addObjects in class TablePanel