ix.iface.ui
Class JConstraintEditor

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by ix.iface.ui.JConstraintEditor
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants
Direct Known Subclasses:
ConstraintEditor, IFormPanel.FieldChooser, PropertyEditor

public abstract class JConstraintEditor
extends javax.swing.JDialog
implements java.awt.event.MouseListener

An abstract class with useful things for building constraint editors. The editor is implemented as a frame using Boxes and JButtons.

The editor can be created with a message and optional title and n optional object which will be set as the current object to which the constraint applies. Subsequently, the object in the editor can be set using the setObject method.

Concrete editors that extend this class should implement the following methods:

The rest can be handled by the generic methods defined in this class. For an example of an implementing class see TPRelationEditor. Implements the VarSpecifier interface for UIRefinements. Use IVUtil.enableVars(VarSpecifier editor, JTextComponent textBit); to activate variable input help. Collects variable declarations and updates the construct when the constraint is processed (in case of cancel) NOTE: this is modal, so as soon as it is visible (start()), it blocks!

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
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
protected  java.awt.Component bitsBox
           
protected  java.awt.Component butBox
           
protected  javax.swing.JButton cancelBut
           
protected  java.util.ArrayList constraintListeners
           
 java.lang.Object currentObject
           
protected  javax.swing.JComponent focusComponent
           
protected  javax.swing.JLabel label
           
protected  javax.swing.JPanel mainPanel
           
protected  javax.swing.JButton moreBut
           
protected  javax.swing.JButton okBut
           
protected  java.lang.Object original
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JConstraintEditor(java.awt.Frame owner, java.lang.String message)
          As above but with a default title.
JConstraintEditor(java.awt.Frame owner, java.lang.String title, java.lang.String message)
          Creates an editor with the title for specifying constraints.
JConstraintEditor(java.awt.Frame owner, java.lang.String title, java.lang.String message, java.lang.Object object)
          Creates an editor for specifying time point relations of the given object.
 
Method Summary
 void addConstraintListener(JConstraintListener listener)
           
 void closeEditor()
           
protected abstract  java.lang.Object collectConstraint()
          Collects input from the panel components and builds the right kind of constraint.
protected  void focus()
           
protected  java.lang.String getField(java.lang.Object constraint)
          Gets the field that the constraint is kept in.
protected  javax.swing.JComponent getFocusComponent()
          By default, there is no focus component
 java.lang.Object getObject()
          Gets the object that is to be constrainted (UIRefinement)
protected  java.util.List getPreviousList(java.lang.Object constraint)
          Gets the previous list of values for the given constraint.
protected abstract  void initFromObject()
          Fills the controls with relevant object-sensitive information.
 boolean isEditing()
           
protected abstract  java.awt.Component makeBits()
          Makes all items on the panel used to specify parts of the constraint.
 void moreInitFromObject()
          Called instead of initFromObject when addMore is clicked rather than add.
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
protected  java.lang.Object noteNewValue(java.lang.Object constraint)
          make UIO update properly so that the event is noted elsewhere (panels..)
protected  boolean processConstraint()
          Reads the selected relation and let interested parties know.
 void removeConstraintListener(JConstraintListener listener)
           
protected abstract  void setFromObject(java.lang.Object original)
          Sets the editor up to edit (rather than add) an original constraint object.
 void setMessage(java.lang.String message)
           
 void setObject(java.lang.Object object)
          Sets the object whose components (children) are to be realted.
 void setOriginal(java.lang.Object original)
          Set this to the original value (non-null) to get edit-bahaviour rather than add-behaviour.
 void start()
           
 void start(java.lang.Object object)
          As above, default location.
 void start(java.lang.Object object, java.lang.Object original)
          As above, default location.
 void start(java.lang.Object object, java.lang.Object original, java.awt.Point point)
          Starts an editor for for editing the given specification of one of the fields of the given object.
 void start(java.lang.Object object, java.awt.Point point)
          Starts an editor for for adding specifications of one of the fields of the given object.
 void start(java.awt.Point point)
           
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, setVisible, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mainPanel

protected javax.swing.JPanel mainPanel

bitsBox

protected java.awt.Component bitsBox

butBox

protected java.awt.Component butBox

focusComponent

protected javax.swing.JComponent focusComponent

okBut

protected javax.swing.JButton okBut

cancelBut

protected javax.swing.JButton cancelBut

moreBut

protected javax.swing.JButton moreBut

label

protected javax.swing.JLabel label

constraintListeners

protected java.util.ArrayList constraintListeners

currentObject

public java.lang.Object currentObject

original

protected java.lang.Object original
Constructor Detail

JConstraintEditor

public JConstraintEditor(java.awt.Frame owner,
                         java.lang.String title,
                         java.lang.String message)
Creates an editor with the title for specifying constraints. Creates space for components for specifying the constraints and creates two buttons (Ok, Cancel)


JConstraintEditor

public JConstraintEditor(java.awt.Frame owner,
                         java.lang.String message)
As above but with a default title.


JConstraintEditor

public JConstraintEditor(java.awt.Frame owner,
                         java.lang.String title,
                         java.lang.String message,
                         java.lang.Object object)
Creates an editor for specifying time point relations of the given object. As JConstraintEditor() but with a given object.

Parameters:
object - the object whose constraints are to be edited.
Method Detail

isEditing

public boolean isEditing()

setMessage

public void setMessage(java.lang.String message)

setObject

public void setObject(java.lang.Object object)
               throws java.lang.NullPointerException
Sets the object whose components (children) are to be realted. Fills the activity lists of the panel with the children of the object.

Parameters:
object - the object whose children are to be related
Throws:
java.lang.NullPointerException

getObject

public java.lang.Object getObject()
Gets the object that is to be constrainted (UIRefinement)


getFocusComponent

protected javax.swing.JComponent getFocusComponent()
By default, there is no focus component


focus

protected void focus()

getPreviousList

protected java.util.List getPreviousList(java.lang.Object constraint)
Gets the previous list of values for the given constraint. By default, there is no previous list


getField

protected java.lang.String getField(java.lang.Object constraint)
Gets the field that the constraint is kept in. By default, we do not look up the value


setOriginal

public void setOriginal(java.lang.Object original)
Set this to the original value (non-null) to get edit-bahaviour rather than add-behaviour.


start

public void start(java.awt.Point point)

start

public void start()

start

public void start(java.lang.Object object,
                  java.awt.Point point)
Starts an editor for for adding specifications of one of the fields of the given object.


start

public void start(java.lang.Object object)
As above, default location.


start

public void start(java.lang.Object object,
                  java.lang.Object original,
                  java.awt.Point point)
Starts an editor for for editing the given specification of one of the fields of the given object.


start

public void start(java.lang.Object object,
                  java.lang.Object original)
As above, default location.


addConstraintListener

public void addConstraintListener(JConstraintListener listener)

removeConstraintListener

public void removeConstraintListener(JConstraintListener listener)

processConstraint

protected boolean processConstraint()
Reads the selected relation and let interested parties know. Checks that selections have been made. If selections have not been made, a message will have been shown and listeners are not notified. If an original constraint has been edited (rather than new constraints added), the listeners are notified with a null constraint object (they already hold the original that has now been updated).


noteNewValue

protected java.lang.Object noteNewValue(java.lang.Object constraint)
make UIO update properly so that the event is noted elsewhere (panels..)


mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

closeEditor

public void closeEditor()

moreInitFromObject

public void moreInitFromObject()
Called instead of initFromObject when addMore is clicked rather than add.


makeBits

protected abstract java.awt.Component makeBits()
Makes all items on the panel used to specify parts of the constraint.


initFromObject

protected abstract void initFromObject()
Fills the controls with relevant object-sensitive information. To be implemented by the sub-class. E.g. fill ordering editor with the sub-activities of the refinement.


setFromObject

protected abstract void setFromObject(java.lang.Object original)
Sets the editor up to edit (rather than add) an original constraint object.


collectConstraint

protected abstract java.lang.Object collectConstraint()
Collects input from the panel components and builds the right kind of constraint.