edu.udo.cs.ie.cowbots.ui
Class MapPanel

Package class diagram package MapPanel
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.udo.cs.ie.cowbots.ui.MapPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
MassimPanel

public class MapPanel
extends javax.swing.JPanel

a basic cell painting panel based upon a java swing jpanel.

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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  boolean autoScale
           
protected  java.util.ArrayList<java.util.ArrayList<DrawCell>> buffers
           
protected  java.util.List<CowCluster> clusters
           
protected  int mapX
           
protected  int mapY
           
protected  java.util.concurrent.locks.ReentrantLock paintLock
           
protected  java.util.List<java.awt.Point> pathpoints
           
protected  java.util.LinkedList<java.awt.Point> waypoints
           
 
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
MapPanel()
           
 
Method Summary
protected  void drawPathPoints(java.awt.Graphics2D g2, int cellX, int cellY)
           
 boolean getAutoScale()
          retrieve auto scale state
 int loadImage()
          loads an image with an optional colorkey for transparency
 void paintComponent(java.awt.Graphics g)
          map panels core drawing routine
protected  void prepareFrame()
          users can override this routine to set up local draw buffers before anything is drawn onto the underlying jpanel.
 void setAutoScale(boolean enable)
          enables or disables auto scaling. if enabled, each cell is resized that all cells covers the painting panel's screen area.
 void setClusterList(java.util.List<CowCluster> clusters)
           
 void setDrawBuffer(java.util.ArrayList<DrawCell> db)
          sets the first draw buffer to db
 void setDrawBuffer(java.util.ArrayList<DrawCell> db, int layer)
          sets a draw buffer to input
 void setMapSize(int width, int height)
          sets the dimension, in cells, of the draw panel. this data is used internally by some draw routines.
 void setPathPoints(java.util.List<java.awt.Point> path)
           
 void setWaypoints(java.util.LinkedList<java.awt.Point> wp)
           
 
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, 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
 

Field Detail

paintLock

protected java.util.concurrent.locks.ReentrantLock paintLock

buffers

protected java.util.ArrayList<java.util.ArrayList<DrawCell>> buffers

clusters

protected java.util.List<CowCluster> clusters

pathpoints

protected java.util.List<java.awt.Point> pathpoints

waypoints

protected java.util.LinkedList<java.awt.Point> waypoints

mapX

protected int mapX

mapY

protected int mapY

autoScale

protected boolean autoScale
Constructor Detail

MapPanel

public MapPanel()
Method Detail

setDrawBuffer

public void setDrawBuffer(java.util.ArrayList<DrawCell> db)
sets the first draw buffer to db

Parameters:
db -

setDrawBuffer

public void setDrawBuffer(java.util.ArrayList<DrawCell> db,
                          int layer)
sets a draw buffer to input

Parameters:
db - input draw commands
layer - internal draw buffer index

setMapSize

public void setMapSize(int width,
                       int height)
sets the dimension, in cells, of the draw panel. this data is used internally by some draw routines.

Parameters:
width - number of cells horizontally
height - number of cells vertically

setAutoScale

public void setAutoScale(boolean enable)
enables or disables auto scaling. if enabled, each cell is resized that all cells covers the painting panel's screen area.

Parameters:
enable - enables (true) or disables (false) auto scaling

getAutoScale

public boolean getAutoScale()
retrieve auto scale state

Returns:
state of auto scaling

paintComponent

public void paintComponent(java.awt.Graphics g)
map panels core drawing routine

Overrides:
paintComponent in class javax.swing.JComponent

prepareFrame

protected void prepareFrame()
users can override this routine to set up local draw buffers before anything is drawn onto the underlying jpanel.


loadImage

public int loadImage()
loads an image with an optional colorkey for transparency

Returns:

setClusterList

public void setClusterList(java.util.List<CowCluster> clusters)

setWaypoints

public void setWaypoints(java.util.LinkedList<java.awt.Point> wp)

setPathPoints

public void setPathPoints(java.util.List<java.awt.Point> path)

drawPathPoints

protected void drawPathPoints(java.awt.Graphics2D g2,
                              int cellX,
                              int cellY)