Support creating new deck

This commit is contained in:
drdev
2014-06-19 02:35:11 +00:00
parent 72653430a1
commit 5050b25daa
2 changed files with 38 additions and 7 deletions

View File

@@ -35,6 +35,7 @@ public class FDeckChooser extends FScreen {
private FComboBox<DeckType> cmbDeckTypes; private FComboBox<DeckType> cmbDeckTypes;
private DeckType selectedDeckType; private DeckType selectedDeckType;
private boolean needRefreshOnActivate;
private final DeckManager lstDecks = new DeckManager(GameType.Constructed); private final DeckManager lstDecks = new DeckManager(GameType.Constructed);
private final FButton btnNewDeck = new FButton("New Deck"); private final FButton btnNewDeck = new FButton("New Deck");
@@ -60,6 +61,7 @@ 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) {
needRefreshOnActivate = true;
Forge.openScreen(new FDeckEditor(EditorType.Constructed, "")); Forge.openScreen(new FDeckEditor(EditorType.Constructed, ""));
} }
}); });
@@ -87,10 +89,20 @@ public class FDeckChooser extends FScreen {
}); });
} }
@Override
public void onActivate() {
if (needRefreshOnActivate) {
needRefreshOnActivate = false;
updateCustom();
lstDecks.setSelectedString(DeckPreferences.getCurrentDeck());
}
}
private void editSelectedDeck() { private void editSelectedDeck() {
final DeckProxy deck = lstDecks.getSelectedItem(); final DeckProxy deck = lstDecks.getSelectedItem();
if (deck == null) { return; } if (deck == null) { return; }
needRefreshOnActivate = true;
DeckPreferences.setCurrentDeck(deck.getName()); DeckPreferences.setCurrentDeck(deck.getName());
Forge.openScreen(new FDeckEditor(EditorType.Constructed, deck)); Forge.openScreen(new FDeckEditor(EditorType.Constructed, deck));
} }

View File

@@ -175,11 +175,14 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
editorType.getController().editor = this; editorType.getController().editor = this;
if (StringUtils.isEmpty(editDeckName)) { if (StringUtils.isEmpty(editDeckName)) {
setDeck(new Deck());
if (editorType == EditorType.Draft) { if (editorType == EditorType.Draft) {
//hide deck header on while drafting //hide deck header on while drafting
setDeck(new Deck());
deckHeader.setVisible(false); deckHeader.setVisible(false);
} }
else {
editorType.getController().newModel();
}
} }
else { else {
if (editorType == EditorType.Draft) { if (editorType == EditorType.Draft) {
@@ -274,9 +277,21 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
} }
} }
//if opening brand new sealed deck, show sideboard (card pool) by default switch (editorType) {
if (editorType == EditorType.Sealed && deck.getMain().isEmpty()) { case Sealed:
setSelectedPage(sideboardPage); //if opening brand new sealed deck, show sideboard (card pool) by default
if (deck.getMain().isEmpty()) {
setSelectedPage(sideboardPage);
}
break;
case Draft:
break;
default:
//if editing existing non-limited deck, show main deck by default
if (!deck.getMain().isEmpty()) {
setSelectedPage(mainDeckPage);
}
break;
} }
} }
@@ -327,6 +342,8 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
FOptionPane.showInputDialog("Enter name for new deck:", "New Deck", new Callback<String>() { FOptionPane.showInputDialog("Enter name for new deck:", "New Deck", new Callback<String>() {
@Override @Override
public void run(String result) { public void run(String result) {
if (StringUtils.isEmpty(result)) { return; }
editorType.getController().saveAs(result); editorType.getController().saveAs(result);
if (callback != null) { if (callback != null) {
callback.run(true); callback.run(true);
@@ -468,7 +485,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
} }
public void refresh() { public void refresh() {
ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCards(), PaperCard.class); cardManager.setPool(ItemPool.createFrom(FModel.getMagicDb().getCommonCards().getAllCards(), PaperCard.class));
} }
@Override @Override
@@ -689,6 +706,9 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
if (editor != null) { if (editor != null) {
String name = this.getModelName(); String name = this.getModelName();
if (name.isEmpty()) {
name = "[New Deck]";
}
if (!saved) { if (!saved) {
name = "*" + name; name = "*" + name;
} }
@@ -797,8 +817,7 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
} }
public void newModel() { public void newModel() {
model = newModelCreator.get(); setModel(newModelCreator.get());
setSaved(true);
} }
public String getModelName() { public String getModelName() {