Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.ubermq.chord.ui
Class ChordDisplayPanel  view ChordDisplayPanel download ChordDisplayPanel.java

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended bycom.ubermq.chord.ui.ChordDisplayPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, InfrastructureModel.EventListener, java.awt.MenuContainer, java.io.Serializable

public class ChordDisplayPanel
extends javax.swing.JPanel
implements InfrastructureModel.EventListener

A panel that draws a chord infrastructure in a circular fashion, and provides user feedback to mouse movements.


Nested Class Summary
private static class ChordDisplayPanel.MyLayoutManager
          The core of the display panel involves laying out node representation components in a circle.
 
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
private static java.awt.Stroke BIG_PEN
           
private static java.awt.Stroke DASH_DASH
           
private  com.ubermq.chord.ChordNode drawFingersFor
           
private static int INSET_X
           
private static int INSET_Y
           
private  InfrastructureModel m
           
(package private) static javax.swing.ImageIcon networkIcon
           
private  java.util.Map nodeComponents
           
private static java.awt.Stroke NORMAL_PEN
           
 
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.Container
 
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
ChordDisplayPanel(InfrastructureModel m)
          Creates a chord display panel that renders data from the specified infrastructure data model.
 
Method Summary
private  java.awt.Point calculateNodeCoordinates(com.ubermq.chord.ChordNode n, int r)
          Gets the rectangular location for a node on a circle of radius r, centered at the origin.
private  void drawFinger(java.awt.Graphics2D g, com.ubermq.chord.ChordNode from, com.ubermq.chord.ChordNode to, int i, int j, int r)
           
private  void drawFingerFor(java.awt.Graphics2D g, com.ubermq.chord.ChordNode me)
           
private  java.awt.Point getIdentifierOrigin()
           
private  int getIdentifierRadius()
           
static void main(java.lang.String[] s)
          Constructs the message viewer application window.
 void nodeAdded(com.ubermq.chord.ChordNode x)
           
 void nodeChanged(com.ubermq.chord.ChordNode x)
           
 void nodeRemoved(com.ubermq.chord.ChordNode x)
           
 void paint(java.awt.Graphics g)
          Paint the component.
private  double translateIdentifier(com.ubermq.chord.ChordIdentifier i)
          Calculates the angle representing where the identifier lies on the identifier circle, in radians.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, 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, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, 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, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, 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, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, 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, 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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m

private final InfrastructureModel m

nodeComponents

private java.util.Map nodeComponents

drawFingersFor

private com.ubermq.chord.ChordNode drawFingersFor

networkIcon

static final javax.swing.ImageIcon networkIcon

INSET_X

private static final int INSET_X
See Also:
Constant Field Values

INSET_Y

private static final int INSET_Y
See Also:
Constant Field Values

DASH_DASH

private static final java.awt.Stroke DASH_DASH

BIG_PEN

private static final java.awt.Stroke BIG_PEN

NORMAL_PEN

private static final java.awt.Stroke NORMAL_PEN
Constructor Detail

ChordDisplayPanel

public ChordDisplayPanel(InfrastructureModel m)
Creates a chord display panel that renders data from the specified infrastructure data model.

Method Detail

nodeAdded

public void nodeAdded(com.ubermq.chord.ChordNode x)
Specified by:
nodeAdded in interface InfrastructureModel.EventListener

nodeRemoved

public void nodeRemoved(com.ubermq.chord.ChordNode x)
Specified by:
nodeRemoved in interface InfrastructureModel.EventListener

nodeChanged

public void nodeChanged(com.ubermq.chord.ChordNode x)
Specified by:
nodeChanged in interface InfrastructureModel.EventListener

paint

public void paint(java.awt.Graphics g)
Description copied from class: javax.swing.JComponent

Paint the component. This is a delicate process, and should only be called from the repaint thread, under control of the javax.swing.RepaintManager. Client code should usually call Component.repaint()>Component.repaint() 55 to trigger painting.

The body of the paint call involves calling JComponent.paintComponent(java.awt.Graphics)>JComponent.paintComponent(java.awt.Graphics) 55 , JComponent.paintBorder(java.awt.Graphics)>JComponent.paintBorder(java.awt.Graphics) 55 , and JComponent.paintChildren(java.awt.Graphics)>JComponent.paintChildren(java.awt.Graphics) 55 in order. If you want to customize painting behavior, you should override one of these methods rather than paint.

For more details on the painting sequence, see this article.


drawFingerFor

private void drawFingerFor(java.awt.Graphics2D g,
                           com.ubermq.chord.ChordNode me)

drawFinger

private void drawFinger(java.awt.Graphics2D g,
                        com.ubermq.chord.ChordNode from,
                        com.ubermq.chord.ChordNode to,
                        int i,
                        int j,
                        int r)

getIdentifierOrigin

private java.awt.Point getIdentifierOrigin()

getIdentifierRadius

private int getIdentifierRadius()

translateIdentifier

private double translateIdentifier(com.ubermq.chord.ChordIdentifier i)
Calculates the angle representing where the identifier lies on the identifier circle, in radians. This method relies on the hashCode method to provide a reasonable mapping of identifier space onto the 2^32 values provided by the primitive int Java type.


calculateNodeCoordinates

private java.awt.Point calculateNodeCoordinates(com.ubermq.chord.ChordNode n,
                                                int r)
Gets the rectangular location for a node on a circle of radius r, centered at the origin.


main

public static void main(java.lang.String[] s)
Constructs the message viewer application window.