net.sf.magicproject.clickable.mana
Class ManaPool

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 net.sf.magicproject.clickable.mana.ManaPool
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class ManaPool
extends javax.swing.JPanel

Representes the mana pool of a player : 5 colored manas and one colorless mana. A graphic for each different mana is displayed with a jButton representing the amount of manas for this colored(less) mana. The normal order is : BLACK,BLUE,GREEN,RED,WHITE,COLORLESS, but if we consider the opponent case, we have a reversed order and a rotation of PI to do.

Since:
0.3 support reversed mana pictures for opponent, 0.81 mana buttons are reversed AS NEEDED
Author:
Fabrice Daugan
See Also:
IdCommonToken.COLORLESS_MANA, IdCommonToken.BLACK_MANA, IdCommonToken.BLUE_MANA, IdCommonToken.GREEN_MANA, IdCommonToken.RED_MANA, IdCommonToken.WHITE_MANA, Mana, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.BaselineResizeBehavior
 
Field Summary
 Mana[] manaButtons
          represents all colored mana, and colorless mana The order of MMana objects are stored in this array in this order : COLORLESS,BLACK,BLUE,GREEN,RED,WHITE
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
ManaPool(boolean reverseImage)
          Creates a new instance of MManas
 
Method Summary
 int addMana(int idColor, int idNumber, Test restriction)
          Add a number of mana of one color
 int allManas()
          Return the ammount of mana in the mana pool
 int allManas(Ability abilityRequest)
          Return the ammount of mana in the mana pool
static void clickOn(java.io.InputStream input)
          This method is invoked when opponent has clicked on mana. this call should be done from the net.sf.magicproject.network listener
 void disHighLight()
          Remove any color of the border
 int getMana(int idColor)
          Return the ammount of mana in the mana pool of one color
 int getMana(int idColor, Ability abilityRequest)
          Return the ammount of mana in the mana pool of one color
 int removeMana(int idColor, int idNumber, Ability abilityRequest)
          Remove a number of mana of one color
 int setToZero()
          Empty the mana pool
 int setToZero(int idColor)
          empty the mana pool of one color
 void updateReversed()
          Update the opponent side depending on the "enable reverse" options.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

manaButtons

public Mana[] manaButtons
represents all colored mana, and colorless mana The order of MMana objects are stored in this array in this order : COLORLESS,BLACK,BLUE,GREEN,RED,WHITE

Constructor Detail

ManaPool

public ManaPool(boolean reverseImage)
Creates a new instance of MManas

Parameters:
reverseImage - if true all mana pictures are flipped horizontally and vertically.
Method Detail

allManas

public int allManas()
Return the ammount of mana in the mana pool

Returns:
the ammount of mana in the mana pool

allManas

public int allManas(Ability abilityRequest)
Return the ammount of mana in the mana pool

Parameters:
abilityRequest - the ability containing action requesting this mana
Returns:
the ammount of mana in the mana pool

getMana

public int getMana(int idColor)
Return the ammount of mana in the mana pool of one color

Parameters:
idColor - is the mana's color
Returns:
the ammount of mana in the mana pool of this color

getMana

public int getMana(int idColor,
                   Ability abilityRequest)
Return the ammount of mana in the mana pool of one color

Parameters:
idColor - is the mana's color
abilityRequest - the ability containing action requesting this mana
Returns:
the ammount of mana in the mana pool of this color

setToZero

public int setToZero()
Empty the mana pool

Returns:
the ammount of mana removed from the mana pool

setToZero

public int setToZero(int idColor)
empty the mana pool of one color

Parameters:
idColor - empty the mana pool of this color
Returns:
the previous amount of mana

addMana

public int addMana(int idColor,
                   int idNumber,
                   Test restriction)
Add a number of mana of one color

Parameters:
idColor - is the color of the mana added
idNumber - is the number of mana added
restriction - the test defining mana usage
Returns:
the new amount of mana

removeMana

public int removeMana(int idColor,
                      int idNumber,
                      Ability abilityRequest)
Remove a number of mana of one color

Parameters:
idColor - is the color of the mana to add
idNumber - is the number of mana to remove
abilityRequest - the ability containing action requesting this mana
Returns:
the new amount of mana

clickOn

public static void clickOn(java.io.InputStream input)
                    throws java.io.IOException
This method is invoked when opponent has clicked on mana. this call should be done from the net.sf.magicproject.network listener

Parameters:
input - input stream of our net.sf.magicproject.network connection
Throws:
java.io.IOException - if error occurred when reading the message

disHighLight

public void disHighLight()
Remove any color of the border


updateReversed

public void updateReversed()
Update the opponent side depending on the "enable reverse" options. By default, nothing is done.



Copyright © 2003-2007 Magic-Project. All Rights Reserved.