Changed view implementation to use Iterable of Pairs
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@129 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
e2f82f3f28
commit
50f1d6c05a
5 changed files with 22 additions and 22 deletions
|
@ -1,9 +1,8 @@
|
|||
package jrummikub.view;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import jrummikub.model.Position;
|
||||
import jrummikub.model.Stone;
|
||||
import jrummikub.util.Pair;
|
||||
|
||||
/**
|
||||
* The view for a player's hand that displays his stones
|
||||
|
@ -15,5 +14,5 @@ public interface IHandPanel extends IStonePanel, IClickable {
|
|||
* @param stones
|
||||
* the stones
|
||||
*/
|
||||
public void setStones(Map<Stone, Position> stones);
|
||||
public void setStones(Iterable<Pair<Stone, Position>> stones);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import java.awt.event.MouseAdapter;
|
|||
import java.awt.event.MouseEvent;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
|
||||
|
@ -30,7 +29,7 @@ abstract class AbstractStonePanel extends JPanel implements IStonePanel,
|
|||
private Event2<Stone, Boolean> rangeClickEvent = new Event2<Stone, Boolean>();
|
||||
private Event2<Stone, Boolean> setClickEvent = new Event2<Stone, Boolean>();
|
||||
|
||||
private Map<Stone, Position> stones = Collections.emptyMap();
|
||||
private Iterable<Pair<Stone, Position>> stones = Collections.emptySet();
|
||||
|
||||
/**
|
||||
* @return the stone painter
|
||||
|
@ -98,9 +97,9 @@ abstract class AbstractStonePanel extends JPanel implements IStonePanel,
|
|||
}
|
||||
|
||||
private Stone getStoneAt(Position pos) {
|
||||
for (Map.Entry<Stone, Position> entry : stones.entrySet()) {
|
||||
Stone stone = entry.getKey();
|
||||
Position p = entry.getValue();
|
||||
for (Pair<Stone, Position> entry : stones) {
|
||||
Stone stone = entry.getFirst();
|
||||
Position p = entry.getSecond();
|
||||
Rectangle2D rect = new Rectangle2D.Float(p.getX(), p.getY(), 1, 1);
|
||||
|
||||
if (rect.contains(pos.getX(), pos.getY()))
|
||||
|
@ -116,7 +115,7 @@ abstract class AbstractStonePanel extends JPanel implements IStonePanel,
|
|||
* @param stones
|
||||
* the stones and positions
|
||||
*/
|
||||
protected void setStones(Map<Stone, Position> stones) {
|
||||
protected void setStones(Iterable<Pair<Stone, Position>> stones) {
|
||||
this.stones = stones;
|
||||
}
|
||||
|
||||
|
@ -134,7 +133,7 @@ abstract class AbstractStonePanel extends JPanel implements IStonePanel,
|
|||
*
|
||||
* @return the stones
|
||||
*/
|
||||
protected Map<Stone, Position> getStones() {
|
||||
protected Iterable<Pair<Stone, Position>> getStones() {
|
||||
return stones;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import javax.swing.border.MatteBorder;
|
|||
|
||||
import jrummikub.model.Position;
|
||||
import jrummikub.model.Stone;
|
||||
import jrummikub.util.Pair;
|
||||
import jrummikub.view.IHandPanel;
|
||||
|
||||
/**
|
||||
|
@ -96,14 +97,14 @@ class HandPanel extends AbstractStonePanel implements IHandPanel {
|
|||
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
|
||||
RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
|
||||
for (Map.Entry<Stone, Position> entry : getStones().entrySet()) {
|
||||
getStonePainter().paintStone(g, entry.getKey(), entry.getValue(),
|
||||
selectedStones.contains(entry.getKey()));
|
||||
for (Pair<Stone, Position> entry : getStones()) {
|
||||
getStonePainter().paintStone(g, entry.getFirst(), entry.getSecond(),
|
||||
selectedStones.contains(entry.getFirst()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStones(Map<Stone, Position> stones) {
|
||||
public void setStones(Iterable<Pair<Stone, Position>> stones) {
|
||||
super.setStones(stones);
|
||||
repaint();
|
||||
}
|
||||
|
|
|
@ -4,15 +4,16 @@ import java.awt.Color;
|
|||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Insets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.border.EmptyBorder;
|
||||
|
||||
import jrummikub.model.Position;
|
||||
import jrummikub.model.Stone;
|
||||
import jrummikub.util.Pair;
|
||||
import jrummikub.view.IStoneCollectionPanel;
|
||||
|
||||
/**
|
||||
|
@ -61,11 +62,11 @@ class StoneCollectionPanel extends AbstractStonePanel implements
|
|||
void setSelectedStones(Collection<Stone> selectedStones) {
|
||||
this.selectedStones = selectedStones;
|
||||
|
||||
Map<Stone, Position> stones = new HashMap<Stone, Position>();
|
||||
List<Pair<Stone, Position>> stones = new ArrayList<Pair<Stone, Position>>();
|
||||
float x = 0;
|
||||
|
||||
for (Stone stone : selectedStones) {
|
||||
stones.put(stone, new Position(x, 0));
|
||||
stones.add(new Pair<Stone, Position>(stone, new Position(x, 0)));
|
||||
x++;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,10 +10,10 @@ import java.awt.event.ComponentEvent;
|
|||
import java.awt.event.ComponentListener;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JLabel;
|
||||
|
@ -78,13 +78,13 @@ class TablePanel extends AbstractStonePanel implements ITablePanel {
|
|||
|
||||
@Override
|
||||
public void setStoneSets(Iterable<Pair<StoneSet, Position>> stoneSets) {
|
||||
Map<Stone, Position> stones = new HashMap<Stone, Position>();
|
||||
List<Pair<Stone, Position>> stones = new ArrayList<Pair<Stone, Position>>();
|
||||
|
||||
for (Pair<StoneSet, Position> entry : stoneSets) {
|
||||
float x = entry.getSecond().getX(), y = entry.getSecond().getY();
|
||||
|
||||
for (Stone stone : entry.getFirst()) {
|
||||
stones.put(stone, new Position(x, y));
|
||||
stones.add(new Pair<Stone, Position>(stone, new Position(x, y)));
|
||||
x++;
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue