Moved displaying of win panel in game control
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@270 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
79bffeba5d
commit
6df3d5fe32
7 changed files with 50 additions and 40 deletions
|
@ -32,7 +32,7 @@ public class MockView implements IView {
|
|||
/** */
|
||||
public MockEvent quitEvent = new MockEvent();
|
||||
/** */
|
||||
public MockEvent newGameEvent = new MockEvent();
|
||||
public MockEvent newRoundEvent = new MockEvent();
|
||||
|
||||
@Override
|
||||
public MockTablePanel getTablePanel() {
|
||||
|
@ -75,13 +75,13 @@ public class MockView implements IView {
|
|||
}
|
||||
|
||||
@Override
|
||||
public IEvent getQuitEvent() {
|
||||
public IEvent getFinalScoreEvent() {
|
||||
return quitEvent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEvent getNewGameEvent() {
|
||||
return newGameEvent;
|
||||
public IEvent getNewRoundEvent() {
|
||||
return newRoundEvent;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,13 @@
|
|||
package jrummikub.control;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import jrummikub.model.GameSettings;
|
||||
import jrummikub.model.GameState;
|
||||
import jrummikub.model.IRoundState;
|
||||
import jrummikub.model.RoundState;
|
||||
import jrummikub.util.Connection;
|
||||
import jrummikub.util.IListener;
|
||||
import jrummikub.view.IView;
|
||||
|
||||
|
@ -15,6 +19,7 @@ public class GameControl {
|
|||
private IView view;
|
||||
private RoundControl roundControl;
|
||||
private GameState gameState;
|
||||
private List<Connection> connections = new ArrayList<Connection>();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
@ -31,18 +36,18 @@ public class GameControl {
|
|||
gameState = new GameState();
|
||||
gameState.setFirstRoundFirstPlayer((int)(Math.random() * gameSettings.getPlayerList().size()));
|
||||
|
||||
view.getNewGameEvent().add(new IListener() {
|
||||
connections.add(view.getNewRoundEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
startRound();
|
||||
}
|
||||
});
|
||||
view.getQuitEvent().add(new IListener() {
|
||||
}));
|
||||
connections.add(view.getFinalScoreEvent().add(new IListener() {
|
||||
@Override
|
||||
public void handle() {
|
||||
quitProgram();
|
||||
finalScore();
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -67,14 +72,19 @@ public class GameControl {
|
|||
|
||||
@Override
|
||||
public void handle() {
|
||||
roundControl = null;
|
||||
endOfRound();
|
||||
}
|
||||
});
|
||||
|
||||
roundControl.startRound();
|
||||
}
|
||||
|
||||
private void quitProgram() {
|
||||
private void endOfRound() {
|
||||
roundControl = null;
|
||||
view.enableWinPanel(true);
|
||||
}
|
||||
|
||||
private void finalScore() {
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -242,7 +242,6 @@ public class RoundControl {
|
|||
c.remove();
|
||||
}
|
||||
endOfRoundEvent.emit();
|
||||
view.enableWinPanel(true);
|
||||
roundFinished = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,12 +72,12 @@ public interface IView {
|
|||
*
|
||||
* @return the event
|
||||
*/
|
||||
IEvent getQuitEvent();
|
||||
IEvent getFinalScoreEvent();
|
||||
|
||||
/**
|
||||
* The new game event is emitted when the player wants to start a new game
|
||||
* The new round event is emitted when the player wants to start a new round
|
||||
*
|
||||
* @return the event
|
||||
*/
|
||||
IEvent getNewGameEvent();
|
||||
IEvent getNewRoundEvent();
|
||||
}
|
||||
|
|
|
@ -136,13 +136,13 @@ public class View extends JFrame implements IView {
|
|||
}
|
||||
|
||||
@Override
|
||||
public IEvent getNewGameEvent() {
|
||||
return winPanel.getNewGameEvent();
|
||||
public IEvent getNewRoundEvent() {
|
||||
return winPanel.getNewRoundEvent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEvent getQuitEvent() {
|
||||
return winPanel.getQuitEvent();
|
||||
public IEvent getFinalScoreEvent() {
|
||||
return winPanel.getFinalScoreEvent();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -26,11 +26,11 @@ class WinPanel extends JPanel {
|
|||
private final static float MAX_BUTTON_FONT_SIZE = 12;
|
||||
|
||||
private JLabel winLabel;
|
||||
private JButton newGameButton;
|
||||
private JButton quitButton;
|
||||
private JButton newRoundButton;
|
||||
private JButton finalScoreButton;
|
||||
|
||||
private Event quitEvent = new Event();
|
||||
private Event newGameEvent = new Event();
|
||||
private Event finalScoreEvent = new Event();
|
||||
private Event newRoundEvent = new Event();
|
||||
|
||||
/**
|
||||
* Creates a new WinPanel
|
||||
|
@ -47,23 +47,23 @@ class WinPanel extends JPanel {
|
|||
winLabel.setVerticalTextPosition(JLabel.CENTER);
|
||||
add(winLabel);
|
||||
|
||||
newGameButton = new JButton("Neues Spiel");
|
||||
newGameButton.addActionListener(new ActionListener() {
|
||||
newRoundButton = new JButton("Neue Runde");
|
||||
newRoundButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
newGameEvent.emit();
|
||||
newRoundEvent.emit();
|
||||
}
|
||||
});
|
||||
add(newGameButton);
|
||||
add(newRoundButton);
|
||||
|
||||
quitButton = new JButton("Beenden");
|
||||
quitButton.addActionListener(new ActionListener() {
|
||||
finalScoreButton = new JButton("Endauswertung");
|
||||
finalScoreButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
quitEvent.emit();
|
||||
finalScoreEvent.emit();
|
||||
}
|
||||
});
|
||||
add(quitButton);
|
||||
add(finalScoreButton);
|
||||
|
||||
addComponentListener(new ComponentAdapter() {
|
||||
@Override
|
||||
|
@ -84,12 +84,12 @@ class WinPanel extends JPanel {
|
|||
}
|
||||
|
||||
/**
|
||||
* The new game event is emitted when the player wants to start a new game
|
||||
* The new round event is emitted when the player wants to start a new round
|
||||
*
|
||||
* @return the event
|
||||
*/
|
||||
IEvent getNewGameEvent() {
|
||||
return newGameEvent;
|
||||
IEvent getNewRoundEvent() {
|
||||
return newRoundEvent;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -97,8 +97,8 @@ class WinPanel extends JPanel {
|
|||
*
|
||||
* @return the event
|
||||
*/
|
||||
IEvent getQuitEvent() {
|
||||
return quitEvent;
|
||||
IEvent getFinalScoreEvent() {
|
||||
return finalScoreEvent;
|
||||
}
|
||||
|
||||
private void rescale() {
|
||||
|
@ -119,12 +119,12 @@ class WinPanel extends JPanel {
|
|||
fontSize = MAX_BUTTON_FONT_SIZE;
|
||||
|
||||
winLabel.setBounds(x, y, width, firstLineHeight);
|
||||
newGameButton.setBounds(x, y + firstLineHeight + PANEL_SEPARATOR,
|
||||
newRoundButton.setBounds(x, y + firstLineHeight + PANEL_SEPARATOR,
|
||||
buttonWidth, buttonHeight);
|
||||
newGameButton.setFont(newGameButton.getFont().deriveFont(fontSize));
|
||||
newRoundButton.setFont(newRoundButton.getFont().deriveFont(fontSize));
|
||||
|
||||
quitButton.setBounds(x + buttonWidth + PANEL_SEPARATOR, y + firstLineHeight
|
||||
finalScoreButton.setBounds(x + buttonWidth + PANEL_SEPARATOR, y + firstLineHeight
|
||||
+ PANEL_SEPARATOR, buttonWidth, buttonHeight);
|
||||
quitButton.setFont(quitButton.getFont().deriveFont(fontSize));
|
||||
finalScoreButton.setFont(finalScoreButton.getFont().deriveFont(fontSize));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -155,6 +155,7 @@ public class RoundControlTest {
|
|||
assertEquals(14 + 6, hand.getSize());
|
||||
}
|
||||
|
||||
/** */
|
||||
@Test
|
||||
public void laidOutValidUnchanged() {
|
||||
roundControl.startRound();
|
||||
|
|
Reference in a new issue