ix.iface.ui
Class AbstractEditorPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--ix.iface.ui.AbstractEditorPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, IXEditorPanel, java.awt.MenuContainer, java.io.Serializable
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

Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
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
_bounds, accessibleContext, listenerList, paintingChild, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, layoutMgr, listeningBoundsChildren, listeningChildren, ncomponents
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
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.awt.event.MouseListener ml, boolean makeBorder, java.lang.String label, javax.swing.JComponent component)
          Creates a panel with a title and a component (left).
AbstractEditorPanel(java.awt.event.MouseListener 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.awt.event.MouseListener 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.awt.event.MouseListener 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.awt.event.MouseListener ml, java.lang.String label, java.lang.String[] buttons)
          Creates a panel with a label (top left) and buttons (right) only.
 
Method Summary
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 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.awt.event.MouseListener ml, javax.swing.JComponent component)
          Puts the component into the panel (left) and sets the title.
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, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, alwaysOnTop, checkIfChildObscuredBySibling, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
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.awt.event.MouseListener 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 mouse listener that is interested in component mouseEvents
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.awt.event.MouseListener 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 mouse listener that is interested in component mouseEvents
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.awt.event.MouseListener ml,
                           java.lang.String label,
                           java.lang.String[] buttons)
Creates a panel with a label (top left) and buttons (right) only.
Parameters:
ml - the mouse listener that is interested in button mouseEvents
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.awt.event.MouseListener 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(MouseListener, label, JComponent) and makes the buttons itself.
Parameters:
ml - the mouse listener that is interested in component mouseEvents
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.awt.event.MouseListener 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 mouse listener that is interested in component mouseEvents
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.awt.event.MouseListener 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 mouse listener that is interested in component mouseEvents
label - a string that is used as the label (title of the panel).
component - the component at the left of the panel

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

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
Following copied from interface: ix.iface.ui.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
Following copied from interface: ix.iface.ui.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
Following copied from interface: ix.iface.ui.IXEditorPanel
Returns:
true if the renderer was set, false if not.