summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/impl
diff options
context:
space:
mode:
Diffstat (limited to 'src/jrummikub/view/impl')
-rw-r--r--src/jrummikub/view/impl/ScorePanel.java82
1 files changed, 57 insertions, 25 deletions
diff --git a/src/jrummikub/view/impl/ScorePanel.java b/src/jrummikub/view/impl/ScorePanel.java
index e926294..5610368 100644
--- a/src/jrummikub/view/impl/ScorePanel.java
+++ b/src/jrummikub/view/impl/ScorePanel.java
@@ -1,12 +1,16 @@
package jrummikub.view.impl;
+import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
+import java.awt.Insets;
import java.util.Iterator;
+import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JPanel;
+import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.border.LineBorder;
@@ -20,9 +24,26 @@ class ScorePanel extends JPanel implements IScorePanel {
private Iterable<Score> scores;
private Score accumulatedScore;
+ private JScrollPane scrollPane;
+ private JPanel innerPanel;
+
public ScorePanel() {
- setLayout(new GridBagLayout());
setBorder(new LineBorder(Color.BLACK));
+ setLayout(new BorderLayout(0, 5));
+
+ JLabel titleLabel = new JLabel("Auswertung");
+ titleLabel.setHorizontalAlignment(JLabel.CENTER);
+ titleLabel.setFont(titleLabel.getFont().deriveFont(20.0f));
+ add(titleLabel, BorderLayout.NORTH);
+
+ innerPanel = new JPanel();
+ innerPanel.setLayout(new GridBagLayout());
+
+ scrollPane = new JScrollPane(innerPanel,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+
+ add(scrollPane);
}
@Override
@@ -42,35 +63,41 @@ class ScorePanel extends JPanel implements IScorePanel {
@Override
public void update() {
- this.removeAll();
-
+ innerPanel.removeAll();
+
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
+ c.weighty = 0.0;
c.gridwidth = GridBagConstraints.REMAINDER;
-
+
addPlayerNames();
- add(new JSeparator(), c);
-
+ innerPanel.add(new JSeparator(), c);
+
int n = 0;
for (Iterator<Score> it = scores.iterator(); it.hasNext();) {
addScoreRow(it.next(), ++n);
}
-
- add(new JSeparator(), c);
-
+
+ innerPanel.add(new JSeparator(), c);
+
addAccumulatedScore();
+
+ c.weighty = 1;
+ innerPanel.add(Box.createVerticalGlue(), c);
}
private void addPlayerNames() {
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
-
+ c.weighty = 0.0;
+ c.insets = new Insets(0, 7, 0, 7);
+
JLabel roundHead = new JLabel("Runde");
roundHead.setHorizontalAlignment(JLabel.CENTER);
- add(roundHead, c);
+ innerPanel.add(roundHead, c);
for (Iterator<PlayerSettings> it = players.iterator(); it.hasNext();) {
PlayerSettings player = it.next();
@@ -83,8 +110,8 @@ class ScorePanel extends JPanel implements IScorePanel {
playerNameLabel.setIcon(ImageUtil.createColorIcon(player.getColor(), 12,
1));
playerNameLabel.setHorizontalAlignment(JLabel.CENTER);
-
- add(playerNameLabel, c);
+
+ innerPanel.add(playerNameLabel, c);
}
}
@@ -92,20 +119,22 @@ class ScorePanel extends JPanel implements IScorePanel {
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
+ c.weighty = 0.0;
c.gridwidth = 1;
-
+ c.insets = new Insets(0, 7, 0, 7);
+
JLabel roundLabel = new JLabel(Integer.toString(n));
roundLabel.setHorizontalAlignment(JLabel.CENTER);
- add(roundLabel, c);
+ innerPanel.add(roundLabel, c);
for (int i = 0; i < score.getPoints().size(); ++i) {
- if (i == score.getPoints().size()-1) {
+ if (i == score.getPoints().size() - 1) {
c.gridwidth = GridBagConstraints.REMAINDER;
}
-
+
JLabel scoreLabel = new JLabel(Integer.toString(score.getPoints().get(i)));
scoreLabel.setHorizontalAlignment(JLabel.CENTER);
- add(scoreLabel, c);
+ innerPanel.add(scoreLabel, c);
}
}
@@ -113,19 +142,22 @@ class ScorePanel extends JPanel implements IScorePanel {
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
-
+ c.weighty = 0.0;
+ c.insets = new Insets(0, 7, 0, 7);
+
JLabel accumLabel = new JLabel("Gesamt");
accumLabel.setHorizontalAlignment(JLabel.CENTER);
- add(accumLabel, c);
-
+ innerPanel.add(accumLabel, c);
+
for (int i = 0; i < accumulatedScore.getPoints().size(); ++i) {
- if (i == accumulatedScore.getPoints().size()-1) {
+ if (i == accumulatedScore.getPoints().size() - 1) {
c.gridwidth = GridBagConstraints.REMAINDER;
}
-
- JLabel scoreLabel = new JLabel(Integer.toString(accumulatedScore.getPoints().get(i)));
+
+ JLabel scoreLabel = new JLabel(Integer.toString(accumulatedScore
+ .getPoints().get(i)));
scoreLabel.setHorizontalAlignment(JLabel.CENTER);
- add(scoreLabel, c);
+ innerPanel.add(scoreLabel, c);
}
}
}