org.PingOO.DLAI.tool.Abacus
Class Abacus.AbacusPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--org.PingOO.DLAI.lib.PWidget.PPanel
                                |
                                +--org.PingOO.DLAI.tool.Abacus.Abacus.AbacusPanel

private class Abacus.AbacusPanel
extends PPanel

Since:
PingOO 2.0
Version:
2.0
Author:
Gregory Seidman (gseidman@zing.ncsl.nist.gov), Fabrice Bouyé (bouye@cur-archamps.fr)
See Also:
PPanel, Serialized Form

Inner Class Summary
private  class Abacus.AbacusPanel.AbacusPanelMouseInputListener
          Deal with the mouse when the user is doing drag and drop with beads.
 
Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardBinding, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
private  boolean bdown
           
private  java.awt.Color beadColor
           
private  int[][] beads
           
private  int beadSize
           
private  int beadSpace
           
private  java.awt.Color borderColor
           
private  int borderSize
           
private  boolean clear
           
private  int[] colbeads
           
private  int[] cols
           
private  int columns
           
private  int curbead
           
private  int curcol
           
private  int curplace
           
private  int currow
           
private  int cury
           
private  int height
           
private  boolean left
           
private  int nattached
           
private  int newx
           
private  boolean norepaint
           
private  int numspace
           
private  java.awt.image.BufferedImage offscreenImage
           
private  java.awt.Color railColor
           
private  int railWidth
           
private  int rows
           
private  int totalbeads
           
private  int width
           
private  int xoffset
           
 
Fields inherited from class org.PingOO.DLAI.lib.PWidget.PPanel
DEFAULT_LAYOUT, manager, module, toolTipKey
 
Fields inherited from class javax.swing.JPanel
defaultLayout, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, alignmentX, alignmentY, ANCESTOR_USING_BUFFER, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, flags, HAS_FOCUS, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
Abacus.AbacusPanel(int he, int wi, int beadSize, int beadSpace, int borderSize, int railWidth, int numSpace, int col, int row, int to, int[] cb, int[][] be, int[] co)
          Creates a new instance.
 
Method Summary
private  void clearbead(java.awt.Graphics g)
          Clears a bead.
private  void createOffscreenImage()
          Creates the abacus' image in a offscreen fashion way.
private  void drawbead(java.awt.Graphics g)
          Draw bead.
private  void drawBeads(java.awt.Graphics g)
          Draw beads.
private  void drawBorder(java.awt.Graphics g)
          Draw borders.
private  void drawRails(java.awt.Graphics g)
          Draw rail.
 void paint(java.awt.Graphics g)
          Paints the abacus on screen.
 void update(java.awt.Graphics g)
          Update painting without flickering.
 
Methods inherited from class org.PingOO.DLAI.lib.PWidget.PPanel
getManager, getModule, getTextKey, getToolTipKey, setLocalizedText, setLocalizedToolTipText, setManager, setModule, updateFont, updateLanguage, updateLanguage
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, bindingForKeyStroke, computeVisibleRect, computeVisibleRect, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, keyboardBindings, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, constructComponentName, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

height

private int height

width

private int width

columns

private int columns

rows

private int rows

totalbeads

private int totalbeads

colbeads

private int[] colbeads

cols

private int[] cols

beads

private int[][] beads

bdown

private boolean bdown

norepaint

private boolean norepaint

clear

private boolean clear

left

private boolean left

cury

private int cury

currow

private int currow

curbead

private int curbead

curcol

private int curcol

curplace

private int curplace

xoffset

private int xoffset

newx

private int newx

nattached

private int nattached

beadSize

private int beadSize

beadSpace

private int beadSpace

borderSize

private int borderSize

railWidth

private int railWidth

numspace

private int numspace

railColor

private final java.awt.Color railColor

borderColor

private final java.awt.Color borderColor

beadColor

private final java.awt.Color beadColor

offscreenImage

private java.awt.image.BufferedImage offscreenImage
Constructor Detail

Abacus.AbacusPanel

public Abacus.AbacusPanel(int he,
                          int wi,
                          int beadSize,
                          int beadSpace,
                          int borderSize,
                          int railWidth,
                          int numSpace,
                          int col,
                          int row,
                          int to,
                          int[] cb,
                          int[][] be,
                          int[] co)
Creates a new instance.
Parameters:
he -  
wi -  
beadSize -  
beadSpace -  
borderSize - The size of the borders.
railWidth - The width of the rail
numSpace -  
col - The number of columns.
row - The number of rows.
to -  
cb -  
be -  
co -  
Method Detail

createOffscreenImage

private void createOffscreenImage()
Creates the abacus' image in a offscreen fashion way.

paint

public void paint(java.awt.Graphics g)
Paints the abacus on screen.
Parameters:
g - The graphic context in which to draw.
Overrides:
paint in class javax.swing.JComponent

update

public void update(java.awt.Graphics g)
Update painting without flickering.
Parameters:
g - The graphic context in which to draw.
Overrides:
update in class javax.swing.JComponent

drawBeads

private void drawBeads(java.awt.Graphics g)
Draw beads.
Parameters:
g - The graphic context in which to draw.

drawBorder

private void drawBorder(java.awt.Graphics g)
Draw borders.
Parameters:
g - The graphic context in which to draw.

drawRails

private void drawRails(java.awt.Graphics g)
Draw rail.
Parameters:
g - The graphic context in which to draw.

drawbead

private void drawbead(java.awt.Graphics g)
Draw bead.
Parameters:
g - The graphic context in which to draw.

clearbead

private void clearbead(java.awt.Graphics g)
Clears a bead.
Parameters:
g - The graphic context in which to draw.