mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Fix switching between Editors
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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<? extends InventoryItem, ? extends DeckBase> editor0) {
|
||||
if (this.childController == editor0) { return; }
|
||||
this.childController = editor0;
|
||||
screenChildControllers.put(Singletons.getControl().getCurrentScreen(), editor0);
|
||||
updateController();
|
||||
public void setEditorController(ACEditorBase<? extends InventoryItem, ? extends DeckBase> 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<? extends InventoryItem, ? extends DeckBase> childController0) {
|
||||
this.childController = childController0;
|
||||
|
||||
if (childController == null) { return; }
|
||||
|
||||
final ItemManager<? extends InventoryItem> 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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<TItem extends InventoryItem, TModel extends D
|
||||
}
|
||||
|
||||
public boolean listenersHooked;
|
||||
private final FScreen screen;
|
||||
private ItemManager<TItem> catalogManager;
|
||||
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.
|
||||
*/
|
||||
@@ -88,18 +98,22 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
|
||||
public abstract DeckController<TModel> 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.
|
||||
*
|
||||
|
||||
@@ -78,7 +78,7 @@ public final class CEditorCommander extends ACEditorBase<PaperCard, Deck> {
|
||||
* 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<PaperCard, Deck> {
|
||||
}
|
||||
|
||||
/* (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<PaperCard, Deck> {
|
||||
if (allDecksParent != null) {
|
||||
allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -75,7 +75,7 @@ public final class CEditorConstructed extends ACEditorBase<PaperCard, Deck> {
|
||||
* 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<PaperCard, Deck> {
|
||||
}
|
||||
|
||||
/* (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() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,6 +64,8 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
* 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<PaperCard, DeckGroup> {
|
||||
}
|
||||
|
||||
/* (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<PaperCard, DeckGroup> {
|
||||
|
||||
// set catalog table back to free-selection mode
|
||||
getCatalogManager().getTable().setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,6 @@ import forge.util.storage.IStorage;
|
||||
public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
|
||||
private final DeckController<DeckGroup> controller;
|
||||
private final FScreen screen;
|
||||
private DragCell allDecksParent = null;
|
||||
private DragCell deckGenParent = null;
|
||||
|
||||
@@ -61,7 +60,7 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
* @param deckMap0   {@link forge.deck.DeckGroup}<{@link forge.util.storage.IStorage}>
|
||||
*/
|
||||
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 deckManager = new CardManager(VCurrentDeck.SINGLETON_INSTANCE.getStatLabels(), false);
|
||||
@@ -180,26 +179,27 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
|
||||
}
|
||||
|
||||
/* (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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,6 +94,8 @@ public final class CEditorQuest extends ACEditorBase<PaperCard, Deck> {
|
||||
* @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<PaperCard, Deck> {
|
||||
}
|
||||
|
||||
/* (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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<InventoryItem, Deck
|
||||
* a {@link forge.quest.data.QuestData} object.
|
||||
*/
|
||||
public CEditorQuestCardShop(final QuestController qd) {
|
||||
super(FScreen.QUEST_CARD_SHOP);
|
||||
|
||||
this.questData = qd;
|
||||
|
||||
final InventoryItemManager catalogManager = new InventoryItemManager(VCardCatalog.SINGLETON_INSTANCE.getStatLabels(), false);
|
||||
@@ -536,15 +539,23 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
|
||||
}
|
||||
|
||||
/* (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) {
|
||||
Singletons.getModel().getQuest().save();
|
||||
return true;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.gui.deckeditor.controllers.ACEditorBase#resetUIChanges()
|
||||
*/
|
||||
@Override
|
||||
public void resetUIChanges() {
|
||||
if (showingFullCatalog) {
|
||||
toggleFullCatalog();
|
||||
}
|
||||
|
||||
Singletons.getModel().getQuest().save();
|
||||
CSubmenuQuestDecks.SINGLETON_INSTANCE.update();
|
||||
|
||||
// undo Card Shop Specifics
|
||||
@@ -575,7 +586,5 @@ public final class CEditorQuestCardShop extends ACEditorBase<InventoryItem, Deck
|
||||
if (probsParent != null) {
|
||||
probsParent.addDoc(VProbabilities.SINGLETON_INSTANCE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,6 @@ import forge.util.storage.IStorage;
|
||||
*/
|
||||
public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
|
||||
private final DeckController<Deck> controller;
|
||||
private final FScreen screen;
|
||||
private DragCell allDecksParent = null;
|
||||
private DragCell deckGenParent = null;
|
||||
private final Predicate<PaperCard> cardPoolCondition;
|
||||
@@ -67,10 +66,9 @@ public final class CEditorVariant extends ACEditorBase<PaperCard, Deck> {
|
||||
* all cards are available.
|
||||
*/
|
||||
public CEditorVariant(final IStorage<Deck> folder, final Predicate<PaperCard> 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<PaperCard, Deck> {
|
||||
}
|
||||
|
||||
/* (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<PaperCard, Deck> {
|
||||
if (allDecksParent != null) {
|
||||
allDecksParent.addDoc(VAllDecks.SINGLETON_INSTANCE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user