Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## ix.iface.ui
Class IFormPanel

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      ix.iface.ui.IFormPanel

All Implemented Interfaces:
  FormModelListener, java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

Direct Known Subclasses:
  ActionFormPanel, AROEditorPanel.AROFormPanel, GlobalFormPanel

    public class IFormPanel

extends javax.swing.JPanel
implements java.awt.event.MouseListener, FormModelListener

A form-style panel for viewing/editing an object Each object field has a sub-panel associated with it that has a label, a panel item, and may have buttons (IXEditorPanel).

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
`protected java.util.HashMap` | `displayBits`
`protected java.util.HashMap` | `fieldRenderers`
`protected java.util.HashSet` | `listeners`
`protected IFormModel` | `model`
`protected java.util.HashMap` | `nameBits`
`protected java.awt.Container` | `parent`
`protected java.util.HashSet` | `simpleFields`

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
`IFormPanel()` Creates a panel with a GridBagLayout and sets renderers (if any).
`IFormPanel(IFormModel m)` Creates a panel with the given model and sets renderers (if any).
`IFormPanel(IFormModel m, FormDataListener l)` Creates a panel with the given model and sets renderers (if any).

Method Summary
`void` | `addFormMouseListener(java.awt.event.MouseListener ml)`
`void` | `clear()` Clears the data in the panel.
`protected static void` | `clearBits(java.util.HashMap bits)`
`void` | `clearField(java.lang.String field)` Clears the panel bit of the given field.
`void` | `clearFields()` Clears the panel bits of all fields.
`protected java.lang.Object` | `deRenderValue(java.lang.String field, java.lang.Object data)` Default de-rendering of the given value for the given field - transforms arrays to collections.
`void` | `displayFieldData(java.lang.String field)` XXXX Loads the data of the given field into the panel.
`void` | `displayModelData()` Loads the data of the current model into the panel.
`void` | `ensurePanelBits(IFormModel m)` Ensures that the panel bits for the given model are made.
`void` | `formModelChanged(java.lang.String change, ObjectChangeEvent oce)` The model changed, so update the display.
`IXEditorPanel` | `getFieldBit(java.lang.String field)`
`java.lang.Object` | `getFieldData(java.lang.String field)` Gets the field's value from its display component.
`IFormModel` | `getModel()` Gets the panel's model.
`boolean` | `isListField(java.lang.String field)`
`boolean` | `isSimpleField(java.lang.String field)`
`protected IXEditorPanel` | `makeDisplayBit(java.lang.String field)` Makes a display panel with the name as its label and a suitable item.
`void` | `mouseClicked(java.awt.event.MouseEvent me)`
`void` | `mouseEntered(java.awt.event.MouseEvent me)`
`void` | `mouseExited(java.awt.event.MouseEvent me)`
`void` | `mousePressed(java.awt.event.MouseEvent me)`
`void` | `mouseReleased(java.awt.event.MouseEvent me)`
`protected java.lang.Object` | `renderValue(java.lang.String field, java.lang.Object value)` Default rendering of the given value for the given field - transforms collections to arrays.
`void` | `saveFieldData(java.lang.String field)` Saves the field's value from its display component into the model's object.
`void` | `saveToObject()` Saves the data from the display panels into the model's object.
`void` | `saveToObject(EditableObject targetObject)` Saves the display information from the display panels into the given object.
`void` | `setFieldData(java.lang.String field, java.lang.Object value)` Sets the given data of the given field in the panel.
`void` | `setModel(IFormModel m)` Sets the panel's model and loads the data into the panel.
`void` | `setModel(IFormModel m, FormDataListener l)` Sets the panel's model and loads the data into the panel.
`void` | `setRenderer(java.lang.String field, IXRenderer r)` Sets the given renderer for the given field.
`protected void` | `setRenderers()` Sets the renderers to be added to the panel items (lists) of fiels.
`void` | `setSimpleField(java.lang.String field)`
`void` | `unsetSimpleField(java.lang.String field)`
`void` | `updateNames(java.util.List fields, java.util.HashMap bits)` Change the labels in the given panels using the given fields.

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, 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

### model

    protected IFormModel model

### nameBits

    protected java.util.HashMap nameBits

### displayBits

    protected java.util.HashMap displayBits

### fieldRenderers

    protected java.util.HashMap fieldRenderers

### simpleFields

    protected java.util.HashSet simpleFields

### listeners

    protected java.util.HashSet listeners

### parent

    protected java.awt.Container parent

Constructor Detail

### IFormPanel

    public IFormPanel()

  Creates a panel with a GridBagLayout and sets renderers (if any).

### IFormPanel

    public IFormPanel(IFormModel m)

  Creates a panel with the given model and sets renderers (if any).

### IFormPanel

    public IFormPanel(IFormModel m,
                      FormDataListener l)

  Creates a panel with the given model and sets renderers (if any).

Method Detail

### setModel

    public void setModel(IFormModel m,
                         FormDataListener l)

  Sets the panel's model and loads the data into the panel. Ensures that the panel items are available for the object information, and sets the renderers. Ensures this is notified of model changes.

### setModel

    public void setModel(IFormModel m)

  Sets the panel's model and loads the data into the panel. Ensures that the panel items are available for the object information, and sets the renderers. Ensures this is notified of model changes.

### getModel

    public IFormModel getModel()

  Gets the panel's model.

### setRenderer

    public void setRenderer(java.lang.String field,
                            IXRenderer r)

  Sets the given renderer for the given field. If the field has an IXEditorPanel bit, sets the renderer for the panel.

### isListField

    public boolean isListField(java.lang.String field)

### setSimpleField

    public void setSimpleField(java.lang.String field)

### unsetSimpleField

    public void unsetSimpleField(java.lang.String field)

### isSimpleField

    public boolean isSimpleField(java.lang.String field)

### ensurePanelBits

    public void ensurePanelBits(IFormModel m)

  Ensures that the panel bits for the given model are made. If the model has lazy fields, these are filled now, so ignore model updates during this method.

### clearBits

    protected static void clearBits(java.util.HashMap bits)

### makeDisplayBit

    protected IXEditorPanel makeDisplayBit(java.lang.String field)

  Makes a display panel with the name as its label and a suitable item. The item to display the fields will be:
  - Number/Symbol/Boolean - a JTextField
  - Array/Collection/etc - a JList in a scroll panel with buttons
  - Other - a JTextArea in a scroll panel

### displayModelData

    public void displayModelData()

  Loads the data of the current model into the panel. Looks up the fields in the model.

### displayFieldData

    public void displayFieldData(java.lang.String field)

  XXXX Loads the data of the given field into the panel. Gets the value from the model, renders it, and sets the panel bit.

### setFieldData

    public void setFieldData(java.lang.String field,
                             java.lang.Object value)

  Sets the given data of the given field in the panel. Renders the data first.

### clearFields

    public void clearFields()

  Clears the panel bits of all fields.

### clearField

    public void clearField(java.lang.String field)

  Clears the panel bit of the given field.

### renderValue

    protected java.lang.Object renderValue(java.lang.String field,
                                           java.lang.Object value)

  Default rendering of the given value for the given field - transforms collections to arrays. Used to provide data to the panel.

### deRenderValue

    protected java.lang.Object deRenderValue(java.lang.String field,
                                             java.lang.Object data)

  Default de-rendering of the given value for the given field - transforms arrays to collections. Used to store data from the panel.

### setRenderers

    protected void setRenderers()

  Sets the renderers to be added to the panel items (lists) of fiels. To be overridden by sub-classes.

### getFieldBit

    public IXEditorPanel getFieldBit(java.lang.String field)

### getFieldData

    public java.lang.Object getFieldData(java.lang.String field)

  Gets the field's value from its display component.

### saveFieldData

    public void saveFieldData(java.lang.String field)

  Saves the field's value from its display component into the model's object.

### saveToObject

    public void saveToObject()

  Saves the data from the display panels into the model's object.

### saveToObject

    public void saveToObject(EditableObject targetObject)

  Saves the display information from the display panels into the given object.

### clear

    public void clear()

  Clears the data in the panel.

### formModelChanged

    public void formModelChanged(java.lang.String change,
                                 ObjectChangeEvent oce)

  The model changed, so update the display.
  - If the object changed, just update the display.
  - If the field names changed, update the labels of bits.
  - Otherwise, make a whole new panel.

  Specified by:
    `formModelChanged` in interface `FormModelListener`

### updateNames

    public void updateNames(java.util.List fields,
                            java.util.HashMap bits)

  Change the labels in the given panels using the given fields.

### mouseClicked

    public void mouseClicked(java.awt.event.MouseEvent me)

  Specified by:
    `mouseClicked` in interface `java.awt.event.MouseListener`

### mouseEntered

    public void mouseEntered(java.awt.event.MouseEvent me)

  Specified by:
    `mouseEntered` in interface `java.awt.event.MouseListener`

### mouseExited

    public void mouseExited(java.awt.event.MouseEvent me)

  Specified by:
    `mouseExited` in interface `java.awt.event.MouseListener`

### mousePressed

    public void mousePressed(java.awt.event.MouseEvent me)

  Specified by:
    `mousePressed` in interface `java.awt.event.MouseListener`

### mouseReleased

    public void mouseReleased(java.awt.event.MouseEvent me)

  Specified by:
    `mouseReleased` in interface `java.awt.event.MouseListener`

### addFormMouseListener

    public void addFormMouseListener(java.awt.event.MouseListener ml)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD