Load error, save default file, save disable
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@483 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
0506b7f154
commit
92fe29000b
5 changed files with 55 additions and 12 deletions
|
@ -244,4 +244,16 @@ public class MockView implements IView {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showError() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enableSave(boolean enable) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,12 @@ public class ApplicationControl {
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
saveControl.getLoadErrorEvent().add(new IListener() {
|
||||||
|
@Override
|
||||||
|
public void handle() {
|
||||||
|
view.showError();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addLoginControlListeners() {
|
private void addLoginControlListeners() {
|
||||||
|
@ -123,10 +129,12 @@ public class ApplicationControl {
|
||||||
saveControl.setGameState(null);
|
saveControl.setGameState(null);
|
||||||
|
|
||||||
settingsControl = new SettingsControl(view, new GameSettings());
|
settingsControl = new SettingsControl(view, new GameSettings());
|
||||||
|
view.enableSave(false);
|
||||||
|
|
||||||
settingsControl.getStartGameEvent().add(new IListener1<GameSettings>() {
|
settingsControl.getStartGameEvent().add(new IListener1<GameSettings>() {
|
||||||
@Override
|
@Override
|
||||||
public void handle(GameSettings settings) {
|
public void handle(GameSettings settings) {
|
||||||
|
view.enableSave(true);
|
||||||
settingsControl = null;
|
settingsControl = null;
|
||||||
|
|
||||||
saveControl.setGameSettings(settings);
|
saveControl.setGameSettings(settings);
|
||||||
|
|
|
@ -9,6 +9,7 @@ import java.io.ObjectOutputStream;
|
||||||
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.util.Event;
|
||||||
import jrummikub.util.Event3;
|
import jrummikub.util.Event3;
|
||||||
import jrummikub.util.IEvent3;
|
import jrummikub.util.IEvent3;
|
||||||
import jrummikub.util.IListener1;
|
import jrummikub.util.IListener1;
|
||||||
|
@ -22,6 +23,7 @@ public class SaveControl {
|
||||||
private GameState gameState;
|
private GameState gameState;
|
||||||
private IRoundState roundState;
|
private IRoundState roundState;
|
||||||
private Event3<GameSettings, GameState, IRoundState> loadEvent = new Event3<GameSettings, GameState, IRoundState>();
|
private Event3<GameSettings, GameState, IRoundState> loadEvent = new Event3<GameSettings, GameState, IRoundState>();
|
||||||
|
private Event loadErrorEvent = new Event();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new SaveControl
|
* Creates a new SaveControl
|
||||||
|
@ -96,17 +98,20 @@ public class SaveControl {
|
||||||
stream.close();
|
stream.close();
|
||||||
|
|
||||||
if (gameState == null || gameSettings == null) {
|
if (gameState == null || gameSettings == null) {
|
||||||
// TODO Fehlermeldung
|
loadErrorEvent.emit();
|
||||||
System.err.println("laden ging nicht");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
loadEvent.emit(gameSettings, gameState, roundState);
|
loadEvent.emit(gameSettings, gameState, roundState);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
loadErrorEvent.emit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Event getLoadErrorEvent(){
|
||||||
|
return loadErrorEvent;
|
||||||
|
}
|
||||||
|
|
||||||
private void save(File file) {
|
private void save(File file) {
|
||||||
if (gameState == null || gameSettings == null) {
|
if (gameState == null || gameSettings == null) {
|
||||||
|
|
|
@ -276,4 +276,7 @@ public interface IView {
|
||||||
/** */
|
/** */
|
||||||
WIN_PANEL
|
WIN_PANEL
|
||||||
}
|
}
|
||||||
|
void showError();
|
||||||
|
|
||||||
|
void enableSave(boolean enable);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import javax.swing.JLayeredPane;
|
||||||
import javax.swing.JMenu;
|
import javax.swing.JMenu;
|
||||||
import javax.swing.JMenuBar;
|
import javax.swing.JMenuBar;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.border.MatteBorder;
|
import javax.swing.border.MatteBorder;
|
||||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||||
|
@ -52,6 +53,7 @@ public class View extends JFrame implements IView {
|
||||||
private JLayeredPane layeredPane;
|
private JLayeredPane layeredPane;
|
||||||
private JPanel mainLayer;
|
private JPanel mainLayer;
|
||||||
private JMenuBar menuBar;
|
private JMenuBar menuBar;
|
||||||
|
private JMenuItem saveItem;
|
||||||
|
|
||||||
private TablePanel table;
|
private TablePanel table;
|
||||||
private PlayerPanel playerPanel;
|
private PlayerPanel playerPanel;
|
||||||
|
@ -162,11 +164,20 @@ public class View extends JFrame implements IView {
|
||||||
setSelectedStones(Collections.<Stone> emptyList());
|
setSelectedStones(Collections.<Stone> emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showError() {
|
||||||
|
JOptionPane.showMessageDialog(this, "Kein g\u00fcltiger Spielstand",
|
||||||
|
"Fehler", JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
|
|
||||||
private void createFileChooser() {
|
private void createFileChooser() {
|
||||||
chooser = new JFileChooser();
|
chooser = new JFileChooser();
|
||||||
FileNameExtensionFilter filter = new FileNameExtensionFilter(
|
FileNameExtensionFilter filter = new FileNameExtensionFilter(
|
||||||
"JRummikub-Spiele", "rum");
|
"JRummikub-Spiele", "rum");
|
||||||
chooser.setFileFilter(filter);
|
chooser.setFileFilter(filter);
|
||||||
|
|
||||||
|
String defaultFile = "spiel.rum";
|
||||||
|
chooser.setSelectedFile(new File(defaultFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createMenuBar() {
|
private void createMenuBar() {
|
||||||
|
@ -188,7 +199,8 @@ public class View extends JFrame implements IView {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
gameMenu.add(loadItem);
|
gameMenu.add(loadItem);
|
||||||
JMenuItem saveItem = new JMenuItem("Speichern...");
|
|
||||||
|
saveItem = new JMenuItem("Speichern...");
|
||||||
saveItem.addActionListener(new ActionListener() {
|
saveItem.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
@ -215,6 +227,11 @@ public class View extends JFrame implements IView {
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enableSave(boolean enable) {
|
||||||
|
saveItem.setEnabled(enable);
|
||||||
|
}
|
||||||
|
|
||||||
private void load() {
|
private void load() {
|
||||||
int returnVal = chooser.showOpenDialog(View.this);
|
int returnVal = chooser.showOpenDialog(View.this);
|
||||||
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||||
|
@ -322,7 +339,7 @@ public class View extends JFrame implements IView {
|
||||||
winPanel = new WinPanel();
|
winPanel = new WinPanel();
|
||||||
winPanel.setVisible(false);
|
winPanel.setVisible(false);
|
||||||
mainLayer.add(winPanel);
|
mainLayer.add(winPanel);
|
||||||
|
|
||||||
sidePanel = new SidePanel();
|
sidePanel = new SidePanel();
|
||||||
mainLayer.add(sidePanel);
|
mainLayer.add(sidePanel);
|
||||||
}
|
}
|
||||||
|
@ -339,8 +356,6 @@ public class View extends JFrame implements IView {
|
||||||
int width = getContentPane().getWidth(), height = getContentPane()
|
int width = getContentPane().getWidth(), height = getContentPane()
|
||||||
.getHeight();
|
.getHeight();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
layeredPane.setBounds(0, 0, width, height);
|
layeredPane.setBounds(0, 0, width, height);
|
||||||
mainLayer.setBounds(0, 0, width, height);
|
mainLayer.setBounds(0, 0, width, height);
|
||||||
|
|
||||||
|
@ -354,9 +369,9 @@ public class View extends JFrame implements IView {
|
||||||
|
|
||||||
playerPanel.setBounds(0, tableHeight, width, playerPanelHeight);
|
playerPanel.setBounds(0, tableHeight, width, playerPanelHeight);
|
||||||
playerPanel.rescale();
|
playerPanel.rescale();
|
||||||
|
|
||||||
int sideWidth = playerPanel.getLeftPanelWidth() + 1;
|
int sideWidth = playerPanel.getLeftPanelWidth() + 1;
|
||||||
|
|
||||||
table.setBounds(sideWidth, 0, width - sideWidth, tableHeight);
|
table.setBounds(sideWidth, 0, width - sideWidth, tableHeight);
|
||||||
table.validate();
|
table.validate();
|
||||||
sidePanel.setBounds(0, 0, sideWidth, tableHeight);
|
sidePanel.setBounds(0, 0, sideWidth, tableHeight);
|
||||||
|
@ -414,7 +429,7 @@ public class View extends JFrame implements IView {
|
||||||
startTurnPanel.setCurrentPlayerName(playerName);
|
startTurnPanel.setCurrentPlayerName(playerName);
|
||||||
pausePanel.setCurrentPlayerName(playerName);
|
pausePanel.setCurrentPlayerName(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setInitialMeldError(int points) {
|
public void setInitialMeldError(int points) {
|
||||||
startTurnPanel.setInitialMeldError(points);
|
startTurnPanel.setInitialMeldError(points);
|
||||||
|
@ -444,7 +459,7 @@ public class View extends JFrame implements IView {
|
||||||
public IEvent getAcknowledgeInvalidEvent() {
|
public IEvent getAcknowledgeInvalidEvent() {
|
||||||
return startTurnPanel.getAcknowledgeInvalidEvent();
|
return startTurnPanel.getAcknowledgeInvalidEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent getNewRoundEvent() {
|
public IEvent getNewRoundEvent() {
|
||||||
return winPanel.getNewRoundEvent();
|
return winPanel.getNewRoundEvent();
|
||||||
|
@ -524,7 +539,7 @@ public class View extends JFrame implements IView {
|
||||||
playerPanel.showButtons(type != BottomPanelType.START_GAME_PANEL);
|
playerPanel.showButtons(type != BottomPanelType.START_GAME_PANEL);
|
||||||
playerPanel.enableButtons(type != BottomPanelType.COMPUTER_HAND_PANEL);
|
playerPanel.enableButtons(type != BottomPanelType.COMPUTER_HAND_PANEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStoneCollectionHidden(boolean enable) {
|
public void setStoneCollectionHidden(boolean enable) {
|
||||||
table.getStoneCollectionPanel().setHidden(enable);
|
table.getStoneCollectionPanel().setHidden(enable);
|
||||||
|
|
Reference in a new issue