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:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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/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/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/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/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/package-info.java -text
|
||||||
forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java -text
|
forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java -text
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import forge.net.IRemote;
|
|||||||
import forge.net.event.MessageEvent;
|
import forge.net.event.MessageEvent;
|
||||||
import forge.properties.ForgePreferences;
|
import forge.properties.ForgePreferences;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
|
import forge.screens.home.online.OnlineMenu;
|
||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.toolbox.FMouseAdapter;
|
import forge.toolbox.FMouseAdapter;
|
||||||
import forge.toolbox.FScrollPane;
|
import forge.toolbox.FScrollPane;
|
||||||
@@ -63,6 +64,7 @@ public enum FNetOverlay {
|
|||||||
if (b0) {
|
if (b0) {
|
||||||
hasBeenShown = true;
|
hasBeenShown = true;
|
||||||
}
|
}
|
||||||
|
OnlineMenu.chatItem.setState(b0);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
public FDialog getWindow() {
|
public FDialog getWindow() {
|
||||||
@@ -125,10 +127,14 @@ public enum FNetOverlay {
|
|||||||
cmdSend.setCommand(new Runnable() { @Override public void run() { onSend.actionPerformed(null); } });
|
cmdSend.setCommand(new Runnable() { @Override public void run() { onSend.actionPerformed(null); } });
|
||||||
}
|
}
|
||||||
|
|
||||||
public void shopUp() {
|
public void hide() {
|
||||||
showUp(null);
|
window.setVisible(false);
|
||||||
}
|
}
|
||||||
public void showUp(final String message) {
|
|
||||||
|
public void show() {
|
||||||
|
show(null);
|
||||||
|
}
|
||||||
|
public void show(final String message) {
|
||||||
if (!hasBeenShown) {
|
if (!hasBeenShown) {
|
||||||
hasBeenShown = true;
|
hasBeenShown = true;
|
||||||
loadLocation();
|
loadLocation();
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import javax.swing.event.PopupMenuListener;
|
|||||||
|
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.control.RestartUtil;
|
import forge.control.RestartUtil;
|
||||||
import forge.gui.FNetOverlay;
|
|
||||||
import forge.gui.GuiUtils;
|
import forge.gui.GuiUtils;
|
||||||
|
import forge.screens.home.online.OnlineMenu;
|
||||||
import forge.util.ReflectionUtil;
|
import forge.util.ReflectionUtil;
|
||||||
|
|
||||||
public final class ForgeMenu {
|
public final class ForgeMenu {
|
||||||
@@ -74,7 +74,7 @@ public final class ForgeMenu {
|
|||||||
add(new LayoutMenu().getMenu());
|
add(new LayoutMenu().getMenu());
|
||||||
add(HelpMenu.getMenu());
|
add(HelpMenu.getMenu());
|
||||||
addSeparator();
|
addSeparator();
|
||||||
add(getMenuItem_ChatPanel());
|
add(OnlineMenu.getMenu());
|
||||||
addSeparator();
|
addSeparator();
|
||||||
add(getMenuItem_Restart());
|
add(getMenuItem_Restart());
|
||||||
add(getMenuItem_Exit());
|
add(getMenuItem_Exit());
|
||||||
@@ -123,20 +123,6 @@ public final class ForgeMenu {
|
|||||||
return false;
|
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() {
|
private static JMenuItem getMenuItem_Restart() {
|
||||||
JMenuItem menuItem = new JMenuItem("Restart");
|
JMenuItem menuItem = new JMenuItem("Restart");
|
||||||
menuItem.setMnemonic(KeyEvent.VK_R);
|
menuItem.setMnemonic(KeyEvent.VK_R);
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ public enum CHomeUI implements ICDoc, IMenuProvider {
|
|||||||
/** */
|
/** */
|
||||||
SINGLETON_INSTANCE;
|
SINGLETON_INSTANCE;
|
||||||
|
|
||||||
|
EDocID currentDocID;
|
||||||
Object previousDoc = null;
|
Object previousDoc = null;
|
||||||
|
|
||||||
private LblMenuItem lblSelected = new LblMenuItem(VSubmenuConstructed.SINGLETON_INSTANCE);
|
private LblMenuItem lblSelected = new LblMenuItem(VSubmenuConstructed.SINGLETON_INSTANCE);
|
||||||
@@ -39,6 +40,8 @@ public enum CHomeUI implements ICDoc, IMenuProvider {
|
|||||||
lblSelected.repaintSelf();
|
lblSelected.repaintSelf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
currentDocID = id0;
|
||||||
|
|
||||||
if (previousDoc != null) {
|
if (previousDoc != null) {
|
||||||
if (!previousDoc.equals(id0.getDoc().getLayoutControl())) {
|
if (!previousDoc.equals(id0.getDoc().getLayoutControl())) {
|
||||||
MenuUtil.setMenuProvider(null);
|
MenuUtil.setMenuProvider(null);
|
||||||
@@ -57,6 +60,10 @@ public enum CHomeUI implements ICDoc, IMenuProvider {
|
|||||||
previousDoc = id0.getDoc().getLayoutControl();
|
previousDoc = id0.getDoc().getLayoutControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EDocID getCurrentDocID() {
|
||||||
|
return currentDocID;
|
||||||
|
}
|
||||||
|
|
||||||
/** @param lbl0 {@link forge.screens.home.LblMenuItem} */
|
/** @param lbl0 {@link forge.screens.home.LblMenuItem} */
|
||||||
public void setLblSelected(final LblMenuItem lbl0) {
|
public void setLblSelected(final LblMenuItem lbl0) {
|
||||||
this.lblSelected = lbl0;
|
this.lblSelected = lbl0;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import forge.GuiBase;
|
|||||||
import forge.assets.FSkinProp;
|
import forge.assets.FSkinProp;
|
||||||
import forge.gui.FNetOverlay;
|
import forge.gui.FNetOverlay;
|
||||||
import forge.gui.SOverlayUtils;
|
import forge.gui.SOverlayUtils;
|
||||||
|
import forge.gui.framework.EDocID;
|
||||||
import forge.gui.framework.ICDoc;
|
import forge.gui.framework.ICDoc;
|
||||||
import forge.interfaces.IGuiGame;
|
import forge.interfaces.IGuiGame;
|
||||||
import forge.interfaces.ILobbyListener;
|
import forge.interfaces.ILobbyListener;
|
||||||
@@ -34,6 +35,7 @@ import forge.net.server.ServerGameLobby;
|
|||||||
import forge.player.GamePlayerUtil;
|
import forge.player.GamePlayerUtil;
|
||||||
import forge.properties.ForgePreferences.FPref;
|
import forge.properties.ForgePreferences.FPref;
|
||||||
import forge.properties.ForgeProfileProperties;
|
import forge.properties.ForgeProfileProperties;
|
||||||
|
import forge.screens.home.CHomeUI;
|
||||||
import forge.screens.home.CLobby;
|
import forge.screens.home.CLobby;
|
||||||
import forge.screens.home.VLobby;
|
import forge.screens.home.VLobby;
|
||||||
import forge.screens.home.sanctioned.ConstructedGameMenu;
|
import forge.screens.home.sanctioned.ConstructedGameMenu;
|
||||||
@@ -139,8 +141,10 @@ public enum CSubmenuOnlineLobby implements ICDoc, IMenuProvider {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
SOverlayUtils.hideOverlay();
|
SOverlayUtils.hideOverlay();
|
||||||
FNetOverlay.SINGLETON_INSTANCE.showUp(String.format("Hosting on port %d", port));
|
FNetOverlay.SINGLETON_INSTANCE.show(String.format("Hosting on port %d", port));
|
||||||
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
|
if (CHomeUI.SINGLETON_INSTANCE.getCurrentDocID() == EDocID.HOME_NETWORK) {
|
||||||
|
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -208,8 +212,10 @@ public enum CSubmenuOnlineLobby implements ICDoc, IMenuProvider {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
SOverlayUtils.hideOverlay();
|
SOverlayUtils.hideOverlay();
|
||||||
FNetOverlay.SINGLETON_INSTANCE.showUp(String.format("Connected to %s:%d", hostname, port));
|
FNetOverlay.SINGLETON_INSTANCE.show(String.format("Connected to %s:%d", hostname, port));
|
||||||
VSubmenuOnlineLobby.SINGLETON_INSTANCE.populate();
|
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