mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
Sealed mode home screen menu fully working.
Deck editor button moved to utilities menu.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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/ControlConstructed.java -text
|
||||||
src/main/java/forge/control/home/ControlDraft.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/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/ControlSettings.java -text
|
||||||
src/main/java/forge/control/home/ControlUtilities.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
|
src/main/java/forge/control/home/package-info.java -text svneol=native#text/plain
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
package forge.control;
|
package forge.control;
|
||||||
|
|
||||||
import forge.Command;
|
|
||||||
import forge.deck.Deck;
|
|
||||||
import forge.game.GameType;
|
|
||||||
import forge.gui.deckeditor.DeckEditorCommon;
|
|
||||||
import forge.view.home.HomeTopLevel;
|
import forge.view.home.HomeTopLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,31 +14,13 @@ public class ControlHomeUI {
|
|||||||
view = v0;
|
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() {
|
public void exit() {
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return HomeTopLevel */
|
||||||
|
public HomeTopLevel getView() {
|
||||||
|
return view;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,10 @@ public class ControlConstructed {
|
|||||||
// Reference values for colors, needed for deck generation classes.
|
// Reference values for colors, needed for deck generation classes.
|
||||||
// TODO enum me or get from another enum
|
// TODO enum me or get from another enum
|
||||||
colorVals = new HashMap<String, String>();
|
colorVals = new HashMap<String, String>();
|
||||||
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("Black", "black");
|
||||||
colorVals.put("Blue", "blue");
|
colorVals.put("Blue", "blue");
|
||||||
colorVals.put("Green", "green");
|
colorVals.put("Green", "green");
|
||||||
|
|||||||
175
src/main/java/forge/control/home/ControlSealed.java
Normal file
175
src/main/java/forge/control/home/ControlSealed.java
Normal file
@@ -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<String> aiNames = new ArrayList<String>();
|
||||||
|
List<String> humanNames = new ArrayList<String>();
|
||||||
|
|
||||||
|
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<String> sealedTypes = new ArrayList<String>();
|
||||||
|
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<CardPrinted> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,17 +2,23 @@ package forge.control.home;
|
|||||||
|
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
import javax.swing.JTextArea;
|
import javax.swing.JTextArea;
|
||||||
|
|
||||||
|
import forge.Command;
|
||||||
import forge.GuiDownloadPicturesLQ;
|
import forge.GuiDownloadPicturesLQ;
|
||||||
import forge.GuiDownloadPrices;
|
import forge.GuiDownloadPrices;
|
||||||
import forge.GuiDownloadQuestImages;
|
import forge.GuiDownloadQuestImages;
|
||||||
import forge.GuiDownloadSetPicturesLQ;
|
import forge.GuiDownloadSetPicturesLQ;
|
||||||
import forge.GuiImportPicture;
|
import forge.GuiImportPicture;
|
||||||
|
import forge.deck.Deck;
|
||||||
import forge.error.BugzReporter;
|
import forge.error.BugzReporter;
|
||||||
|
import forge.game.GameType;
|
||||||
|
import forge.gui.deckeditor.DeckEditorCommon;
|
||||||
import forge.properties.ForgeProps;
|
import forge.properties.ForgeProps;
|
||||||
import forge.properties.NewConstants.Lang;
|
import forge.properties.NewConstants.Lang;
|
||||||
import forge.view.home.ViewUtilities;
|
import forge.view.home.ViewUtilities;
|
||||||
@@ -23,7 +29,7 @@ import forge.view.home.ViewUtilities;
|
|||||||
*/
|
*/
|
||||||
public class ControlUtilities {
|
public class ControlUtilities {
|
||||||
private ViewUtilities view;
|
private ViewUtilities view;
|
||||||
|
private boolean licensingExpanded = false;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Controls logic and listeners for Utilities panel of the home screen.
|
* Controls logic and listeners for Utilities panel of the home screen.
|
||||||
@@ -99,17 +105,89 @@ public class ControlUtilities {
|
|||||||
gdp.setVisible(true);
|
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() {
|
private void doDownloadPics() {
|
||||||
new GuiDownloadPicturesLQ(null);
|
new GuiDownloadPicturesLQ(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doDownloadSetPics() {
|
private void doDownloadSetPics() {
|
||||||
new GuiDownloadSetPicturesLQ(null);
|
new GuiDownloadSetPicturesLQ(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doDownloadQuestImages() {
|
private void doDownloadQuestImages() {
|
||||||
new GuiDownloadQuestImages(null);
|
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 <http://www.gnu.org/licenses/>."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ import forge.AllZone;
|
|||||||
import forge.control.ControlHomeUI;
|
import forge.control.ControlHomeUI;
|
||||||
import forge.control.home.ControlConstructed;
|
import forge.control.home.ControlConstructed;
|
||||||
import forge.control.home.ControlDraft;
|
import forge.control.home.ControlDraft;
|
||||||
|
import forge.control.home.ControlSealed;
|
||||||
|
import forge.control.home.ControlUtilities;
|
||||||
import forge.view.toolbox.FButton;
|
import forge.view.toolbox.FButton;
|
||||||
import forge.view.toolbox.FPanel;
|
import forge.view.toolbox.FPanel;
|
||||||
import forge.view.toolbox.FRoundedPanel;
|
import forge.view.toolbox.FRoundedPanel;
|
||||||
@@ -45,7 +47,7 @@ import forge.view.toolbox.FSkin;
|
|||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public class HomeTopLevel extends FPanel {
|
public class HomeTopLevel extends FPanel {
|
||||||
private JPanel pnlMenu, pnlContent;
|
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 FSkin skin;
|
||||||
private String constraints;
|
private String constraints;
|
||||||
private String imgDirAddress;
|
private String imgDirAddress;
|
||||||
@@ -127,12 +129,6 @@ public class HomeTopLevel extends FPanel {
|
|||||||
});
|
});
|
||||||
btnUtilities.setText("Utilities");
|
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 = new FButton();
|
||||||
btnExit.setAction(new AbstractAction() {
|
btnExit.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { control.exit(); }
|
public void actionPerformed(ActionEvent arg0) { control.exit(); }
|
||||||
@@ -152,7 +148,6 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlMenu.add(btnQuest, constraints);
|
pnlMenu.add(btnQuest, constraints);
|
||||||
pnlMenu.add(btnSettings, constraints);
|
pnlMenu.add(btnSettings, constraints);
|
||||||
pnlMenu.add(btnUtilities, constraints);
|
pnlMenu.add(btnUtilities, constraints);
|
||||||
pnlMenu.add(btnEditor, constraints);
|
|
||||||
pnlMenu.add(btnExit, constraints);
|
pnlMenu.add(btnExit, constraints);
|
||||||
|
|
||||||
control = new ControlHomeUI(this);
|
control = new ControlHomeUI(this);
|
||||||
@@ -251,6 +246,16 @@ public class HomeTopLevel extends FPanel {
|
|||||||
return draft.getController();
|
return draft.getController();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return ControlSealed */
|
||||||
|
public ControlSealed getSealedController() {
|
||||||
|
return sealed.getController();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return ControlUtilities */
|
||||||
|
public ControlUtilities getUtilitiesController() {
|
||||||
|
return utilities.getController();
|
||||||
|
}
|
||||||
|
|
||||||
private void clearToggles() {
|
private void clearToggles() {
|
||||||
btnConstructed.setToggled(false);
|
btnConstructed.setToggled(false);
|
||||||
btnSealed.setToggled(false);
|
btnSealed.setToggled(false);
|
||||||
|
|||||||
@@ -20,10 +20,11 @@ import net.miginfocom.swing.MigLayout;
|
|||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
import forge.control.home.ControlConstructed;
|
import forge.control.home.ControlConstructed;
|
||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
|
import forge.game.GameType;
|
||||||
import forge.view.toolbox.FSkin;
|
import forge.view.toolbox.FSkin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populates Swing components of Constructed mode in home screen.
|
* Assembles swing components for "Constructed" mode menu.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
@@ -40,7 +41,7 @@ public class ViewConstructed extends JPanel {
|
|||||||
private ControlConstructed control;
|
private ControlConstructed control;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populates Swing components of "constructed" mode in home screen.
|
* Assembles swing components for "Constructed" mode menu.
|
||||||
*
|
*
|
||||||
* @param v0   HomeTopLevel parent view
|
* @param v0   HomeTopLevel parent view
|
||||||
*/
|
*/
|
||||||
@@ -80,7 +81,7 @@ public class ViewConstructed extends JPanel {
|
|||||||
public void actionPerformed(ActionEvent arg0) {
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
String s = lstDecksHuman.getSelectedValue().toString();
|
String s = lstDecksHuman.getSelectedValue().toString();
|
||||||
Deck d = AllZone.getDeckManager().getDeck(s);
|
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) {
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
String s = lstDecksAI.getSelectedValue().toString();
|
String s = lstDecksAI.getSelectedValue().toString();
|
||||||
Deck d = AllZone.getDeckManager().getDeck(s);
|
Deck d = AllZone.getDeckManager().getDeck(s);
|
||||||
parentView.getController().showDeckEditor(d);
|
parentView.getUtilitiesController().showDeckEditor(GameType.Constructed, d);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnAIDeckList.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13));
|
btnAIDeckList.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13));
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package forge.view.home;
|
|||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
@@ -12,25 +14,29 @@ import javax.swing.SwingConstants;
|
|||||||
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
|
import forge.control.home.ControlSealed;
|
||||||
import forge.view.toolbox.FSkin;
|
import forge.view.toolbox.FSkin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: Write javadoc for this type.
|
* Assembles swing components for "Sealed" mode menu.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public class ViewSealed extends JPanel {
|
public class ViewSealed extends JPanel {
|
||||||
private FSkin skin;
|
private FSkin skin;
|
||||||
private HomeTopLevel parentView;
|
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
|
* @param v0   HomeTopLevel parent view
|
||||||
*/
|
*/
|
||||||
public ViewSealed(HomeTopLevel v0) {
|
public ViewSealed(HomeTopLevel v0) {
|
||||||
super();
|
super();
|
||||||
this.setOpaque(false);
|
this.setOpaque(false);
|
||||||
this.setLayout(new MigLayout("insets 0, gap 0"));
|
this.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
|
||||||
parentView = v0;
|
parentView = v0;
|
||||||
skin = AllZone.getSkin();
|
skin = AllZone.getSkin();
|
||||||
|
|
||||||
@@ -38,26 +44,28 @@ public class ViewSealed extends JPanel {
|
|||||||
lblTitle.setFont(skin.getFont1().deriveFont(Font.BOLD, 16));
|
lblTitle.setFont(skin.getFont1().deriveFont(Font.BOLD, 16));
|
||||||
lblTitle.setForeground(skin.getColor("text"));
|
lblTitle.setForeground(skin.getColor("text"));
|
||||||
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
|
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"};
|
lstHumanDecks = new JList();
|
||||||
String[] ai = {"four", "five:", "siz"};
|
lstAIDecks = new JList();
|
||||||
|
|
||||||
JList humanDecks = new JList(human);
|
|
||||||
JList aiDecks = new JList(ai);
|
|
||||||
|
|
||||||
//
|
//
|
||||||
this.add(new JScrollPane(humanDecks), "w 30%!, gapleft 15%, gapright 5%, h 30%!");
|
this.add(new JScrollPane(lstHumanDecks), "w 40%!, h 30%!, gap 7.5% 5% 2% 2%");
|
||||||
this.add(new JScrollPane(aiDecks), "w 30%!, h 30%!, wrap");
|
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");
|
SubButton buildHuman = new SubButton("Build New Human Deck");
|
||||||
this.add(buildHuman, "w 30%!, h 5%!, gapleft 15%, gapright 15%, gaptop 1%");
|
buildHuman.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
SubButton buildAI = new SubButton("Build New AI Deck");
|
public void mousePressed(MouseEvent e) { control.setupSealed(); }
|
||||||
this.add(buildAI, "w 30%!, h 5%!, gaptop 1%, wrap");
|
});
|
||||||
|
this.add(buildHuman, "w 40%!, h 5%!, gap 7.5% 5% 0 0, wrap");
|
||||||
|
|
||||||
// Start button
|
// Start button
|
||||||
JButton btnStart = new JButton();
|
JButton btnStart = new JButton();
|
||||||
|
btnStart.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) { control.start(); }
|
||||||
|
});
|
||||||
btnStart.setRolloverEnabled(true);
|
btnStart.setRolloverEnabled(true);
|
||||||
btnStart.setPressedIcon(parentView.getStartButtonDown());
|
btnStart.setPressedIcon(parentView.getStartButtonDown());
|
||||||
btnStart.setRolloverIcon(parentView.getStartButtonOver());
|
btnStart.setRolloverIcon(parentView.getStartButtonOver());
|
||||||
@@ -74,10 +82,30 @@ public class ViewSealed extends JPanel {
|
|||||||
|
|
||||||
pnlButtonContainer.setLayout(new BorderLayout());
|
pnlButtonContainer.setLayout(new BorderLayout());
|
||||||
pnlButtonContainer.add(btnStart, SwingConstants.CENTER);
|
pnlButtonContainer.add(btnStart, SwingConstants.CENTER);
|
||||||
|
|
||||||
|
control = new ControlSealed(this);
|
||||||
|
control.updateDeckLists();
|
||||||
|
lstHumanDecks.setSelectedIndex(0);
|
||||||
|
lstAIDecks.setSelectedIndex(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return HomeTopLevel */
|
/** @return HomeTopLevel */
|
||||||
public HomeTopLevel getParentView() {
|
public HomeTopLevel getParentView() {
|
||||||
return parentView;
|
return parentView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return JList */
|
||||||
|
public JList getLstHumanDecks() {
|
||||||
|
return lstHumanDecks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return JList */
|
||||||
|
public JList getLstAIDecks() {
|
||||||
|
return lstAIDecks;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return ControlSealed */
|
||||||
|
public ControlSealed getController() {
|
||||||
|
return control;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,40 +1,48 @@
|
|||||||
package forge.view.home;
|
package forge.view.home;
|
||||||
|
|
||||||
import javax.swing.JLabel;
|
import java.awt.Font;
|
||||||
import javax.swing.JPanel;
|
|
||||||
import javax.swing.border.MatteBorder;
|
|
||||||
|
|
||||||
import forge.AllZone;
|
import javax.swing.JPanel;
|
||||||
import forge.control.home.ControlUtilities;
|
import javax.swing.JTextArea;
|
||||||
|
import javax.swing.SwingConstants;
|
||||||
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
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")
|
@SuppressWarnings("serial")
|
||||||
public class ViewUtilities extends JPanel {
|
public class ViewUtilities extends JPanel {
|
||||||
|
private HomeTopLevel parentView;
|
||||||
private ControlUtilities control;
|
private ControlUtilities control;
|
||||||
|
private FSkin skin;
|
||||||
private SubButton btnDownloadSetPics, btnDownloadPics, btnDownloadQuestImages, btnReportBug;
|
private JTextArea tarLicensing;
|
||||||
private SubButton btnImportPictures, btnHowToPlay, btnDownloadPrices;
|
|
||||||
|
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
|
* @param v0   HomeTopLevel
|
||||||
*/
|
*/
|
||||||
public ViewUtilities(HomeTopLevel v0) {
|
public ViewUtilities(HomeTopLevel v0) {
|
||||||
super();
|
super();
|
||||||
this.setOpaque(false);
|
this.setOpaque(false);
|
||||||
this.setLayout(new MigLayout("insets 0, gap 0, wrap, ay center"));
|
this.setLayout(new MigLayout("insets 0, gap 0, wrap, ay center"));
|
||||||
|
parentView = v0;
|
||||||
|
skin = AllZone.getSkin();
|
||||||
|
|
||||||
btnDownloadPics = new SubButton("Download LQ Card Pictures");
|
btnDownloadPics = new SubButton("Download LQ Card Pictures");
|
||||||
this.add(btnDownloadPics, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%, gaptop 5%");
|
this.add(btnDownloadPics, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%, gaptop 5%");
|
||||||
|
|
||||||
btnDownloadSetPics = new SubButton("Download LQ Set Pictures");
|
btnDownloadSetPics = new SubButton("Download LQ Set Pictures");
|
||||||
this.add(btnDownloadSetPics, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
this.add(btnDownloadSetPics, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
||||||
|
|
||||||
btnDownloadQuestImages = new SubButton("Download Quest Images");
|
btnDownloadQuestImages = new SubButton("Download Quest Images");
|
||||||
this.add(btnDownloadQuestImages, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
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");
|
btnReportBug = new SubButton("Report a Bug");
|
||||||
this.add(btnReportBug, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
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,
|
* slapshot5 - I think this is useless here. If it serves a purpose, just uncomment,
|
||||||
* and hook it up in ControlUtilities.
|
* and hook it up in ControlUtilities.
|
||||||
|
*
|
||||||
|
* doublestrike - too right
|
||||||
*/
|
*/
|
||||||
|
// TODO make this a dock shortcut
|
||||||
/*
|
/*
|
||||||
SubButton btnStackReport = new SubButton("Stack Report");
|
SubButton btnStackReport = new SubButton("Stack Report");
|
||||||
this.add(btnStackReport, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
this.add(btnStackReport, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
||||||
*/
|
*/
|
||||||
|
|
||||||
btnHowToPlay = new SubButton("How To Play");
|
tarLicensing = new JTextArea();
|
||||||
this.add(btnHowToPlay, "h 30px!, w 50%!, gapleft 25%, gapbottom 2%");
|
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);
|
ViewUtilities.this.control = new ControlUtilities(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnDownloadPics() {
|
public SubButton getBtnDownloadPics() {
|
||||||
return btnDownloadPics;
|
return btnDownloadPics;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnDownloadSetPics() {
|
public SubButton getBtnDownloadSetPics() {
|
||||||
return btnDownloadSetPics;
|
return btnDownloadSetPics;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnDownloadQuestImages() {
|
public SubButton getBtnDownloadQuestImages() {
|
||||||
return btnDownloadQuestImages;
|
return btnDownloadQuestImages;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnReportBug() {
|
public SubButton getBtnReportBug() {
|
||||||
return btnReportBug;
|
return btnReportBug;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnImportPictures() {
|
public SubButton getBtnImportPictures() {
|
||||||
return btnImportPictures;
|
return btnImportPictures;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnHowToPlay() {
|
public SubButton getBtnHowToPlay() {
|
||||||
return btnHowToPlay;
|
return btnHowToPlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return SubButton */
|
/** @return SubButton */
|
||||||
public SubButton getBtnDownloadPrices() {
|
public SubButton getBtnDownloadPrices() {
|
||||||
return btnDownloadPrices;
|
return btnDownloadPrices;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** @return SubButton */
|
||||||
*
|
public SubButton getBtnDeckEditor() {
|
||||||
* TODO: Write javadoc for this method.
|
return btnDeckEditor;
|
||||||
* @return the ControlUtilities
|
}
|
||||||
*/
|
|
||||||
|
/** @return JTextArea */
|
||||||
|
public JTextArea getTarLicensing() {
|
||||||
|
return tarLicensing;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return ControlUtilities */
|
||||||
public ControlUtilities getController() {
|
public ControlUtilities getController() {
|
||||||
return ViewUtilities.this.control;
|
return ViewUtilities.this.control;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return HomeTopLevel */
|
||||||
|
public HomeTopLevel getParentView() {
|
||||||
|
return parentView;
|
||||||
|
}
|
||||||
} //end class ViewUtilities
|
} //end class ViewUtilities
|
||||||
|
|||||||
Reference in New Issue
Block a user