mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Support generating decks
This commit is contained in:
@@ -64,9 +64,29 @@ public class FDeckChooser extends FScreen {
|
||||
btnNewDeck.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
needRefreshOnActivate = true;
|
||||
setSelectedDeckType(DeckType.CUSTOM_DECK); //ensure user returns to custom user deck
|
||||
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
|
||||
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;
|
||||
@@ -267,7 +286,7 @@ public class FDeckChooser extends FScreen {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isGeneratedDeck() {
|
||||
return true;
|
||||
|
||||
@@ -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,7 +184,12 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
||||
deckHeader.setVisible(false);
|
||||
}
|
||||
else {
|
||||
editorType.getController().newModel();
|
||||
if (newDeck == null) {
|
||||
editorType.getController().newModel();
|
||||
}
|
||||
else {
|
||||
editorType.getController().setDeck(newDeck);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user