From 753ff18d5d404a0e7e34db9971d8e89a4cc34a95 Mon Sep 17 00:00:00 2001 From: Hellfish Date: Wed, 23 Jan 2013 07:20:42 +0000 Subject: [PATCH] *Unified variant deck editor initial commit (Does not work 100% yet) --- .gitattributes | 2 +- ...CEditorScheme.java => CEditorVariant.java} | 31 ++++++++++++------- .../gui/home/variant/CSubmenuArchenemy.java | 22 +++++++++++-- .../gui/home/variant/CSubmenuPlanechase.java | 26 ++++++++++++++-- 4 files changed, 63 insertions(+), 18 deletions(-) rename src/main/java/forge/gui/deckeditor/controllers/{CEditorScheme.java => CEditorVariant.java} (83%) diff --git a/.gitattributes b/.gitattributes index 4d3ec793b5b..8100d2f764f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13739,7 +13739,7 @@ src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java -text src/main/java/forge/gui/deckeditor/controllers/CEditorPreferences.java -text src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java svneol=native#text/plain src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java -text -src/main/java/forge/gui/deckeditor/controllers/CEditorScheme.java -text +src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java -text src/main/java/forge/gui/deckeditor/controllers/CFilters.java -text src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java -text src/main/java/forge/gui/deckeditor/controllers/CStatistics.java -text diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorScheme.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java similarity index 83% rename from src/main/java/forge/gui/deckeditor/controllers/CEditorScheme.java rename to src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java index a19daa14db3..ff298bd980c 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorScheme.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorVariant.java @@ -17,10 +17,12 @@ */ package forge.gui.deckeditor.controllers; -import java.util.ArrayList; import java.util.List; +import com.google.common.base.Predicate; import com.google.common.base.Supplier; +import com.google.common.collect.Iterables; + import forge.Singletons; import forge.deck.Deck; import forge.gui.deckeditor.SEditorIO; @@ -38,6 +40,7 @@ import forge.item.CardPrinted; import forge.item.InventoryItem; import forge.item.ItemPool; import forge.properties.ForgePreferences.FPref; +import forge.util.IStorage; /** * Child controller for constructed deck editor UI. @@ -49,8 +52,10 @@ import forge.properties.ForgePreferences.FPref; * @author Forge * @version $Id: CEditorConstructed.java 18430 2012-11-27 22:42:36Z Hellfish $ */ -public final class CEditorScheme extends ACEditorBase { +public final class CEditorVariant extends ACEditorBase { private final DeckController controller; + private final Predicate cardPoolCondition; + private final EDocID exitToScreen; //=========== Constructor /** @@ -58,9 +63,12 @@ public final class CEditorScheme extends ACEditorBase { * This is the least restrictive mode; * all cards are available. */ - public CEditorScheme() { + public CEditorVariant(final IStorage folder, final Predicate poolCondition, final EDocID exitTo) { super(); - + + cardPoolCondition = poolCondition; + exitToScreen = exitTo; + final EditorTableView tblCatalog = new EditorTableView(true, CardPrinted.class); final EditorTableView tblDeck = new EditorTableView(true, CardPrinted.class); @@ -76,7 +84,7 @@ public final class CEditorScheme extends ACEditorBase { return new Deck(); } }; - this.controller = new DeckController(Singletons.getModel().getDecks().getScheme(), this, newCreator); + this.controller = new DeckController(folder, this, newCreator); } //=========== Overridden from ACEditorBase @@ -120,12 +128,11 @@ public final class CEditorScheme extends ACEditorBase { */ @Override public void resetTables() { - List schemes = new ArrayList(); - for(CardPrinted cp : CardDb.instance().getAllNonTraditionalCards()) { - if ( cp.getCard().getType().isScheme() ) - schemes.add(cp); - } - this.getTableCatalog().setDeck(ItemPool.createFrom(schemes, CardPrinted.class)); + + Iterable allNT = CardDb.instance().getAllNonTraditionalCards(); + allNT = Iterables.filter(allNT, cardPoolCondition); + + this.getTableCatalog().setDeck(ItemPool.createFrom(allNT, CardPrinted.class)); this.getTableDeck().setDeck(this.controller.getModel().getSideboard()); } @@ -161,7 +168,7 @@ public final class CEditorScheme extends ACEditorBase { @Override public boolean exit() { // Override the submenu save choice - tell it to go to "constructed". - Singletons.getModel().getPreferences().setPref(FPref.SUBMENU_CURRENTMENU, EDocID.HOME_ARCHENEMY.toString()); + Singletons.getModel().getPreferences().setPref(FPref.SUBMENU_CURRENTMENU, exitToScreen.toString()); return SEditorIO.confirmSaveChanges(); } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java index 7883c6390b5..b9c6be7e72a 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuArchenemy.java @@ -7,6 +7,8 @@ import java.util.List; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; +import com.google.common.base.Predicate; + import forge.Command; import forge.GameActionUtil; import forge.Singletons; @@ -21,7 +23,8 @@ import forge.game.player.LobbyPlayer; import forge.game.player.PlayerType; import forge.gui.SOverlayUtils; import forge.gui.deckeditor.CDeckEditorUI; -import forge.gui.deckeditor.controllers.CEditorScheme; +import forge.gui.deckeditor.controllers.CEditorVariant; +import forge.gui.framework.EDocID; import forge.gui.framework.ICDoc; import forge.gui.toolbox.FDeckChooser; import forge.item.CardPrinted; @@ -60,7 +63,22 @@ public enum CSubmenuArchenemy implements ICDoc { @Override public void execute() { - CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorScheme()); + + Predicate predSchemes = new Predicate() { + + @Override + public boolean apply(CardPrinted arg0) { + if(arg0.getCard().getType().isScheme()) + { + return true; + } + + return false; + } + + }; + + CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorVariant(Singletons.getModel().getDecks().getScheme(),predSchemes,EDocID.HOME_ARCHENEMY)); FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED); } }); diff --git a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java index 8188f3fb0b3..f01cb1caeda 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java @@ -7,9 +7,12 @@ import java.util.List; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; +import com.google.common.base.Predicate; + import forge.Command; import forge.GameActionUtil; import forge.Singletons; +import forge.control.FControl; import forge.control.Lobby; import forge.deck.Deck; import forge.deck.DeckgenUtil; @@ -19,6 +22,9 @@ import forge.game.MatchStartHelper; import forge.game.player.LobbyPlayer; import forge.game.player.PlayerType; import forge.gui.SOverlayUtils; +import forge.gui.deckeditor.CDeckEditorUI; +import forge.gui.deckeditor.controllers.CEditorVariant; +import forge.gui.framework.EDocID; import forge.gui.framework.ICDoc; import forge.gui.toolbox.FDeckChooser; import forge.item.CardPrinted; @@ -57,9 +63,23 @@ public enum CSubmenuPlanechase implements ICDoc { @Override public void execute() { - //TODO:Enter Planar deck editor here! - //CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorScheme()); - //FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED); + Predicate predPlanes = new Predicate() { + + @Override + public boolean apply(CardPrinted arg0) { + if(arg0.getCard().getType().isPlane() || arg0.getCard().getType().isPhenomenon()) + { + return true; + } + + return false; + } + + }; + + CDeckEditorUI.SINGLETON_INSTANCE.setCurrentEditorController(new CEditorVariant(Singletons.getModel().getDecks().getPlane(),predPlanes,EDocID.HOME_PLANECHASE)); + FControl.SINGLETON_INSTANCE.changeState(FControl.DECK_EDITOR_CONSTRUCTED); + } });