From 16e7595ca5a866f5488f76f243ae037bf534be79 Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Wed, 14 Dec 2011 23:53:26 +0000 Subject: [PATCH] Sealed mode home screen menu fully working. Deck editor button moved to utilities menu. --- .gitattributes | 1 + .../java/forge/control/ControlHomeUI.java | 32 +--- .../control/home/ControlConstructed.java | 5 +- .../forge/control/home/ControlSealed.java | 175 ++++++++++++++++++ .../forge/control/home/ControlUtilities.java | 86 ++++++++- .../java/forge/view/home/HomeTopLevel.java | 21 ++- .../java/forge/view/home/ViewConstructed.java | 9 +- src/main/java/forge/view/home/ViewSealed.java | 58 ++++-- .../java/forge/view/home/ViewUtilities.java | 98 ++++++---- 9 files changed, 394 insertions(+), 91 deletions(-) create mode 100644 src/main/java/forge/control/home/ControlSealed.java diff --git a/.gitattributes b/.gitattributes index a080aa50d24..e566e0295c6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10772,6 +10772,7 @@ src/main/java/forge/control/ControlWinLose.java -text src/main/java/forge/control/home/ControlConstructed.java -text src/main/java/forge/control/home/ControlDraft.java -text 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/package-info.java -text svneol=native#text/plain diff --git a/src/main/java/forge/control/ControlHomeUI.java b/src/main/java/forge/control/ControlHomeUI.java index 5a07dbd0da6..c479bb3c15c 100644 --- a/src/main/java/forge/control/ControlHomeUI.java +++ b/src/main/java/forge/control/ControlHomeUI.java @@ -1,9 +1,5 @@ package forge.control; -import forge.Command; -import forge.deck.Deck; -import forge.game.GameType; -import forge.gui.deckeditor.DeckEditorCommon; import forge.view.home.HomeTopLevel; /** @@ -18,31 +14,13 @@ public class ControlHomeUI { view = v0; } - /** @param d0   Deck*/ - public void showDeckEditor(Deck d0) { - GameType gt = GameType.Constructed; - DeckEditorCommon editor = new DeckEditorCommon(gt); - - final Command exit = new Command() { - private static final long serialVersionUID = -9133358399503226853L; - - @Override - public void execute() { - view.getConstructedController().updateDeckNames(); - } - }; - - editor.show(exit); - - if (d0 != null) { - editor.getCustomMenu().showDeck(d0, gt); - } - - editor.setVisible(true); - } - /** */ public void exit() { System.exit(0); } + + /** @return HomeTopLevel */ + public HomeTopLevel getView() { + return view; + } } diff --git a/src/main/java/forge/control/home/ControlConstructed.java b/src/main/java/forge/control/home/ControlConstructed.java index 394ea475a7f..d7f086051c4 100644 --- a/src/main/java/forge/control/home/ControlConstructed.java +++ b/src/main/java/forge/control/home/ControlConstructed.java @@ -57,7 +57,10 @@ public class ControlConstructed { // Reference values for colors, needed for deck generation classes. // TODO enum me or get from another enum colorVals = new HashMap(); - colorVals.put("Random", "AI"); + 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"); diff --git a/src/main/java/forge/control/home/ControlSealed.java b/src/main/java/forge/control/home/ControlSealed.java new file mode 100644 index 00000000000..8a8a6f19e12 --- /dev/null +++ b/src/main/java/forge/control/home/ControlSealed.java @@ -0,0 +1,175 @@ +package forge.control.home; + +import java.util.ArrayList; +import java.util.List; + +import javax.swing.JOptionPane; + +import net.slightlymagic.braids.util.UtilFunctions; + +import forge.AllZone; +import forge.Constant; +import forge.PlayerType; +import forge.control.ControlAllUI; +import forge.deck.Deck; +import forge.deck.DeckManager; +import forge.game.GameType; +import forge.game.limited.SealedDeck; +import forge.gui.GuiUtils; +import forge.item.CardPrinted; +import forge.item.ItemPool; +import forge.properties.ForgeProps; +import forge.properties.NewConstants; +import forge.view.GuiTopLevel; +import forge.view.home.ViewSealed; + +/** + * Controls behavior of swing components in "sealed" mode menu. + * + */ +public class ControlSealed { + private ViewSealed view; + private DeckManager deckManager; + + /** + * Controls behavior of swing components in "sealed" mode menu. + * + * @param v0   ViewSealed + */ + public ControlSealed(ViewSealed v0) { + view = v0; + deckManager = AllZone.getDeckManager(); + } + + /** */ + public void start() { + String human = view.getLstHumanDecks().getSelectedValue().toString(); + if (human == null) { + JOptionPane.showMessageDialog(null, + "Please build and/or select a deck for yourself.", + "No deck", JOptionPane.ERROR_MESSAGE); + return; + } + + String ai = view.getLstHumanDecks().getSelectedValue().toString(); + if (ai == null) { + JOptionPane.showMessageDialog(null, + "Please build and/or select a deck for the computer.", + "No deck", JOptionPane.ERROR_MESSAGE); + return; + } + + Constant.Runtime.HUMAN_DECK[0] = deckManager.getDeck(human); + Constant.Runtime.COMPUTER_DECK[0] = deckManager.getDeck(ai); + + ControlAllUI c = ((GuiTopLevel) AllZone.getDisplay()).getController(); + c.changeState(1); + c.getMatchController().initMatch(); + AllZone.getGameAction().newGame(Constant.Runtime.HUMAN_DECK[0], Constant.Runtime.COMPUTER_DECK[0]); + } + + /** */ + public void updateDeckLists() { + List aiNames = new ArrayList(); + List humanNames = new ArrayList(); + + for (Deck d : deckManager.getDecks()) { + if (d.getDeckType().equals(GameType.Sealed)) { + if (d.getPlayerType() == PlayerType.COMPUTER) { + aiNames.add(d.getName()); + } + else { + humanNames.add(d.getName()); + } + } + } + + view.getLstHumanDecks().setListData(oa2sa(humanNames.toArray())); + view.getLstAIDecks().setListData(oa2sa(aiNames.toArray())); + } + + /** */ + public void setupSealed() { + Deck deck = new Deck(GameType.Sealed); + + // ReadBoosterPack booster = new ReadBoosterPack(); + // CardList pack = booster.getBoosterPack5(); + + ArrayList sealedTypes = new ArrayList(); + sealedTypes.add("Full Cardpool"); + sealedTypes.add("Block / Set"); + sealedTypes.add("Custom"); + + final String prompt = "Choose Sealed Deck Format:"; + final Object o = GuiUtils.getChoice(prompt, sealedTypes.toArray()); + + SealedDeck sd = null; + + if (o.toString().equals(sealedTypes.get(0))) { + sd = new SealedDeck("Full"); + } + + else if (o.toString().equals(sealedTypes.get(1))) { + sd = new SealedDeck("Block"); + } + + else if (o.toString().equals(sealedTypes.get(2))) { + sd = new SealedDeck("Custom"); + } + else { + throw new IllegalStateException("choice <<" + UtilFunctions.safeToString(o) + + ">> does not equal any of the sealedTypes."); + } + + final ItemPool sDeck = sd.getCardpool(); + + deck.addSideboard(sDeck); + + for (final String element : Constant.Color.BASIC_LANDS) { + for (int j = 0; j < 18; j++) { + deck.addSideboard(element + "|" + sd.getLandSetCode()[0]); + } + } + + final String sDeckName = JOptionPane.showInputDialog(null, + ForgeProps.getLocalized(NewConstants.Lang.OldGuiNewGame.NewGameText.SAVE_SEALED_MSG), + ForgeProps.getLocalized(NewConstants.Lang.OldGuiNewGame.NewGameText.SAVE_SEALED_TTL), + JOptionPane.QUESTION_MESSAGE); + + deck.setName(sDeckName); + deck.setPlayerType(PlayerType.HUMAN); + + Constant.Runtime.HUMAN_DECK[0] = deck; + Constant.Runtime.setGameType(GameType.Sealed); + + Deck aiDeck = sd.buildAIDeck(sDeck.toForgeCardList()); + //final Deck aiDeck = sd.buildAIDeck(sd.getCardpool().toForgeCardList()); + // AI will use different cardpool + aiDeck.setName("AI_" + sDeckName); + aiDeck.setPlayerType(PlayerType.COMPUTER); + deckManager.addDeck(aiDeck); + DeckManager.writeDeck(aiDeck, DeckManager.makeFileName(aiDeck)); + //this.updateDeckComboBoxes(); + + view.getParentView().getUtilitiesController().showDeckEditor(GameType.Sealed, deck); + + Constant.Runtime.COMPUTER_DECK[0] = aiDeck; + } + + /** + * Exhaustively converts object array to string array. + * Probably a much easier way to do this. + * + * @param o0   Object[] + * @return String[] + */ + public String[] oa2sa(Object[] o0) { + String[] output = new String[o0.length]; + + for (int i = 0; i < o0.length; i++) { + output[i] = o0[i].toString(); + } + + return output; + } +} diff --git a/src/main/java/forge/control/home/ControlUtilities.java b/src/main/java/forge/control/home/ControlUtilities.java index 0779e8574cf..4c573a345b2 100644 --- a/src/main/java/forge/control/home/ControlUtilities.java +++ b/src/main/java/forge/control/home/ControlUtilities.java @@ -2,17 +2,23 @@ package forge.control.home; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; +import forge.Command; import forge.GuiDownloadPicturesLQ; import forge.GuiDownloadPrices; import forge.GuiDownloadQuestImages; import forge.GuiDownloadSetPicturesLQ; import forge.GuiImportPicture; +import forge.deck.Deck; import forge.error.BugzReporter; +import forge.game.GameType; +import forge.gui.deckeditor.DeckEditorCommon; import forge.properties.ForgeProps; import forge.properties.NewConstants.Lang; import forge.view.home.ViewUtilities; @@ -23,7 +29,7 @@ import forge.view.home.ViewUtilities; */ public class ControlUtilities { private ViewUtilities view; - + private boolean licensingExpanded = false; /** * * Controls logic and listeners for Utilities panel of the home screen. @@ -99,17 +105,89 @@ public class ControlUtilities { gdp.setVisible(true); } }); + + this.view.getBtnDeckEditor().addActionListener(new ActionListener() { + @Override + public void actionPerformed(final ActionEvent arg0) { + showDeckEditor(null, null); + } + }); + + this.view.getTarLicensing().addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (licensingExpanded) { + hideLicenseInfo(); + licensingExpanded = false; + } + else { + showLicenseInfo(); + licensingExpanded = true; + } + } + }); } - + private void doDownloadPics() { new GuiDownloadPicturesLQ(null); } - + private void doDownloadSetPics() { new GuiDownloadSetPicturesLQ(null); } - + private void doDownloadQuestImages() { new GuiDownloadQuestImages(null); } + + private void showLicenseInfo() { + view.getTarLicensing().setText( + "This program is free software : you can redistribute it and/or modify " + + "it under the terms of the GNU General Public License as published by " + + "the Free Software Foundation, either version 3 of the License, or " + + "(at your option) any later version." + + "\r\n" + + "This program is distributed in the hope that it will be useful, " + + "but WITHOUT ANY WARRANTY; without even the implied warranty of " + + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " + + "GNU General Public License for more details." + + "\r\n" + + "You should have received a copy of the GNU General Public License " + + "along with this program. If not, see ." + ); + } + + private void hideLicenseInfo() { + view.getTarLicensing().setText("Click here for license information."); + } + + /** + * @param gt0   GameType + * @param d0   Deck + */ + public void showDeckEditor(GameType gt0, Deck d0) { + if (gt0 == null) { + gt0 = GameType.Constructed; + } + + DeckEditorCommon editor = new DeckEditorCommon(gt0); + + final Command exit = new Command() { + private static final long serialVersionUID = -9133358399503226853L; + + @Override + public void execute() { + view.getParentView().getConstructedController().updateDeckNames(); + view.getParentView().getSealedController().updateDeckLists(); + } + }; + + editor.show(exit); + + if (d0 != null) { + editor.getCustomMenu().showDeck(d0, gt0); + } + + editor.setVisible(true); + } } diff --git a/src/main/java/forge/view/home/HomeTopLevel.java b/src/main/java/forge/view/home/HomeTopLevel.java index b2e00a500f9..80d78a39cc4 100644 --- a/src/main/java/forge/view/home/HomeTopLevel.java +++ b/src/main/java/forge/view/home/HomeTopLevel.java @@ -31,6 +31,8 @@ import forge.AllZone; import forge.control.ControlHomeUI; import forge.control.home.ControlConstructed; import forge.control.home.ControlDraft; +import forge.control.home.ControlSealed; +import forge.control.home.ControlUtilities; import forge.view.toolbox.FButton; import forge.view.toolbox.FPanel; import forge.view.toolbox.FRoundedPanel; @@ -45,7 +47,7 @@ import forge.view.toolbox.FSkin; @SuppressWarnings("serial") public class HomeTopLevel extends FPanel { private JPanel pnlMenu, pnlContent; - private FButton btnDraft, btnConstructed, btnSealed, btnQuest, btnSettings, btnUtilities, btnEditor, btnExit; + private FButton btnDraft, btnConstructed, btnSealed, btnQuest, btnSettings, btnUtilities, btnExit; private FSkin skin; private String constraints; private String imgDirAddress; @@ -127,12 +129,6 @@ public class HomeTopLevel extends FPanel { }); btnUtilities.setText("Utilities"); - btnEditor = new FButton(); - btnEditor.setAction(new AbstractAction() { - public void actionPerformed(ActionEvent arg0) { control.showDeckEditor(null); } - }); - btnEditor.setText("Deck Editor"); - btnExit = new FButton(); btnExit.setAction(new AbstractAction() { public void actionPerformed(ActionEvent arg0) { control.exit(); } @@ -152,7 +148,6 @@ public class HomeTopLevel extends FPanel { pnlMenu.add(btnQuest, constraints); pnlMenu.add(btnSettings, constraints); pnlMenu.add(btnUtilities, constraints); - pnlMenu.add(btnEditor, constraints); pnlMenu.add(btnExit, constraints); control = new ControlHomeUI(this); @@ -251,6 +246,16 @@ public class HomeTopLevel extends FPanel { return draft.getController(); } + /** @return ControlSealed */ + public ControlSealed getSealedController() { + return sealed.getController(); + } + + /** @return ControlUtilities */ + public ControlUtilities getUtilitiesController() { + return utilities.getController(); + } + private void clearToggles() { btnConstructed.setToggled(false); btnSealed.setToggled(false); diff --git a/src/main/java/forge/view/home/ViewConstructed.java b/src/main/java/forge/view/home/ViewConstructed.java index 1f9b2cd55f8..fb23e7e7142 100644 --- a/src/main/java/forge/view/home/ViewConstructed.java +++ b/src/main/java/forge/view/home/ViewConstructed.java @@ -20,10 +20,11 @@ import net.miginfocom.swing.MigLayout; import forge.AllZone; import forge.control.home.ControlConstructed; import forge.deck.Deck; +import forge.game.GameType; import forge.view.toolbox.FSkin; /** - * Populates Swing components of Constructed mode in home screen. + * Assembles swing components for "Constructed" mode menu. * */ @SuppressWarnings("serial") @@ -40,7 +41,7 @@ public class ViewConstructed extends JPanel { private ControlConstructed control; /** - * Populates Swing components of "constructed" mode in home screen. + * Assembles swing components for "Constructed" mode menu. * * @param v0   HomeTopLevel parent view */ @@ -80,7 +81,7 @@ public class ViewConstructed extends JPanel { public void actionPerformed(ActionEvent arg0) { String s = lstDecksHuman.getSelectedValue().toString(); Deck d = AllZone.getDeckManager().getDeck(s); - parentView.getController().showDeckEditor(d); + parentView.getUtilitiesController().showDeckEditor(GameType.Constructed, d); } }); @@ -109,7 +110,7 @@ public class ViewConstructed extends JPanel { public void actionPerformed(ActionEvent arg0) { String s = lstDecksAI.getSelectedValue().toString(); Deck d = AllZone.getDeckManager().getDeck(s); - parentView.getController().showDeckEditor(d); + parentView.getUtilitiesController().showDeckEditor(GameType.Constructed, d); } }); btnAIDeckList.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13)); diff --git a/src/main/java/forge/view/home/ViewSealed.java b/src/main/java/forge/view/home/ViewSealed.java index 05b212b844c..fc3b5e0bb04 100644 --- a/src/main/java/forge/view/home/ViewSealed.java +++ b/src/main/java/forge/view/home/ViewSealed.java @@ -2,6 +2,8 @@ package forge.view.home; import java.awt.BorderLayout; import java.awt.Font; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JLabel; @@ -12,25 +14,29 @@ import javax.swing.SwingConstants; import net.miginfocom.swing.MigLayout; import forge.AllZone; +import forge.control.home.ControlSealed; import forge.view.toolbox.FSkin; /** - * TODO: Write javadoc for this type. + * Assembles swing components for "Sealed" mode menu. * */ @SuppressWarnings("serial") public class ViewSealed extends JPanel { private FSkin skin; private HomeTopLevel parentView; + private ControlSealed control; + private JList lstHumanDecks, lstAIDecks; /** - * TODO: Write javadoc for Constructor. + * Assembles swing components for "Sealed" mode menu. + * * @param v0   HomeTopLevel parent view */ public ViewSealed(HomeTopLevel v0) { super(); this.setOpaque(false); - this.setLayout(new MigLayout("insets 0, gap 0")); + this.setLayout(new MigLayout("insets 0, gap 0, wrap 2")); parentView = v0; skin = AllZone.getSkin(); @@ -38,26 +44,28 @@ public class ViewSealed extends JPanel { lblTitle.setFont(skin.getFont1().deriveFont(Font.BOLD, 16)); lblTitle.setForeground(skin.getColor("text")); lblTitle.setHorizontalAlignment(SwingConstants.CENTER); - this.add(lblTitle, "w 100%!, gap 0 0 2% 2%, span 3 1, wrap"); + this.add(lblTitle, "w 100%!, gap 0 0 2% 2%, span 2 1"); - String[] human = {"one", "two", "three"}; - String[] ai = {"four", "five:", "siz"}; - - JList humanDecks = new JList(human); - JList aiDecks = new JList(ai); + lstHumanDecks = new JList(); + lstAIDecks = new JList(); // - this.add(new JScrollPane(humanDecks), "w 30%!, gapleft 15%, gapright 5%, h 30%!"); - this.add(new JScrollPane(aiDecks), "w 30%!, h 30%!, wrap"); + this.add(new JScrollPane(lstHumanDecks), "w 40%!, h 30%!, gap 7.5% 5% 2% 2%"); + this.add(new JScrollPane(lstAIDecks), "w 40%!, h 37%!, gap 0 0 2% 0, span 1 2, wrap"); SubButton buildHuman = new SubButton("Build New Human Deck"); - this.add(buildHuman, "w 30%!, h 5%!, gapleft 15%, gapright 15%, gaptop 1%"); - - SubButton buildAI = new SubButton("Build New AI Deck"); - this.add(buildAI, "w 30%!, h 5%!, gaptop 1%, wrap"); + buildHuman.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { control.setupSealed(); } + }); + this.add(buildHuman, "w 40%!, h 5%!, gap 7.5% 5% 0 0, wrap"); // Start button JButton btnStart = new JButton(); + btnStart.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { control.start(); } + }); btnStart.setRolloverEnabled(true); btnStart.setPressedIcon(parentView.getStartButtonDown()); btnStart.setRolloverIcon(parentView.getStartButtonOver()); @@ -74,10 +82,30 @@ public class ViewSealed extends JPanel { pnlButtonContainer.setLayout(new BorderLayout()); pnlButtonContainer.add(btnStart, SwingConstants.CENTER); + + control = new ControlSealed(this); + control.updateDeckLists(); + lstHumanDecks.setSelectedIndex(0); + lstAIDecks.setSelectedIndex(0); } /** @return HomeTopLevel */ public HomeTopLevel getParentView() { return parentView; } + + /** @return JList */ + public JList getLstHumanDecks() { + return lstHumanDecks; + } + + /** @return JList */ + public JList getLstAIDecks() { + return lstAIDecks; + } + + /** @return ControlSealed */ + public ControlSealed getController() { + return control; + } } diff --git a/src/main/java/forge/view/home/ViewUtilities.java b/src/main/java/forge/view/home/ViewUtilities.java index 05715e00ff1..4c328610ac0 100644 --- a/src/main/java/forge/view/home/ViewUtilities.java +++ b/src/main/java/forge/view/home/ViewUtilities.java @@ -1,40 +1,48 @@ package forge.view.home; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.border.MatteBorder; +import java.awt.Font; -import forge.AllZone; -import forge.control.home.ControlUtilities; +import javax.swing.JPanel; +import javax.swing.JTextArea; +import javax.swing.SwingConstants; import net.miginfocom.swing.MigLayout; +import forge.AllZone; +import forge.control.home.ControlUtilities; +import forge.view.toolbox.FSkin; /** - * TODO: Write javadoc for this type. + * Assembles swing components for "Utilities" mode menu. * */ @SuppressWarnings("serial") public class ViewUtilities extends JPanel { + private HomeTopLevel parentView; private ControlUtilities control; - - private SubButton btnDownloadSetPics, btnDownloadPics, btnDownloadQuestImages, btnReportBug; - private SubButton btnImportPictures, btnHowToPlay, btnDownloadPrices; + private FSkin skin; + private JTextArea tarLicensing; + + private SubButton btnDownloadSetPics, btnDownloadPics, btnDownloadQuestImages, + btnReportBug, btnImportPictures, btnHowToPlay, btnDownloadPrices, + btnDeckEditor; /** * - * TODO: Write javadoc for Constructor. + * Assembles swing components for "Utilities" mode menu. * @param v0   HomeTopLevel */ public ViewUtilities(HomeTopLevel v0) { super(); this.setOpaque(false); this.setLayout(new MigLayout("insets 0, gap 0, wrap, ay center")); + parentView = v0; + skin = AllZone.getSkin(); btnDownloadPics = new SubButton("Download LQ Card Pictures"); this.add(btnDownloadPics, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%, gaptop 5%"); - + btnDownloadSetPics = new SubButton("Download LQ Set Pictures"); this.add(btnDownloadSetPics, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); - + btnDownloadQuestImages = new SubButton("Download Quest Images"); this.add(btnDownloadQuestImages, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); @@ -47,67 +55,93 @@ public class ViewUtilities extends JPanel { btnReportBug = new SubButton("Report a Bug"); this.add(btnReportBug, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); + btnDeckEditor = new SubButton("Deck Editor"); + this.add(btnDeckEditor, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); + + btnHowToPlay = new SubButton("How To Play"); + this.add(btnHowToPlay, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); + /* * slapshot5 - I think this is useless here. If it serves a purpose, just uncomment, * and hook it up in ControlUtilities. + * + * doublestrike - too right */ + // TODO make this a dock shortcut /* SubButton btnStackReport = new SubButton("Stack Report"); this.add(btnStackReport, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); */ - btnHowToPlay = new SubButton("How To Play"); - this.add(btnHowToPlay, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%"); + tarLicensing = new JTextArea(); + tarLicensing.setOpaque(false); + tarLicensing.setForeground(skin.getColor("text")); + tarLicensing.setFont(skin.getFont1().deriveFont(Font.PLAIN, 15)); + tarLicensing.setAlignmentX(SwingConstants.CENTER); + tarLicensing.setLineWrap(true); + tarLicensing.setWrapStyleWord(true); + tarLicensing.setFocusable(false); + tarLicensing.setEditable(false); + tarLicensing.setBorder(null); + tarLicensing.setText("Click here for license information."); + + this.add(tarLicensing, "w 80%!, gapleft 10%, ax center"); - JLabel lblAbout = new JLabel("About Forge here: Licensing, etc."); - lblAbout.setBorder(new MatteBorder(1, 0, 0, 0, AllZone.getSkin().getColor("borders"))); - this.add(lblAbout, "w 80%, gapleft 10%, gaptop 5%"); - ViewUtilities.this.control = new ControlUtilities(this); } - + /** @return SubButton */ public SubButton getBtnDownloadPics() { return btnDownloadPics; } - + /** @return SubButton */ public SubButton getBtnDownloadSetPics() { return btnDownloadSetPics; } - + /** @return SubButton */ public SubButton getBtnDownloadQuestImages() { return btnDownloadQuestImages; } - + /** @return SubButton */ public SubButton getBtnReportBug() { return btnReportBug; } - + /** @return SubButton */ public SubButton getBtnImportPictures() { return btnImportPictures; } - + /** @return SubButton */ public SubButton getBtnHowToPlay() { return btnHowToPlay; } - + /** @return SubButton */ public SubButton getBtnDownloadPrices() { return btnDownloadPrices; } - - /** - * - * TODO: Write javadoc for this method. - * @return the ControlUtilities - */ + + /** @return SubButton */ + public SubButton getBtnDeckEditor() { + return btnDeckEditor; + } + + /** @return JTextArea */ + public JTextArea getTarLicensing() { + return tarLicensing; + } + + /** @return ControlUtilities */ public ControlUtilities getController() { return ViewUtilities.this.control; } - + + /** @return HomeTopLevel */ + public HomeTopLevel getParentView() { + return parentView; + } } //end class ViewUtilities