Fixed sealed deck update problem.

This commit is contained in:
Doublestrike
2012-03-04 04:31:48 +00:00
parent 2fe2dad81f
commit d2d51e93c1
4 changed files with 24 additions and 31 deletions

View File

@@ -88,7 +88,9 @@ public final class DeckEditorLimited extends DeckEditorBase<CardPrinted, DeckGro
@Override
public void execute() {
DeckEditorLimited.this.dispose();
exitCommand.execute();
if (exitCommand != null) {
exitCommand.execute();
}
}
};

View File

@@ -112,7 +112,6 @@ public class DraftingProcess extends DeckEditorBase<CardPrinted, DeckGroup> {
public final void showGui(final IBoosterDraft inBoosterDraft) {
this.boosterDraft = inBoosterDraft;
this.show(null);
}
/**
@@ -338,6 +337,8 @@ public class DraftingProcess extends DeckEditorBase<CardPrinted, DeckGroup> {
// close and open next screen
DraftingProcess.this.dispose();
// This should be handled in the exit command of the editor, not here.
CSubmenuDraft.SINGLETON_INSTANCE.update();
GuiUtils.closeOverlay();
} /* saveDraft() */

View File

@@ -18,13 +18,14 @@ import forge.Command;
import forge.Constant;
import forge.Singletons;
import forge.deck.Deck;
import forge.deck.DeckBase;
import forge.deck.DeckGroup;
import forge.game.GameNew;
import forge.game.GameType;
import forge.game.limited.SealedDeck;
import forge.gui.GuiUtils;
import forge.gui.deckeditor.DeckEditorBase;
import forge.gui.deckeditor.DeckEditorLimited;
import forge.gui.home.ICSubmenu;
import forge.gui.home.utilities.CSubmenuDeckEditor;
import forge.gui.toolbox.FSkin;
import forge.item.CardPrinted;
import forge.item.ItemPool;
@@ -42,7 +43,7 @@ public enum CSubmenuSealed implements ICSubmenu {
private Map<String, Deck> aiDecks;
private final Command cmdDeckExit = new Command() {
private final Command cmdExit = new Command() {
@Override
public void execute() {
update();
@@ -67,7 +68,7 @@ public enum CSubmenuSealed implements ICSubmenu {
view.populate();
CSubmenuSealed.SINGLETON_INSTANCE.update();
VSubmenuSealed.SINGLETON_INSTANCE.getLstDecks().setExitCommand(cmdDeckExit);
VSubmenuSealed.SINGLETON_INSTANCE.getLstDecks().setExitCommand(cmdExit);
VSubmenuSealed.SINGLETON_INSTANCE.getLstDecks().setSelectCommand(cmdDeckSelect);
VSubmenuSealed.SINGLETON_INSTANCE.getBtnBuildDeck().addMouseListener(
@@ -148,7 +149,8 @@ public enum CSubmenuSealed implements ICSubmenu {
}
/** */
private void setupSealed() {
@SuppressWarnings("unchecked")
private <T extends DeckBase> void setupSealed() {
ArrayList<String> sealedTypes = new ArrayList<String>();
sealedTypes.add("Full Cardpool");
sealedTypes.add("Block / Set");
@@ -204,6 +206,12 @@ public enum CSubmenuSealed implements ICSubmenu {
sealed.addAiDeck(sd.buildAIDeck(sDeck.toForgeCardList()));
Singletons.getModel().getDecks().getSealed().add(sealed);
CSubmenuDeckEditor.SINGLETON_INSTANCE.showDeckEditor(GameType.Sealed, sealed);
DeckEditorBase<?, T> editor = (DeckEditorBase<?, T>)
new DeckEditorLimited(Singletons.getModel().getDecks().getSealed());
editor.show(cmdExit);
editor.getController().setModel((T) sealed);
editor.setAlwaysOnTop(true);
editor.setVisible(true);
}
}

View File

@@ -1,12 +1,9 @@
package forge.gui.home.utilities;
import forge.Command;
import forge.Singletons;
import forge.deck.DeckBase;
import forge.game.GameType;
import forge.gui.deckeditor.DeckEditorBase;
import forge.gui.deckeditor.DeckEditorConstructed;
import forge.gui.deckeditor.DeckEditorLimited;
import forge.gui.home.ICSubmenu;
/**
@@ -33,7 +30,7 @@ public enum CSubmenuDeckEditor implements ICSubmenu {
@Override
public Command getMenuCommand() {
return new Command() { @Override
public void execute() { showDeckEditor(GameType.Constructed, null); } };
public void execute() { showDeckEditor(); } };
}
/* (non-Javadoc)
@@ -43,28 +40,13 @@ public enum CSubmenuDeckEditor implements ICSubmenu {
public void update() { }
/**
* @param <T> &emsp;
* @param gt0 &emsp; GameType
* @param d0 &emsp; Deck
* Shows constructed mode editor.
* @param <T> extends DeckBase
*/
@SuppressWarnings("unchecked")
public <T extends DeckBase> void showDeckEditor(GameType gt0, T d0) {
DeckEditorBase<?, T> editor = null;
if (gt0 == GameType.Constructed) {
editor = (DeckEditorBase<?, T>) new DeckEditorConstructed();
} else if (gt0 == GameType.Draft) {
editor = (DeckEditorBase<?, T>) new DeckEditorLimited(Singletons.getModel().getDecks().getDraft());
} else if (gt0 == GameType.Sealed) {
editor = (DeckEditorBase<?, T>) new DeckEditorLimited(Singletons.getModel().getDecks().getSealed());
}
private <T extends DeckBase> void showDeckEditor() {
DeckEditorBase<?, T> editor = (DeckEditorBase<?, T>) new DeckEditorConstructed();
editor.show(null);
if (d0 != null) {
editor.getController().setModel(d0);
}
editor.setAlwaysOnTop(true);
editor.setVisible(true);
}