edu.cmu.minorthird.util.gui
Class ParallelViewer

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 edu.cmu.minorthird.util.gui.Viewer
                      extended by edu.cmu.minorthird.util.gui.ParallelViewer
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
SpanViewer

public class ParallelViewer
extends Viewer

Conceptually this allows one to view several parallel aspects of a single object. This is mapped to a JTabbedPane.

Note: when content is sent to a ParallelViewer, the viewer immediate forwards the content only to the currently selected subview. This means that the non-default subviews can be expensive to compute - no extra overhead will be incurred unless the user actually selects these views. However, before the ParallelViewer recieves content, it also checks that every subview can receive the content, using that subview's canRecieve * method. So if a subview's canRecieve method is expensive (e.g., if it simply calls receive to see if there is an error, as the default implementation of ComponentViewer does) then this extra overhead will be incurred.

Author:
William cohen
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class edu.cmu.minorthird.util.gui.Viewer
Viewer.Transform
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class edu.cmu.minorthird.util.gui.Viewer
namedSubViews, OBJECT_SELECTED, OBJECT_UPDATED, SET_CONTENT, TEXT_MESSAGE
 
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
ParallelViewer()
           
 
Method Summary
 void addSubView(java.lang.String title, Viewer view)
          Add a new way of viewing the content object.
protected  boolean canHandle(int signal, java.lang.Object argument, java.util.ArrayList senders)
          Offer to handle a signal.
 boolean canReceive(java.lang.Object content)
          See if proposed content is displayable.
 void clearContent()
          Called when no content should be displayed.
 Viewer getNamedSubView(java.lang.String name)
          Retrieve a subview by name.
protected  void handle(int signal, java.lang.Object argument, java.util.ArrayList senders)
          Handle a signal from a subview.
protected  void initialize()
          Called at creation time.
 void putTabsOnLeft()
          Change default look of tabbed pane to put tabs on the left
 void receiveContent(java.lang.Object content)
          Called when new content obtained.
 
Methods inherited from class edu.cmu.minorthird.util.gui.Viewer
fillerGBC, getContent, getSerializableContent, getSubViewNames, getSuperView, getVisibleContent, monitorSelections, monitorSelections, monitorSelections, monitorSelections, sendSignal, setContent, setContent, setSuperView, setSuperView
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, 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, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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, getName, 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, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ParallelViewer

public ParallelViewer()
Method Detail

initialize

protected void initialize()
Called at creation time.

Specified by:
initialize in class Viewer

putTabsOnLeft

public void putTabsOnLeft()
Change default look of tabbed pane to put tabs on the left


addSubView

public void addSubView(java.lang.String title,
                       Viewer view)
Add a new way of viewing the content object.


receiveContent

public void receiveContent(java.lang.Object content)
Description copied from class: Viewer
Called when new content obtained. So load it into the viewer.

Specified by:
receiveContent in class Viewer

getNamedSubView

public Viewer getNamedSubView(java.lang.String name)
Description copied from class: Viewer
Retrieve a subview by name.

Overrides:
getNamedSubView in class Viewer

canReceive

public boolean canReceive(java.lang.Object content)
Description copied from class: Viewer
See if proposed content is displayable.

Specified by:
canReceive in class Viewer

clearContent

public void clearContent()
Description copied from class: Viewer
Called when no content should be displayed.

Specified by:
clearContent in class Viewer

handle

protected void handle(int signal,
                      java.lang.Object argument,
                      java.util.ArrayList senders)
Description copied from class: Viewer
Handle a signal from a subview.

Specified by:
handle in class Viewer

canHandle

protected boolean canHandle(int signal,
                            java.lang.Object argument,
                            java.util.ArrayList senders)
Description copied from class: Viewer
Offer to handle a signal.

Specified by:
canHandle in class Viewer