mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
Prevent switching to custom deck until new deck saved
This commit is contained in:
@@ -64,29 +64,38 @@ public class FDeckChooser extends FScreen {
|
|||||||
btnNewDeck.setCommand(new FEventHandler() {
|
btnNewDeck.setCommand(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
|
FDeckEditor editor;
|
||||||
switch (selectedDeckType) {
|
switch (selectedDeckType) {
|
||||||
case COLOR_DECK:
|
case COLOR_DECK:
|
||||||
case THEME_DECK:
|
case THEME_DECK:
|
||||||
final DeckProxy deck = lstDecks.getSelectedItem();
|
final DeckProxy deck = lstDecks.getSelectedItem();
|
||||||
if (deck != null) {
|
if (deck != null) {
|
||||||
Deck generatedDeck = deck.getDeck();
|
Deck generatedDeck = deck.getDeck();
|
||||||
if (generatedDeck != null) {
|
if (generatedDeck == null) { return; }
|
||||||
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
|
|
||||||
needRefreshOnActivate = true;
|
generatedDeck = (Deck)generatedDeck.copyTo(""); //prevent deck having a name by default
|
||||||
setSelectedDeckType(DeckType.CUSTOM_DECK); //ensure user returns to custom user deck
|
editor = new FDeckEditor(EditorType.Constructed, generatedDeck);
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Constructed, generatedDeck));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
FOptionPane.showErrorDialog("You must select something before you can generate a new deck.");
|
FOptionPane.showErrorDialog("You must select something before you can generate a new deck.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
needRefreshOnActivate = true;
|
editor = new FDeckEditor(EditorType.Constructed, "");
|
||||||
setSelectedDeckType(DeckType.CUSTOM_DECK);
|
|
||||||
Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
editor.setSaveHandler(new FEventHandler() {
|
||||||
|
@Override
|
||||||
|
public void handleEvent(FEvent e) {
|
||||||
|
//ensure user returns to custom user deck and that list is refreshed if new deck is saved
|
||||||
|
if (!needRefreshOnActivate) {
|
||||||
|
needRefreshOnActivate = true;
|
||||||
|
setSelectedDeckType(DeckType.CUSTOM_DECK);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Forge.openScreen(editor);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
btnEditDeck.setCommand(new FEventHandler() {
|
btnEditDeck.setCommand(new FEventHandler() {
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import forge.screens.TabPageScreen;
|
|||||||
import forge.toolbox.FContainer;
|
import forge.toolbox.FContainer;
|
||||||
import forge.toolbox.FEvent;
|
import forge.toolbox.FEvent;
|
||||||
import forge.toolbox.FEvent.FEventHandler;
|
import forge.toolbox.FEvent.FEventHandler;
|
||||||
|
import forge.toolbox.FEvent.FEventType;
|
||||||
import forge.toolbox.FLabel;
|
import forge.toolbox.FLabel;
|
||||||
import forge.toolbox.FOptionPane;
|
import forge.toolbox.FOptionPane;
|
||||||
import forge.util.Callback;
|
import forge.util.Callback;
|
||||||
@@ -156,6 +157,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
private CatalogPage catalogPage;
|
private CatalogPage catalogPage;
|
||||||
private DeckSectionPage mainDeckPage;
|
private DeckSectionPage mainDeckPage;
|
||||||
private DeckSectionPage sideboardPage;
|
private DeckSectionPage sideboardPage;
|
||||||
|
private FEventHandler saveHandler;
|
||||||
|
|
||||||
protected final DeckHeader deckHeader = add(new DeckHeader());
|
protected final DeckHeader deckHeader = add(new DeckHeader());
|
||||||
protected final FLabel lblName = deckHeader.add(new FLabel.Builder().font(FSkinFont.get(16)).insets(new Vector2(Utils.scaleX(5), 0)).build());
|
protected final FLabel lblName = deckHeader.add(new FLabel.Builder().font(FSkinFont.get(16)).insets(new Vector2(Utils.scaleX(5), 0)).build());
|
||||||
@@ -346,6 +348,10 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSaveHandler(FEventHandler saveHandler0) {
|
||||||
|
saveHandler = saveHandler0;
|
||||||
|
}
|
||||||
|
|
||||||
protected void save(final Callback<Boolean> callback) {
|
protected void save(final Callback<Boolean> callback) {
|
||||||
if (StringUtils.isEmpty(deck.getName())) {
|
if (StringUtils.isEmpty(deck.getName())) {
|
||||||
FOptionPane.showInputDialog("Enter name for new deck:", "New Deck", new Callback<String>() {
|
FOptionPane.showInputDialog("Enter name for new deck:", "New Deck", new Callback<String>() {
|
||||||
@@ -797,6 +803,9 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
editor.setDeck(getDeck());
|
editor.setDeck(getDeck());
|
||||||
|
if (editor.saveHandler != null) {
|
||||||
|
editor.saveHandler.handleEvent(new FEvent(editor, FEventType.SAVE));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ public class FEvent {
|
|||||||
LONG_PRESS,
|
LONG_PRESS,
|
||||||
CHANGE,
|
CHANGE,
|
||||||
ACTIVATE,
|
ACTIVATE,
|
||||||
|
SAVE,
|
||||||
DELETE
|
DELETE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user