org.ascape.view.vis
Class ScapeTransitionPanelView

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.ascape.view.vis.PanelView
                      extended by org.ascape.view.vis.ScapeTransitionPanelView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.accessibility.Accessible, ScapeListener, HasName, ComponentView
Direct Known Subclasses:
ControlActionView, SpeedSliderView

public class ScapeTransitionPanelView
extends PanelView

A view providing notification when a scape transitions from one state to another. For example, when a scape was paused and is now resumed, an apporiate method will be called. Additionally, this view also guarantees that updateScapeGraphics of the view at least 6 times a second regardless of the nature of the scape notification. This will allow pauses and resumes to be noticed in time to immediatly alert the user, regardless of what is happening with the model. Note: instead of subclassing this class consider using the cleaner delgate pattern with the ScapeTransitionListener.

Since:
3.0
Version:
3.0
Author:
Miles Parker
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  boolean lastScapeAppearsPaused
          Did the scape appear to be paused last iteration?.
 
Fields inherited from class org.ascape.view.vis.PanelView
delegate, iterationsPerRedraw, name, scape
 
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
ScapeTransitionPanelView()
          Constructs the control view, creating and laying out its components.
ScapeTransitionPanelView(java.lang.String name)
          Constructs the speed slider view.
 
Method Summary
 void addNotify()
           
 void build()
          Called to create and layout the components of the component view, once the view's scape has been created.
 void environmentNowNoScape()
          Environment now no scape.
 void environmentNowScape()
          Environment now scape.
 boolean isLifeOfScape()
          Returns true if the listener is intended to be used only for the current scape; in this case returns false because control views typically will exist for multiple scapes.
 void scapeAdded(ScapeEvent scapeEvent)
          Called on interation; delays models return by delay slider setting.
 void scapeNotification(ScapeEvent scapeEvent)
          Notifies this view that something has happened on the scape.
 void scapeNowPaused()
          Scape now paused.
 void scapeNowResumed()
          Scape now resumed.
 void scapeNowRunning()
          Scape now running.
 void scapeNowSteppable()
          Scape now steppable.
 void scapeNowStopped()
          Scape now stopped.
 void scapeRemoved(ScapeEvent scapeEvent)
          Called on interation; delays models return by delay slider setting.
 void updateScapeGraphics()
          Update the components.
 
Methods inherited from class org.ascape.view.vis.PanelView
clone, environmentQuiting, forceScapeNotify, getDelegate, getIcon, getIterationsPerRedraw, getName, getPreferredSizeWithin, getScape, getViewFrame, iconUpdated, isGraphic, notifyScapeUpdated, onChangeIterationsPerRedraw, paintComponent, readExternal, scapeClosing, scapeDeserialized, scapeInitialized, scapeIterated, scapeSetup, scapeStarted, scapeStopped, setDelegate, setIterationsPerRedraw, setMovieRecorder, setName, setViewFrame, toString, writeExternal
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, 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, 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, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

lastScapeAppearsPaused

protected boolean lastScapeAppearsPaused
Did the scape appear to be paused last iteration?.

Constructor Detail

ScapeTransitionPanelView

public ScapeTransitionPanelView()
Constructs the control view, creating and laying out its components.


ScapeTransitionPanelView

public ScapeTransitionPanelView(java.lang.String name)
Constructs the speed slider view.

Parameters:
name - a user relevant name for this view
Method Detail

addNotify

public void addNotify()
Overrides:
addNotify in class javax.swing.JComponent

build

public void build()
Description copied from class: PanelView
Called to create and layout the components of the component view, once the view's scape has been created.

Specified by:
build in interface ComponentView
Overrides:
build in class PanelView

scapeNowRunning

public void scapeNowRunning()
Scape now running.


scapeNowStopped

public void scapeNowStopped()
Scape now stopped.


scapeNowPaused

public void scapeNowPaused()
Scape now paused.


scapeNowResumed

public void scapeNowResumed()
Scape now resumed.


scapeNowSteppable

public void scapeNowSteppable()
Scape now steppable.


environmentNowScape

public void environmentNowScape()
Environment now scape.


environmentNowNoScape

public void environmentNowNoScape()
Environment now no scape.


scapeAdded

public void scapeAdded(ScapeEvent scapeEvent)
                throws java.util.TooManyListenersException
Called on interation; delays models return by delay slider setting.

Specified by:
scapeAdded in interface ScapeListener
Overrides:
scapeAdded in class PanelView
Parameters:
scapeEvent - the scape event
Throws:
java.util.TooManyListenersException - the too many listeners exception

scapeRemoved

public void scapeRemoved(ScapeEvent scapeEvent)
Called on interation; delays models return by delay slider setting.

Specified by:
scapeRemoved in interface ScapeListener
Overrides:
scapeRemoved in class PanelView
Parameters:
scapeEvent - the scape event
See Also:
scapeAdded

updateScapeGraphics

public void updateScapeGraphics()
Update the components. Ensures that the state of all buttons matchhes the state of the observed scape.

Specified by:
updateScapeGraphics in interface ComponentView
Overrides:
updateScapeGraphics in class PanelView

isLifeOfScape

public boolean isLifeOfScape()
Returns true if the listener is intended to be used only for the current scape; in this case returns false because control views typically will exist for multiple scapes.

Specified by:
isLifeOfScape in interface ScapeListener
Overrides:
isLifeOfScape in class PanelView
Returns:
true, if is life of scape

scapeNotification

public void scapeNotification(ScapeEvent scapeEvent)
Notifies this view that something has happened on the scape. This view then has a chance to update itself, and this super method then notifies the scape that the view itself has been updated. By default, calls the onStart, updateScapeGraphics, or onStop method as appropriate, and then notifies scape.

Specified by:
scapeNotification in interface ScapeListener
Overrides:
scapeNotification in class PanelView
Parameters:
scapeEvent - a scape event update


Copyright © 1998-2008 The Brookings Institution, NuTech Solutions, Metascape, LLC All Rights Reserved.