diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-08 21:58:16 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2011-06-08 21:58:16 +0200 |
commit | 45d5b3ae10ed8cfbecb5489636093c6fb0576970 (patch) | |
tree | 1aa1c012f46fe204d997e8c6896940800f5461bb /src/jrummikub/view/impl/PlayerPanel.java | |
parent | 2e376414b941da3c6fa3c20ddad085c695175542 (diff) | |
download | JRummikub-45d5b3ae10ed8cfbecb5489636093c6fb0576970.tar JRummikub-45d5b3ae10ed8cfbecb5489636093c6fb0576970.zip |
Implement pause function
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@390 72836036-5685-4462-b002-a69064685172
Diffstat (limited to 'src/jrummikub/view/impl/PlayerPanel.java')
-rw-r--r-- | src/jrummikub/view/impl/PlayerPanel.java | 146 |
1 files changed, 83 insertions, 63 deletions
diff --git a/src/jrummikub/view/impl/PlayerPanel.java b/src/jrummikub/view/impl/PlayerPanel.java index dcd22ed..d69323f 100644 --- a/src/jrummikub/view/impl/PlayerPanel.java +++ b/src/jrummikub/view/impl/PlayerPanel.java @@ -53,11 +53,13 @@ class PlayerPanel extends JPanel implements IPlayerPanel { private JButton endTurnButton; private JButton keepStonesButton; private JButton redealButton; + private JButton pauseButton; private Event sortByGroupsEvent = new Event(); private Event sortByRunsEvent = new Event(); private Event endTurnEvent = new Event(); private Event redealEvent = new Event(); + private Event pauseEvent = new Event(); HandPanel getHandPanel() { return hand; @@ -117,6 +119,10 @@ class PlayerPanel extends JPanel implements IPlayerPanel { return redealEvent; } + IEvent getPauseEvent() { + return pauseEvent; + } + private void createLeftPanel() { leftPanel = new JPanel(); leftPanel.setLayout(null); @@ -206,6 +212,13 @@ class PlayerPanel extends JPanel implements IPlayerPanel { redealEvent.emit(); } }); + + pauseButton = createButton(rightPanel, null, new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + pauseEvent.emit(); + } + }); } private JButton createButton(JPanel panel, String caption, @@ -271,6 +284,67 @@ class PlayerPanel extends JPanel implements IPlayerPanel { hand.addComponentListener(rescaleListener); } + @Override + public void setEndTurnMode(TurnMode turnMode) { + + switch (turnMode) { + case MAY_REDEAL: + endTurnButton.setVisible(false); + keepStonesButton.setVisible(true); + redealButton.setVisible(true); + break; + case INSPECT_ONLY: + endTurnButton.setText("N\u00e4chster Spieler"); + endTurnButton.setVisible(true); + keepStonesButton.setVisible(false); + redealButton.setVisible(false); + break; + case NORMAL_TURN: + endTurnButton.setText("Zug beenden"); + endTurnButton.setVisible(true); + keepStonesButton.setVisible(false); + redealButton.setVisible(false); + break; + } + } + + void showButtons(boolean show) { + currentPlayerNameLabel.setVisible(show); + hasLaidOutLabel.setVisible(show); + sortByGroupsButton.setVisible(show); + sortByRunsButton.setVisible(show); + timeBar.setVisible(show); + pauseButton.setVisible(show); + + if (!show) { + handRowDownButton.setForeground(Color.GRAY); + handRowDownButton.setEnabled(false); + handRowUpButton.setForeground(Color.GRAY); + handRowUpButton.setEnabled(false); + endTurnButton.setVisible(false); + redealButton.setVisible(false); + keepStonesButton.setVisible(false); + } + } + + void enableButtons(boolean enable) { + sortByGroupsButton.setEnabled(enable); + sortByRunsButton.setEnabled(enable); + if (!enable) { + setEndTurnMode(TurnMode.NORMAL_TURN); + endTurnButton.setText("<html><center>Computer denkt nach"); + hand.setStones(Collections.<Pair<Stone, Position>> emptyList()); + handRowDownButton.setForeground(Color.GRAY); + handRowDownButton.setEnabled(false); + handRowUpButton.setForeground(Color.GRAY); + handRowUpButton.setEnabled(false); + } + endTurnButton.setEnabled(enable); + redealButton.setEnabled(enable); + keepStonesButton.setEnabled(enable); + hand.setEnabled(enable); + } + private class LeftPanelResizeListener extends ComponentAdapter { @Override public void componentResized(ComponentEvent e) { @@ -341,10 +415,16 @@ class PlayerPanel extends JPanel implements IPlayerPanel { fontSize * 1.5f)); handRowDownButton.setBounds(0, getHeight() / 2, handButtonWidth, getHeight() / 2); - handRowDownButton.setFont(handRowDownButton.getFont().deriveFont( - fontSize * 1.5f)); + handRowDownButton.setFont(handRowDownButton.getFont() + .deriveFont(fontSize)); + + timeBar.setBounds(x, y, width - firstLineHeight - SIDE_PANEL_SEPARATOR, + firstLineHeight); + pauseButton.setBounds(x + width - firstLineHeight, y, firstLineHeight, + firstLineHeight); + pauseButton.setIcon(ImageUtil + .createPauseIcon((int) (firstLineHeight * 0.5f))); - timeBar.setBounds(x, y, width, firstLineHeight); endTurnButton.setBounds(x, y + firstLineHeight + SIDE_PANEL_SEPARATOR, buttonWidth, buttonHeight); endTurnButton.setFont(endTurnButton.getFont().deriveFont(fontSize)); @@ -360,64 +440,4 @@ class PlayerPanel extends JPanel implements IPlayerPanel { } } - - @Override - public void setEndTurnMode(TurnMode turnMode) { - - switch (turnMode) { - case MAY_REDEAL: - endTurnButton.setVisible(false); - keepStonesButton.setVisible(true); - redealButton.setVisible(true); - break; - case INSPECT_ONLY: - endTurnButton.setText("N\u00e4chster Spieler"); - endTurnButton.setVisible(true); - keepStonesButton.setVisible(false); - redealButton.setVisible(false); - break; - case NORMAL_TURN: - endTurnButton.setText("Zug beenden"); - endTurnButton.setVisible(true); - keepStonesButton.setVisible(false); - redealButton.setVisible(false); - break; - } - } - - void showButtons(boolean show) { - currentPlayerNameLabel.setVisible(show); - hasLaidOutLabel.setVisible(show); - sortByGroupsButton.setVisible(show); - sortByRunsButton.setVisible(show); - timeBar.setVisible(show); - - if (!show) { - handRowDownButton.setForeground(Color.GRAY); - handRowDownButton.setEnabled(false); - handRowUpButton.setForeground(Color.GRAY); - handRowUpButton.setEnabled(false); - endTurnButton.setVisible(false); - redealButton.setVisible(false); - keepStonesButton.setVisible(false); - } - } - - void enableButtons(boolean enable) { - sortByGroupsButton.setEnabled(enable); - sortByRunsButton.setEnabled(enable); - if (!enable) { - setEndTurnMode(TurnMode.NORMAL_TURN); - endTurnButton.setText("<html><center>Computer denkt nach"); - hand.setStones(Collections.<Pair<Stone, Position>> emptyList()); - handRowDownButton.setForeground(Color.GRAY); - handRowDownButton.setEnabled(false); - handRowUpButton.setForeground(Color.GRAY); - handRowUpButton.setEnabled(false); - } - endTurnButton.setEnabled(enable); - redealButton.setEnabled(enable); - keepStonesButton.setEnabled(enable); - hand.setEnabled(enable); - } } |