diff --git a/.gitattributes b/.gitattributes index fc754566585..779fba4cf77 100644 --- a/.gitattributes +++ b/.gitattributes @@ -910,10 +910,12 @@ forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuDraft.java forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java -text forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuWinston.java -text forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/package-info.java -text +forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAvatars.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuDownloaders.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuReleaseNotes.java -text +forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAvatars.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java -text forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java -text diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java b/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java index f8371e0fff7..49ef5a3ecc5 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java +++ b/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java @@ -13,6 +13,7 @@ import forge.screens.home.sanctioned.VSubmenuConstructed; import forge.screens.home.sanctioned.VSubmenuDraft; import forge.screens.home.sanctioned.VSubmenuSealed; import forge.screens.home.sanctioned.VSubmenuWinston; +import forge.screens.home.settings.VSubmenuAchievements; import forge.screens.home.settings.VSubmenuAvatars; import forge.screens.home.settings.VSubmenuDownloaders; import forge.screens.home.settings.VSubmenuPreferences; @@ -55,6 +56,7 @@ public enum EDocID { /** */ HOME_GAUNTLETQUICK (VSubmenuGauntletQuick.SINGLETON_INSTANCE), /** */ HOME_GAUNTLETCONTESTS (VSubmenuGauntletContests.SINGLETON_INSTANCE), /** */ HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE), /** */ + HOME_ACHIEVEMENTS (VSubmenuAchievements.SINGLETON_INSTANCE), /** */ HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE), /** */ HOME_UTILITIES (VSubmenuDownloaders.SINGLETON_INSTANCE), /** */ HOME_CONSTRUCTED (VSubmenuConstructed.SINGLETON_INSTANCE), /** */ diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java b/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java index c8bd2f78525..a9e15cb43dc 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java @@ -31,6 +31,7 @@ import forge.screens.home.quest.*; import forge.screens.home.sanctioned.VSubmenuConstructed; import forge.screens.home.sanctioned.VSubmenuDraft; import forge.screens.home.sanctioned.VSubmenuSealed; +import forge.screens.home.settings.VSubmenuAchievements; import forge.screens.home.settings.VSubmenuAvatars; import forge.screens.home.settings.VSubmenuDownloaders; import forge.screens.home.settings.VSubmenuPreferences; @@ -130,6 +131,7 @@ public enum VHomeUI implements IVTopLevelUI { allSubmenus.add(VSubmenuGauntletContests.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuPreferences.SINGLETON_INSTANCE); + allSubmenus.add(VSubmenuAchievements.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuAvatars.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuDownloaders.SINGLETON_INSTANCE); allSubmenus.add(VSubmenuReleaseNotes.SINGLETON_INSTANCE); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java new file mode 100644 index 00000000000..c02bdd2ef94 --- /dev/null +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java @@ -0,0 +1,37 @@ +package forge.screens.home.settings; + +import forge.UiCommand; +import forge.gui.framework.ICDoc; + +/** + * Controls the achievements submenu in the home UI. + * + *

(C at beginning of class name denotes a control class.) + * + */ +public enum CSubmenuAchievements implements ICDoc { + /** */ + SINGLETON_INSTANCE; + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#update() + */ + @Override + public void initialize() { + } + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#update() + */ + @Override + public void update() { + } + + /* (non-Javadoc) + * @see forge.gui.framework.ICDoc#getCommandOnSelect() + */ + @Override + public UiCommand getCommandOnSelect() { + return null; + } +} diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java new file mode 100644 index 00000000000..b8d2e7c71b2 --- /dev/null +++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java @@ -0,0 +1,112 @@ +package forge.screens.home.settings; + +import forge.gui.framework.DragCell; +import forge.gui.framework.DragTab; +import forge.gui.framework.EDocID; +import forge.screens.home.EMenuGroup; +import forge.screens.home.IVSubmenu; +import forge.screens.home.VHomeUI; +import forge.toolbox.*; +import net.miginfocom.swing.MigLayout; + +import javax.swing.*; + +/** + * Assembles Swing components of achievements submenu singleton. + * + *

(V at beginning of class name denotes a view class.) + */ +public enum VSubmenuAchievements implements IVSubmenu { + /** */ + SINGLETON_INSTANCE; + + // Fields used with interface IVDoc + private DragCell parentCell; + private final DragTab tab = new DragTab("Achievements"); + private final JPanel pnlAchievements = new JPanel(); + private final FScrollPane scrContent = new FScrollPane(pnlAchievements, false, + ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); + + private VSubmenuAchievements() { + pnlAchievements.setOpaque(false); + pnlAchievements.setLayout(new MigLayout("insets 0, gap 0, wrap 2")); + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#populate() + */ + @Override + public void populate() { + VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll(); + + VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0")); + VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(scrContent, "w 98%!, h 98%!, gap 1% 0 1% 0"); + + VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf(); + VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate(); + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getGroup() + */ + @Override + public EMenuGroup getGroupEnum() { + return EMenuGroup.SETTINGS; + } + + /* (non-Javadoc) + * @see forge.gui.home.IVSubmenu#getMenuTitle() + */ + @Override + public String getMenuTitle() { + return "Achievements"; + } + + /* (non-Javadoc) + * @see forge.gui.home.IVSubmenu#getItemEnum() + */ + @Override + public EDocID getItemEnum() { + return EDocID.HOME_ACHIEVEMENTS; + } + + /* (non-Javadoc) + * @see forge.gui.framework.IVDoc#getDocumentID() + */ + @Override + public EDocID getDocumentID() { + return EDocID.HOME_ACHIEVEMENTS; + } + + /* (non-Javadoc) + * @see forge.gui.framework.IVDoc#getTabLabel() + */ + @Override + public DragTab getTabLabel() { + return tab; + } + + /* (non-Javadoc) + * @see forge.gui.framework.IVDoc#getLayoutControl() + */ + @Override + public CSubmenuAchievements getLayoutControl() { + return CSubmenuAchievements.SINGLETON_INSTANCE; + } + + /* (non-Javadoc) + * @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell) + */ + @Override + public void setParentCell(DragCell cell0) { + this.parentCell = cell0; + } + + /* (non-Javadoc) + * @see forge.gui.framework.IVDoc#getParentCell() + */ + @Override + public DragCell getParentCell() { + return parentCell; + } +}