diff --git a/.gitattributes b/.gitattributes index 3d7a949cd6c..cdde395f346 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11087,6 +11087,7 @@ res/pics_product/tournamentpacks/SHM.jpg -text res/pics_product/tournamentpacks/TMP.jpg -text res/pics_product/tournamentpacks/TSP.jpg -text res/pics_product/tournamentpacks/USG.jpg -text +res/preferences/.project -text res/preferences/editor.preferences -text res/preferences/main.properties -text res/product-images.txt -text diff --git a/res/preferences/.project b/res/preferences/.project new file mode 100644 index 00000000000..0dd752fd79a --- /dev/null +++ b/res/preferences/.project @@ -0,0 +1,11 @@ + + + preferences + + + + + + + + diff --git a/res/preferences/editor.preferences b/res/preferences/editor.preferences index e205c2da6de..f8fdc945931 100644 --- a/res/preferences/editor.preferences +++ b/res/preferences/editor.preferences @@ -2,31 +2,31 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/forge/gui/deckeditor/SEditorIO.java b/src/main/java/forge/gui/deckeditor/SEditorIO.java index 9037d0103c3..f943c7d0355 100644 --- a/src/main/java/forge/gui/deckeditor/SEditorIO.java +++ b/src/main/java/forge/gui/deckeditor/SEditorIO.java @@ -90,6 +90,24 @@ public class SEditorIO { * @return TableColumnInfo */ public static TableColumnInfo getColumn(final ColumnName name0) { + /* final ColumnName[] vals = ColumnName.values(); + boolean exists = false; + for (int i = 0; i < vals.length; i++) { + if (vals.equals(name0)) { exists = true; break; } + } + + // Columns that are not in the enum must be created. + if (!exists) { + final TableColumnInfo col; + col = new TableColumnInfo(); + col.setIdentifier(name0.toString()); + col.setShowing(true); + col.setSortPriority(0); + col.setSortState(SortState.NONE); + col.setPreferredWidth(100); + COLS.put(name0, col); + }*/ + return COLS.get(name0); } @@ -294,7 +312,9 @@ public class SEditorIO { while (attributes.hasNext()) { attribute = (Attribute) attributes.next(); if (attribute.getName().toString().equals(ColumnProperty.enumval.toString())) { - COLS.put(ColumnName.valueOf(attribute.getValue()), tempcol); + try { COLS.put(ColumnName.valueOf(attribute.getValue()), tempcol); } + catch (final Exception e) { } + tempcol.setEnumValue(attribute.getValue()); } else if (attribute.getName().toString().equals(ColumnProperty.identifier.toString())) { diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java index 9d68d838d06..80088d18c5d 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java @@ -18,7 +18,10 @@ package forge.gui.deckeditor.controllers; // import java.awt.Font; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import forge.AllZone; import forge.Constant; @@ -37,6 +40,7 @@ import forge.item.InventoryItem; import forge.item.ItemPool; import forge.quest.QuestController; import forge.util.closures.Lambda0; +import forge.util.closures.Lambda1; //import forge.quest.data.QuestBoosterPack; @@ -54,6 +58,25 @@ public final class CEditorQuest extends ACEditorBase { private final QuestController questData; private final DeckController controller; + private Map decksUsingMyCards; + + @SuppressWarnings("rawtypes") + private final Lambda1> fnDeckCompare = new Lambda1>() { + @Override + public Comparable apply(final Entry from) { + final Integer iValue = CEditorQuest.this.decksUsingMyCards.get(from.getKey()); + return iValue == null ? Integer.valueOf(0) : iValue; + } + }; + + private final Lambda1> fnDeckGet = new Lambda1>() { + @Override + public Object apply(final Entry from) { + final Integer iValue = CEditorQuest.this.decksUsingMyCards.get(from.getKey()); + return iValue == null ? "" : iValue.toString(); + } + }; + /** * Child controller for quest deck editor UI. *

@@ -93,6 +116,19 @@ public final class CEditorQuest extends ACEditorBase { this.questData.getCards().getCardpool().add(card); } + // fills number of decks using each card + private Map countDecksForEachCard() { + final Map result = new HashMap(); + for (final Deck deck : this.questData.getMyDecks()) { + for (final Entry e : deck.getMain()) { + final CardPrinted card = e.getKey(); + final Integer amount = result.get(card); + result.put(card, Integer.valueOf(amount == null ? 1 : 1 + amount.intValue())); + } + } + return result; + } + //=========== Overridden from ACEditorBase /* (non-Javadoc) @@ -164,19 +200,23 @@ public final class CEditorQuest extends ACEditorBase { final List> columnsCatalog = SColumnUtil.getCatalogDefaultColumns(); final List> columnsDeck = SColumnUtil.getDeckDefaultColumns(); + this.decksUsingMyCards = this.countDecksForEachCard(); + // Add "new" column in catalog and deck columnsCatalog.add(SColumnUtil.getColumn(ColumnName.CAT_NEW)); - columnsCatalog.get(columnsCatalog.size() - 1).setSortAndDisplayFunctions( this.questData.getCards().getFnNewCompare(), this.questData.getCards().getFnNewGet()); columnsDeck.add(SColumnUtil.getColumn(ColumnName.DECK_NEW)); - columnsDeck.get(columnsDeck.size() - 1).setSortAndDisplayFunctions( this.questData.getCards().getFnNewCompare(), this.questData.getCards().getFnNewGet()); + columnsDeck.add(SColumnUtil.getColumn(ColumnName.DECK_DECKS)); + columnsDeck.get(columnsDeck.size() - 1).setSortAndDisplayFunctions( + this.fnDeckCompare, this.fnDeckGet); + this.getTableCatalog().setup(VCardCatalog.SINGLETON_INSTANCE, columnsCatalog); this.getTableDeck().setup(VCurrentDeck.SINGLETON_INSTANCE, columnsDeck); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java index a96ac619d4e..7ccd653d8fb 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java @@ -106,10 +106,6 @@ public final class CEditorQuestCardShop extends ACEditorBase