Fix switching between Editors

This commit is contained in:
drdev
2013-10-26 21:49:26 +00:00
parent 5ec7f01b7a
commit ae0069652a
25 changed files with 160 additions and 105 deletions

View File

@@ -184,7 +184,7 @@ public enum FControl implements KeyEventDispatcher {
if (!MenuUtil.getUserConfirmation(userPrompt, "Exit Forge", this.game == null)) { //default Yes if no game active if (!MenuUtil.getUserConfirmation(userPrompt, "Exit Forge", this.game == null)) { //default Yes if no game active
return false; return false;
} }
if (!CDeckEditorUI.SINGLETON_INSTANCE.canExit()) { if (!CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true)) {
return false; return false;
} }
return true; return true;
@@ -273,7 +273,9 @@ public enum FControl implements KeyEventDispatcher {
//if (this.currentScreen == screen) { return; } //if (this.currentScreen == screen) { return; }
//give previous screen a chance to perform special switch handling and/or cancel switching away from screen //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 if (this.currentScreen == FScreen.MATCH_SCREEN) { //hide targeting overlay and reset image if was on match screen
SOverlayUtils.hideTargetingOverlay(); SOverlayUtils.hideTargetingOverlay();

View File

@@ -119,7 +119,7 @@ public enum VBazaarUI implements IVTopLevelUI {
* @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen)
*/ */
@Override @Override
public boolean onSwitching(FScreen screen) { public boolean onSwitching(FScreen fromScreen, FScreen toScreen) {
return true; return true;
} }

View File

@@ -101,9 +101,15 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider {
CPicture.SINGLETON_INSTANCE.showImage(item); CPicture.SINGLETON_INSTANCE.showImage(item);
} }
public boolean canExit() { public boolean canSwitchAway(boolean isClosing) {
if (this.childController != null) { 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; return true;
} }
@@ -117,15 +123,14 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider {
} }
/** /**
* Set controller for current configuration of editor. * Set controller for a given editor screen.
*
* @param editor0 &emsp; {@link forge.gui.deckeditor.controllers.ACEditorBase}<?, ?>
*/ */
public void setCurrentEditorController(ACEditorBase<? extends InventoryItem, ? extends DeckBase> editor0) { public void setEditorController(ACEditorBase<? extends InventoryItem, ? extends DeckBase> childController0) {
if (this.childController == editor0) { return; } FScreen screen = childController0.getScreen();
this.childController = editor0; screenChildControllers.put(screen, childController0);
screenChildControllers.put(Singletons.getControl().getCurrentScreen(), editor0); if (screen == Singletons.getControl().getCurrentScreen()) {
updateController(); setCurrentEditorController(childController0);
}
} }
private interface _MoveAction { 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<? extends InventoryItem, ? extends DeckBase> childController0) {
this.childController = childController0;
if (childController == null) { return; } if (childController == null) { return; }
final ItemManager<? extends InventoryItem> catView = childController.getCatalogManager(); final ItemManager<? extends InventoryItem> catView = childController.getCatalogManager();
@@ -588,7 +595,7 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider {
setCurrentEditorController(screenChildController); setCurrentEditorController(screenChildController);
} }
else if (screen == FScreen.DECK_EDITOR_CONSTRUCTED) { 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
} }
} }

View File

@@ -45,8 +45,9 @@ public enum VDeckEditorUI implements IVTopLevelUI {
* @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen)
*/ */
@Override @Override
public boolean onSwitching(FScreen screen) { public boolean onSwitching(FScreen fromScreen, FScreen toScreen) {
return CDeckEditorUI.SINGLETON_INSTANCE.canExit(); //ensure deck saved before switching away //ensure deck saved before switching
return CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(false);
} }
/* (non-Javadoc) /* (non-Javadoc)
@@ -59,6 +60,6 @@ public enum VDeckEditorUI implements IVTopLevelUI {
Singletons.getControl().setCurrentScreen(FScreen.HOME_SCREEN); Singletons.getControl().setCurrentScreen(FScreen.HOME_SCREEN);
return false; return false;
} }
return CDeckEditorUI.SINGLETON_INSTANCE.canExit(); return CDeckEditorUI.SINGLETON_INSTANCE.canSwitchAway(true);
} }
} }

View File

@@ -21,6 +21,7 @@ import javax.swing.SwingUtilities;
import forge.deck.DeckBase; import forge.deck.DeckBase;
import forge.gui.framework.DragCell; import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc; import forge.gui.framework.ICDoc;
import forge.gui.framework.IVDoc; import forge.gui.framework.IVDoc;
import forge.gui.framework.SRearrangingUtil; import forge.gui.framework.SRearrangingUtil;
@@ -59,9 +60,18 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
} }
public boolean listenersHooked; public boolean listenersHooked;
private final FScreen screen;
private ItemManager<TItem> catalogManager; private ItemManager<TItem> catalogManager;
private ItemManager<TItem> deckManager; private ItemManager<TItem> deckManager;
protected ACEditorBase(FScreen screen0) {
this.screen = screen0;
}
public FScreen getScreen() {
return this.screen;
}
/** /**
* Operation to add one of selected card to current deck. * Operation to add one of selected card to current deck.
*/ */
@@ -88,18 +98,22 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
public abstract DeckController<TModel> getDeckController(); public abstract DeckController<TModel> getDeckController();
/** /**
* Called when an editor wants to exit. Should confirm save options, * Called when switching away from or closing the editor wants to exit. Should confirm save options.
* update next UI screen, etc.
* *
* @return boolean &emsp; true if safe to exit * @return boolean &emsp; true if safe to exit
*/ */
public abstract boolean exit(); public abstract boolean canSwitchAway(boolean isClosing);
/** /**
* Resets and initializes the current editor. * Resets and initializes the current editor.
*/ */
public abstract void update(); public abstract void update();
/**
* Reset UI changes made in update
*/
public abstract void resetUIChanges();
/** /**
* Gets the ItemManager holding the cards in the current deck. * Gets the ItemManager holding the cards in the current deck.
* *

View File

@@ -78,7 +78,7 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
* all cards are available. * all cards are available.
*/ */
public CEditorCommander() { public CEditorCommander() {
super(); super(FScreen.DECK_EDITOR_COMMANDER);
allSections.add(DeckSection.Main); allSections.add(DeckSection.Main);
allSections.add(DeckSection.Sideboard); allSections.add(DeckSection.Sideboard);
allSections.add(DeckSection.Commander); allSections.add(DeckSection.Commander);
@@ -208,15 +208,18 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @Override
public boolean exit() { public boolean canSwitchAway(boolean isClosing) {
if (!SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_COMMANDER)) return SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_COMMANDER);
{
return false;
} }
/* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
*/
@Override
public void resetUIChanges() {
//Re-add tabs //Re-add tabs
if (deckGenParent != null) { if (deckGenParent != null) {
deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE);
@@ -224,8 +227,6 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
if (allDecksParent != null) { if (allDecksParent != null) {
allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE);
} }
return true;
} }
/** /**

View File

@@ -75,7 +75,7 @@ public final class CEditorConstructed extends ACEditorBase<PaperCard, Deck> {
* all cards are available. * all cards are available.
*/ */
public CEditorConstructed() { public CEditorConstructed() {
super(); super(FScreen.DECK_EDITOR_CONSTRUCTED);
allSections.add(DeckSection.Main); allSections.add(DeckSection.Main);
allSections.add(DeckSection.Sideboard); allSections.add(DeckSection.Sideboard);
@@ -308,10 +308,17 @@ public final class CEditorConstructed extends ACEditorBase<PaperCard, Deck> {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @Override
public boolean exit() { public boolean canSwitchAway(boolean isClosing) {
return SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_CONSTRUCTED); return SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_CONSTRUCTED);
} }
/* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
*/
@Override
public void resetUIChanges() {
}
} }

View File

@@ -64,6 +64,8 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
* Updates the deck editor UI as necessary draft selection mode. * Updates the deck editor UI as necessary draft selection mode.
*/ */
public CEditorDraftingProcess() { public CEditorDraftingProcess() {
super(FScreen.DRAFTING_PROCESS);
final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false);
final CardManager deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false);
@@ -271,10 +273,18 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @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(); CSubmenuDraft.SINGLETON_INSTANCE.update();
//Re-rename buttons //Re-rename buttons
@@ -297,7 +307,5 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
// set catalog table back to free-selection mode // set catalog table back to free-selection mode
getCatalogManager().getTable().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); getCatalogManager().getTable().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
return true;
} }
} }

View File

@@ -49,7 +49,6 @@ import forge.util.storage.IStorage;
public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> { public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
private final DeckController<DeckGroup> controller; private final DeckController<DeckGroup> controller;
private final FScreen screen;
private DragCell allDecksParent = null; private DragCell allDecksParent = null;
private DragCell deckGenParent = null; private DragCell deckGenParent = null;
@@ -61,7 +60,7 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
* @param deckMap0 &emsp; {@link forge.deck.DeckGroup}<{@link forge.util.storage.IStorage}> * @param deckMap0 &emsp; {@link forge.deck.DeckGroup}<{@link forge.util.storage.IStorage}>
*/ */
public CEditorLimited(final IStorage<DeckGroup> deckMap0, FScreen screen0) { public CEditorLimited(final IStorage<DeckGroup> deckMap0, FScreen screen0) {
this.screen = screen0; super(screen0);
final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false);
final CardManager deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false);
@@ -180,13 +179,18 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @Override
public boolean exit() { public boolean canSwitchAway(boolean isClosing) {
final boolean okToExit = SEditorIO.confirmSaveChanges(this.screen); return SEditorIO.confirmSaveChanges(getScreen());
}
if (okToExit) { /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
*/
@Override
public void resetUIChanges() {
CSubmenuDraft.SINGLETON_INSTANCE.update(); CSubmenuDraft.SINGLETON_INSTANCE.update();
CSubmenuSealed.SINGLETON_INSTANCE.update(); CSubmenuSealed.SINGLETON_INSTANCE.update();
@@ -197,9 +201,5 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
if (allDecksParent != null) { if (allDecksParent != null) {
allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE);
} }
}
return okToExit;
} }
} }

View File

@@ -94,6 +94,8 @@ public final class CEditorQuest extends ACEditorBase<PaperCard, Deck> {
* @param questData0 &emsp; {@link forge.quest.QuestController} * @param questData0 &emsp; {@link forge.quest.QuestController}
*/ */
public CEditorQuest(final QuestController questData0) { public CEditorQuest(final QuestController questData0) {
super(FScreen.DECK_EDITOR_QUEST);
this.questData = questData0; this.questData = questData0;
final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); final CardManager catalogManager = new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false);
@@ -302,13 +304,22 @@ public final class CEditorQuest extends ACEditorBase<PaperCard, Deck> {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @Override
public boolean exit() { public boolean canSwitchAway(boolean isClosing) {
final boolean okToExit = SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_QUEST); if (SEditorIO.confirmSaveChanges(FScreen.DECK_EDITOR_QUEST)) {
if (okToExit) {
Singletons.getModel().getQuest().save(); Singletons.getModel().getQuest().save();
return true;
}
return false;
}
/* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
*/
@Override
public void resetUIChanges() {
CSubmenuQuestDecks.SINGLETON_INSTANCE.update(); CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
//Re-add tabs //Re-add tabs
if (deckGenParent != null) { if (deckGenParent != null) {
@@ -317,9 +328,6 @@ public final class CEditorQuest extends ACEditorBase<PaperCard, Deck> {
if (allDecksParent != null) { if (allDecksParent != null) {
allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE);
} }
}
return okToExit;
} }
/** /**

View File

@@ -45,6 +45,7 @@ import forge.gui.deckeditor.views.VCurrentDeck;
import forge.gui.deckeditor.views.VDeckgen; import forge.gui.deckeditor.views.VDeckgen;
import forge.gui.deckeditor.views.VProbabilities; import forge.gui.deckeditor.views.VProbabilities;
import forge.gui.framework.DragCell; import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen;
import forge.gui.home.quest.CSubmenuQuestDecks; import forge.gui.home.quest.CSubmenuQuestDecks;
import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FLabel;
import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin;
@@ -125,6 +126,8 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
* a {@link forge.quest.data.QuestData} object. * a {@link forge.quest.data.QuestData} object.
*/ */
public CEditorQuestCardShop(final QuestController qd) { public CEditorQuestCardShop(final QuestController qd) {
super(FScreen.QUEST_CARD_SHOP);
this.questData = qd; this.questData = qd;
final InventoryItemManager catalogManager = new InventoryItemManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false); final InventoryItemManager catalogManager = new InventoryItemManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false);
@@ -536,15 +539,23 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @Override
public boolean exit() { public boolean canSwitchAway(boolean isClosing) {
Singletons.getModel().getQuest().save();
return true;
}
/* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
*/
@Override
public void resetUIChanges() {
if (showingFullCatalog) { if (showingFullCatalog) {
toggleFullCatalog(); toggleFullCatalog();
} }
Singletons.getModel().getQuest().save();
CSubmenuQuestDecks.SINGLETON_INSTANCE.update(); CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
// undo Card Shop Specifics // undo Card Shop Specifics
@@ -575,7 +586,5 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
if (probsParent != null) { if (probsParent != null) {
probsParent.addDoc(VProbabilities.SINGLETON_INSTANCE); probsParent.addDoc(VProbabilities.SINGLETON_INSTANCE);
} }
return true;
} }
} }

View File

@@ -55,7 +55,6 @@ import forge.util.storage.IStorage;
*/ */
public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> { public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
private final DeckController<Deck> controller; private final DeckController<Deck> controller;
private final FScreen screen;
private DragCell allDecksParent = null; private DragCell allDecksParent = null;
private DragCell deckGenParent = null; private DragCell deckGenParent = null;
private final Predicate<PaperCard> cardPoolCondition; private final Predicate<PaperCard> cardPoolCondition;
@@ -67,10 +66,9 @@ public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
* all cards are available. * all cards are available.
*/ */
public CEditorVariant(final IStorage<Deck> folder, final Predicate<PaperCard> poolCondition, final FScreen screen0) { public CEditorVariant(final IStorage<Deck> folder, final Predicate<PaperCard> poolCondition, final FScreen screen0) {
super(); super(screen0);
this.cardPoolCondition = poolCondition; this.cardPoolCondition = poolCondition;
this.screen = screen0;
this.setCatalogManager(new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), true)); this.setCatalogManager(new CardManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), true));
this.setDeckManager(new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), true)); this.setDeckManager(new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), true));
@@ -169,15 +167,18 @@ public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
} }
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#exit() * @see forge.gui.deckeditor.controllers.ACEditorBase#canSwitchAway()
*/ */
@Override @Override
public boolean exit() { public boolean canSwitchAway(boolean isClosing) {
if (!SEditorIO.confirmSaveChanges(this.screen)) return SEditorIO.confirmSaveChanges(getScreen());
{
return false;
} }
/* (non-Javadoc)
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
*/
@Override
public void resetUIChanges() {
//Re-add tabs //Re-add tabs
if (deckGenParent != null) { if (deckGenParent != null) {
deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE); deckGenParent.addDoc(VDeckgen.SINGLETON_INSTANCE);
@@ -185,7 +186,5 @@ public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
if (allDecksParent != null) { if (allDecksParent != null) {
allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE); allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE);
} }
return true;
} }
} }

View File

@@ -168,8 +168,8 @@ public enum FScreen {
return closeButtonTooltip; return closeButtonTooltip;
} }
public boolean onSwitching() { public boolean onSwitching(FScreen toScreen) {
return view.onSwitching(this); return view.onSwitching(this, toScreen);
} }
public boolean onClosing() { public boolean onClosing() {

View File

@@ -31,7 +31,7 @@ public interface IVTopLevelUI {
* Fires when this view's tab is being switched away from. * Fires when this view's tab is being switched away from.
* *
* @return true to allow switching away from tab, false otherwise */ * @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. * Fires when this view's tab is closing.

View File

@@ -326,7 +326,7 @@ public enum VHomeUI implements IVTopLevelUI {
* @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen)
*/ */
@Override @Override
public boolean onSwitching(FScreen screen) { public boolean onSwitching(FScreen fromScreen, FScreen toScreen) {
return true; return true;
} }

View File

@@ -52,7 +52,7 @@ public enum CSubmenuQuestDecks implements ICDoc {
return; return;
} }
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_QUEST); 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()));
} }
}); });
} }

View File

@@ -254,7 +254,7 @@ public class SSubmenuQuestUtil {
return; return;
} }
Singletons.getControl().setCurrentScreen(FScreen.QUEST_CARD_SHOP); Singletons.getControl().setCurrentScreen(FScreen.QUEST_CARD_SHOP);
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController( CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(
new CEditorQuestCardShop(Singletons.getModel().getQuest())); new CEditorQuestCardShop(Singletons.getModel().getQuest()));
} }

View File

@@ -160,7 +160,7 @@ public enum CSubmenuDraft implements ICDoc {
draft.showGui(new BoosterDraft(o)); draft.showGui(new BoosterDraft(o));
Singletons.getControl().setCurrentScreen(FScreen.DRAFTING_PROCESS); Singletons.getControl().setCurrentScreen(FScreen.DRAFTING_PROCESS);
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(draft); CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(draft);
} }
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -208,7 +208,7 @@ public enum CSubmenuSealed implements ICDoc {
Singletons.getModel().getDecks().getSealed(), FScreen.DECK_EDITOR_SEALED); Singletons.getModel().getDecks().getSealed(), FScreen.DECK_EDITOR_SEALED);
Singletons.getControl().setCurrentScreen(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); editor.getDeckController().setModel((T) sealed);
} }

View File

@@ -100,7 +100,7 @@ public enum CSubmenuArchenemy implements ICDoc {
}; };
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_ARCHENEMY); 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)); new CEditorVariant(Singletons.getModel().getDecks().getScheme(), predSchemes, FScreen.DECK_EDITOR_ARCHENEMY));
} }
}); });

View File

@@ -95,8 +95,7 @@ public enum CSubmenuCommander implements ICDoc {
@Override @Override
public void run() { public void run() {
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_COMMANDER); Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_COMMANDER);
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController( CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(new CEditorCommander());
new CEditorCommander());
} }
}); });
} }

View File

@@ -101,7 +101,7 @@ public enum CSubmenuPlanechase implements ICDoc {
}; };
Singletons.getControl().setCurrentScreen(FScreen.DECK_EDITOR_PLANECHASE); 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)); new CEditorVariant(Singletons.getModel().getDecks().getPlane(), predPlanes, FScreen.DECK_EDITOR_PLANECHASE));
} }
}); });

View File

@@ -169,7 +169,7 @@ public enum VMatchUI implements IVTopLevelUI {
* @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen) * @see forge.gui.framework.IVTopLevelUI#onSwitching(forge.gui.framework.FScreen)
*/ */
@Override @Override
public boolean onSwitching(FScreen screen) { public boolean onSwitching(FScreen fromScreen, FScreen toScreen) {
return true; return true;
} }

View File

@@ -461,7 +461,7 @@ public class DeckLister extends JPanel implements ILocalRepaint {
Singletons.getControl().setCurrentScreen(screen); Singletons.getControl().setCurrentScreen(screen);
if (editorCtrl != null) { if (editorCtrl != null) {
CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(editorCtrl); CDeckEditorUI.SINGLETON_INSTANCE.setEditorController(editorCtrl);
} }
CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController().load(d0.getName()); CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController().getDeckController().load(d0.getName());
} }

View File

@@ -123,8 +123,8 @@ public class FNavigationBar extends FTitleBarBase {
return null; return null;
} }
public boolean canSwitchAway() { public boolean canSwitch(FScreen toScreen) {
return (selectedTab == null || selectedTab.screen.onSwitching()); return (selectedTab == null || selectedTab.screen.onSwitching(toScreen));
} }
public void updateSelectedTab() { public void updateSelectedTab() {