Prevent showing File menu in Spell Shop

This commit is contained in:
drdev
2014-01-03 02:46:53 +00:00
parent e7a9492200
commit a2b75c2072
3 changed files with 24 additions and 18 deletions

View File

@@ -29,10 +29,8 @@ import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
import javax.swing.JMenu;
import javax.swing.JPopupMenu; import javax.swing.JPopupMenu;
import javax.swing.KeyStroke; import javax.swing.KeyStroke;
import javax.swing.Popup; import javax.swing.Popup;
@@ -55,14 +53,12 @@ import forge.gui.deckeditor.controllers.CEditorConstructed;
import forge.gui.deckeditor.controllers.CProbabilities; import forge.gui.deckeditor.controllers.CProbabilities;
import forge.gui.deckeditor.controllers.CStatistics; import forge.gui.deckeditor.controllers.CStatistics;
import forge.gui.deckeditor.controllers.DeckController; import forge.gui.deckeditor.controllers.DeckController;
import forge.gui.deckeditor.menus.CDeckEditorUIMenus;
import forge.gui.deckeditor.views.VCardCatalog; import forge.gui.deckeditor.views.VCardCatalog;
import forge.gui.deckeditor.views.VCurrentDeck; import forge.gui.deckeditor.views.VCurrentDeck;
import forge.gui.framework.FScreen; import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc; import forge.gui.framework.ICDoc;
import forge.gui.match.controllers.CDetail; import forge.gui.match.controllers.CDetail;
import forge.gui.match.controllers.CPicture; import forge.gui.match.controllers.CPicture;
import forge.gui.menus.IMenuProvider;
import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FLabel;
import forge.gui.toolbox.FMouseAdapter; import forge.gui.toolbox.FMouseAdapter;
import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin;
@@ -81,7 +77,7 @@ import forge.util.ItemPool;
* *
* <br><br><i>(C at beginning of class name denotes a control class.)</i> * <br><br><i>(C at beginning of class name denotes a control class.)</i>
*/ */
public enum CDeckEditorUI implements ICDoc, IMenuProvider { public enum CDeckEditorUI implements ICDoc {
/** */ /** */
SINGLETON_INSTANCE; SINGLETON_INSTANCE;
@@ -332,6 +328,7 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider {
*/ */
private void setCurrentEditorController(ACEditorBase<? extends InventoryItem, ? extends DeckBase> childController0) { private void setCurrentEditorController(ACEditorBase<? extends InventoryItem, ? extends DeckBase> childController0) {
this.childController = childController0; this.childController = childController0;
Singletons.getControl().getForgeMenu().setProvider(childController0);
if (childController == null) { return; } if (childController == null) { return; }
@@ -624,14 +621,6 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider {
} }
} }
/* (non-Javadoc)
* @see forge.gui.menubar.IMenuProvider#getMenus()
*/
@Override
public List<JMenu> getMenus() {
return new CDeckEditorUIMenus().getMenus();
}
/* (non-Javadoc) /* (non-Javadoc)
* @see forge.gui.framework.ICDoc#getCommandOnSelect() * @see forge.gui.framework.ICDoc#getCommandOnSelect()
*/ */
@@ -645,8 +634,6 @@ public enum CDeckEditorUI implements ICDoc, IMenuProvider {
*/ */
@Override @Override
public void initialize() { public void initialize() {
Singletons.getControl().getForgeMenu().setProvider(this);
//change to previously open child controller based on screen //change to previously open child controller based on screen
FScreen screen = Singletons.getControl().getCurrentScreen(); FScreen screen = Singletons.getControl().getCurrentScreen();
ACEditorBase<? extends InventoryItem, ? extends DeckBase> screenChildController = screenChildControllers.get(screen); ACEditorBase<? extends InventoryItem, ? extends DeckBase> screenChildController = screenChildControllers.get(screen);

View File

@@ -17,19 +17,23 @@
*/ */
package forge.gui.deckeditor.controllers; package forge.gui.deckeditor.controllers;
import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
import javax.swing.JMenu;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import forge.Command; import forge.Command;
import forge.deck.DeckBase; import forge.deck.DeckBase;
import forge.deck.DeckSection; import forge.deck.DeckSection;
import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.CDeckEditorUI;
import forge.gui.deckeditor.menus.CDeckEditorUIMenus;
import forge.gui.framework.DragCell; import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen; 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;
import forge.gui.menus.IMenuProvider;
import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FLabel;
import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FSkin;
import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.ItemManager;
@@ -52,7 +56,7 @@ import forge.view.FView;
* @param <TItem> extends {@link forge.item.InventoryItem} * @param <TItem> extends {@link forge.item.InventoryItem}
* @param <TModel> extends {@link forge.deck.DeckBase} * @param <TModel> extends {@link forge.deck.DeckBase}
*/ */
public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends DeckBase> { public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends DeckBase> implements IMenuProvider {
public interface ContextMenuBuilder { public interface ContextMenuBuilder {
/** /**
* Adds move-related items to the context menu * Adds move-related items to the context menu
@@ -119,6 +123,17 @@ public abstract class ACEditorBase<TItem extends InventoryItem, TModel extends D
return this.sectionMode; return this.sectionMode;
} }
/* (non-Javadoc)
* @see forge.gui.menubar.IMenuProvider#getMenus()
*/
@Override
public List<JMenu> getMenus() {
if (this.getDeckController() == null) {
return null;
}
return new CDeckEditorUIMenus().getMenus();
}
public final void addItem(TItem item) { public final void addItem(TItem item) {
onAddItems(createPoolForItem(item, 1), false); onAddItems(createPoolForItem(item, 1), false);
} }

View File

@@ -43,9 +43,13 @@ public final class DeckFileMenu {
private static JMenuItem menuItem_Save, menuItem_SaveAs; private static JMenuItem menuItem_Save, menuItem_SaveAs;
public static void updateSaveEnabled() { public static void updateSaveEnabled() {
if (menuItem_Save != null) {
menuItem_Save.setEnabled(CDeckEditorUI.SINGLETON_INSTANCE.hasChanges()); menuItem_Save.setEnabled(CDeckEditorUI.SINGLETON_INSTANCE.hasChanges());
}
if (menuItem_SaveAs != null) {
menuItem_SaveAs.setEnabled(CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController() != null); menuItem_SaveAs.setEnabled(CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController() != null);
} }
}
private static JMenuItem getMenuItem_New() { private static JMenuItem getMenuItem_New() {
JMenuItem menuItem = new JMenuItem("New Deck"); JMenuItem menuItem = new JMenuItem("New Deck");