From ae0069652a7f30d641121ac89bdba594b503e286 Mon Sep 17 00:00:00 2001 From: drdev Date: Sat, 26 Oct 2013 21:49:26 +0000 Subject: [PATCH] Fix switching between Editors --- src/main/java/forge/control/FControl.java | 6 ++- src/main/java/forge/gui/bazaar/VBazaarUI.java | 2 +- .../forge/gui/deckeditor/CDeckEditorUI.java | 33 +++++++++------- .../forge/gui/deckeditor/VDeckEditorUI.java | 7 ++-- .../deckeditor/controllers/ACEditorBase.java | 20 ++++++++-- .../controllers/CEditorCommander.java | 21 +++++----- .../controllers/CEditorConstructed.java | 13 +++++-- .../controllers/CEditorDraftingProcess.java | 16 ++++++-- .../controllers/CEditorLimited.java | 38 +++++++++---------- .../deckeditor/controllers/CEditorQuest.java | 36 +++++++++++------- .../controllers/CEditorQuestCardShop.java | 19 +++++++--- .../controllers/CEditorVariant.java | 23 ++++++----- .../java/forge/gui/framework/FScreen.java | 4 +- .../forge/gui/framework/IVTopLevelUI.java | 2 +- src/main/java/forge/gui/home/VHomeUI.java | 2 +- .../gui/home/quest/CSubmenuQuestDecks.java | 2 +- .../gui/home/quest/SSubmenuQuestUtil.java | 2 +- .../gui/home/sanctioned/CSubmenuDraft.java | 2 +- .../gui/home/sanctioned/CSubmenuSealed.java | 2 +- .../gui/home/variant/CSubmenuArchenemy.java | 2 +- .../gui/home/variant/CSubmenuCommander.java | 3 +- .../gui/home/variant/CSubmenuPlanechase.java | 2 +- src/main/java/forge/gui/match/VMatchUI.java | 2 +- .../forge/gui/toolbox/special/DeckLister.java | 2 +- src/main/java/forge/view/FNavigationBar.java | 4 +- 25 files changed, 160 insertions(+), 105 deletions(-) diff --git a/src/main/java/forge/control/FControl.java b/src/main/java/forge/control/FControl.java index 50a862c2842..71b5422f5f0 100644 --- a/src/main/java/forge/control/FControl.java +++ b/src/main/java/forge/control/FControl.java @@ -184,7 +184,7 @@ public enum FControl implements KeyEventDispatcher { if (!MenuUtil.getUserConfirmation(userPrompt, "Exit Forge", this.game == null)) { //default Yes if no game active return false; } - if (!CDeckEditorUI.SINGLETON_INSTANCE.canExit()) { + if (!CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true)) { return false; } return true; @@ -273,7 +273,9 @@ public enum FControl implements KeyEventDispatcher { //if (this.currentScreen == screen) { return; } //give previous screen a chance to perform special switch handling and/or cancel switching away from screen - if (!Singletons.getView().getNavigationBar().canSwitchAway()) { return; } + if (this.currentScreen != screen && !Singletons.getView().getNavigationBar().canSwitch(screen)) { + return; + } if (this.currentScreen == FScreen.MATCH_SCREEN) { //hide targeting overlay and reset image if was on match screen SOverlayUtils.hideTargetingOverlay(); diff --git a/src/main/java/forge/gui/bazaar/VBazaarUI.java b/src/main/java/forge/gui/bazaar/VBazaarUI.java index d9767a731e7..6e18ccaff18 100644 --- a/src/main/java/forge/gui/bazaar/VBazaarUI.java +++ b/src/main/java/forge/gui/bazaar/VBazaarUI.java @@ -119,7 +119,7 @@ public enum VBazaarUI implements IVTopLevelUI { * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) */ @Override - public boolean onSwitching(FScreen screen) { + public boolean onSwitching(FScreen fromScreen, FScreen toScreen) { return true; } diff --git a/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java b/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java index c62fc8b5dd0..0ee09c83810 100644 --- a/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java +++ b/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java @@ -101,9 +101,15 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider { CPicture.SINGLETON_INSTANCE.showImage(item); } - public boolean canExit() { + public boolean canSwitchAway(boolean isClosing) { if (this.childController != null) { - return this.childController.exit(); + if (!this.childController.canSwitchAway(isClosing)) { + return false; + } + this.childController.resetUIChanges(); + if (isClosing) { + screenChildControllers.remove(this.childController.getScreen()); + } } return true; } @@ -117,15 +123,14 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider { } /** - * Set controller for current configuration of editor. - * - * @param editor0   {@link forge.gui.deckeditor.controllers.ACEditorBase} + * Set controller for a given editor screen. */ - public void setCurrentEditorController(ACEditorBase editor0) { - if (this.childController == editor0) { return; } - this.childController = editor0; - screenChildControllers.put(Singletons.getControl().getCurrentScreen(), editor0); - updateController(); + public void setEditorController(ACEditorBase childController0) { + FScreen screen = childController0.getScreen(); + screenChildControllers.put(screen, childController0); + if (screen == Singletons.getControl().getCurrentScreen()) { + setCurrentEditorController(childController0); + } } private interface _MoveAction { @@ -298,9 +303,11 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider { } /** - * Updates UI and listeners for current controller. + * Set current editor controller */ - private void updateController() { + private void setCurrentEditorController(ACEditorBase childController0) { + this.childController = childController0; + if (childController == null) { return; } final ItemManager catView = childController.getCatalogManager(); @@ -588,7 +595,7 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider { setCurrentEditorController(screenChildController); } else if (screen == FScreen.DECK_EDITOR_CONSTRUCTED) { - setCurrentEditorController(new CEditorConstructed()); //ensure Constructed deck editor controller initialized + setEditorController(new CEditorConstructed()); //ensure Constructed deck editor controller initialized } } diff --git a/src/main/java/forge/gui/deckeditor/VDeckEditorUI.java b/src/main/java/forge/gui/deckeditor/VDeckEditorUI.java index 9350f5be0fb..39d3ecee2cc 100644 --- a/src/main/java/forge/gui/deckeditor/VDeckEditorUI.java +++ b/src/main/java/forge/gui/deckeditor/VDeckEditorUI.java @@ -45,8 +45,9 @@ public enum VDeckEditorUI implements IVTopLevelUI { * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) */ @Override - public boolean onSwitching(FScreen screen) { - return CDeckEditorUI.SINGLETON_INSTANCE.canExit(); //ensure deck saved before switching away + public boolean onSwitching(FScreen fromScreen, FScreen toScreen) { + //ensure deck saved before switching + return CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(false); } /* (non-Javadoc) @@ -59,6 +60,6 @@ public enum VDeckEditorUI implements IVTopLevelUI { Singletons.getControl().setCurrentScreen(FScreen.HOME_SCREEN); return false; } - return CDeckEditorUI.SINGLETON_INSTANCE.canExit(); + return CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true); } } diff --git a/src/main/java/forge/gui/deckeditor/controllers/ACEditorBase.java b/src/main/java/forge/gui/deckeditor/controllers/ACEditorBase.java index 1aed6e6f893..bd0e3cdfd4d 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/ACEditorBase.java +++ b/src/main/java/forge/gui/deckeditor/controllers/ACEditorBase.java @@ -21,6 +21,7 @@ import javax.swing.SwingUtilities; import forge.deck.DeckBase; import forge.gui.framework.DragCell; +import forge.gui.framework.FScreen; import forge.gui.framework.ICDoc; import forge.gui.framework.IVDoc; import forge.gui.framework.SRearrangingUtil; @@ -59,9 +60,18 @@ public abstract class ACEditorBase catalogManager; private ItemManager deckManager; + protected ACEditorBase(FScreen screen0) { + this.screen = screen0; + } + + public FScreen getScreen() { + return this.screen; + } + /** * Operation to add one of selected card to current deck. */ @@ -88,18 +98,22 @@ public abstract class ACEditorBase getDeckController(); /** - * Called when an editor wants to exit. Should confirm save options, - * update next UI screen, etc. + * Called when switching away from or closing the editor wants to exit. Should confirm save options. * * @return boolean   true if safe to exit */ - public abstract boolean exit(); + public abstract boolean canSwitchAway(boolean isClosing); /** * Resets and initializes the current editor. */ public abstract void update(); + /** + * Reset UI changes made in update + */ + public abstract void resetUIChanges(); + /** * Gets the ItemManager holding the cards in the current deck. * diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java index 01cc771a0c9..becd43a3a39 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorCommander.java @@ -78,7 +78,7 @@ public final class CEditorCommander extends ACEditorBase { * all cards are available. */ public CEditorCommander() { - super(); + super(FScreen.DECK_EDITOR_COMMANDER); allSections.add(DeckSection.Main); allSections.add(DeckSection.Sideboard); allSections.add(DeckSection.Commander); @@ -208,15 +208,18 @@ public final class CEditorCommander extends ACEditorBase { } /* (non-Javadoc) - * @see forge.gui.deckeditor.controllers.ACEditorBase#exit() + * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway() */ @Override - public boolean exit() { - if (!SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_COMMANDER)) - { - return false; - } - + public boolean canSwitchAway(boolean isClosing) { + return SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_COMMANDER); + } + + /* (non-Javadoc) + * @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges() + */ + @Override + public void resetUIChanges() { //Re-add tabs if (deckGenParent != null) { deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); @@ -224,8 +227,6 @@ public final class CEditorCommander extends ACEditorBase { if (allDecksParent != null) { allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); } - - return true; } /** diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java index e53d3bc5d53..f23141b53c7 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java @@ -75,7 +75,7 @@ public final class CEditorConstructed extends ACEditorBase { * all cards are available. */ public CEditorConstructed() { - super(); + super(FScreen.DECK_EDITOR_CONSTRUCTED); allSections.add(DeckSection.Main); allSections.add(DeckSection.Sideboard); @@ -308,10 +308,17 @@ public final class CEditorConstructed extends ACEditorBase { } /* (non-Javadoc) - * @see forge.gui.deckeditor.controllers.ACEditorBase#exit() + * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway() */ @Override - public boolean exit() { + public boolean canSwitchAway(boolean isClosing) { return SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_CONSTRUCTED); } + + /* (non-Javadoc) + * @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges() + */ + @Override + public void resetUIChanges() { + } } diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java index f0efe930614..2f870c9596a 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java @@ -64,6 +64,8 @@ public class CEditorDraftingProcess extends ACEditorBase { * Updates the deck editor UI as necessary draft selection mode. */ public CEditorDraftingProcess() { + super(FScreen.DRAFTING_PROCESS); + final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false); @@ -271,10 +273,18 @@ public class CEditorDraftingProcess extends ACEditorBase { } /* (non-Javadoc) - * @see forge.gui.deckeditor.controllers.ACEditorBase#exit() + * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway() */ @Override - public boolean exit() { + public boolean canSwitchAway(boolean isClosing) { + return true; + } + + /* (non-Javadoc) + * @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges() + */ + @Override + public void resetUIChanges() { CSubmenuDraft.SINGLETON_INSTANCE.update(); //Re-rename buttons @@ -297,7 +307,5 @@ public class CEditorDraftingProcess extends ACEditorBase { // set catalog table back to free-selection mode getCatalogManager().getTable().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); - - return true; } } diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java index 4fec488297d..2f038e83d10 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java @@ -49,7 +49,6 @@ import forge.util.storage.IStorage; public final class CEditorLimited extends ACEditorBase { private final DeckController controller; - private final FScreen screen; private DragCell allDecksParent = null; private DragCell deckGenParent = null; @@ -61,7 +60,7 @@ public final class CEditorLimited extends ACEditorBase { * @param deckMap0   {@link forge.deck.DeckGroup}<{@link forge.util.storage.IStorage}> */ public CEditorLimited(final IStorage deckMap0, FScreen screen0) { - this.screen = screen0; + super(screen0); final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false); @@ -180,26 +179,27 @@ public final class CEditorLimited extends ACEditorBase { } /* (non-Javadoc) - * @see forge.gui.deckeditor.controllers.ACEditorBase#exit() + * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway() */ @Override - public boolean exit() { - final boolean okToExit = SEditorIO.confirmSaveChanges(this.screen); + public boolean canSwitchAway(boolean isClosing) { + return SEditorIO.confirmSaveChanges(getScreen()); + } - if (okToExit) { - CSubmenuDraft.SINGLETON_INSTANCE.update(); - CSubmenuSealed.SINGLETON_INSTANCE.update(); - - //Re-add tabs - if (deckGenParent != null) { - deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); - } - if (allDecksParent != null) { - allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); - } - + /* (non-Javadoc) + * @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges() + */ + @Override + public void resetUIChanges() { + CSubmenuDraft.SINGLETON_INSTANCE.update(); + CSubmenuSealed.SINGLETON_INSTANCE.update(); + + //Re-add tabs + if (deckGenParent != null) { + deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); + } + if (allDecksParent != null) { + allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); } - - return okToExit; } } diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java index 3346bdf0af5..9125938a64b 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java @@ -94,6 +94,8 @@ public final class CEditorQuest extends ACEditorBase { * @param questData0   {@link forge.quest.QuestController} */ public CEditorQuest(final QuestController questData0) { + super(FScreen.DECK_EDITOR_QUEST); + this.questData = questData0; final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); @@ -302,24 +304,30 @@ public final class CEditorQuest extends ACEditorBase { } /* (non-Javadoc) - * @see forge.gui.deckeditor.controllers.ACEditorBase#exit() + * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway() */ @Override - public boolean exit() { - final boolean okToExit = SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_QUEST); - if (okToExit) { + public boolean canSwitchAway(boolean isClosing) { + if (SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_QUEST)) { Singletons.getModel().getQuest().save(); - CSubmenuQuestDecks.SINGLETON_INSTANCE.update(); - //Re-add tabs - if (deckGenParent != null) { - deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); - } - if (allDecksParent != null) { - allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); - } - + return true; + } + return false; + } + + /* (non-Javadoc) + * @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges() + */ + @Override + public void resetUIChanges() { + CSubmenuQuestDecks.SINGLETON_INSTANCE.update(); + //Re-add tabs + if (deckGenParent != null) { + deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); + } + if (allDecksParent != null) { + allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); } - return okToExit; } /** diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java index caab7072a74..451340f7ec6 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java @@ -45,6 +45,7 @@ import forge.gui.deckeditor.views.VCurrentDeck; import forge.gui.deckeditor.views.VDeckgen; import forge.gui.deckeditor.views.VProbabilities; import forge.gui.framework.DragCell; +import forge.gui.framework.FScreen; import forge.gui.home.quest.CSubmenuQuestDecks; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; @@ -125,6 +126,8 @@ public final class CEditorQuestCardShop extends ACEditorBase { private final DeckController controller; - private final FScreen screen; private DragCell allDecksParent = null; private DragCell deckGenParent = null; private final Predicate cardPoolCondition; @@ -67,10 +66,9 @@ public final class CEditorVariant extends ACEditorBase { * all cards are available. */ public CEditorVariant(final IStorage folder, final Predicate poolCondition, final FScreen screen0) { - super(); + super(screen0); this.cardPoolCondition = poolCondition; - this.screen = screen0; this.setCatalogManager(new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), true)); this.setDeckManager(new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), true)); @@ -169,15 +167,18 @@ public final class CEditorVariant extends ACEditorBase { } /* (non-Javadoc) - * @see forge.gui.deckeditor.controllers.ACEditorBase#exit() + * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway() */ @Override - public boolean exit() { - if (!SEditorIO.confirmSaveChanges(this.screen)) - { - return false; - } - + public boolean canSwitchAway(boolean isClosing) { + return SEditorIO.confirmSaveChanges(getScreen()); + } + + /* (non-Javadoc) + * @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges() + */ + @Override + public void resetUIChanges() { //Re-add tabs if (deckGenParent != null) { deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); @@ -185,7 +186,5 @@ public final class CEditorVariant extends ACEditorBase { if (allDecksParent != null) { allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); } - - return true; } } diff --git a/src/main/java/forge/gui/framework/FScreen.java b/src/main/java/forge/gui/framework/FScreen.java index 5002110ec02..4542f8832ad 100644 --- a/src/main/java/forge/gui/framework/FScreen.java +++ b/src/main/java/forge/gui/framework/FScreen.java @@ -168,8 +168,8 @@ public enum FScreen { return closeButtonTooltip; } - public boolean onSwitching() { - return view.onSwitching(this); + public boolean onSwitching(FScreen toScreen) { + return view.onSwitching(this, toScreen); } public boolean onClosing() { diff --git a/src/main/java/forge/gui/framework/IVTopLevelUI.java b/src/main/java/forge/gui/framework/IVTopLevelUI.java index 9bde2e757c6..d265fab19e0 100644 --- a/src/main/java/forge/gui/framework/IVTopLevelUI.java +++ b/src/main/java/forge/gui/framework/IVTopLevelUI.java @@ -31,7 +31,7 @@ public interface IVTopLevelUI { * Fires when this view's tab is being switched away from. * * @return true to allow switching away from tab, false otherwise */ - boolean onSwitching(FScreen screen); + boolean onSwitching(FScreen fromScreen, FScreen toScreen); /** * Fires when this view's tab is closing. diff --git a/src/main/java/forge/gui/home/VHomeUI.java b/src/main/java/forge/gui/home/VHomeUI.java index d4d87aff38e..da236e41de2 100644 --- a/src/main/java/forge/gui/home/VHomeUI.java +++ b/src/main/java/forge/gui/home/VHomeUI.java @@ -326,7 +326,7 @@ public enum VHomeUI implements IVTopLevelUI { * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) */ @Override - public boolean onSwitching(FScreen screen) { + public boolean onSwitching(FScreen fromScreen, FScreen toScreen) { return true; } diff --git a/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java b/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java index 460653b0467..a713e10332d 100644 --- a/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java +++ b/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java @@ -52,7 +52,7 @@ public enum CSubmenuQuestDecks implements ICDoc { return; } Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorQuest(Singletons.getModel().getQuest())); + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorQuest(Singletons.getModel().getQuest())); } }); } diff --git a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java index 88de4c3272e..d0c060a642c 100644 --- a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java +++ b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java @@ -254,7 +254,7 @@ public class SSubmenuQuestUtil { return; } Singletons.getControl().setCurrentScreen(FScreen.QUEST_CARD_SHOP); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController( + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController( new CEditorQuestCardShop(Singletons.getModel().getQuest())); } diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java index 5d9765c5e80..8c0fb80e503 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuDraft.java @@ -160,7 +160,7 @@ public enum CSubmenuDraft implements ICDoc { draft.showGui(new BoosterDraft(o)); Singletons.getControl().setCurrentScreen(FScreen.DRAFTING_PROCESS); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(draft); + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(draft); } /* (non-Javadoc) diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java index c2f121d7d12..f8c36553515 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java @@ -208,7 +208,7 @@ public enum CSubmenuSealed implements ICDoc { Singletons.getModel().getDecks().getSealed(), FScreen.DECK_EDITOR_SEALED); Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_SEALED); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(editor); + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(editor); editor.getDeckController().setModel((T) sealed); } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java index 8c0901c6381..6a37659aab0 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java @@ -100,7 +100,7 @@ public enum CSubmenuArchenemy implements ICDoc { }; Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_ARCHENEMY); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController( + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController( new CEditorVariant(Singletons.getModel().getDecks().getScheme(), predSchemes, FScreen.DECK_EDITOR_ARCHENEMY)); } }); diff --git a/src/main/java/forge/gui/home/variant/CSubmenuCommander.java b/src/main/java/forge/gui/home/variant/CSubmenuCommander.java index a8194c52a11..75c2512b30b 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuCommander.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuCommander.java @@ -95,8 +95,7 @@ public enum CSubmenuCommander implements ICDoc { @Override public void run() { Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_COMMANDER); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController( - new CEditorCommander()); + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander()); } }); } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java index 2dbebdef4a6..c8039807d6b 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java @@ -101,7 +101,7 @@ public enum CSubmenuPlanechase implements ICDoc { }; Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_PLANECHASE); - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController( + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController( new CEditorVariant(Singletons.getModel().getDecks().getPlane(), predPlanes, FScreen.DECK_EDITOR_PLANECHASE)); } }); diff --git a/src/main/java/forge/gui/match/VMatchUI.java b/src/main/java/forge/gui/match/VMatchUI.java index 8bafc7a084b..44517a8380e 100644 --- a/src/main/java/forge/gui/match/VMatchUI.java +++ b/src/main/java/forge/gui/match/VMatchUI.java @@ -169,7 +169,7 @@ public enum VMatchUI implements IVTopLevelUI { * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) */ @Override - public boolean onSwitching(FScreen screen) { + public boolean onSwitching(FScreen fromScreen, FScreen toScreen) { return true; } diff --git a/src/main/java/forge/gui/toolbox/special/DeckLister.java b/src/main/java/forge/gui/toolbox/special/DeckLister.java index a0c8427ef39..73c9c9aac98 100644 --- a/src/main/java/forge/gui/toolbox/special/DeckLister.java +++ b/src/main/java/forge/gui/toolbox/special/DeckLister.java @@ -461,7 +461,7 @@ public class DeckLister extends JPanel implements ILocalRepaint { Singletons.getControl().setCurrentScreen(screen); if (editorCtrl != null) { - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(editorCtrl); + CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(editorCtrl); } CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController().load(d0.getName()); } diff --git a/src/main/java/forge/view/FNavigationBar.java b/src/main/java/forge/view/FNavigationBar.java index 93e1dbf7a7b..1e328f34787 100644 --- a/src/main/java/forge/view/FNavigationBar.java +++ b/src/main/java/forge/view/FNavigationBar.java @@ -123,8 +123,8 @@ public class FNavigationBar extends FTitleBarBase { return null; } - public boolean canSwitchAway() { - return (selectedTab == null || selectedTab.screen.onSwitching()); + public boolean canSwitch(FScreen toScreen) { + return (selectedTab == null || selectedTab.screen.onSwitching(toScreen)); } public void updateSelectedTab() {