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,8 +88,10 @@ public final class DeckEditorLimited extends DeckEditorBase<CardPrinted, DeckGro
@Override @Override
public void execute() { public void execute() {
DeckEditorLimited.this.dispose(); DeckEditorLimited.this.dispose();
if (exitCommand != null) {
exitCommand.execute(); exitCommand.execute();
} }
}
}; };
final MenuLimited menu = new MenuLimited(this.getController(), exit); final MenuLimited menu = new MenuLimited(this.getController(), exit);

View File

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

View File

@@ -18,13 +18,14 @@ import forge.Command;
import forge.Constant; import forge.Constant;
import forge.Singletons; import forge.Singletons;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.DeckBase;
import forge.deck.DeckGroup; import forge.deck.DeckGroup;
import forge.game.GameNew; import forge.game.GameNew;
import forge.game.GameType;
import forge.game.limited.SealedDeck; import forge.game.limited.SealedDeck;
import forge.gui.GuiUtils; import forge.gui.GuiUtils;
import forge.gui.deckeditor.DeckEditorBase;
import forge.gui.deckeditor.DeckEditorLimited;
import forge.gui.home.ICSubmenu; import forge.gui.home.ICSubmenu;
import forge.gui.home.utilities.CSubmenuDeckEditor;
import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin;
import forge.item.CardPrinted; import forge.item.CardPrinted;
import forge.item.ItemPool; import forge.item.ItemPool;
@@ -42,7 +43,7 @@ public enum CSubmenuSealed implements ICSubmenu {
private Map<String, Deck> aiDecks; private Map<String, Deck> aiDecks;
private final Command cmdDeckExit = new Command() { private final Command cmdExit = new Command() {
@Override @Override
public void execute() { public void execute() {
update(); update();
@@ -67,7 +68,7 @@ public enum CSubmenuSealed implements ICSubmenu {
view.populate(); view.populate();
CSubmenuSealed.SINGLETON_INSTANCE.update(); 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.getLstDecks().setSelectCommand(cmdDeckSelect);
VSubmenuSealed.SINGLETON_INSTANCE.getBtnBuildDeck().addMouseListener( 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>(); ArrayList<String> sealedTypes = new ArrayList<String>();
sealedTypes.add("Full Cardpool"); sealedTypes.add("Full Cardpool");
sealedTypes.add("Block / Set"); sealedTypes.add("Block / Set");
@@ -204,6 +206,12 @@ public enum CSubmenuSealed implements ICSubmenu {
sealed.addAiDeck(sd.buildAIDeck(sDeck.toForgeCardList())); sealed.addAiDeck(sd.buildAIDeck(sDeck.toForgeCardList()));
Singletons.getModel().getDecks().getSealed().add(sealed); 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; package forge.gui.home.utilities;
import forge.Command; import forge.Command;
import forge.Singletons;
import forge.deck.DeckBase; import forge.deck.DeckBase;
import forge.game.GameType;
import forge.gui.deckeditor.DeckEditorBase; import forge.gui.deckeditor.DeckEditorBase;
import forge.gui.deckeditor.DeckEditorConstructed; import forge.gui.deckeditor.DeckEditorConstructed;
import forge.gui.deckeditor.DeckEditorLimited;
import forge.gui.home.ICSubmenu; import forge.gui.home.ICSubmenu;
/** /**
@@ -33,7 +30,7 @@ public enum CSubmenuDeckEditor implements ICSubmenu {
@Override @Override
public Command getMenuCommand() { public Command getMenuCommand() {
return new Command() { @Override return new Command() { @Override
public void execute() { showDeckEditor(GameType.Constructed, null); } }; public void execute() { showDeckEditor(); } };
} }
/* (non-Javadoc) /* (non-Javadoc)
@@ -43,28 +40,13 @@ public enum CSubmenuDeckEditor implements ICSubmenu {
public void update() { } public void update() { }
/** /**
* @param <T> &emsp; * Shows constructed mode editor.
* @param gt0 &emsp; GameType * @param <T> extends DeckBase
* @param d0 &emsp; Deck
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T extends DeckBase> void showDeckEditor(GameType gt0, T d0) { private <T extends DeckBase> void showDeckEditor() {
DeckEditorBase<?, T> editor = (DeckEditorBase<?, T>) new DeckEditorConstructed();
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());
}
editor.show(null); editor.show(null);
if (d0 != null) {
editor.getController().setModel(d0);
}
editor.setAlwaysOnTop(true); editor.setAlwaysOnTop(true);
editor.setVisible(true); editor.setVisible(true);
} }