Create Online menu

This commit is contained in:
drdev
2015-05-31 02:49:41 +00:00
parent 829d00f1fe
commit 0bf8ed9546
6 changed files with 80 additions and 23 deletions

1
.gitattributes vendored
View File

@@ -945,6 +945,7 @@ forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletCont
forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletLoad.java -text
forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java -text
forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java -text
forge-gui-desktop/src/main/java/forge/screens/home/online/OnlineMenu.java -text
forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java -text
forge-gui-desktop/src/main/java/forge/screens/home/package-info.java -text
forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java -text

View File

@@ -22,6 +22,7 @@ import forge.net.IRemote;
import forge.net.event.MessageEvent;
import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref;
import forge.screens.home.online.OnlineMenu;
import forge.toolbox.FLabel;
import forge.toolbox.FMouseAdapter;
import forge.toolbox.FScrollPane;
@@ -63,6 +64,7 @@ public enum FNetOverlay {
if (b0) {
hasBeenShown = true;
}
OnlineMenu.chatItem.setState(b0);
}
};
public FDialog getWindow() {
@@ -125,10 +127,14 @@ public enum FNetOverlay {
cmdSend.setCommand(new Runnable() { @Override public void run() { onSend.actionPerformed(null); } });
}
public void shopUp() {
showUp(null);
public void hide() {
window.setVisible(false);
}
public void showUp(final String message) {
public void show() {
show(null);
}
public void show(final String message) {
if (!hasBeenShown) {
hasBeenShown = true;
loadLocation();

View File

@@ -15,8 +15,8 @@ import javax.swing.event.PopupMenuListener;
import forge.Singletons;
import forge.control.RestartUtil;
import forge.gui.FNetOverlay;
import forge.gui.GuiUtils;
import forge.screens.home.online.OnlineMenu;
import forge.util.ReflectionUtil;
public final class ForgeMenu {
@@ -74,7 +74,7 @@ public final class ForgeMenu {
add(new LayoutMenu().getMenu());
add(HelpMenu.getMenu());
addSeparator();
add(getMenuItem_ChatPanel());
add(OnlineMenu.getMenu());
addSeparator();
add(getMenuItem_Restart());
add(getMenuItem_Exit());
@@ -123,20 +123,6 @@ public final class ForgeMenu {
return false;
}
private static JMenuItem getMenuItem_ChatPanel() {
final JMenuItem menuItem = new JMenuItem("Open chat panel");
menuItem.addActionListener(getChatPanelAction());
return menuItem;
}
private static ActionListener getChatPanelAction() {
return new ActionListener() {
@Override public final void actionPerformed(final ActionEvent e) {
FNetOverlay.SINGLETON_INSTANCE.shopUp();
}
};
}
private static JMenuItem getMenuItem_Restart() {
JMenuItem menuItem = new JMenuItem("Restart");
menuItem.setMnemonic(KeyEvent.VK_R);

View File

@@ -25,6 +25,7 @@ public enum CHomeUI implements ICDoc, IMenuProvider {
/** */
SINGLETON_INSTANCE;
EDocID currentDocID;
Object previousDoc = null;
private LblMenuItem lblSelected = new LblMenuItem(VSubmenuConstructed.SINGLETON_INSTANCE);
@@ -39,6 +40,8 @@ public enum CHomeUI implements ICDoc, IMenuProvider {
lblSelected.repaintSelf();
}
currentDocID = id0;
if (previousDoc != null) {
if (!previousDoc.equals(id0.getDoc().getLayoutControl())) {
MenuUtil.setMenuProvider(null);
@@ -57,6 +60,10 @@ public enum CHomeUI implements ICDoc, IMenuProvider {
previousDoc = id0.getDoc().getLayoutControl();
}
public EDocID getCurrentDocID() {
return currentDocID;
}
/** @param lbl0 {@link forge.screens.home.LblMenuItem} */
public void setLblSelected(final LblMenuItem lbl0) {
this.lblSelected = lbl0;

View File

@@ -13,6 +13,7 @@ import forge.GuiBase;
import forge.assets.FSkinProp;
import forge.gui.FNetOverlay;
import forge.gui.SOverlayUtils;
import forge.gui.framework.EDocID;
import forge.gui.framework.ICDoc;
import forge.interfaces.IGuiGame;
import forge.interfaces.ILobbyListener;
@@ -34,6 +35,7 @@ import forge.net.server.ServerGameLobby;
import forge.player.GamePlayerUtil;
import forge.properties.ForgePreferences.FPref;
import forge.properties.ForgeProfileProperties;
import forge.screens.home.CHomeUI;
import forge.screens.home.CLobby;
import forge.screens.home.VLobby;
import forge.screens.home.sanctioned.ConstructedGameMenu;
@@ -139,8 +141,10 @@ public enum CSubmenuOnlineLobby implements ICDoc, IMenuProvider {
@Override
public void run() {
SOverlayUtils.hideOverlay();
FNetOverlay.SINGLETON_INSTANCE.showUp(String.format("Hosting on port %d", port));
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
FNetOverlay.SINGLETON_INSTANCE.show(String.format("Hosting on port %d", port));
if (CHomeUI.SINGLETON_INSTANCE.getCurrentDocID() == EDocID.HOME_NETWORK) {
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
}
}
});
}
@@ -208,8 +212,10 @@ public enum CSubmenuOnlineLobby implements ICDoc, IMenuProvider {
@Override
public void run() {
SOverlayUtils.hideOverlay();
FNetOverlay.SINGLETON_INSTANCE.showUp(String.format("Connected to %s:%d", hostname, port));
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
FNetOverlay.SINGLETON_INSTANCE.show(String.format("Connected to %s:%d", hostname, port));
if (CHomeUI.SINGLETON_INSTANCE.getCurrentDocID() == EDocID.HOME_NETWORK) {
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
}
}
});
}

View File

@@ -0,0 +1,51 @@
package forge.screens.home.online;
import forge.gui.FNetOverlay;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
/**
* Returns a JMenu containing options for online play.
*/
public final class OnlineMenu {
public static JMenu getMenu() {
JMenu menu = new JMenu("Online");
menu.setMnemonic(KeyEvent.VK_O);
menu.add(getMenuItem_ConnectToServer());
menu.add(new JSeparator());
menu.add(chatItem);
return menu;
}
public static final JCheckBoxMenuItem chatItem;
static {
chatItem = new JCheckBoxMenuItem("Show Chat Panel");
chatItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (((JMenuItem)e.getSource()).isSelected()) {
FNetOverlay.SINGLETON_INSTANCE.show();
}
else {
FNetOverlay.SINGLETON_INSTANCE.hide();
}
}
});
}
private static JMenuItem getMenuItem_ConnectToServer() {
JMenuItem menuItem = new JMenuItem("Connect to Server");
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CSubmenuOnlineLobby.SINGLETON_INSTANCE.connectToServer();
}
});
return menuItem;
}
}