com.l2fprod.common.propertysheet
Class PropertySheetPanel

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 com.l2fprod.common.propertysheet.PropertySheetPanel
All Implemented Interfaces:
PropertySheet, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class PropertySheetPanel
extends javax.swing.JPanel
implements PropertySheet, java.beans.PropertyChangeListener

An implementation of a PropertySheet which shows a table to edit/view values, a description pane which updates when the selection changes and buttons to toggle between a flat view and a by-category view of the properties. A button in the toolbar allows to sort the properties and categories by name.

Default sorting is by name (case-insensitive). Custom sorting can be implemented through PropertySheetTableModel.setCategorySortingComparator(Comparator) and PropertySheetTableModel.setPropertySortingComparator(Comparator)

See Also:
Serialized Form

Nested Class Summary
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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 com.l2fprod.common.propertysheet.PropertySheet
VIEW_AS_CATEGORIES, VIEW_AS_FLAT_LIST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PropertySheetPanel()
           
PropertySheetPanel(PropertySheetTable table)
           
 
Method Summary
 void addProperty(int index, Property property)
           
 void addProperty(Property property)
           
 void addPropertySheetChangeListener(java.beans.PropertyChangeListener listener)
           
 PropertyEditorFactory getEditorFactory()
           
 PropertyEditorRegistry getEditorRegistry()
          Deprecated. use getEditorFactory()
 Property[] getProperties()
           
 int getPropertyCount()
           
 PropertyRendererFactory getRendererFactory()
           
 PropertyRendererRegistry getRendererRegistry()
          Deprecated. use getRendererFactory()
 PropertySheetTable getTable()
           
 java.util.Map getToggleStates()
           
 boolean isRestoreToggleStates()
           
 boolean isSorting()
           
 boolean isSortingCategories()
          Is sorting of categories enabled.
 boolean isSortingProperties()
          Is sorting of properties enabled.
 void propertyChange(java.beans.PropertyChangeEvent evt)
          React to property changes by repainting.
 java.util.Iterator propertyIterator()
           
 void readFromObject(java.lang.Object data)
          Initializes the PropertySheet from the given object.
 void removeProperty(Property property)
           
 void removePropertySheetChangeListener(java.beans.PropertyChangeListener listener)
           
 void setBeanInfo(java.beans.BeanInfo beanInfo)
           
 void setCategorySortingComparator(java.util.Comparator comp)
          Sets the Comparator to be used with categories.
 void setDescriptionVisible(boolean visible)
          Toggles the visibility of the description panel.
 void setEditorFactory(PropertyEditorFactory factory)
           
 void setEditorRegistry(PropertyEditorRegistry registry)
          Deprecated. use setEditorFactory(PropertyEditorFactory)
 void setMode(int mode)
          Set the current mode, either PropertySheet.VIEW_AS_CATEGORIES or PropertySheet.VIEW_AS_FLAT_LIST.
 void setProperties(Property[] properties)
           
 void setProperties(java.beans.PropertyDescriptor[] descriptors)
           
 void setPropertySortingComparator(java.util.Comparator comp)
          Sets the Comparator to be used with Property-objects.
 void setRendererFactory(PropertyRendererFactory factory)
           
 void setRendererRegistry(PropertyRendererRegistry registry)
          Deprecated. use setRendererFactory(PropertyRendererFactory)
 void setRestoreToggleStates(boolean value)
          Set wether or not toggle states are restored when new properties are applied.
 void setSorting(boolean value)
          Sets sorting properties and categories enabled or disabled.
 void setSortingCategories(boolean value)
          Sets sorting of categories enabled or disabled.
 void setSortingProperties(boolean value)
          Sets sorting of properties enabled or disabled.
 void setTable(PropertySheetTable table)
          Sets the table used by this panel.
 void setToggleStates(java.util.Map toggleStates)
          Sets the toggle states for the category views.
 void setToolBarVisible(boolean visible)
          Toggles the visibility of the toolbar panel
 void writeToObject(java.lang.Object data)
          Writes the PropertySheet to the given object.
 
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, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PropertySheetPanel

public PropertySheetPanel()

PropertySheetPanel

public PropertySheetPanel(PropertySheetTable table)
Method Detail

setTable

public void setTable(PropertySheetTable table)
Sets the table used by this panel. Note: listeners previously added with addPropertySheetChangeListener(PropertyChangeListener) must be re-added after this call if the table model is not the same as the previous table.

Parameters:
table -

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
React to property changes by repainting.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

getTable

public PropertySheetTable getTable()
Returns:
the table used to edit/view Properties.

setDescriptionVisible

public void setDescriptionVisible(boolean visible)
Toggles the visibility of the description panel.

Parameters:
visible -

setToolBarVisible

public void setToolBarVisible(boolean visible)
Toggles the visibility of the toolbar panel

Parameters:
visible -

setMode

public void setMode(int mode)
Set the current mode, either PropertySheet.VIEW_AS_CATEGORIES or PropertySheet.VIEW_AS_FLAT_LIST.


setProperties

public void setProperties(Property[] properties)
Specified by:
setProperties in interface PropertySheet

getProperties

public Property[] getProperties()
Specified by:
getProperties in interface PropertySheet

addProperty

public void addProperty(Property property)
Specified by:
addProperty in interface PropertySheet

addProperty

public void addProperty(int index,
                        Property property)
Specified by:
addProperty in interface PropertySheet

removeProperty

public void removeProperty(Property property)
Specified by:
removeProperty in interface PropertySheet

getPropertyCount

public int getPropertyCount()
Specified by:
getPropertyCount in interface PropertySheet

propertyIterator

public java.util.Iterator propertyIterator()
Specified by:
propertyIterator in interface PropertySheet

setBeanInfo

public void setBeanInfo(java.beans.BeanInfo beanInfo)

setProperties

public void setProperties(java.beans.PropertyDescriptor[] descriptors)

readFromObject

public void readFromObject(java.lang.Object data)
Initializes the PropertySheet from the given object. If any, it cancels pending edit before proceeding with properties.

Parameters:
data -

writeToObject

public void writeToObject(java.lang.Object data)
Writes the PropertySheet to the given object. If any, it commits pending edit before proceeding with properties.

Parameters:
data -

addPropertySheetChangeListener

public void addPropertySheetChangeListener(java.beans.PropertyChangeListener listener)

removePropertySheetChangeListener

public void removePropertySheetChangeListener(java.beans.PropertyChangeListener listener)

setEditorFactory

public void setEditorFactory(PropertyEditorFactory factory)

getEditorFactory

public PropertyEditorFactory getEditorFactory()

setEditorRegistry

public void setEditorRegistry(PropertyEditorRegistry registry)
Deprecated. use setEditorFactory(PropertyEditorFactory)

Parameters:
registry -

getEditorRegistry

public PropertyEditorRegistry getEditorRegistry()
Deprecated. use getEditorFactory()


setRendererFactory

public void setRendererFactory(PropertyRendererFactory factory)

getRendererFactory

public PropertyRendererFactory getRendererFactory()

setRendererRegistry

public void setRendererRegistry(PropertyRendererRegistry registry)
Deprecated. use setRendererFactory(PropertyRendererFactory)

Parameters:
registry -

getRendererRegistry

public PropertyRendererRegistry getRendererRegistry()
Deprecated. use getRendererFactory()


setSortingCategories

public void setSortingCategories(boolean value)
Sets sorting of categories enabled or disabled.

Parameters:
value - true to enable sorting

isSortingCategories

public boolean isSortingCategories()
Is sorting of categories enabled.

Returns:
true if category sorting is enabled

setSortingProperties

public void setSortingProperties(boolean value)
Sets sorting of properties enabled or disabled.

Parameters:
value - true to enable sorting

isSortingProperties

public boolean isSortingProperties()
Is sorting of properties enabled.

Returns:
true if property sorting is enabled

setSorting

public void setSorting(boolean value)
Sets sorting properties and categories enabled or disabled.

Parameters:
value - true to enable sorting

isSorting

public boolean isSorting()
Returns:
true if properties or categories are sorted.

setCategorySortingComparator

public void setCategorySortingComparator(java.util.Comparator comp)
Sets the Comparator to be used with categories. Categories are treated as String-objects.

Parameters:
comp - java.util.Comparator used to compare categories

setPropertySortingComparator

public void setPropertySortingComparator(java.util.Comparator comp)
Sets the Comparator to be used with Property-objects.

Parameters:
comp - java.util.Comparator used to compare Property-objects

setRestoreToggleStates

public void setRestoreToggleStates(boolean value)
Set wether or not toggle states are restored when new properties are applied.

Parameters:
value - true to enable

isRestoreToggleStates

public boolean isRestoreToggleStates()
Returns:
true is toggle state restore is enabled

getToggleStates

public java.util.Map getToggleStates()
Returns:
the category view toggle states.

setToggleStates

public void setToggleStates(java.util.Map toggleStates)
Sets the toggle states for the category views. Note this MUST be called BEFORE setting any properties.

Parameters:
toggleStates - the toggle states as returned by getToggleStates