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() {
|
||||
|
@ -123,10 +129,12 @@ public class ApplicationControl {
|
|||
saveControl.setGameState(null);
|
||||
|
||||
settingsControl = new SettingsControl(view, new GameSettings());
|
||||
view.enableSave(false);
|
||||
|
||||
settingsControl.getStartGameEvent().add(new IListener1<GameSettings>() {
|
||||
@Override
|
||||
public void handle(GameSettings settings) {
|
||||
view.enableSave(true);
|
||||
settingsControl = null;
|
||||
|
||||
saveControl.setGameSettings(settings);
|
||||
|
|
|
@ -9,6 +9,7 @@ import java.io.ObjectOutputStream;
|
|||
import jrummikub.model.GameSettings;
|
||||
import jrummikub.model.GameState;
|
||||
import jrummikub.model.IRoundState;
|
||||
import jrummikub.util.Event;
|
||||
import jrummikub.util.Event3;
|
||||
import jrummikub.util.IEvent3;
|
||||
import jrummikub.util.IListener1;
|
||||
|
@ -22,6 +23,7 @@ public class SaveControl {
|
|||
private GameState gameState;
|
||||
private IRoundState roundState;
|
||||
private Event3<GameSettings, GameState, IRoundState> loadEvent = new Event3<GameSettings, GameState, IRoundState>();
|
||||
private Event loadErrorEvent = new Event();
|
||||
|
||||
/**
|
||||
* Creates a new SaveControl
|
||||
|
@ -96,18 +98,21 @@ public class SaveControl {
|
|||
stream.close();
|
||||
|
||||
if (gameState == null || gameSettings == null) {
|
||||
// TODO Fehlermeldung
|
||||
System.err.println("laden ging nicht");
|
||||
loadErrorEvent.emit();
|
||||
return;
|
||||
}
|
||||
|
||||
loadEvent.emit(gameSettings, gameState, roundState);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
loadErrorEvent.emit();
|
||||
}
|
||||
}
|
||||
|
||||
public Event getLoadErrorEvent(){
|
||||
return loadErrorEvent;
|
||||
}
|
||||
|
||||
private void save(File file) {
|
||||
if (gameState == null || gameSettings == null) {
|
||||
// TODO Menüpunkt ausgrauen
|
||||
|
|
|
@ -276,4 +276,7 @@ public interface IView {
|
|||
/** */
|
||||
WIN_PANEL
|
||||
}
|
||||
void showError();
|
||||
|
||||
void enableSave(boolean enable);
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import javax.swing.JLayeredPane;
|
|||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.border.MatteBorder;
|
||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||
|
@ -52,6 +53,7 @@ public class View extends JFrame implements IView {
|
|||
private JLayeredPane layeredPane;
|
||||
private JPanel mainLayer;
|
||||
private JMenuBar menuBar;
|
||||
private JMenuItem saveItem;
|
||||
|
||||
private TablePanel table;
|
||||
private PlayerPanel playerPanel;
|
||||
|
@ -162,11 +164,20 @@ public class View extends JFrame implements IView {
|
|||
setSelectedStones(Collections.<Stone> emptyList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showError() {
|
||||
JOptionPane.showMessageDialog(this, "Kein g\u00fcltiger Spielstand",
|
||||
"Fehler", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
|
||||
private void createFileChooser() {
|
||||
chooser = new JFileChooser();
|
||||
FileNameExtensionFilter filter = new FileNameExtensionFilter(
|
||||
"JRummikub-Spiele", "rum");
|
||||
chooser.setFileFilter(filter);
|
||||
|
||||
String defaultFile = "spiel.rum";
|
||||
chooser.setSelectedFile(new File(defaultFile));
|
||||
}
|
||||
|
||||
private void createMenuBar() {
|
||||
|
@ -188,7 +199,8 @@ public class View extends JFrame implements IView {
|
|||
}
|
||||
});
|
||||
gameMenu.add(loadItem);
|
||||
JMenuItem saveItem = new JMenuItem("Speichern...");
|
||||
|
||||
saveItem = new JMenuItem("Speichern...");
|
||||
saveItem.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
@ -215,6 +227,11 @@ public class View extends JFrame implements IView {
|
|||
return item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableSave(boolean enable) {
|
||||
saveItem.setEnabled(enable);
|
||||
}
|
||||
|
||||
private void load() {
|
||||
int returnVal = chooser.showOpenDialog(View.this);
|
||||
if (returnVal == JFileChooser.APPROVE_OPTION) {
|
||||
|
@ -339,8 +356,6 @@ public class View extends JFrame implements IView {
|
|||
int width = getContentPane().getWidth(), height = getContentPane()
|
||||
.getHeight();
|
||||
|
||||
|
||||
|
||||
layeredPane.setBounds(0, 0, width, height);
|
||||
mainLayer.setBounds(0, 0, width, height);
|
||||
|
||||
|
|
Reference in a new issue