mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Create Online menu
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user