org.ascape.view.vis
Class Scrolling1DView

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.BufferView
                          extended by org.ascape.view.vis.AgentView
                              extended by org.ascape.view.vis.AgentSizedView
                                  extended by org.ascape.view.vis.CellView
                                      extended by org.ascape.view.vis.Scrolling1DView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, java.util.Observer, javax.accessibility.Accessible, ScapeListener, HasName, ComponentView

public class Scrolling1DView
extends CellView

A view that provides a vertically scrolling view appropriate for dispalying a simple one-dimensional collection of agents; i.e. a 1DCA. To Do: Support color features ala Overhead2DView.

Since:
1.0
Version:
1.9.2
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  int maxAgentWidth
          The max agent width.
 
Fields inherited from class org.ascape.view.vis.CellView
borderSize, cells_fill_draw_feature, cells_fill_draw_inset_feature
 
Fields inherited from class org.ascape.view.vis.AgentSizedView
agentSize
 
Fields inherited from class org.ascape.view.vis.AgentView
agentColorFeature, agentCustomizer, clearBackgroundAutomatically, drawSelection, updateAllRequested
 
Fields inherited from class org.ascape.view.vis.BufferView
bufferedGraphics, bufferedImage
 
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
Scrolling1DView()
          Constructs a new scrolling view, setting its initial cell size to 2.
Scrolling1DView(java.lang.String name)
          Constructs a new scrolling view, setting its initial cell size to 2.
 
Method Summary
 void buildGraphicsBuffer()
          Builds the graphics buffer.
 int calculateAgentSizeForViewSize(java.awt.Dimension d)
          Calculate agent size for view size.
 java.awt.Dimension calculateViewSizeForAgentSize(int cellSize)
          Calculate view size for agent size.
 void drawSelectedAgent(java.awt.Graphics g, LocatedAgent a)
          Draws a marker for the provided selected agent.
 Agent getAgentAtPixel(int x, int y)
          Returns the cell at the given pixel in this view.
 java.awt.Dimension getPreferredSizeWithin(java.awt.Dimension d)
          Default behavior for a component.
 void paint(java.awt.Graphics g)
          Repaints the canvas, drawing the buffer into it.
 void scapeAdded(ScapeEvent scapeEvent)
          Notifies the listener that the scape has added it.
 void setBounds(int x, int y, int width, int height)
          Sets the size of the view, rescaling and moving the buffer as neccesary.
 void updateScapeGraphics()
          On notification of a scape update, draws the next line of the view, and copies the buffer upwards to scroll the view.
 
Methods inherited from class org.ascape.view.vis.CellView
build, getBorderSize, getCellColorFeature, getCellSize, getIcon, getPrimaryAgentColorFeature, readExternal, scapeRemoved, setBorderSize, setCellColorFeature, setCellSize, setPrimaryAgentColorFeature, writeExternal
 
Methods inherited from class org.ascape.view.vis.AgentSizedView
addNotify, getAgentSize, setAgentSize
 
Methods inherited from class org.ascape.view.vis.AgentView
addDrawFeature, createAgentCustomizer, createAgentCustomizerPanel, displayAgentCustomizer, displayCustomizer, drawSelectedAgent, getAgentColorFeature, getAgentCustomizer, getDrawFeatures, getDrawFeaturesObservable, getDrawSelection, isClearBackground, paintComponent, removeAgentCustomizer, removeCustomizer, removeDrawFeature, requestUpdateAll, scapeStarted, setAgentColorFeature, setAgentCustomizer, setClearBackground, setCustomizeAgent, update
 
Methods inherited from class org.ascape.view.vis.BufferView
finalize, getBufferedImage, imageUpdate, setBufferedImage
 
Methods inherited from class org.ascape.view.vis.PanelView
clone, environmentQuiting, forceScapeNotify, getDelegate, getIterationsPerRedraw, getName, getScape, getViewFrame, iconUpdated, isGraphic, isLifeOfScape, notifyScapeUpdated, onChangeIterationsPerRedraw, scapeClosing, scapeDeserialized, scapeInitialized, scapeIterated, scapeNotification, scapeSetup, scapeStopped, setDelegate, setIterationsPerRedraw, setMovieRecorder, setName, setViewFrame, toString
 
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, 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, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

maxAgentWidth

protected int maxAgentWidth
The max agent width.

Constructor Detail

Scrolling1DView

public Scrolling1DView()
Constructs a new scrolling view, setting its initial cell size to 2.


Scrolling1DView

public Scrolling1DView(java.lang.String name)
Constructs a new scrolling view, setting its initial cell size to 2.

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

scapeAdded

public void scapeAdded(ScapeEvent scapeEvent)
                throws java.util.TooManyListenersException
Notifies the listener that the scape has added it. Sets the maximum agent width.

Specified by:
scapeAdded in interface ScapeListener
Overrides:
scapeAdded in class AgentSizedView
Parameters:
scapeEvent - the scape added notification event
Throws:
java.util.TooManyListenersException - the too many listeners exception
java.util.TooManyListenersException - on attempt to add this listener to another scape when one has already been assigned

buildGraphicsBuffer

public void buildGraphicsBuffer()
Description copied from class: BufferView
Builds the graphics buffer.

Overrides:
buildGraphicsBuffer in class BufferView

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Sets the size of the view, rescaling and moving the buffer as neccesary.

Overrides:
setBounds in class AgentSizedView
Parameters:
x - the x
y - the y
width - the width
height - the height

getPreferredSizeWithin

public java.awt.Dimension getPreferredSizeWithin(java.awt.Dimension d)
Description copied from class: PanelView
Default behavior for a component. Simply returns same size.

Specified by:
getPreferredSizeWithin in interface ComponentView
Overrides:
getPreferredSizeWithin in class AgentSizedView
Parameters:
d - the d
Returns:
the preferred size within

calculateViewSizeForAgentSize

public java.awt.Dimension calculateViewSizeForAgentSize(int cellSize)
Description copied from class: AgentSizedView
Calculate view size for agent size.

Overrides:
calculateViewSizeForAgentSize in class AgentSizedView
Parameters:
cellSize - the agent size
Returns:
the dimension

calculateAgentSizeForViewSize

public int calculateAgentSizeForViewSize(java.awt.Dimension d)
Description copied from class: AgentSizedView
Calculate agent size for view size.

Overrides:
calculateAgentSizeForViewSize in class AgentSizedView
Parameters:
d - the d
Returns:
the int

getAgentAtPixel

public Agent getAgentAtPixel(int x,
                             int y)
Description copied from class: AgentView
Returns the cell at the given pixel in this view.

Overrides:
getAgentAtPixel in class AgentView
Parameters:
x - the horizontal pixel location
y - the vertical pixel location
Returns:
the agent at pixel

drawSelectedAgent

public void drawSelectedAgent(java.awt.Graphics g,
                              LocatedAgent a)
Description copied from class: AgentView
Draws a marker for the provided selected agent.

Overrides:
drawSelectedAgent in class AgentView
Parameters:
g - the graphics context to draw to
a - the agent to draw

updateScapeGraphics

public void updateScapeGraphics()
On notification of a scape update, draws the next line of the view, and copies the buffer upwards to scroll the view.

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

paint

public void paint(java.awt.Graphics g)
Repaints the canvas, drawing the buffer into it. If the view is wider than the buffer (size of agents), copies the buffer alongside it, to provide a continuous view of a periodic scape. To do: override this behavior for aperiod scapes, and provide some means for scrolling the horizontal origin.

Overrides:
paint in class javax.swing.JComponent
Parameters:
g - the graphics context.


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