mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Deck editor enabled in home screen.
Also, decks can now be directly edited in constructed mode sub menu.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
|
||||
|
||||
48
src/main/java/forge/control/ControlHomeUI.java
Normal file
48
src/main/java/forge/control/ControlHomeUI.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user