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 quitEvent = new MockEvent();
|
||||||
/** */
|
/** */
|
||||||
public MockEvent newGameEvent = new MockEvent();
|
public MockEvent newRoundEvent = new MockEvent();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MockTablePanel getTablePanel() {
|
public MockTablePanel getTablePanel() {
|
||||||
|
@ -75,13 +75,13 @@ public class MockView implements IView {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent getQuitEvent() {
|
public IEvent getFinalScoreEvent() {
|
||||||
return quitEvent;
|
return quitEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent getNewGameEvent() {
|
public IEvent getNewRoundEvent() {
|
||||||
return newGameEvent;
|
return newRoundEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,9 +1,13 @@
|
||||||
package jrummikub.control;
|
package jrummikub.control;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import jrummikub.model.GameSettings;
|
import jrummikub.model.GameSettings;
|
||||||
import jrummikub.model.GameState;
|
import jrummikub.model.GameState;
|
||||||
import jrummikub.model.IRoundState;
|
import jrummikub.model.IRoundState;
|
||||||
import jrummikub.model.RoundState;
|
import jrummikub.model.RoundState;
|
||||||
|
import jrummikub.util.Connection;
|
||||||
import jrummikub.util.IListener;
|
import jrummikub.util.IListener;
|
||||||
import jrummikub.view.IView;
|
import jrummikub.view.IView;
|
||||||
|
|
||||||
|
@ -15,6 +19,7 @@ public class GameControl {
|
||||||
private IView view;
|
private IView view;
|
||||||
private RoundControl roundControl;
|
private RoundControl roundControl;
|
||||||
private GameState gameState;
|
private GameState gameState;
|
||||||
|
private List<Connection> connections = new ArrayList<Connection>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
@ -31,18 +36,18 @@ public class GameControl {
|
||||||
gameState = new GameState();
|
gameState = new GameState();
|
||||||
gameState.setFirstRoundFirstPlayer((int)(Math.random() * gameSettings.getPlayerList().size()));
|
gameState.setFirstRoundFirstPlayer((int)(Math.random() * gameSettings.getPlayerList().size()));
|
||||||
|
|
||||||
view.getNewGameEvent().add(new IListener() {
|
connections.add(view.getNewRoundEvent().add(new IListener() {
|
||||||
@Override
|
@Override
|
||||||
public void handle() {
|
public void handle() {
|
||||||
startRound();
|
startRound();
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
view.getQuitEvent().add(new IListener() {
|
connections.add(view.getFinalScoreEvent().add(new IListener() {
|
||||||
@Override
|
@Override
|
||||||
public void handle() {
|
public void handle() {
|
||||||
quitProgram();
|
finalScore();
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,14 +72,19 @@ public class GameControl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle() {
|
public void handle() {
|
||||||
roundControl = null;
|
endOfRound();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
roundControl.startRound();
|
roundControl.startRound();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void endOfRound() {
|
||||||
|
roundControl = null;
|
||||||
|
view.enableWinPanel(true);
|
||||||
|
}
|
||||||
|
|
||||||
private void quitProgram() {
|
private void finalScore() {
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,7 +242,6 @@ public class RoundControl {
|
||||||
c.remove();
|
c.remove();
|
||||||
}
|
}
|
||||||
endOfRoundEvent.emit();
|
endOfRoundEvent.emit();
|
||||||
view.enableWinPanel(true);
|
|
||||||
roundFinished = true;
|
roundFinished = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,12 +72,12 @@ public interface IView {
|
||||||
*
|
*
|
||||||
* @return the event
|
* @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
|
* @return the event
|
||||||
*/
|
*/
|
||||||
IEvent getNewGameEvent();
|
IEvent getNewRoundEvent();
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,13 +136,13 @@ public class View extends JFrame implements IView {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent getNewGameEvent() {
|
public IEvent getNewRoundEvent() {
|
||||||
return winPanel.getNewGameEvent();
|
return winPanel.getNewRoundEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent getQuitEvent() {
|
public IEvent getFinalScoreEvent() {
|
||||||
return winPanel.getQuitEvent();
|
return winPanel.getFinalScoreEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,11 +26,11 @@ class WinPanel extends JPanel {
|
||||||
private final static float MAX_BUTTON_FONT_SIZE = 12;
|
private final static float MAX_BUTTON_FONT_SIZE = 12;
|
||||||
|
|
||||||
private JLabel winLabel;
|
private JLabel winLabel;
|
||||||
private JButton newGameButton;
|
private JButton newRoundButton;
|
||||||
private JButton quitButton;
|
private JButton finalScoreButton;
|
||||||
|
|
||||||
private Event quitEvent = new Event();
|
private Event finalScoreEvent = new Event();
|
||||||
private Event newGameEvent = new Event();
|
private Event newRoundEvent = new Event();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new WinPanel
|
* Creates a new WinPanel
|
||||||
|
@ -47,23 +47,23 @@ class WinPanel extends JPanel {
|
||||||
winLabel.setVerticalTextPosition(JLabel.CENTER);
|
winLabel.setVerticalTextPosition(JLabel.CENTER);
|
||||||
add(winLabel);
|
add(winLabel);
|
||||||
|
|
||||||
newGameButton = new JButton("Neues Spiel");
|
newRoundButton = new JButton("Neue Runde");
|
||||||
newGameButton.addActionListener(new ActionListener() {
|
newRoundButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent arg0) {
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
newGameEvent.emit();
|
newRoundEvent.emit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
add(newGameButton);
|
add(newRoundButton);
|
||||||
|
|
||||||
quitButton = new JButton("Beenden");
|
finalScoreButton = new JButton("Endauswertung");
|
||||||
quitButton.addActionListener(new ActionListener() {
|
finalScoreButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent arg0) {
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
quitEvent.emit();
|
finalScoreEvent.emit();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
add(quitButton);
|
add(finalScoreButton);
|
||||||
|
|
||||||
addComponentListener(new ComponentAdapter() {
|
addComponentListener(new ComponentAdapter() {
|
||||||
@Override
|
@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
|
* @return the event
|
||||||
*/
|
*/
|
||||||
IEvent getNewGameEvent() {
|
IEvent getNewRoundEvent() {
|
||||||
return newGameEvent;
|
return newRoundEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -97,8 +97,8 @@ class WinPanel extends JPanel {
|
||||||
*
|
*
|
||||||
* @return the event
|
* @return the event
|
||||||
*/
|
*/
|
||||||
IEvent getQuitEvent() {
|
IEvent getFinalScoreEvent() {
|
||||||
return quitEvent;
|
return finalScoreEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void rescale() {
|
private void rescale() {
|
||||||
|
@ -119,12 +119,12 @@ class WinPanel extends JPanel {
|
||||||
fontSize = MAX_BUTTON_FONT_SIZE;
|
fontSize = MAX_BUTTON_FONT_SIZE;
|
||||||
|
|
||||||
winLabel.setBounds(x, y, width, firstLineHeight);
|
winLabel.setBounds(x, y, width, firstLineHeight);
|
||||||
newGameButton.setBounds(x, y + firstLineHeight + PANEL_SEPARATOR,
|
newRoundButton.setBounds(x, y + firstLineHeight + PANEL_SEPARATOR,
|
||||||
buttonWidth, buttonHeight);
|
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);
|
+ 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());
|
assertEquals(14 + 6, hand.getSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
@Test
|
@Test
|
||||||
public void laidOutValidUnchanged() {
|
public void laidOutValidUnchanged() {
|
||||||
roundControl.startRound();
|
roundControl.startRound();
|
||||||
|
|
Reference in a new issue