net.sf.dc.console
Class TableSearchPanel

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bynet.sf.dc.console.DataCrowPanel
                      extended bynet.sf.dc.console.TablePanel
                          extended bynet.sf.dc.console.TableSearchPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
SearchAudioCDPanel, SearchAudioTrackPanel, 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.3
Version:
0.50
Author:
Robert-Jan van der Waals
See Also:
Serialized Form

Nested Class Summary
 class TableSearchPanel.SearchButtonAction
           
 class TableSearchPanel.SearchOptionsPanel
          Search Option panel.
 
Nested classes inherited from class net.sf.dc.console.TablePanel
TablePanel.AddRowAction, TablePanel.CancelAction, TablePanel.ClearButtonAction, TablePanel.CreatePdfReport, TablePanel.FieldSelectorAction, TablePanel.OpenRecordAction, TablePanel.PopupMenu, TablePanel.RemoveRowAction, TablePanel.TableActionsPanel, TablePanel.UpdateAllAction
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JButton buttonSearch
           
protected  TableSearchPanel childPanel
           
protected  javax.swing.JPanel panelSearchActs
           
protected  TableSearchConditionsPanel panelSearchConds
           
protected  TableSearchPanel.SearchOptionsPanel panelSearchOpts
           
protected  javax.swing.JScrollPane scrollSearchConds
           
 
Fields inherited from class net.sf.dc.console.TablePanel
panelTableActions, popupMenu, table, tableMouseListener, task
 
Fields inherited from class net.sf.dc.console.DataCrowPanel
labelStatus
 
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
 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 a record / records from the database.
 void fillTable(java.util.LinkedList data)
          Fills the table with a list of data crow objects.
 DCObject[] getChangedObjects()
          Retrieves all changed objects Note: use carefully.
abstract  javax.swing.JComponent[] getExtraComponents()
           
 DCObject getObjectForRow(int row)
          Returns a data crow object for the selected row.
 java.lang.String getParentID()
          Returns the parent ID for which records are shown (in case this is a child panel)
protected abstract  boolean isNewlyAddedRow(int row)
          Indicates whether the record is newly added or is an existing record
 void loadChildValues()
          Tells the child panel to load children for the current row
 void openRecord()
          Opens the recordform
 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.
 void removeRows(int[] rows)
          Removes the specified rows from the UI table
 void saveChangedValues(boolean threaded)
          Saves all the changed values.
 void saveChildRecords()
          Retrieves children for the selected parent object.
 void saveSelectedValues()
          Saves the selected values
 void searchValues()
          Searches for the Software objects by using the conditions and options as specified.
 void setBackground(java.awt.Color color)
          Applies the background color to the sub panels
 void setParentID(java.lang.String sID)
          When this search panel is acting as a child for another panel the ID of the parent record for which records are shown in the child panel is stored.
 
Methods inherited from class net.sf.dc.console.TablePanel
allowActions, cancelEdit, cancelTask, denyActions, getChildModule, getModule, getObjects, hasChild, isTaskRunning, openRecord, setRequiredFields, startAmazonUpdate, startIMDBUpdate, updateRow, updateRowAt
 
Methods inherited from class net.sf.dc.console.DataCrowPanel
getIcon, getTitle, setStatus
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

panelSearchOpts

protected TableSearchPanel.SearchOptionsPanel panelSearchOpts

panelSearchConds

protected TableSearchConditionsPanel panelSearchConds

panelSearchActs

protected javax.swing.JPanel panelSearchActs

scrollSearchConds

protected javax.swing.JScrollPane scrollSearchConds

childPanel

protected TableSearchPanel childPanel

buttonSearch

protected javax.swing.JButton buttonSearch
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 record for which records are shown in the child panel is stored.

Parameters:
sID - parent ID

getParentID

public java.lang.String getParentID()
Returns the parent ID for which records 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

fillTable

public void fillTable(java.util.LinkedList data)
Fills the table with a list of data crow objects. If there is child panel, the records for the selected parent are retrieved as well.

Overrides:
fillTable in class TablePanel
Parameters:
data - list of data crow objects

removeFromCache

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

Parameters:
sID - Object ID

openRecord

public void openRecord()
Opens the recordform

Specified by:
openRecord 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

deleteValues

public void deleteValues()
Permanently removes a record / records 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)
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

getChangedObjects

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


searchValues

public void searchValues()
Searches for the Software objects by using the conditions and options as specified.


removeRows

public void removeRows(int[] rows)
Removes the specified rows from the UI table

Overrides:
removeRows in class TablePanel

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


saveChildRecords

public void saveChildRecords()
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)
Description copied from class: DataCrowPanel
Applies the background color to the sub panels

Overrides:
setBackground in class DataCrowPanel
Parameters:
color - background color

isNewlyAddedRow

protected abstract boolean isNewlyAddedRow(int row)
Indicates whether the record is newly added or is an existing record