mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28: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/TriggerUntaps.java svneol=native#text/plain
|
||||||
src/main/java/forge/card/trigger/package-info.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/ControlAllUI.java -text
|
||||||
|
src/main/java/forge/control/ControlHomeUI.java -text
|
||||||
src/main/java/forge/control/ControlMatchUI.java -text
|
src/main/java/forge/control/ControlMatchUI.java -text
|
||||||
src/main/java/forge/control/ControlWinLose.java -text
|
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
|
||||||
|
|||||||
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;
|
this.view = v0;
|
||||||
|
|
||||||
// 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
|
||||||
colorVals = new HashMap<String, String>();
|
colorVals = new HashMap<String, String>();
|
||||||
colorVals.put("Random", "AI");
|
colorVals.put("Random", "AI");
|
||||||
colorVals.put("Black", "black");
|
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. */
|
/** 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[] humanSelected = oa2sa(currentHumanSelection.getSelectedValues());
|
||||||
String[] aiSelected = oa2sa(currentAISelection.getSelectedValues());
|
String[] aiSelected = oa2sa(currentAISelection.getSelectedValues());
|
||||||
|
|
||||||
@@ -466,12 +467,8 @@ public class ControlConstructed {
|
|||||||
return themeNames.toArray();
|
return themeNames.toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** */
|
||||||
* Array of pre-constructed deck names, usually used in list boxes.
|
public void updateDeckNames() {
|
||||||
*
|
|
||||||
* @return Object[]
|
|
||||||
*/
|
|
||||||
public Object[] getDeckNames() {
|
|
||||||
deckNames = new ArrayList<String>();
|
deckNames = new ArrayList<String>();
|
||||||
deckNames.add(0, "Random");
|
deckNames.add(0, "Random");
|
||||||
|
|
||||||
@@ -483,7 +480,8 @@ public class ControlConstructed {
|
|||||||
// No pre-constructed decks?
|
// No pre-constructed decks?
|
||||||
if (deckNames.size() == 1) { deckNames = new ArrayList<String>(); }
|
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 net.miginfocom.swing.MigLayout;
|
||||||
import forge.AllZone;
|
import forge.AllZone;
|
||||||
|
import forge.control.ControlHomeUI;
|
||||||
|
import forge.control.home.ControlConstructed;
|
||||||
import forge.control.home.ControlDraft;
|
import forge.control.home.ControlDraft;
|
||||||
import forge.view.toolbox.FButton;
|
import forge.view.toolbox.FButton;
|
||||||
import forge.view.toolbox.FPanel;
|
import forge.view.toolbox.FPanel;
|
||||||
@@ -47,6 +49,7 @@ public class HomeTopLevel extends FPanel {
|
|||||||
private FSkin skin;
|
private FSkin skin;
|
||||||
private String constraints;
|
private String constraints;
|
||||||
private String imgDirAddress;
|
private String imgDirAddress;
|
||||||
|
private ControlHomeUI control;
|
||||||
|
|
||||||
private ViewConstructed constructed;
|
private ViewConstructed constructed;
|
||||||
private ViewSealed sealed;
|
private ViewSealed sealed;
|
||||||
@@ -126,13 +129,13 @@ public class HomeTopLevel extends FPanel {
|
|||||||
|
|
||||||
btnEditor = new FButton();
|
btnEditor = new FButton();
|
||||||
btnEditor.setAction(new AbstractAction() {
|
btnEditor.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { showDeckEditor(); }
|
public void actionPerformed(ActionEvent arg0) { control.showDeckEditor(null); }
|
||||||
});
|
});
|
||||||
btnEditor.setText("Deck Editor");
|
btnEditor.setText("Deck Editor");
|
||||||
|
|
||||||
btnExit = new FButton();
|
btnExit = new FButton();
|
||||||
btnExit.setAction(new AbstractAction() {
|
btnExit.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) { exit(); }
|
public void actionPerformed(ActionEvent arg0) { control.exit(); }
|
||||||
});
|
});
|
||||||
btnExit.setText("Exit");
|
btnExit.setText("Exit");
|
||||||
|
|
||||||
@@ -152,6 +155,8 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlMenu.add(btnEditor, constraints);
|
pnlMenu.add(btnEditor, constraints);
|
||||||
pnlMenu.add(btnExit, constraints);
|
pnlMenu.add(btnExit, constraints);
|
||||||
|
|
||||||
|
control = new ControlHomeUI(this);
|
||||||
|
|
||||||
// Open "constructed" menu on first run.
|
// Open "constructed" menu on first run.
|
||||||
showConstructedMenu();
|
showConstructedMenu();
|
||||||
}
|
}
|
||||||
@@ -216,14 +221,6 @@ public class HomeTopLevel extends FPanel {
|
|||||||
pnlContent.repaint();
|
pnlContent.repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDeckEditor() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void exit() {
|
|
||||||
System.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @return String */
|
/** @return String */
|
||||||
public String getImgDirAddress() {
|
public String getImgDirAddress() {
|
||||||
return imgDirAddress;
|
return imgDirAddress;
|
||||||
@@ -244,6 +241,11 @@ public class HomeTopLevel extends FPanel {
|
|||||||
return new ImageIcon(imgDirAddress + "btnStart_Up.png");
|
return new ImageIcon(imgDirAddress + "btnStart_Up.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return ControlConstructed */
|
||||||
|
public ControlConstructed getConstructedController() {
|
||||||
|
return constructed.getController();
|
||||||
|
}
|
||||||
|
|
||||||
/** @return ControlDraft */
|
/** @return ControlDraft */
|
||||||
public ControlDraft getDraftController() {
|
public ControlDraft getDraftController() {
|
||||||
return draft.getController();
|
return draft.getController();
|
||||||
@@ -263,4 +265,9 @@ public class HomeTopLevel extends FPanel {
|
|||||||
quest = new ViewQuest(this);
|
quest = new ViewQuest(this);
|
||||||
showQuestMenu();
|
showQuestMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return ControlHomeUI */
|
||||||
|
public ControlHomeUI getController() {
|
||||||
|
return control;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import javax.swing.Timer;
|
|||||||
import net.miginfocom.swing.MigLayout;
|
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.view.toolbox.FSkin;
|
import forge.view.toolbox.FSkin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -52,7 +53,6 @@ public class ViewConstructed extends JPanel {
|
|||||||
skin = AllZone.getSkin();
|
skin = AllZone.getSkin();
|
||||||
control = new ControlConstructed(this);
|
control = new ControlConstructed(this);
|
||||||
|
|
||||||
// Assemble JLists with arrays from above.
|
|
||||||
lstColorsHuman = new JList();
|
lstColorsHuman = new JList();
|
||||||
lstColorsHuman.setListData(control.oa2sa(control.getColorNames()));
|
lstColorsHuman.setListData(control.oa2sa(control.getColorNames()));
|
||||||
|
|
||||||
@@ -60,10 +60,7 @@ public class ViewConstructed extends JPanel {
|
|||||||
lstColorsAI.setListData(control.oa2sa(control.getColorNames()));
|
lstColorsAI.setListData(control.oa2sa(control.getColorNames()));
|
||||||
|
|
||||||
lstDecksHuman = new JList();
|
lstDecksHuman = new JList();
|
||||||
lstDecksHuman.setListData(control.oa2sa(control.getDeckNames()));
|
|
||||||
|
|
||||||
lstDecksAI = new JList();
|
lstDecksAI = new JList();
|
||||||
lstDecksAI.setListData(control.oa2sa(control.getDeckNames()));
|
|
||||||
|
|
||||||
lstThemesHuman = new JList();
|
lstThemesHuman = new JList();
|
||||||
lstThemesHuman.setListData(control.oa2sa(control.getThemeNames()));
|
lstThemesHuman.setListData(control.oa2sa(control.getThemeNames()));
|
||||||
@@ -81,12 +78,14 @@ public class ViewConstructed extends JPanel {
|
|||||||
btnHumanDeckList = new SubButton();
|
btnHumanDeckList = new SubButton();
|
||||||
btnHumanDeckList.setAction(new AbstractAction() {
|
btnHumanDeckList.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) {
|
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.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13));
|
||||||
btnHumanDeckList.setText("View selected deck");
|
btnHumanDeckList.setText("Edit selected deck");
|
||||||
btnHumanDeckList.setVerticalTextPosition(SwingConstants.CENTER);
|
btnHumanDeckList.setVerticalTextPosition(SwingConstants.CENTER);
|
||||||
|
|
||||||
// Add components
|
// Add components
|
||||||
@@ -108,11 +107,13 @@ public class ViewConstructed extends JPanel {
|
|||||||
btnAIDeckList = new SubButton();
|
btnAIDeckList = new SubButton();
|
||||||
btnAIDeckList.setAction(new AbstractAction() {
|
btnAIDeckList.setAction(new AbstractAction() {
|
||||||
public void actionPerformed(ActionEvent arg0) {
|
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.setFont(skin.getFont1().deriveFont(Font.PLAIN, 13));
|
||||||
btnAIDeckList.setText("View selected deck");
|
btnAIDeckList.setText("Edit selected deck");
|
||||||
|
|
||||||
// Add components
|
// Add components
|
||||||
this.add(new JScrollPane(lstColorsAI), constraints + ", gapleft 3%");
|
this.add(new JScrollPane(lstColorsAI), constraints + ", gapleft 3%");
|
||||||
@@ -141,7 +142,7 @@ public class ViewConstructed extends JPanel {
|
|||||||
JButton btnStart = new JButton();
|
JButton btnStart = new JButton();
|
||||||
btnStart.setAction(new AbstractAction() {
|
btnStart.setAction(new AbstractAction() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent arg0) { control.launch(); }
|
public void actionPerformed(ActionEvent arg0) { control.start(); }
|
||||||
});
|
});
|
||||||
btnStart.setRolloverEnabled(true);
|
btnStart.setRolloverEnabled(true);
|
||||||
btnStart.setPressedIcon(parentView.getStartButtonDown());
|
btnStart.setPressedIcon(parentView.getStartButtonDown());
|
||||||
@@ -162,6 +163,7 @@ public class ViewConstructed extends JPanel {
|
|||||||
|
|
||||||
// When all components have been added, add listeners.
|
// When all components have been added, add listeners.
|
||||||
control.addListeners();
|
control.addListeners();
|
||||||
|
control.updateDeckNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
// For some reason, MigLayout has sizing problems with a JLabel next to a JList.
|
// For some reason, MigLayout has sizing problems with a JLabel next to a JList.
|
||||||
|
|||||||
Reference in New Issue
Block a user