From d2d51e93c1a918bc5af610c3ea6c8061bdebbe42 Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Sun, 4 Mar 2012 04:31:48 +0000 Subject: [PATCH] Fixed sealed deck update problem. --- .../gui/deckeditor/DeckEditorLimited.java | 4 ++- .../forge/gui/deckeditor/DraftingProcess.java | 3 +- .../gui/home/limited/CSubmenuSealed.java | 20 +++++++++---- .../home/utilities/CSubmenuDeckEditor.java | 28 ++++--------------- 4 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java b/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java index 926cf547703..613725fe7e0 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorLimited.java @@ -88,7 +88,9 @@ public final class DeckEditorLimited extends DeckEditorBase { public final void showGui(final IBoosterDraft inBoosterDraft) { this.boosterDraft = inBoosterDraft; this.show(null); - } /** @@ -338,6 +337,8 @@ public class DraftingProcess extends DeckEditorBase { // 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() */ diff --git a/src/main/java/forge/gui/home/limited/CSubmenuSealed.java b/src/main/java/forge/gui/home/limited/CSubmenuSealed.java index 0cf66dead59..1bb6aa6c02e 100644 --- a/src/main/java/forge/gui/home/limited/CSubmenuSealed.java +++ b/src/main/java/forge/gui/home/limited/CSubmenuSealed.java @@ -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 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 void setupSealed() { ArrayList sealedTypes = new ArrayList(); 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 editor = (DeckEditorBase) + new DeckEditorLimited(Singletons.getModel().getDecks().getSealed()); + + editor.show(cmdExit); + editor.getController().setModel((T) sealed); + editor.setAlwaysOnTop(true); + editor.setVisible(true); } } diff --git a/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java b/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java index fd55e2bf461..4a9d4e41645 100644 --- a/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java +++ b/src/main/java/forge/gui/home/utilities/CSubmenuDeckEditor.java @@ -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   - * @param gt0   GameType - * @param d0   Deck + * Shows constructed mode editor. + * @param extends DeckBase */ @SuppressWarnings("unchecked") - public void showDeckEditor(GameType gt0, T d0) { - - DeckEditorBase editor = null; - if (gt0 == GameType.Constructed) { - editor = (DeckEditorBase) new DeckEditorConstructed(); - } else if (gt0 == GameType.Draft) { - editor = (DeckEditorBase) new DeckEditorLimited(Singletons.getModel().getDecks().getDraft()); - } else if (gt0 == GameType.Sealed) { - editor = (DeckEditorBase) new DeckEditorLimited(Singletons.getModel().getDecks().getSealed()); - } - + private void showDeckEditor() { + DeckEditorBase editor = (DeckEditorBase) new DeckEditorConstructed(); editor.show(null); - - if (d0 != null) { - editor.getController().setModel(d0); - } - editor.setAlwaysOnTop(true); editor.setVisible(true); }