summaryrefslogtreecommitdiffstats
path: root/src/jrummikub/view/impl/PlayerPanel.java
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-04-29 16:25:32 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-04-29 16:25:32 +0200
commit96cb7454884ed896c0e3305e86212a5c01240d5f (patch)
tree695e971405d3f9fda0d9f660222bbcf8d3f56e98 /src/jrummikub/view/impl/PlayerPanel.java
parent839e020f4bbd85a76a970cf7c56538a82e1075b6 (diff)
downloadJRummikub-96cb7454884ed896c0e3305e86212a5c01240d5f.tar
JRummikub-96cb7454884ed896c0e3305e86212a5c01240d5f.zip
Restructured view package
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@17 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/PlayerPanel.java')
-rw-r--r--src/jrummikub/view/impl/PlayerPanel.java185
1 files changed, 185 insertions, 0 deletions
diff --git a/src/jrummikub/view/impl/PlayerPanel.java b/src/jrummikub/view/impl/PlayerPanel.java
new file mode 100644
index 0000000..5c29e7e
--- /dev/null
+++ b/src/jrummikub/view/impl/PlayerPanel.java
@@ -0,0 +1,185 @@
+package jrummikub.view.impl;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.text.DecimalFormat;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+
+import jrummikub.util.Event;
+import jrummikub.util.IEvent;
+import jrummikub.view.IBoard;
+import jrummikub.view.IPlayerPanel;
+
+@SuppressWarnings("serial")
+public class PlayerPanel extends JPanel implements IPlayerPanel {
+ private final static DecimalFormat secondFormat = new DecimalFormat("00");
+
+ private Board board;
+
+ private JLabel currentPlayerNameLabel;
+ private JButton sortByNumberButton;
+ private JButton sortByColorButton;
+ private JProgressBar timeBar;
+ private JButton endTurnButton;
+
+ private Event sortByNumberEvent = new Event();
+ private Event sortByColorEvent = new Event();
+ private Event endTurnEvent = new Event();
+
+
+ @Override
+ public IBoard getBoard() {
+ return board;
+ }
+
+ @Override
+ public void setCurrentPlayerName(String playerName) {
+ currentPlayerNameLabel.setText(playerName);
+ }
+
+ @Override
+ public
+ void setTimeLeft(int time) {
+ timeBar.setValue(time);
+ timeBar.setString(Integer.toString(time/60) + ":" + secondFormat.format(time%60));
+ }
+
+ @Override
+ public IEvent getSortByNumberEvent() {
+ return sortByNumberEvent;
+ }
+
+ @Override
+ public IEvent getSortByColorEvent() {
+ return sortByColorEvent;
+ }
+
+ @Override
+ public IEvent getEndTurnEvent() {
+ return endTurnEvent;
+ }
+
+
+ JPanel createLeftPanel() {
+ JPanel panel = new JPanel();
+ panel.setPreferredSize(new Dimension(0, 0));
+ GridBagLayout layout = new GridBagLayout();
+ GridBagConstraints c = new GridBagConstraints();
+ panel.setLayout(layout);
+ panel.setOpaque(false);
+
+
+ currentPlayerNameLabel = new JLabel();
+ currentPlayerNameLabel.setHorizontalAlignment(JLabel.CENTER);
+ currentPlayerNameLabel.setHorizontalTextPosition(JLabel.CENTER);
+ currentPlayerNameLabel.setVerticalAlignment(JLabel.CENTER);
+ currentPlayerNameLabel.setVerticalTextPosition(JLabel.CENTER);
+ currentPlayerNameLabel.setPreferredSize(new Dimension(180, 30));
+ c.weightx = 0;
+ c.weighty = 1;
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ c.insets = new Insets(25, 0, 0, 0);
+ layout.setConstraints(currentPlayerNameLabel, c);
+ panel.add(currentPlayerNameLabel);
+
+ sortByNumberButton = new JButton("<html><center>Sort by<br>number");
+ sortByNumberButton.setPreferredSize(new Dimension(85, 50));
+ sortByNumberButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ sortByNumberEvent.fire();
+ }});
+
+ c.gridwidth = GridBagConstraints.RELATIVE;
+ c.gridheight = GridBagConstraints.REMAINDER;
+ c.insets = new Insets(15, 0, 20, 5);
+ layout.setConstraints(sortByNumberButton, c);
+ panel.add(sortByNumberButton);
+
+ sortByColorButton = new JButton("<html><center>Sort by<br>color");
+ sortByColorButton.setPreferredSize(new Dimension(85, 50));
+ sortByColorButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ sortByColorEvent.fire();
+ }});
+
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ c.insets = new Insets(15, 5, 20, 0);
+ layout.setConstraints(sortByColorButton, c);
+ panel.add(sortByColorButton);
+
+ return panel;
+ }
+
+ JPanel createRightPanel() {
+ JPanel panel = new JPanel();
+ panel.setPreferredSize(new Dimension(0, 0));
+ GridBagLayout layout = new GridBagLayout();
+ GridBagConstraints c = new GridBagConstraints();
+ panel.setLayout(layout);
+ panel.setOpaque(false);
+
+ timeBar = new JProgressBar(0, 60);
+ timeBar.setStringPainted(true);
+ timeBar.setPreferredSize(new Dimension(180, 30));
+ c.weightx = 0;
+ c.weighty = 1;
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ c.insets = new Insets(25, 0, 0, 0);
+ layout.setConstraints(timeBar, c);
+ panel.add(timeBar);
+
+ endTurnButton = new JButton("End turn");
+ endTurnButton.setPreferredSize(new Dimension(180, 50));
+ endTurnButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent arg0) {
+ endTurnEvent.fire();
+ }});
+
+ c.gridheight = GridBagConstraints.REMAINDER;
+ c.insets = new Insets(15, 0, 20, 0);
+ layout.setConstraints(endTurnButton, c);
+ panel.add(endTurnButton);
+
+ return panel;
+ }
+
+
+ PlayerPanel() {
+ GridBagLayout layout = new GridBagLayout();
+ GridBagConstraints c = new GridBagConstraints();
+ setLayout(layout);
+
+ setBackground(Color.LIGHT_GRAY);
+
+ JPanel leftPanel = createLeftPanel();
+ c.fill = GridBagConstraints.BOTH;
+ c.weightx = 1;
+ c.weighty = 1;
+ c.gridheight = GridBagConstraints.REMAINDER;
+ layout.setConstraints(leftPanel, c);
+ add(leftPanel);
+
+ board = new Board();
+ c.weightx = 3;
+ layout.setConstraints(board, c);
+ add(board);
+
+ JPanel rightPanel = createRightPanel();
+ c.weightx = 1;
+ c.gridwidth = GridBagConstraints.REMAINDER;
+ layout.setConstraints(rightPanel, c);
+ add(rightPanel);
+ }
+}