org.scopemvc.view.swing
Class SwingView

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--org.scopemvc.view.swing.SwingView
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, View
Direct Known Subclasses:
SPanel, SUnboundPanel

public abstract class SwingView
extends javax.swing.JPanel
implements View

An abstract base JPanel implementation of View for use in Swing-based user interfaces. SwingContext assumes the use of SwingView subclasses, for which the following methods should be overridden:

Binding to the model object should be implemented in subclasses appropriately -- see SPanel for an example. This split in functionality is to support splitting Scope into a Controller/View subsystem and an independent model subsystem.

SwingView subclasses must issue a CHANGE_MODEL_CONTROL_ID Control when the shown model object changes. This supports BasicController which needs to know when its current model changes.

Version:
$Revision: 1.8 $ $Date: 2002/09/13 17:11:28 $
Author:
Steve Meyfroidt
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.awt.Rectangle CENTRED
          Description of the Field
static int MODAL_DIALOG
          Description of the Field
static int MODELESS_DIALOG
          Description of the Field
static int PRIMARY_WINDOW
          Description of the Field
 
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
SwingView()
          Automatically installs a SwingContext if SwingView is created anywhere and no ViewContext has been set previously.
 
Method Summary
 void addSubView(SwingSubView inSubView)
           Adds a sub view to this view.
 Control getCloseControl()
          The Control issued when the window containing this View is closed.
 Controller getController()
          Gets the controller
 int getDisplayMode()
          Determines the type of window used to show this view.
 java.awt.Rectangle getLastShownBounds()
          Deprecated. see getViewBounds()
 javax.swing.JMenuBar getMenuBar()
          The menubar to attach to a window showing this view, or null if none.
 SwingSubView getSubView(int i)
          Gets the sub view
 int getSubViewCount()
          Gets the sub view count
 java.lang.String getTitle()
          Provides the title for windows that show this view.
 java.awt.Rectangle getViewBounds()
          Get bounds to show this view at.
 boolean isResizable()
          Should a window showing this view be resizable?
 void issueControl(Control inControl)
          Issue a Control to the parent Controller, or if no direct parent, search upwards in the View hierarchy for the next up.
 void removeSubView(SwingSubView inSubView)
          Remove a sub view from this view
 void setCloseControl(Control inCloseControl)
          The Control issued when the window containing this View is closed.
 void setCloseControl(java.lang.String inCloseControlID)
          The Control issued when the window containing this View is closed.
 void setController(Controller inController)
          The parent Controller must register itself with the SwingView via this method in order to receive Control from it.
 void setDisplayMode(int inDisplayMode)
          Defines the type of window used to show this view.
 void setLastShownBounds(java.awt.Rectangle inLastShownBounds)
          Deprecated. see setViewBounds(java.awt.Rectangle)
 void setMenuBar(javax.swing.JMenuBar inMenuBar)
          The menubar to attach to a window showing this view, or null if none.
 void setTitle(java.lang.String inTitle)
          Provides the title for windows that show this view.
 void setViewBounds(java.awt.Rectangle inViewBounds)
          Called when hiding a view to store last bounds of this view when visible.
 java.lang.String toString()
          Description of the Method
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.scopemvc.core.View
getBoundModel, setBoundModel
 

Field Detail

PRIMARY_WINDOW

public static final int PRIMARY_WINDOW
Description of the Field

See Also:
Constant Field Values

MODAL_DIALOG

public static final int MODAL_DIALOG
Description of the Field

See Also:
Constant Field Values

MODELESS_DIALOG

public static final int MODELESS_DIALOG
Description of the Field

See Also:
Constant Field Values

CENTRED

public static final java.awt.Rectangle CENTRED
Description of the Field

Constructor Detail

SwingView

public SwingView()
Automatically installs a SwingContext if SwingView is created anywhere and no ViewContext has been set previously.

Method Detail

getViewBounds

public final java.awt.Rectangle getViewBounds()
Get bounds to show this view at. If null default positioning, if CENTRED_BOUNDS then centre the view on the screen.

Returns:
The viewBounds value

getLastShownBounds

public final java.awt.Rectangle getLastShownBounds()
Deprecated. see getViewBounds()

Returns:
The lastShownBounds value

getTitle

public java.lang.String getTitle()
Provides the title for windows that show this view.

Returns:
The title value
See Also:
SwingContext

getDisplayMode

public int getDisplayMode()
Determines the type of window used to show this view.

Returns:
The displayMode value
See Also:
PRIMARY_WINDOW, MODAL_DIALOG, MODELESS_DIALOG, SwingContext

getCloseControl

public Control getCloseControl()
The Control issued when the window containing this View is closed.

Returns:
The closeControl value

isResizable

public boolean isResizable()
Should a window showing this view be resizable?

Returns:
The resizable value

getMenuBar

public javax.swing.JMenuBar getMenuBar()
The menubar to attach to a window showing this view, or null if none.

Returns:
The menuBar value

getController

public Controller getController()
Gets the controller

Specified by:
getController in interface View
Returns:
The controller value

issueControl

public void issueControl(Control inControl)
Issue a Control to the parent Controller, or if no direct parent, search upwards in the View hierarchy for the next up.

Specified by:
issueControl in interface View
Parameters:
inControl - the Control to broadcast.

getSubViewCount

public int getSubViewCount()
Gets the sub view count

Returns:
The subViewCount value

getSubView

public SwingSubView getSubView(int i)
Gets the sub view

Parameters:
i - Description of the Parameter
Returns:
The subView value

setController

public final void setController(Controller inController)
The parent Controller must register itself with the SwingView via this method in order to receive Control from it. Only one Controller can parent a SwingView, which should be fine if a Chain of Command is used between Controllers.

Specified by:
setController in interface View
Parameters:
inController - the parent Controller.

setCloseControl

public void setCloseControl(Control inCloseControl)
The Control issued when the window containing this View is closed.

Parameters:
inCloseControl - The closeControl value

setCloseControl

public void setCloseControl(java.lang.String inCloseControlID)
The Control issued when the window containing this View is closed.

Parameters:
inCloseControlID - The control ID to issue - usually one of the following values defined in BasicController
See Also:
BasicController.HIDE_VIEW_CONTROL_ID, BasicController.EXIT_CONTROL_ID

setDisplayMode

public void setDisplayMode(int inDisplayMode)
Defines the type of window used to show this view.

Parameters:
inDisplayMode - The new displayMode value
See Also:
PRIMARY_WINDOW, MODAL_DIALOG, MODELESS_DIALOG, SwingContext

setTitle

public void setTitle(java.lang.String inTitle)
Provides the title for windows that show this view.

Parameters:
inTitle - The new title value
See Also:
SwingContext

setViewBounds

public void setViewBounds(java.awt.Rectangle inViewBounds)
Called when hiding a view to store last bounds of this view when visible. Override to return null if the view should always be packed and placed in default location. Call this during View ctor to set up initial bounds.

Parameters:
inViewBounds - The new viewBounds value

setLastShownBounds

public void setLastShownBounds(java.awt.Rectangle inLastShownBounds)
Deprecated. see setViewBounds(java.awt.Rectangle)

Parameters:
inLastShownBounds - The new lastShownBounds value

setMenuBar

public void setMenuBar(javax.swing.JMenuBar inMenuBar)
The menubar to attach to a window showing this view, or null if none.

Parameters:
inMenuBar - The new menuBar value

toString

public java.lang.String toString()
Description of the Method

Overrides:
toString in class java.awt.Component
Returns:
Description of the Return Value

addSubView

public void addSubView(SwingSubView inSubView)

Adds a sub view to this view.
To use only for dependant views that are not Swing components, such as Actions and MenuItem.

Standard component views are automatically registered in the SwingView when they are added to this container or one of its child container with the add() method.

Parameters:
inSubView - The sub view to be added
See Also:
Container.add(java.awt.Component)

removeSubView

public void removeSubView(SwingSubView inSubView)
Remove a sub view from this view

Parameters:
inSubView - The sub view to remove


Copyright © 2000-2002 The Scope Team. All Rights Reserved.