Fixed quit warning in network mode
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@543 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
67105d228e
commit
b69608a0d9
5 changed files with 47 additions and 35 deletions
|
@ -63,8 +63,6 @@ public class MockView implements IView {
|
||||||
/** */
|
/** */
|
||||||
public MockEvent menuNewGameEvent = new MockEvent();
|
public MockEvent menuNewGameEvent = new MockEvent();
|
||||||
/** */
|
/** */
|
||||||
public MockEvent menuQuitEvent = new MockEvent();
|
|
||||||
/** */
|
|
||||||
public MockEvent loadEvent = new MockEvent();
|
public MockEvent loadEvent = new MockEvent();
|
||||||
/** */
|
/** */
|
||||||
public MockEvent1<File> saveEvent = new MockEvent1<File>();
|
public MockEvent1<File> saveEvent = new MockEvent1<File>();
|
||||||
|
@ -220,11 +218,6 @@ public class MockView implements IView {
|
||||||
return menuNewGameEvent;
|
return menuNewGameEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IEvent getMenuQuitEvent() {
|
|
||||||
return menuQuitEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent getLoadEvent() {
|
public IEvent getLoadEvent() {
|
||||||
return loadEvent;
|
return loadEvent;
|
||||||
|
|
|
@ -56,9 +56,13 @@ public class ApplicationControl {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
IListener quitListener = new IListener() {
|
view.getQuitEvent().add(new IListener() {
|
||||||
@Override
|
@Override
|
||||||
public void handle() {
|
public void handle() {
|
||||||
|
if (networkControl != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (gameControl == null) {
|
if (gameControl == null) {
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
} else {
|
} else {
|
||||||
|
@ -73,10 +77,7 @@ public class ApplicationControl {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
view.getMenuQuitEvent().add(quitListener);
|
|
||||||
|
|
||||||
view.getQuitEvent().add(quitListener);
|
|
||||||
|
|
||||||
view.getQuitWarningPanel().getCancelEvent().add(new IListener() {
|
view.getQuitWarningPanel().getCancelEvent().add(new IListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -17,6 +17,7 @@ import jrummikub.util.IEvent;
|
||||||
import jrummikub.util.IListener;
|
import jrummikub.util.IListener;
|
||||||
import jrummikub.util.IListener1;
|
import jrummikub.util.IListener1;
|
||||||
import jrummikub.util.LoginData;
|
import jrummikub.util.LoginData;
|
||||||
|
import jrummikub.view.IQuitWarningPanel.QuitMode;
|
||||||
import jrummikub.view.IView;
|
import jrummikub.view.IView;
|
||||||
import jrummikub.view.LoginError;
|
import jrummikub.view.LoginError;
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ public class NetworkControl {
|
||||||
private IConnectionControl connectionControl;
|
private IConnectionControl connectionControl;
|
||||||
private IView view;
|
private IView view;
|
||||||
private List<Connection> connections = new ArrayList<Connection>();
|
private List<Connection> connections = new ArrayList<Connection>();
|
||||||
|
Connection tempConnection;
|
||||||
private Event stopNetworkEvent = new Event();
|
private Event stopNetworkEvent = new Event();
|
||||||
private Event backToLoginEvent = new Event();
|
private Event backToLoginEvent = new Event();
|
||||||
|
|
||||||
|
@ -57,11 +59,11 @@ public class NetworkControl {
|
||||||
* Creates a new network control
|
* Creates a new network control
|
||||||
*
|
*
|
||||||
* @param loginData
|
* @param loginData
|
||||||
* user's login data
|
* user's login data
|
||||||
* @param connectionControl
|
* @param connectionControl
|
||||||
* current connection for events and messages
|
* current connection for events and messages
|
||||||
* @param view
|
* @param view
|
||||||
* for events and handlers
|
* for events and handlers
|
||||||
*/
|
*/
|
||||||
public NetworkControl(final LoginData loginData,
|
public NetworkControl(final LoginData loginData,
|
||||||
IConnectionControl connectionControl, SaveControl saveControl,
|
IConnectionControl connectionControl, SaveControl saveControl,
|
||||||
|
@ -73,6 +75,36 @@ public class NetworkControl {
|
||||||
addConnectionSetupListeners(loginData, view);
|
addConnectionSetupListeners(loginData, view);
|
||||||
addConnectionControlListeners(view);
|
addConnectionControlListeners(view);
|
||||||
|
|
||||||
|
connections.add(view.getQuitEvent().add(new IListener() {
|
||||||
|
@Override
|
||||||
|
public void handle() {
|
||||||
|
if (gameControl == null) {
|
||||||
|
System.exit(0);
|
||||||
|
} else {
|
||||||
|
view.getQuitWarningPanel().setMode(QuitMode.QUIT_PROCESS);
|
||||||
|
view.showQuitWarningPanel(true);
|
||||||
|
tempConnection = view.getQuitWarningPanel().getQuitEvent()
|
||||||
|
.add(new IListener() {
|
||||||
|
@Override
|
||||||
|
public void handle() {
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
connections.add(view.getQuitWarningPanel().getCancelEvent()
|
||||||
|
.add(new IListener() {
|
||||||
|
@Override
|
||||||
|
public void handle() {
|
||||||
|
view.showQuitWarningPanel(false);
|
||||||
|
if (tempConnection != null) {
|
||||||
|
tempConnection.remove();
|
||||||
|
tempConnection = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
connections.add(view.getGameListPanel().getJoinEvent()
|
connections.add(view.getGameListPanel().getJoinEvent()
|
||||||
.add(new IListener1<GameData>() {
|
.add(new IListener1<GameData>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -108,7 +140,7 @@ public class NetworkControl {
|
||||||
* Adds the listeners for connection control events
|
* Adds the listeners for connection control events
|
||||||
*
|
*
|
||||||
* @param view
|
* @param view
|
||||||
* view for events
|
* view for events
|
||||||
*/
|
*/
|
||||||
public void addConnectionControlListeners(final IView view) {
|
public void addConnectionControlListeners(final IView view) {
|
||||||
connections.add(connectionControl.getGameOfferEvent().add(
|
connections.add(connectionControl.getGameOfferEvent().add(
|
||||||
|
@ -250,7 +282,7 @@ public class NetworkControl {
|
||||||
gameJoinControl.abort();
|
gameJoinControl.abort();
|
||||||
gameJoinControl = null;
|
gameJoinControl = null;
|
||||||
}
|
}
|
||||||
if (gameControl != null) {
|
if (gameControl != null) {
|
||||||
gameControl.abortGame();
|
gameControl.abortGame();
|
||||||
gameControl = null;
|
gameControl = null;
|
||||||
}
|
}
|
||||||
|
@ -306,8 +338,7 @@ public class NetworkControl {
|
||||||
if (gameOfferControl != null) {
|
if (gameOfferControl != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gameOfferControl = new GameOfferControl(connectionControl, settings,
|
gameOfferControl = new GameOfferControl(connectionControl, settings, view);
|
||||||
view);
|
|
||||||
gameOfferControl.getBackEvent().add(new IListener() {
|
gameOfferControl.getBackEvent().add(new IListener() {
|
||||||
@Override
|
@Override
|
||||||
public void handle() {
|
public void handle() {
|
||||||
|
|
|
@ -155,13 +155,6 @@ public interface IView {
|
||||||
*/
|
*/
|
||||||
public IEvent getMenuNewGameEvent();
|
public IEvent getMenuNewGameEvent();
|
||||||
|
|
||||||
/**
|
|
||||||
* The menu quit event is emitted when the user selects the quit menu entry
|
|
||||||
*
|
|
||||||
* @return the event
|
|
||||||
*/
|
|
||||||
public IEvent getMenuQuitEvent();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The load event is emitted when the user wants to load a previously saved
|
* The load event is emitted when the user wants to load a previously saved
|
||||||
* game state
|
* game state
|
||||||
|
|
|
@ -79,7 +79,6 @@ public class View extends JFrame implements IView {
|
||||||
private JFileChooser chooser;
|
private JFileChooser chooser;
|
||||||
|
|
||||||
private Event menuNewGameEvent = new Event();
|
private Event menuNewGameEvent = new Event();
|
||||||
private Event menuQuitEvent = new Event();
|
|
||||||
|
|
||||||
private Event networkGameEvent = new Event();
|
private Event networkGameEvent = new Event();
|
||||||
private Event loadEvent = new Event();
|
private Event loadEvent = new Event();
|
||||||
|
@ -147,11 +146,6 @@ public class View extends JFrame implements IView {
|
||||||
return menuNewGameEvent;
|
return menuNewGameEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public IEvent getMenuQuitEvent() {
|
|
||||||
return menuQuitEvent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IEvent1<File> getLoadFileEvent() {
|
public IEvent1<File> getLoadFileEvent() {
|
||||||
return loadFileEvent;
|
return loadFileEvent;
|
||||||
|
@ -246,7 +240,7 @@ public class View extends JFrame implements IView {
|
||||||
|
|
||||||
gameMenu.addSeparator();
|
gameMenu.addSeparator();
|
||||||
|
|
||||||
gameMenu.add(createMenuItem("Beenden", menuQuitEvent));
|
gameMenu.add(createMenuItem("Beenden", quitEvent));
|
||||||
|
|
||||||
setJMenuBar(menuBar);
|
setJMenuBar(menuBar);
|
||||||
}
|
}
|
||||||
|
@ -503,11 +497,11 @@ public class View extends JFrame implements IView {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showLoginPanel(boolean show) {
|
public void showLoginPanel(boolean show) {
|
||||||
loginPanel.setVisible(show);
|
|
||||||
|
|
||||||
if (show) {
|
if (show) {
|
||||||
loginPanel.resetLoginPanel();
|
loginPanel.resetLoginPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loginPanel.setVisible(show);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Reference in a new issue