diff --git a/.gitattributes b/.gitattributes index 3f5b045ee9a..60712524d5a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11218,8 +11218,6 @@ src/main/java/forge/control/home/ControlQuest.java -text src/main/java/forge/control/home/ControlSealed.java -text src/main/java/forge/control/home/ControlSettings.java -text src/main/java/forge/control/home/ControlUtilities.java -text -src/main/java/forge/control/home/constructed/ControlSubmenuColors.java -text -src/main/java/forge/control/home/constructed/ControlSubmenuCustom.java -text src/main/java/forge/control/home/package-info.java -text svneol=native#text/plain src/main/java/forge/control/input/Input.java svneol=native#text/plain src/main/java/forge/control/input/InputAttack.java svneol=native#text/plain @@ -11339,6 +11337,8 @@ src/main/java/forge/gui/home/constructed/VSubmenuColors.java -text src/main/java/forge/gui/home/constructed/VSubmenuCustom.java -text src/main/java/forge/gui/home/constructed/VSubmenuQuestEvents.java -text src/main/java/forge/gui/home/constructed/VSubmenuThemes.java -text +src/main/java/forge/gui/home/quest/CSubmenuDuels.java -text +src/main/java/forge/gui/home/quest/VSubmenuDuels.java -text src/main/java/forge/gui/package-info.java svneol=native#text/plain src/main/java/forge/item/BoosterPack.java -text src/main/java/forge/item/CardDb.java -text @@ -11439,8 +11439,6 @@ 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/ViewSubmenuColors.java -text -src/main/java/forge/view/home/constructed/ViewSubmenuCustom.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/control/home/constructed/ControlSubmenuColors.java b/src/main/java/forge/control/home/constructed/ControlSubmenuColors.java deleted file mode 100644 index 7c0694a16c4..00000000000 --- a/src/main/java/forge/control/home/constructed/ControlSubmenuColors.java +++ /dev/null @@ -1,67 +0,0 @@ -package forge.control.home.constructed; - -import java.util.HashMap; -import java.util.Map; - -import javax.swing.JList; - -import forge.Command; -import forge.control.home.IControlSubmenu; -import forge.view.home.constructed.ViewSubmenuColors; - -/** - * TODO: Write javadoc for this type. - * - */ -public enum ControlSubmenuColors implements IControlSubmenu { - /** */ - SINGLETON_INSTANCE; - - private final Map colorVals = new HashMap(); - - private ControlSubmenuColors() { - colorVals.clear(); - colorVals.put("Random 1", "AI"); - colorVals.put("Random 2", "AI"); - colorVals.put("Random 3", "AI"); - colorVals.put("Random 4", "AI"); - colorVals.put("Black", "black"); - colorVals.put("Blue", "blue"); - colorVals.put("Green", "green"); - colorVals.put("Red", "red"); - colorVals.put("White", "white"); - } - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#update() - */ - @Override - public void initialize() { - ViewSubmenuColors.SINGLETON_INSTANCE.populate(); - ControlSubmenuColors.SINGLETON_INSTANCE.update(); - } - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#getCommand() - */ - @Override - public Command getMenuCommand() { - return null; - } - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#update() - */ - @Override - public void update() { - for (JList lst : ViewSubmenuColors.SINGLETON_INSTANCE.getLists()) { - lst.setListData(new String[] {"Random 1", "Random 2", "Random 3", - "Random 4", "Black", "Blue", "Green", "Red", "White"}); - } - } - - /** */ - public void randomSelect() { - - } -} diff --git a/src/main/java/forge/control/home/constructed/ControlSubmenuCustom.java b/src/main/java/forge/control/home/constructed/ControlSubmenuCustom.java deleted file mode 100644 index 6ef5ca2d5bc..00000000000 --- a/src/main/java/forge/control/home/constructed/ControlSubmenuCustom.java +++ /dev/null @@ -1,59 +0,0 @@ -package forge.control.home.constructed; - -import java.util.ArrayList; -import java.util.List; - -import javax.swing.JList; - -import forge.Command; -import forge.Singletons; -import forge.control.FControl; -import forge.control.home.IControlSubmenu; -import forge.deck.Deck; -import forge.util.IFolderMap; -import forge.view.home.constructed.ViewSubmenuCustom; - -/** - * TODO: Write javadoc for this type. - * - */ -public enum ControlSubmenuCustom implements IControlSubmenu { - /** */ - SINGLETON_INSTANCE; - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#getMenuCommand() - */ - @Override - public Command getMenuCommand() { - return null; - } - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#initialize() - */ - @Override - public void initialize() { - ViewSubmenuCustom.SINGLETON_INSTANCE.populate(); - ControlSubmenuCustom.SINGLETON_INSTANCE.update(); - } - - /* (non-Javadoc) - * @see forge.control.home.IControlSubmenu#update() - */ - @Override - public void update() { - final List customNames = new ArrayList(); - final IFolderMap allDecks = Singletons.getModel().getDecks().getConstructed(); - for (final Deck d : allDecks) { customNames.add(d.getName()); } - - for (JList lst : ViewSubmenuCustom.SINGLETON_INSTANCE.getLists()) { - lst.setListData(FControl.oa2sa(customNames.toArray())); - } - } - - /** */ - public void randomSelect() { - - } -} diff --git a/src/main/java/forge/gui/home/constructed/SubmenuConstructedUtil.java b/src/main/java/forge/gui/home/constructed/SubmenuConstructedUtil.java index 5f59f5b1b44..a685089a864 100644 --- a/src/main/java/forge/gui/home/constructed/SubmenuConstructedUtil.java +++ b/src/main/java/forge/gui/home/constructed/SubmenuConstructedUtil.java @@ -192,7 +192,7 @@ public class SubmenuConstructedUtil { /** Generates deck from current list selection(s). */ private static Deck generateDeck(final JList lst0, final PlayerType player0) { CardList cards = null; - final String[] selection = oa2sa(lst0.getSelectedValuesList().toArray()); + final String[] selection = oa2sa(lst0.getSelectedValues()); final Deck deck; // Color deck diff --git a/src/main/java/forge/gui/home/quest/CSubmenuDuels.java b/src/main/java/forge/gui/home/quest/CSubmenuDuels.java new file mode 100644 index 00000000000..bdc3e16ee72 --- /dev/null +++ b/src/main/java/forge/gui/home/quest/CSubmenuDuels.java @@ -0,0 +1,57 @@ +package forge.gui.home.quest; + +import java.io.File; + +import forge.AllZone; +import forge.Command; +import forge.Singletons; +import forge.gui.home.ICSubmenu; +import forge.properties.ForgeProps; +import forge.properties.NewConstants; +import forge.quest.data.QuestData; +import forge.quest.data.QuestDataIO; +import forge.quest.data.QuestPreferences.QPref; + +/** + * TODO: Write javadoc for this type. + * + */ +public enum CSubmenuDuels implements ICSubmenu { + /** */ + SINGLETON_INSTANCE; + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#getMenuCommand() + */ + @Override + public Command getMenuCommand() { + return null; + } + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#initialize() + */ + @Override + public void initialize() { + VSubmenuDuels.SINGLETON_INSTANCE.populate(); + CSubmenuDuels.SINGLETON_INSTANCE.update(); + } + + /* (non-Javadoc) + * @see forge.control.home.IControlSubmenu#update() + */ + @Override + public void update() { + QuestData qData = AllZone.getQuestData(); + if (qData == null) { + final String questname = Singletons.getModel() + .getQuestPreferences().getPreference(QPref.CURRENT_QUEST); + + qData = QuestDataIO.loadData(new File( + ForgeProps.getFile(NewConstants.Quest.DATA_DIR) + questname + ".dat")); + System.out.println("asdf current quest data and credits: " + questname + " " + qData.getCredits()); + } + + //lblTitle.setText("Duels: " + control.getRankString()); + } +} diff --git a/src/main/java/forge/gui/home/quest/VSubmenuDuels.java b/src/main/java/forge/gui/home/quest/VSubmenuDuels.java new file mode 100644 index 00000000000..2839c82fdb7 --- /dev/null +++ b/src/main/java/forge/gui/home/quest/VSubmenuDuels.java @@ -0,0 +1,203 @@ +package forge.gui.home.quest; + +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.SwingConstants; + +import net.miginfocom.swing.MigLayout; +import forge.gui.home.EMenuGroup; +import forge.gui.home.IVSubmenu; +import forge.view.home.StartButton; +import forge.view.toolbox.FCheckBox; +import forge.view.toolbox.FLabel; +import forge.view.toolbox.FPanel; +import forge.view.toolbox.FScrollPane; +import forge.view.toolbox.FSkin; + +/** + * TODO: Write javadoc for this type. + * + */ +public enum VSubmenuDuels implements IVSubmenu { + /** */ + SINGLETON_INSTANCE; + + //========== INSTANTIATION + private final JPanel pnl = new JPanel(); + private final JPanel pnlDuels = new JPanel(); + private final JButton btnStart = new StartButton(); + private final JComboBox cbxPet = new JComboBox(); + private final JCheckBox cbPlant = new FCheckBox("Summon Plant"); + private final JCheckBox cbZep = new FCheckBox("Launch Zeppelin"); + + private final FLabel lblLife = new FLabel.Builder() + .icon(FSkin.getIcon(FSkin.QuestIcons.ICO_LIFE)).build(); + private final FLabel lblCredits = new FLabel.Builder() + .icon(FSkin.getIcon(FSkin.QuestIcons.ICO_COINSTACK)).build(); + private final FLabel lblWins = new FLabel.Builder() + .icon(FSkin.getIcon(FSkin.QuestIcons.ICO_PLUS)).build(); + private final FLabel lblLosses = new FLabel.Builder() + .icon(FSkin.getIcon(FSkin.QuestIcons.ICO_MINUS)).build(); + private final FLabel lblNextChallengeInWins = new FLabel.Builder() + .text("No challenges available.").build(); + private final FLabel lblWinStreak = new FLabel.Builder() + .build(); + private final FLabel lblTitle = new FLabel.Builder() + .text("Title Hasn't Been Set Yet").fontAlign(SwingConstants.CENTER) + .fontScaleAuto(false).fontSize(15).build(); + private final FLabel btnCurrentDeck = new FLabel.Builder() + .opaque(true).hoverable(true).build(); + private final FLabel btnBazaar = new FLabel.Builder() + .selectable(true).opaque(true).hoverable(true).text("Bazaar") + .fontScaleAuto(false).fontSize(14).tooltip("Peruse the Bazaar").build(); + private final FLabel btnSpellShop = new FLabel.Builder() + .opaque(true).hoverable(true).text("Spell Shop") + .fontScaleAuto(false).fontSize(14).tooltip("Travel to the Spell Shop").build(); + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getPanel() + */ + @Override + public JPanel getPanel() { + return pnl; + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#getGroup() + */ + @Override + public EMenuGroup getGroup() { + return null; + } + + /* (non-Javadoc) + * @see forge.view.home.IViewSubmenu#populate() + */ + @Override + public void populate() { + final FPanel pnlTitle = new FPanel(); + pnlTitle.setLayout(new MigLayout("insets 0, gap 0")); + pnlTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); + pnlTitle.add(lblTitle, "w 100%, h 100%, gap 0 0 0 0"); + + final JPanel pnlStats = new JPanel(); + pnlStats.setOpaque(false); + populateStats(pnlStats); + + final FScrollPane scrDuels = new FScrollPane(pnlDuels, + JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + pnlDuels.setOpaque(false); + pnlDuels.setLayout(new MigLayout("insets 0, gap 0, wrap")); + + pnl.setOpaque(false); + pnl.setLayout(new MigLayout("insets 0, gap 0, wrap")); + pnl.add(pnlTitle, "w 94%!, h 30px!, gap 3% 0 20px 20px"); + pnl.add(pnlStats, "w 94%!, gap 3% 0 0 20px"); + pnl.add(scrDuels, "w 94%!, h 50%!, gap 3% 0 0 10px"); + pnl.add(cbxPet, "ax center, gap 3% 0 5px 0"); + pnl.add(cbPlant, "ax center, gap 3% 0 5px 0"); + pnl.add(cbZep, "ax center, gap 3% 0 5px 0"); + pnl.add(btnStart, "ax center, gap 3% 0 5px 10px"); + } + + /** @return {@link javax.swing.JLabel} */ + public JLabel getLblTitle() { + return lblTitle; + } + /** @return {@link javax.swing.FLabel} */ + public FLabel getLblLife() { + return lblLife; + } + + /** @return {@link javax.swing.FLabel} */ + public FLabel getLblCredits() { + return lblCredits; + } + + /** @return {@link javax.swing.FLabel} */ + public FLabel getLblWins() { + return lblWins; + } + + /** @return {@link javax.swing.FLabel} */ + public FLabel getLblLosses() { + return lblLosses; + } + + /** @return {@link javax.swing.FLabel} */ + public FLabel getLblNextChallengeInWins() { + return lblNextChallengeInWins; + } + + /** @return {@link javax.swing.FLabel} */ + public FLabel getLblWinStreak() { + return lblWinStreak; + } + + /** @return {@link forge.view.toolbox.FLabel} */ + public FLabel getBtnCurrentDeck() { + return btnCurrentDeck; + } + + /** @return {@link forge.view.toolbox.FLabel} */ + public FLabel getBtnBazaar() { + return btnBazaar; + } + + /** @return {@link forge.view.toolbox.FLabel} */ + public FLabel getBtnSpellShop() { + return btnSpellShop; + } + + /** @return {@link javax.swing.JCheckBox} */ + public JCheckBox getCbPlant() { + return cbPlant; + } + + /** @return {@link javax.swing.JCheckBox} */ + public JCheckBox getCbZep() { + return cbZep; + } + + /** @return {@link javax.swing.JComboBox} */ + public JComboBox getCbxPet() { + return cbxPet; + } + + /** @return {@link javax.swing.JButton} */ + public JButton getBtnStart() { + return btnStart; + } + + /** Stats panel has different layout depending on classic/fantasy quest. */ + private void populateStats(final JPanel pnl0) { + pnl0.removeAll(); + + if (true) { //(AllZone.getQuestData().isFantasy()) { + pnl0.setLayout(new MigLayout("insets 0, gap 0")); + pnl0.add(btnBazaar, "w 15%!, h 70px!, gap 0 4% 10px 10px, span 1 2"); + pnl0.add(lblWins, "w 30%!, h 25px!, gap 0 2% 12px 0"); + pnl0.add(lblLosses, "w 30%!, h 25px!, gap 0 4% 12px 0"); + pnl0.add(btnSpellShop, "w 14.5%!, h 70px!, gap 0 0 10px 10px, span 1 2, wrap"); + pnl0.add(lblCredits, "w 30%!, h 25px!, gap 0 2% 0 0"); + pnl0.add(lblLife, "w 30%!, h 25px!, gap 0 4% 0 0 0, wrap"); + pnl0.add(lblWinStreak, "h 20px!, align center, span 4 1, wrap"); + pnl0.add(lblNextChallengeInWins, "h 20px!, align center, span 4 1, wrap"); + pnl0.add(btnCurrentDeck, "w 40%!, h 26px!, align center, span 4 1, gap 0 0 0 5px"); + } + else { + pnl0.setLayout(new MigLayout("insets 0, gap 0, align center")); + pnl0.add(lblWins, "w 150px!, h 25px!, gap 0 50px 5px 5px, align center"); + pnl0.add(lblCredits, "w 150px!, h 25px!, gap 0 0 5px 5px, align center, wrap"); + pnl0.add(lblLosses, "w 150px!, h 25px!, gap 0 50px 0 5px, align center"); + pnl0.add(btnSpellShop, "w 150px!, h 25px!, gap 0 0 0 5px, align center, wrap"); + pnl0.add(lblWinStreak, "h 20px!, align center, span 4 1, wrap"); + pnl0.add(lblNextChallengeInWins, "h 20px!, align center, span 4 1, gap 0 0 10px 5px, wrap"); + pnl0.add(btnCurrentDeck, "w 40%!, h 26px!, align center, span 4 1, gap 0 0 0 5px"); + } + } +} diff --git a/src/main/java/forge/view/home/constructed/ViewSubmenuColors.java b/src/main/java/forge/view/home/constructed/ViewSubmenuColors.java deleted file mode 100644 index 9fa76b01598..00000000000 --- a/src/main/java/forge/view/home/constructed/ViewSubmenuColors.java +++ /dev/null @@ -1,111 +0,0 @@ -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.Command; -import forge.Player; -import forge.control.home.IControlSubmenu; -import forge.control.home.constructed.ControlSubmenuColors; -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 ViewSubmenuColors implements IViewSubmenu { - /** */ - SINGLETON_INSTANCE; - - /** */ - private final JPanel pnl = new JPanel(); - private final StartButton btnStart = new StartButton(); - private final List allLists = new ArrayList(); - - /* (non-Javadoc) - * @see forge.view.home.IViewSubmenu#populate() - */ - @Override - public void populate() { - final String lstConstraints = "w 41%!, h 300px!, 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) { - final Command cmdRandom = new Command() { @Override - public void execute() { ControlSubmenuColors.SINGLETON_INSTANCE.randomSelect(); } }; - 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"); - this.add(new FLabel.Builder().text("Random").fontSize(14).opaque(true) - .hoverable(true).cmdClick(cmdRandom).fontScaleAuto(false).build(), - "w 100%!, h 25px!, gap 0 0 8px 0"); - } - } -} diff --git a/src/main/java/forge/view/home/constructed/ViewSubmenuCustom.java b/src/main/java/forge/view/home/constructed/ViewSubmenuCustom.java deleted file mode 100644 index 3d3aa2838be..00000000000 --- a/src/main/java/forge/view/home/constructed/ViewSubmenuCustom.java +++ /dev/null @@ -1,115 +0,0 @@ -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.Command; -import forge.Player; -import forge.control.home.IControlSubmenu; -import forge.control.home.constructed.ControlSubmenuCustom; -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 ViewSubmenuCustom implements IViewSubmenu { - /** */ - SINGLETON_INSTANCE; - - /** */ - private final JPanel pnl = new JPanel(); - private final StartButton btnStart = new StartButton(); - private final List allLists = new ArrayList(); - - private ViewSubmenuCustom() { - 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 CustomSelectPanel(players.get(i)), lstConstraints + ", wrap"); - } - else { - pnl.add(new CustomSelectPanel(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 CustomSelectPanel extends JPanel { - public CustomSelectPanel(final Player p0) { - final Command cmdRandom = new Command() { @Override - public void execute() { ControlSubmenuCustom.SINGLETON_INSTANCE.randomSelect(); } }; - 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"); - this.add(new FLabel.Builder().text("Random").fontSize(14).opaque(true) - .hoverable(true).cmdClick(cmdRandom).fontScaleAuto(false).build(), - "w 100%!, h 25px!, gap 0 0 8px 0"); - } - } -}