Support generating decks

This commit is contained in:
drdev
2014-06-20 01:30:14 +00:00
parent c84450e914
commit 83fcd63fe7
2 changed files with 46 additions and 9 deletions

View File

@@ -64,9 +64,29 @@ public class FDeckChooser extends FScreen {
btnNewDeck.setCommand(new FEventHandler() {
@Override
public void handleEvent(FEvent e) {
switch (selectedDeckType) {
case COLOR_DECK:
case THEME_DECK:
final DeckProxy deck = lstDecks.getSelectedItem();
if (deck != null) {
Deck generatedDeck = deck.getDeck();
if (generatedDeck != null) {
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
needRefreshOnActivate = true;
setSelectedDeckType(DeckType.CUSTOM_DECK); //ensure user returns to custom user deck
Forge.openScreen(new FDeckEditor(EditorType.Constructed, generatedDeck));
}
}
else {
FOptionPane.showErrorDialog("You must select something before you can generate a new deck.");
}
break;
default:
needRefreshOnActivate = true;
setSelectedDeckType(DeckType.CUSTOM_DECK);
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
break;
}
}
});
btnEditDeck.setCommand(new FEventHandler() {
@@ -250,7 +270,6 @@ public class FDeckChooser extends FScreen {
return name;
}
@Override
public int compareTo(final ColorDeckGenerator d) {
return d instanceof ColorDeckGenerator ? Integer.compare(this.index, ((ColorDeckGenerator)d).index) : 1;

View File

@@ -163,12 +163,15 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
private final FLabel btnMoreOptions = deckHeader.add(new FLabel.Builder().text("...").font(FSkinFont.get(20)).align(HAlignment.CENTER).pressedColor(Header.BTN_PRESSED_COLOR).build());
public FDeckEditor(EditorType editorType0, DeckProxy editDeck) {
this(editorType0, editDeck.getName(), editDeck.getPath());
this(editorType0, editDeck.getName(), editDeck.getPath(), null);
}
public FDeckEditor(EditorType editorType0, String editDeckName) {
this(editorType0, editDeckName, "");
this(editorType0, editDeckName, "", null);
}
private FDeckEditor(EditorType editorType0, String editDeckName, String editDeckPath) {
public FDeckEditor(EditorType editorType0, Deck newDeck) {
this(editorType0, "", "", newDeck);
}
private FDeckEditor(EditorType editorType0, String editDeckName, String editDeckPath, Deck newDeck) {
super(getPages(editorType0));
editorType = editorType0;
@@ -181,8 +184,13 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
deckHeader.setVisible(false);
}
else {
if (newDeck == null) {
editorType.getController().newModel();
}
else {
editorType.getController().setDeck(newDeck);
}
}
}
else {
if (editorType == EditorType.Draft) {
@@ -658,6 +666,16 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
return modelPath;
}
@SuppressWarnings("unchecked")
public void setDeck(final Deck deck) {
modelInStorage = false;
model = (T)deck;
currentFolder = rootFolder;
modelPath = "";
setSaved(false);
editor.setDeck(deck);
}
public void setModel(final T document) {
setModel(document, false);
}