ix.iview
Class AConstructFramePanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--ix.iview.AConstructFramePanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, ConstructFraming, java.util.EventListener, FramePanel, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
ActionEditorPanel, AROEditorPanel, GlobalFramePanel, GrammarEditorPanel, SimpleEditorPanel

public abstract class AConstructFramePanel
extends javax.swing.JPanel
implements ConstructFraming, java.awt.event.ActionListener

An editor/viewer panel for named domain constructs. The editor will not let you update a current construct yet, because we have not yet worked out how to manage the impact this would have on other modules that use the domain. The editor will let you add new constructs (if you have changed an old one, change the name to save it).

The construct name, pattern, and comments are currently simply strings. They can all be edited by typing into their fields. The pattern should not stay as a string - it should change into something a bit more constrained. This will be changed when the construct models have been sorted out.

Nodes and constraints can be added, deleted, and cleared, either using the buttons or using keys (enter or insert for add, delete for delete).

Nodes are simple LLists for the moment. Adding a node expects the user to type in a pattern (currently just a string) and it will generate a number for the node. Deleting nodes will also delete any constraints in which the deleted node participates.

The only constraints currently known are ordering constraints. Adding constraints will bring up an editor that lets the user select activities and time-points. For the moment, these "proper" constraints are translated into simple versions because other modules cannot handle anything more complex. A simple constraint "( )" stands for "( End Before Begin ). The constraint editor and the DomainEditor are ready to provide and manage "proper" constraints, but we will not provide them until other modules can deal with them.

Example code for using the DomainEditorPanel:


    ...
    editorPanel = new DomainEditorPanel(this);
    mainJPanel.add(editorPanel); 
    pack();
    editorPanel.setUIDomain(uiDomain);
    ...

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
protected  IFormPanel formPanel
           
protected  javax.swing.JPanel mainPanel
           
 DomainEditor parent
          The panels parent - a DomainEditor
protected  javax.swing.JScrollPane scrollPane
           
 
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, 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
AConstructFramePanel()
          Creates an editor panel with the given parent.
AConstructFramePanel(DomainEditor theParent)
           
 
Method Summary
abstract  void actionPerformed(java.awt.event.ActionEvent ae)
          Wakes up the ActionListener with a user action.
 boolean beforeClosing()
           
 boolean beforeOpening()
           
 boolean beforeSwitching()
          Notes the current panel's contents in the current construct before switching.
 void clear()
           
abstract  boolean frameActionPerformed(java.awt.event.ActionEvent event)
          Tries to process an action generated in the panel's frame.
 Domain getDomain()
          Gets the current Domain.
 ix.iview.domain.UIDomain getUIDomain()
          Gets the current UIDomain.
abstract  ix.iview.domain.UIObject makeNewConstruct()
          Makes a new construct of the panel's type.
abstract  void newConstruct()
          Makes a new construct of the panel's type and gets ready to edit it.
protected abstract  ix.iview.domain.UIObject noteConstruct()
          Note the contents of the panel into the current object.
protected  void noteDraftConstruct(ix.iview.domain.UIObject uio)
          Note the UIObject in the (right) draft domain
 void registerListKeys(javax.swing.JComponent comp, java.lang.String commandEnd)
           
 void setConstruct(IXObject object)
          Sets the given construct to be viewed/edited.
 void setUIConstruct(ix.iview.domain.UIObject object)
          Sets the given UI construct to be viewed/edited.
 void setUIDomain(ix.iview.domain.UIDomain uid)
          Sets the current UIDomain.
protected  void setupEditor()
          Sets the panel's layout and dimensions and the main panel's layout.
protected abstract  javax.swing.JPanel setupMainPanel()
           
protected  void setupOuterPanel()
           
 
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, setEnabled, 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, getName, 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
 
Methods inherited from interface ix.iview.ConstructFraming
checkConstruct, getAllConstructs, getNamedConstruct, saveConstruct
 

Field Detail

parent

public DomainEditor parent
The panels parent - a DomainEditor

scrollPane

protected javax.swing.JScrollPane scrollPane

mainPanel

protected javax.swing.JPanel mainPanel

formPanel

protected IFormPanel formPanel
Constructor Detail

AConstructFramePanel

public AConstructFramePanel()
Creates an editor panel with the given parent. Creates all panel components, the mouse listener, and the relation editor.
Parameters:
parent - the DomainEditor frame that the panel belons to. Used mainly to keep toggle buttons and menus in synch

AConstructFramePanel

public AConstructFramePanel(DomainEditor theParent)
Method Detail

setupEditor

protected void setupEditor()
Sets the panel's layout and dimensions and the main panel's layout.

setupOuterPanel

protected void setupOuterPanel()

setupMainPanel

protected abstract javax.swing.JPanel setupMainPanel()

registerListKeys

public void registerListKeys(javax.swing.JComponent comp,
                             java.lang.String commandEnd)

setConstruct

public void setConstruct(IXObject object)
Sets the given construct to be viewed/edited. Makes a UI object unless there is already one, displays its details in the relevant fields of the editor, and remembers the UI object as current.
Specified by:
setConstruct in interface ConstructFraming
Parameters:
object - the object to be viewed/edited

setUIConstruct

public void setUIConstruct(ix.iview.domain.UIObject object)
Sets the given UI construct to be viewed/edited. Displays the ojbect's details in the relevant fields of the editor, and remembers the object as current.
Specified by:
setUIConstruct in interface ConstructFraming
Parameters:
object - the UIObject to be viewed/edited

getDomain

public Domain getDomain()
Description copied from interface: ConstructFraming
Gets the current Domain.
Specified by:
getDomain in interface ConstructFraming

getUIDomain

public ix.iview.domain.UIDomain getUIDomain()
Description copied from interface: ConstructFraming
Gets the current UIDomain.
Specified by:
getUIDomain in interface ConstructFraming

setUIDomain

public void setUIDomain(ix.iview.domain.UIDomain uid)
Description copied from interface: ConstructFraming
Sets the current UIDomain.
Specified by:
setUIDomain in interface ConstructFraming

clear

public void clear()

beforeClosing

public boolean beforeClosing()

beforeOpening

public boolean beforeOpening()

beforeSwitching

public boolean beforeSwitching()
Notes the current panel's contents in the current construct before switching.
Returns:
true if the switch should still take place, false to cancel the switch.

noteDraftConstruct

protected void noteDraftConstruct(ix.iview.domain.UIObject uio)
Note the UIObject in the (right) draft domain

newConstruct

public abstract void newConstruct()
Description copied from interface: ConstructFraming
Makes a new construct of the panel's type and gets ready to edit it.
Specified by:
newConstruct in interface ConstructFraming

makeNewConstruct

public abstract ix.iview.domain.UIObject makeNewConstruct()
Description copied from interface: ConstructFraming
Makes a new construct of the panel's type.
Specified by:
makeNewConstruct in interface ConstructFraming

frameActionPerformed

public abstract boolean frameActionPerformed(java.awt.event.ActionEvent event)
Description copied from interface: ConstructFraming
Tries to process an action generated in the panel's frame.
Specified by:
frameActionPerformed in interface ConstructFraming
Following copied from interface: ix.iview.ConstructFraming
Returns:
true if the event is recognised, false if not.

actionPerformed

public abstract void actionPerformed(java.awt.event.ActionEvent ae)
Wakes up the ActionListener with a user action. This is called when a KeyStroke happens in which the ActionListener registered its interest.
Specified by:
actionPerformed in interface java.awt.event.ActionListener

noteConstruct

protected abstract ix.iview.domain.UIObject noteConstruct()
Note the contents of the panel into the current object.