ix.iface.ui
Class JSelectorDialog

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.JSelectorDialog
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

public abstract class JSelectorDialog
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)

See Also:
Serialized Form

Nested Class Summary
static interface JSelectorDialog.JSelectorListener
           
 
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
           
 java.lang.Object currentObject
           
protected  javax.swing.JComponent focusComponent
           
protected  javax.swing.JLabel label
           
protected  javax.swing.JPanel mainPanel
           
protected  javax.swing.JButton okBut
           
protected  java.util.ArrayList selectionListeners
           
 
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
JSelectorDialog(java.awt.Frame parent, java.lang.String message)
          As above but with a default title.
JSelectorDialog(java.awt.Frame parent, java.lang.String title, java.lang.String message)
          Creates a dialog with the title for selecting from a list of items.
JSelectorDialog(java.awt.Frame parent, java.lang.String title, java.lang.String message, java.lang.Object object)
          Creates a a selector with the context of the given object.
 
Method Summary
 void addSelectionListener(JSelectorDialog.JSelectorListener listener)
           
protected abstract  java.lang.Object checkSelection(java.lang.Object selection, java.lang.Object object)
          Checks the selection against the given object.
 void closeEditor()
           
protected abstract  java.lang.Object collectSelection()
          Collects input from the panel components and builds the right kind of constraint.
protected  javax.swing.JComponent getFocusComponent()
          By default, there is no focus component
protected abstract  void initFromObject()
          Fills the controls with relevant object-sensitive information.
protected abstract  java.awt.Component makeBits()
          Makes all items on the panel used to specify parts of the constraint.
 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 processSelection()
          Reads the selected relation and let interested parties know.
 void removeSelectionListener(JSelectorDialog.JSelectorListener listener)
           
 void setMessage(java.lang.String message)
           
 void setObject(java.lang.Object object)
          Sets the object whose components (children) are to be realted.
 void start()
           
 boolean start(java.lang.Object object)
          As above, default location.
 void start(java.lang.Object object, java.awt.Point point)
          Starts an editor for for selecting something for 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

label

protected javax.swing.JLabel label

selectionListeners

protected java.util.ArrayList selectionListeners

currentObject

public java.lang.Object currentObject
Constructor Detail

JSelectorDialog

public JSelectorDialog(java.awt.Frame parent,
                       java.lang.String title,
                       java.lang.String message)
Creates a dialog with the title for selecting from a list of items. Creates space for components for specifying the constraints and creates two buttons (Ok, Cancel)


JSelectorDialog

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


JSelectorDialog

public JSelectorDialog(java.awt.Frame parent,
                       java.lang.String title,
                       java.lang.String message,
                       java.lang.Object object)
Creates a a selector with the context of the given object. As JSelectorDialog() but with a given object.

Parameters:
object - the object for whom the selection is to be made
Method Detail

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

getFocusComponent

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


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 selecting something for the given object.


start

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


addSelectionListener

public void addSelectionListener(JSelectorDialog.JSelectorListener listener)

removeSelectionListener

public void removeSelectionListener(JSelectorDialog.JSelectorListener listener)

processSelection

protected java.lang.Object processSelection()
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).


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()

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.


collectSelection

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


checkSelection

protected abstract java.lang.Object checkSelection(java.lang.Object selection,
                                                   java.lang.Object object)
Checks the selection against the given object. Returns the selection (possibly modified) if all is well, null if the selection is not suitable in this context.