Deck editor enabled in home screen.

Also, decks can now be directly edited in constructed mode sub menu.
This commit is contained in:
Doublestrike
2011-12-14 11:03:41 +00:00
parent e3fb596d04
commit cb6e87ce3f
5 changed files with 83 additions and 27 deletions

1
.gitattributes vendored
View File

@@ -10758,6 +10758,7 @@ src/main/java/forge/card/trigger/TriggerUnequip.java svneol=native#text/plain
src/main/java/forge/card/trigger/TriggerUntaps.java svneol=native#text/plain
src/main/java/forge/card/trigger/package-info.java svneol=native#text/plain
src/main/java/forge/control/ControlAllUI.java -text
src/main/java/forge/control/ControlHomeUI.java -text
src/main/java/forge/control/ControlMatchUI.java -text
src/main/java/forge/control/ControlWinLose.java -text
src/main/java/forge/control/home/ControlConstructed.java -text

View File

@@ -0,0 +1,48 @@
package forge.control;
import forge.Command;
import forge.deck.Deck;
import forge.game.GameType;
import forge.gui.deckeditor.DeckEditorCommon;
import forge.view.home.HomeTopLevel;
/**
* TODO: Write javadoc for this type.
*
*/
public class ControlHomeUI {
private HomeTopLevel view;
/** @param v0   HomeTopLevel */
public ControlHomeUI(HomeTopLevel 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() {
System.exit(0);
}
}

View File

@@ -55,6 +55,7 @@ public class ControlConstructed {
this.view = v0;
// Reference values for colors, needed for deck generation classes.
// TODO enum me or get from another enum
colorVals = new HashMap<String, String>();
colorVals.put("Random", "AI");
colorVals.put("Black", "black");
@@ -410,7 +411,7 @@ public class ControlConstructed {
}
/** Fired when start button is pressed; checks various conditions from lists and starts game. */
public void launch() {
public void start() {
String[] humanSelected = oa2sa(currentHumanSelection.getSelectedValues());
String[] aiSelected = oa2sa(currentAISelection.getSelectedValues());
@@ -466,12 +467,8 @@ public class ControlConstructed {
return themeNames.toArray();
}
/**
* Array of pre-constructed deck names, usually used in list boxes.
*
* @return Object[]
*/
public Object[] getDeckNames() {
/** */
public void updateDeckNames() {
deckNames = new ArrayList<String>();
deckNames.add(0, "Random");
@@ -483,7 +480,8 @@ public class ControlConstructed {
// No pre-constructed decks?
if (deckNames.size() == 1) { deckNames = new ArrayList<String>(); }
return deckNames.toArray();
view.getLstDecksHuman().setListData(deckNames.toArray());
view.getLstDecksAI().setListData(deckNames.toArray());
}
/**

View File

@@ -28,6 +28,8 @@ import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.control.ControlHomeUI;
import forge.control.home.ControlConstructed;
import forge.control.home.ControlDraft;
import forge.view.toolbox.FButton;
import forge.view.toolbox.FPanel;
@@ -47,6 +49,7 @@ public class HomeTopLevel extends FPanel {
private FSkin skin;
private String constraints;
private String imgDirAddress;
private ControlHomeUI control;
private ViewConstructed constructed;
private ViewSealed sealed;
@@ -126,13 +129,13 @@ public class HomeTopLevel extends FPanel {
btnEditor = new FButton();
btnEditor.setAction(new AbstractAction() {
public void actionPerformed(ActionEvent arg0) { showDeckEditor(); }
public void actionPerformed(ActionEvent arg0) { control.showDeckEditor(null); }
});
btnEditor.setText("Deck Editor");
btnExit = new FButton();
btnExit.setAction(new AbstractAction() {
public void actionPerformed(ActionEvent arg0) { exit(); }
public void actionPerformed(ActionEvent arg0) { control.exit(); }
});
btnExit.setText("Exit");
@@ -152,6 +155,8 @@ public class HomeTopLevel extends FPanel {
pnlMenu.add(btnEditor, constraints);
pnlMenu.add(btnExit, constraints);
control = new ControlHomeUI(this);
// Open "constructed" menu on first run.
showConstructedMenu();
}
@@ -216,14 +221,6 @@ public class HomeTopLevel extends FPanel {
pnlContent.repaint();
}
public void showDeckEditor() {
}
private void exit() {
System.exit(0);
}
/** @return String */
public String getImgDirAddress() {
return imgDirAddress;
@@ -244,6 +241,11 @@ public class HomeTopLevel extends FPanel {
return new ImageIcon(imgDirAddress + "btnStart_Up.png");
}
/** @return ControlConstructed */
public ControlConstructed getConstructedController() {
return constructed.getController();
}
/** @return ControlDraft */
public ControlDraft getDraftController() {
return draft.getController();
@@ -263,4 +265,9 @@ public class HomeTopLevel extends FPanel {
quest = new ViewQuest(this);
showQuestMenu();
}
/** @return ControlHomeUI */
public ControlHomeUI getController() {
return control;
}
}

View File

@@ -19,6 +19,7 @@ import javax.swing.Timer;
import net.miginfocom.swing.MigLayout;
import forge.AllZone;
import forge.control.home.ControlConstructed;
import forge.deck.Deck;
import forge.view.toolbox.FSkin;
/**
@@ -52,7 +53,6 @@ public class ViewConstructed extends JPanel {
skin = AllZone.getSkin();
control = new ControlConstructed(this);
// Assemble JLists with arrays from above.
lstColorsHuman = new JList();
lstColorsHuman.setListData(control.oa2sa(control.getColorNames()));
@@ -60,10 +60,7 @@ public class ViewConstructed extends JPanel {
lstColorsAI.setListData(control.oa2sa(control.getColorNames()));
lstDecksHuman = new JList();
lstDecksHuman.setListData(control.oa2sa(control.getDeckNames()));
lstDecksAI = new JList();
lstDecksAI.setListData(control.oa2sa(control.getDeckNames()));
lstThemesHuman = new JList();
lstThemesHuman.setListData(control.oa2sa(control.getThemeNames()));
@@ -81,12 +78,14 @@ public class ViewConstructed extends JPanel {
btnHumanDeckList = new SubButton();
btnHumanDeckList.setAction(new AbstractAction() {
public void actionPerformed(ActionEvent arg0) {
ViewConstructed.this.control.viewDeckList("Human");
String s = lstDecksHuman.getSelectedValue().toString();
Deck d = AllZone.getDeckManager().getDeck(s);
parentView.getController().showDeckEditor(d);
}
});
btnHumanDeckList.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13));
btnHumanDeckList.setText("View selected deck");
btnHumanDeckList.setText("Edit selected deck");
btnHumanDeckList.setVerticalTextPosition(SwingConstants.CENTER);
// Add components
@@ -108,11 +107,13 @@ public class ViewConstructed extends JPanel {
btnAIDeckList = new SubButton();
btnAIDeckList.setAction(new AbstractAction() {
public void actionPerformed(ActionEvent arg0) {
ViewConstructed.this.control.viewDeckList("Computer");
String s = lstDecksAI.getSelectedValue().toString();
Deck d = AllZone.getDeckManager().getDeck(s);
parentView.getController().showDeckEditor(d);
}
});
btnAIDeckList.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13));
btnAIDeckList.setText("View selected deck");
btnAIDeckList.setText("Edit selected deck");
// Add components
this.add(new JScrollPane(lstColorsAI), constraints + ", gapleft 3%");
@@ -141,7 +142,7 @@ public class ViewConstructed extends JPanel {
JButton btnStart = new JButton();
btnStart.setAction(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) { control.launch(); }
public void actionPerformed(ActionEvent arg0) { control.start(); }
});
btnStart.setRolloverEnabled(true);
btnStart.setPressedIcon(parentView.getStartButtonDown());
@@ -162,6 +163,7 @@ public class ViewConstructed extends JPanel {
// When all components have been added, add listeners.
control.addListeners();
control.updateDeckNames();
}
// For some reason, MigLayout has sizing problems with a JLabel next to a JList.