<IMGSRC="../../../resources/inherit.gif"ALT="extended by ">java.awt.Component
<IMGSRC="../../../resources/inherit.gif"ALT="extended by ">java.awt.Container
<IMGSRC="../../../resources/inherit.gif"ALT="extended by ">javax.swing.JComponent
<IMGSRC="../../../resources/inherit.gif"ALT="extended by ">javax.swing.JPanel
<IMGSRC="../../../resources/inherit.gif"ALT="extended by "><B>jrummikub.view.impl.AbstractStonePanel</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B><DD>java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, <AHREF="../../../jrummikub/view/IClickable.html"title="interface in jrummikub.view">IClickable</A>, <AHREF="../../../jrummikub/view/IStonePanel.html"title="interface in jrummikub.view">IStonePanel</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B><DD><AHREF="../../../jrummikub/view/impl/HandPanel.html"title="class in jrummikub.view.impl">HandPanel</A>, <AHREF="../../../jrummikub/view/impl/StoneCollectionPanel.html"title="class in jrummikub.view.impl">StoneCollectionPanel</A>, <AHREF="../../../jrummikub/view/impl/TablePanel.html"title="class in jrummikub.view.impl">TablePanel</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>abstract class <B>AbstractStonePanel</B><DT>extends javax.swing.JPanel<DT>implements <AHREF="../../../jrummikub/view/IStonePanel.html"title="interface in jrummikub.view">IStonePanel</A>, <AHREF="../../../jrummikub/view/IClickable.html"title="interface in jrummikub.view">IClickable</A></DL>
<CODE>private <AHREF="../../../jrummikub/util/Event1.html"title="class in jrummikub.util">Event1</A><<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>></CODE></FONT></TD>
<CODE>private <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean></CODE></FONT></TD>
<CODE>private <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean></CODE></FONT></TD>
<CODE>private <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean></CODE></FONT></TD>
<CODE>private java.lang.Iterable<<AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>></CODE></FONT></TD>
<CODE> <AHREF="../../../jrummikub/util/Event1.html"title="class in jrummikub.util">Event1</A><<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>></CODE></FONT></TD>
<CODE> <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean></CODE></FONT></TD>
<CODE> <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean></CODE></FONT></TD>
<CODE>private <AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A></CODE></FONT></TD>
<TD><CODE><B><AHREF="../../../jrummikub/view/impl/AbstractStonePanel.html#getStoneAt(jrummikub.model.Position)">getStoneAt</A></B>(<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos)</CODE>
<BR>
Gets the stone at the specified position</TD>
<CODE> <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean></CODE></FONT></TD>
<CODE>protected java.lang.Iterable<<AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>></CODE></FONT></TD>
<CODE>protected <AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,java.lang.Integer></CODE></FONT></TD>
<TD><CODE><B><AHREF="../../../jrummikub/view/impl/AbstractStonePanel.html#handleOtherClickEvent(jrummikub.model.Position)">handleOtherClickEvent</A></B>(<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos)</CODE>
<BR>
Overwrite this method to signal if special zone was clicked</TD>
<TD><CODE><B><AHREF="../../../jrummikub/view/impl/AbstractStonePanel.html#handleOtherMoveEvent(jrummikub.model.Position)">handleOtherMoveEvent</A></B>(<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos)</CODE>
<BR>
Overwrite this method to signal if special zone was hovered</TD>
<TD><CODE><B><AHREF="../../../jrummikub/view/impl/AbstractStonePanel.html#setHoveredStone(jrummikub.model.Stone)">setHoveredStone</A></B>(<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A> stone)</CODE>
<BR>
Sets the stone over which the cursor hovers</TD>
<TD><CODE><B><AHREF="../../../jrummikub/view/impl/AbstractStonePanel.html#setStones(java.lang.Iterable)">setStones</A></B>(java.lang.Iterable<<AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>> stones)</CODE>
<BR>
Sets the list of stones that can be clicked on</TD>
private <AHREF="../../../jrummikub/view/impl/StonePainter.html"title="class in jrummikub.view.impl">StonePainter</A><B>stonePainter</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<ANAME="clickEvent"><!----></A><H3>
clickEvent</H3>
<PRE>
private <AHREF="../../../jrummikub/util/Event1.html"title="class in jrummikub.util">Event1</A><<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>><B>clickEvent</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<ANAME="stoneClickEvent"><!----></A><H3>
stoneClickEvent</H3>
<PRE>
private <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean><B>stoneClickEvent</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<ANAME="rangeClickEvent"><!----></A><H3>
rangeClickEvent</H3>
<PRE>
private <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean><B>rangeClickEvent</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<ANAME="setClickEvent"><!----></A><H3>
setClickEvent</H3>
<PRE>
private <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean><B>setClickEvent</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<ANAME="stones"><!----></A><H3>
stones</H3>
<PRE>
private java.lang.Iterable<<AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>><B>stones</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<ANAME="hoveredStone"><!----></A><H3>
hoveredStone</H3>
<PRE>
private <AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A><B>hoveredStone</B></PRE>
<DT><B>Parameters:</B><DD><CODE>p</CODE> - the point in component coordinates<DD><CODE>clickCount</CODE> - the click count<DD><CODE>shift</CODE> - is shift down?<DD><CODE>control</CODE> - is control down?<DD><CODE>alt</CODE> - is alt down?</DL>
protected boolean <B>handleOtherClickEvent</B>(<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos)</PRE>
<DL>
<DD>Overwrite this method to signal if special zone was clicked
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pos</CODE> - the clicked position
protected void <B>handleOtherMoveEvent</B>(<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos)</PRE>
<DL>
<DD>Overwrite this method to signal if special zone was hovered
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pos</CODE> - the hovered position</DL>
private <AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A><B>getStoneAt</B>(<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos)</PRE>
<DL>
<DD>Gets the stone at the specified position
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pos</CODE> - position
protected void <B>setStones</B>(java.lang.Iterable<<AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>> stones)</PRE>
<DL>
<DD>Sets the list of stones that can be clicked on
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>stones</CODE> - the stones and positions</DL>
</DD>
</DL>
<HR>
<ANAME="getTranslation()"><!----></A><H3>
getTranslation</H3>
<PRE>
protected <AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,java.lang.Integer><B>getTranslation</B>()</PRE>
protected java.lang.Iterable<<AHREF="../../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>><B>getStones</B>()</PRE>
<DL>
<DD>Returns the list of stones and positions currently set
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the stones</DL>
</DD>
</DL>
<HR>
<ANAME="getClickEvent()"><!----></A><H3>
getClickEvent</H3>
<PRE>
public <AHREF="../../../jrummikub/util/Event1.html"title="class in jrummikub.util">Event1</A><<AHREF="../../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>><B>getClickEvent</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../../jrummikub/view/IClickable.html#getClickEvent()">IClickable</A></CODE></B></DD>
<DD>the click event is emitted when the player clicks on the table/hand/etc.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../../jrummikub/view/IClickable.html#getClickEvent()">getClickEvent</A></CODE> in interface <CODE><AHREF="../../../jrummikub/view/IClickable.html"title="interface in jrummikub.view">IClickable</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the event; the first parameter is the position of the click in grid
coordinates, the second is true when the player wants to add stones
to his selection instead of replacing them</DL>
</DD>
</DL>
<HR>
<ANAME="getStoneClickEvent()"><!----></A><H3>
getStoneClickEvent</H3>
<PRE>
public <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean><B>getStoneClickEvent</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../../jrummikub/view/IStonePanel.html#getStoneClickEvent()">IStonePanel</A></CODE></B></DD>
<DD>the click event is emitted when the player clicks on the table/hand/etc.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../../jrummikub/view/IStonePanel.html#getStoneClickEvent()">getStoneClickEvent</A></CODE> in interface <CODE><AHREF="../../../jrummikub/view/IStonePanel.html"title="interface in jrummikub.view">IStonePanel</A></CODE></DL>
public <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean><B>getRangeClickEvent</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../../jrummikub/view/IStonePanel.html#getRangeClickEvent()">IStonePanel</A></CODE></B></DD>
<DD>the range click event is emitted when the player clicks on the table/hand/
etc. and wants to select a range instead of a single stone
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../../jrummikub/view/IStonePanel.html#getRangeClickEvent()">getRangeClickEvent</A></CODE> in interface <CODE><AHREF="../../../jrummikub/view/IStonePanel.html"title="interface in jrummikub.view">IStonePanel</A></CODE></DL>
public <AHREF="../../../jrummikub/util/Event2.html"title="class in jrummikub.util">Event2</A><<AHREF="../../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,java.lang.Boolean><B>getSetClickEvent</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../../jrummikub/view/IStonePanel.html#getSetClickEvent()">IStonePanel</A></CODE></B></DD>
<DD>the set click event is emitted when the player clicks on the table/hand/
etc. and wants to select a whole set instead of a single stone
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../../jrummikub/view/IStonePanel.html#getSetClickEvent()">getSetClickEvent</A></CODE> in interface <CODE><AHREF="../../../jrummikub/view/IStonePanel.html"title="interface in jrummikub.view">IStonePanel</A></CODE></DL>