diff --git a/.gitattributes b/.gitattributes index fa1b5690b14..be5e7a7f5a6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11423,6 +11423,7 @@ src/main/java/forge/view/home/ViewQuest.java -text src/main/java/forge/view/home/ViewSealed.java -text src/main/java/forge/view/home/ViewSettings.java -text src/main/java/forge/view/home/ViewUtilities.java -text +src/main/java/forge/view/home/constructed/SubmenuColors.java -text src/main/java/forge/view/home/package-info.java svneol=native#text/plain src/main/java/forge/view/match/QuestWinLoseCardViewer.java -text src/main/java/forge/view/match/QuestWinLoseHandler.java -text diff --git a/src/main/java/forge/view/home/IViewSubmenu.java b/src/main/java/forge/view/home/IViewSubmenu.java index 443f6268e61..2275e405501 100644 --- a/src/main/java/forge/view/home/IViewSubmenu.java +++ b/src/main/java/forge/view/home/IViewSubmenu.java @@ -19,4 +19,7 @@ public interface IViewSubmenu { * * @return {@link javax.swing.JPanel} */ MenuGroup getGroup(); + + /** Removes all children and (re)populates panel components, independent of constructor.*/ + void populate(); } diff --git a/src/main/java/forge/view/home/constructed/SubmenuColors.java b/src/main/java/forge/view/home/constructed/SubmenuColors.java new file mode 100644 index 00000000000..70784ef0bdf --- /dev/null +++ b/src/main/java/forge/view/home/constructed/SubmenuColors.java @@ -0,0 +1,107 @@ +package forge.view.home.constructed; + +import java.util.ArrayList; +import java.util.List; + +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.ListSelectionModel; + +import net.miginfocom.swing.MigLayout; + +import forge.AllZone; +import forge.Player; +import forge.control.home.IControlSubmenu; +import forge.model.home.MenuGroup; +import forge.view.home.IViewSubmenu; +import forge.view.home.StartButton; +import forge.view.toolbox.FLabel; +import forge.view.toolbox.FList; +import forge.view.toolbox.FScrollPane; + +/** + * Singleton instance of "Colors" submenu in "Constructed" group. + * + */ +public enum SubmenuColors implements IViewSubmenu { + /** */ + SINGLETON_INSTANCE; + + /** */ + private final JPanel pnl = new JPanel(); + private final StartButton btnStart = new StartButton(); + private final List allLists = new ArrayList(); + + private SubmenuColors() { + populate(); + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#populate() + */ + @Override + public void populate() { + final String lstConstraints = "w 41%!, h 32%, gap 6% 0 4% 2%"; + final String btnConstraints = "newline, ax center, gap 6% 0 0 0, span 2 1"; + final List players = AllZone.getPlayersInGame(); + + allLists.clear(); + pnl.removeAll(); + + pnl.setOpaque(false); + pnl.setLayout(new MigLayout("insets 0, gap 0")); + + for (int i = 0; i < players.size(); i++) { + if (i % 2 == 1) { + pnl.add(new ColorSelectPanel(players.get(i)), lstConstraints + ", wrap"); + } + else { + pnl.add(new ColorSelectPanel(players.get(i)), lstConstraints); + } + } + + pnl.add(btnStart, btnConstraints); + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getControl() + */ + @Override + public IControlSubmenu getControl() { + return null; + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getGroup() + */ + @Override + public MenuGroup getGroup() { + return null; + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getPanel() + */ + @Override + public JPanel getPanel() { + return pnl; + } + + /** @return {@link java.util.List}<{@link javax.swing.JList}> */ + public List getLists() { + return allLists; + } + + @SuppressWarnings("serial") + private class ColorSelectPanel extends JPanel { + public ColorSelectPanel(final Player p0) { + allLists.add(new FList()); + allLists.get(allLists.size() - 1).setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + + this.setOpaque(false); + this.setLayout(new MigLayout("insets 0, gap 0, wrap")); + this.add(new FLabel.Builder().text(p0.getName()).fontSize(14).fontScaleAuto(false).build(), "w 100%!, h 25px!, gap 0 0 0 8px"); + this.add(new FScrollPane(allLists.get(allLists.size() - 1)), "w 100%!, pushy, growy"); + } + } +}