ix.iface.ui
Class AbstractEditorPanel

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 ix.iface.ui.AbstractEditorPanel
All Implemented Interfaces:
IXEditorPanel, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
ListEditorPanel, MiniConstraintPanel, ThingEditorPanel

public abstract class AbstractEditorPanel
extends javax.swing.JPanel
implements IXEditorPanel

A simple panel with a label (title), a component, and optional buttons. The given label will be at the top, the given component at the left and buttons with given labels on the right. Adds the given listener to the buttons and the list.

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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 javax.swing.border.TitledBorder border
          The panel's border (if it has one)
 IXButPanel butPanel
          A sub-panel containing buttons
 boolean isBordered
           
 javax.swing.JComponent itemComponent
          The panel's item that may contain data.
 javax.swing.JLabel nameLabel
          The panel's label (title)
 
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
AbstractEditorPanel()
          Creates a panel with a label (top left) or a border (depending on the default) Other components (a JComponent and a button panel) are usually added via one of the other constructors; the label text is set in other constructors.
AbstractEditorPanel(boolean makeBorder)
          Creates a panel as above but with a given border setting.
AbstractEditorPanel(java.util.EventListener ml, boolean makeBorder, java.lang.String label, javax.swing.JComponent component)
          Creates a panel with a title and a component (left).
AbstractEditorPanel(java.util.EventListener ml, boolean makeBorder, java.lang.String label, javax.swing.JComponent component, java.lang.String[] buttons)
          Creates a panel with a title, component (left) and buttons (right).
AbstractEditorPanel(java.util.EventListener ml, java.lang.String label, javax.swing.JComponent component)
          Creates a panel with a title and a component (left) as above with default border/label.
AbstractEditorPanel(java.util.EventListener ml, java.lang.String label, javax.swing.JComponent component, java.lang.String[] buttons)
          Creates a panel as above but with the default border/label setting.
AbstractEditorPanel(java.util.EventListener ml, java.lang.String label, java.lang.String[] buttons)
          Creates a panel with a label (top left) and buttons (right) only.
 
Method Summary
 void addComponentListener(java.util.EventListener ml)
           
abstract  java.lang.Object getData()
          Gets the current data of the panel's item component.
 javax.swing.JComponent getItemComponent()
          Gets the component of the panel.
 java.lang.String getName()
          Gets the panel's name (the label)
 boolean hasData()
           
 boolean isListItem()
          Checks whether the item component can take lists (e.g.
static boolean isListItem(javax.swing.JComponent component)
           
static boolean isScrollItem(javax.swing.JComponent component)
           
protected  void makePanelComponent(java.util.EventListener ml, javax.swing.JComponent component)
          Puts the component into the panel (left) and sets the title.
 void minimise()
          Minimises the component and the rest of the editor
abstract  void removeData()
          Removes all data from the item component
abstract  void setData(java.lang.Object data)
          Sets the current data of the item component.
 void setEnabled(boolean isEditable)
          Makes the item (not) editable and enables (disables) the buttons
 void setLabel(java.lang.String label)
          Sets the panel's label
abstract  boolean setRenderer(javax.swing.ListCellRenderer r)
          Sets the renderer if the itemComponent is a JList or a JComboBox;
 
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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, 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, 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

isBordered

public boolean isBordered

butPanel

public IXButPanel butPanel
A sub-panel containing buttons


nameLabel

public javax.swing.JLabel nameLabel
The panel's label (title)


border

public javax.swing.border.TitledBorder border
The panel's border (if it has one)


itemComponent

public javax.swing.JComponent itemComponent
The panel's item that may contain data. There are methods for setting and getting data for JList and JTextComponent items

Constructor Detail

AbstractEditorPanel

public AbstractEditorPanel()
Creates a panel with a label (top left) or a border (depending on the default) Other components (a JComponent and a button panel) are usually added via one of the other constructors; the label text is set in other constructors.


AbstractEditorPanel

public AbstractEditorPanel(boolean makeBorder)
Creates a panel as above but with a given border setting. If there is a border, the title of the panel will appear in the border, otherwise it will appear in a label at the top left of the panel. Other components (a JComponent and a button panel) are usually added via one of the other constructors; the label text is set in other constructors.


AbstractEditorPanel

public AbstractEditorPanel(java.util.EventListener ml,
                           boolean makeBorder,
                           java.lang.String label,
                           javax.swing.JComponent component)
Creates a panel with a title and a component (left). If the border-flag is set, the title will go into the border, otherwise a label will be used (top left). If the component is a JList or a JTextArea, it is made scrollable Also used by AbstractEditorPanel constructors that have buttons.

Parameters:
ml - the listener that is interested in component events
makeBorder - a flag determining whether the title is set in a border (true) or a label (false).
label - a string that is used as the label (title of the panel).
component - the component at the left of the panel

AbstractEditorPanel

public AbstractEditorPanel(java.util.EventListener ml,
                           java.lang.String label,
                           javax.swing.JComponent component)
Creates a panel with a title and a component (left) as above with default border/label.

Parameters:
ml - the listener that is interested in component events
label - a string that is used as the label (title of the panel).
component - the component at the left of the panel

AbstractEditorPanel

public AbstractEditorPanel(java.util.EventListener ml,
                           java.lang.String label,
                           java.lang.String[] buttons)
Creates a panel with a label (top left) and buttons (right) only.

Parameters:
ml - the listener that is interested in button events
label - a string that is used as the label (title of the panel).
buttons - an array of strings that are button labels

AbstractEditorPanel

public AbstractEditorPanel(java.util.EventListener ml,
                           boolean makeBorder,
                           java.lang.String label,
                           javax.swing.JComponent component,
                           java.lang.String[] buttons)
Creates a panel with a title, component (left) and buttons (right). The title goes either into a label (top left) or into a border, depening on the parameter. Calls AbstractEditorPanel(EventListener, label, JComponent) and makes the buttons itself.

Parameters:
ml - the listener that is interested in component events
makeBorder - a flag determining whether the title is set in a border (true) or a label (false).
label - a string that is used as the label (title of the panel).
component - the component at the left of the panel
buttons - an array of strings that are button labels

AbstractEditorPanel

public AbstractEditorPanel(java.util.EventListener ml,
                           java.lang.String label,
                           javax.swing.JComponent component,
                           java.lang.String[] buttons)
Creates a panel as above but with the default border/label setting.

Parameters:
ml - the listener that is interested in component events
label - a string that is used as the label (title of the panel).
component - the component at the left of the panel
buttons - an array of strings that are button labels
Method Detail

makePanelComponent

protected void makePanelComponent(java.util.EventListener ml,
                                  javax.swing.JComponent component)
Puts the component into the panel (left) and sets the title. If the border-flag is set, the title will go into the border, otherwise a label will be used (top left). If the component is a JList, JTable or a JTextArea, it is made scrollable Also used by AbstractEditorPanel constructors that have buttons.

Parameters:
ml - the listener that is interested in component events
label - a string that is used as the label (title of the panel).
component - the component at the left of the panel

addComponentListener

public void addComponentListener(java.util.EventListener ml)

setLabel

public void setLabel(java.lang.String label)
Sets the panel's label

Specified by:
setLabel in interface IXEditorPanel

getItemComponent

public javax.swing.JComponent getItemComponent()
Gets the component of the panel.

Specified by:
getItemComponent in interface IXEditorPanel
Returns:
the JComponent that is at the left of the panel

isListItem

public boolean isListItem()
Description copied from interface: IXEditorPanel
Checks whether the item component can take lists (e.g. JList/JComboBox)

Specified by:
isListItem in interface IXEditorPanel

isListItem

public static boolean isListItem(javax.swing.JComponent component)

isScrollItem

public static boolean isScrollItem(javax.swing.JComponent component)

getName

public java.lang.String getName()
Gets the panel's name (the label)

Specified by:
getName in interface IXEditorPanel
Overrides:
getName in class java.awt.Component

setEnabled

public void setEnabled(boolean isEditable)
Makes the item (not) editable and enables (disables) the buttons

Specified by:
setEnabled in interface IXEditorPanel
Overrides:
setEnabled in class javax.swing.JComponent

minimise

public void minimise()
Minimises the component and the rest of the editor

Specified by:
minimise in interface IXEditorPanel

hasData

public boolean hasData()

getData

public abstract java.lang.Object getData()
Description copied from interface: IXEditorPanel
Gets the current data of the panel's item component.

Specified by:
getData in interface IXEditorPanel
Returns:
an array of objects that are the current data model of the list

setData

public abstract void setData(java.lang.Object data)
Description copied from interface: IXEditorPanel
Sets the current data of the item component.

Specified by:
setData in interface IXEditorPanel
Parameters:
data - an object that is to be put into the item component

removeData

public abstract void removeData()
Description copied from interface: IXEditorPanel
Removes all data from the item component

Specified by:
removeData in interface IXEditorPanel

setRenderer

public abstract boolean setRenderer(javax.swing.ListCellRenderer r)
Description copied from interface: IXEditorPanel
Sets the renderer if the itemComponent is a JList or a JComboBox;

Specified by:
setRenderer in interface IXEditorPanel
Returns:
true if the renderer was set, false if not.