summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jrummikub/control/AbstractSettingsControl.java9
-rw-r--r--src/jrummikub/view/ISettingsPanel.java2
-rw-r--r--src/jrummikub/view/impl/SettingsPanel.java12
-rw-r--r--src/jrummikub/view/impl/SidePanel.java19
4 files changed, 35 insertions, 7 deletions
diff --git a/src/jrummikub/control/AbstractSettingsControl.java b/src/jrummikub/control/AbstractSettingsControl.java
index 7a38478..ee0c96c 100644
--- a/src/jrummikub/control/AbstractSettingsControl.java
+++ b/src/jrummikub/control/AbstractSettingsControl.java
@@ -168,6 +168,15 @@ public abstract class AbstractSettingsControl {
update();
}
}));
+
+ connections.add(view.getSettingsPanel().getChangeSeeHandSizeEvent()
+ .add(new IListener1<Boolean>() {
+ @Override
+ public void handle(Boolean value) {
+ settings.setSeeHandSize(value);
+ update();
+ }
+ }));
}
/**
diff --git a/src/jrummikub/view/ISettingsPanel.java b/src/jrummikub/view/ISettingsPanel.java
index f84e21b..26f5737 100644
--- a/src/jrummikub/view/ISettingsPanel.java
+++ b/src/jrummikub/view/ISettingsPanel.java
@@ -245,7 +245,7 @@ public interface ISettingsPanel {
*/
public void setPlayerColors(Set<Color> colors);
- public IEvent1<Boolean> getChangeSeeHandSize();
+ public IEvent1<Boolean> getChangeSeeHandSizeEvent();
/**
* Specifies the different kinds of settings errors that can be displayed
diff --git a/src/jrummikub/view/impl/SettingsPanel.java b/src/jrummikub/view/impl/SettingsPanel.java
index 1560719..bbd5262 100644
--- a/src/jrummikub/view/impl/SettingsPanel.java
+++ b/src/jrummikub/view/impl/SettingsPanel.java
@@ -216,7 +216,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
}
@Override
- public IEvent1<Boolean> getChangeSeeHandSize() {
+ public IEvent1<Boolean> getChangeSeeHandSizeEvent() {
return changeSeeHandSizeEvent;
}
@@ -356,7 +356,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
.setText(Integer.toString(gameSettings.getJokerNumber()));
timeLabel.setText(gameSettings.getTotalTime() + " Sekunden");
noLimitsLabel.setText(gameSettings.isNoLimits() ? "An" : "Aus");
- //seeHandSizeLabel.setText(gameSettings.doSeeHandSize() ? "An" : "Aus");
+ seeHandSizeLabel.setText(gameSettings.doSeeHandSize() ? "An" : "Aus");
colorLabelPanel.removeAll();
@@ -503,9 +503,10 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
makeOptionLabel(row++, "No Limits:");
noLimitsLabel = new JLabel();
noLimitsBox = createOptionCheckbox(changeNoLimitsEvent);
- seeHandSizeBox = createOptionCheckbox(changeSeeHandSizeEvent);
- makeOptionLabel(row++, "Steinanzahl anzeigen");
+ makeOptionLabel(row++, "Steinanzahl anzeigen:");
+ seeHandSizeLabel = new JLabel();
+ seeHandSizeBox = createOptionCheckbox(changeSeeHandSizeEvent);
makeOptionLabel(row, "Steinfarben:");
createColorSelectionPanel();
@@ -532,6 +533,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
optionsPanel.remove(noLimitsBox);
optionsPanel.remove(noLimitsLabel);
optionsPanel.remove(seeHandSizeBox);
+ optionsPanel.remove(seeHandSizeLabel);
optionsPanel.remove(colorSelectionPanel);
optionsPanel.remove(colorLabelPanel);
@@ -565,7 +567,7 @@ class SettingsPanel extends JPanel implements ISettingsPanel {
addOptionPanelComponent(jokerNumberLabel, false, row++);
addOptionPanelComponent(timeLabel, false, row++);
addOptionPanelComponent(noLimitsLabel, false, row++);
- addOptionPanelComponent(seeHandSizeBox, false, row++);
+ addOptionPanelComponent(seeHandSizeLabel, false, row++);
addOptionPanelComponent(colorLabelPanel, false, row++);
}
diff --git a/src/jrummikub/view/impl/SidePanel.java b/src/jrummikub/view/impl/SidePanel.java
index 88f5d64..facf430 100644
--- a/src/jrummikub/view/impl/SidePanel.java
+++ b/src/jrummikub/view/impl/SidePanel.java
@@ -52,6 +52,7 @@ class SidePanel extends JPanel implements ISidePanel {
private JLabel noLimitsLabel;
private JLabel colorLabel;
private JProgressBar heapBar;
+ private GameSettings gameSettings;
public SidePanel() {
setLayout(new GridBagLayout());
@@ -82,6 +83,7 @@ class SidePanel extends JPanel implements ISidePanel {
@Override
public void setGameSettings(GameSettings settings) {
+ gameSettings = settings;
initialMeldLabel.setText("" + settings.getInitialMeldThreshold());
setNumberLabel.setText("" + settings.getStoneSetNumber());
highestValueLabel.setText("1 - " + settings.getHighestValue());
@@ -332,7 +334,7 @@ class SidePanel extends JPanel implements ISidePanel {
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
- c.gridheight = 2;
+ c.gridheight = gameSettings.doSeeHandSize() ? 3 : 2;
c.weighty = 1;
c.insets = new Insets(4, 4, 4, 4);
playerColor = new JLabel(ImageUtil.createColorIcon(
@@ -342,6 +344,7 @@ class SidePanel extends JPanel implements ISidePanel {
c.gridx = 1;
c.gridy = 0;
c.gridheight = 1;
+ c.gridwidth = 2;
c.weightx = 1;
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(2, 2, 2, 2);
@@ -372,6 +375,20 @@ class SidePanel extends JPanel implements ISidePanel {
playerStatus = new JLabel(status);
add(playerStatus, c);
+
+ if (gameSettings.doSeeHandSize()) {
+ JLabel handSizeLabel = new JLabel("Handsteine: ");
+ JLabel handSizeInfo = new JLabel("" + player.getHand().getSize());
+ c.gridy = 2;
+ c.gridwidth = 1;
+ add(handSizeLabel, c);
+
+ c.gridx = 2;
+ c.weightx = 0;
+ c.insets = new Insets(2, 4, 2, 4);
+ c.anchor = GridBagConstraints.EAST;
+ add(handSizeInfo, c);
+ }
}
}