From ca6fe5105ceb7d6544da2eba0c853c83ca754d9b Mon Sep 17 00:00:00 2001 From: drdev Date: Sun, 11 Aug 2013 23:48:18 +0000 Subject: [PATCH] Remove need for ITableContainer --- .gitattributes | 1 - .../deckeditor/controllers/CCardCatalog.java | 12 +- .../controllers/CEditorConstructed.java | 6 +- .../controllers/CEditorDraftingProcess.java | 6 +- .../controllers/CEditorLimited.java | 4 +- .../deckeditor/controllers/CEditorQuest.java | 4 +- .../controllers/CEditorQuestCardShop.java | 10 +- .../controllers/CEditorVariant.java | 4 +- .../controllers/CProbabilities.java | 2 +- .../deckeditor/controllers/CStatistics.java | 2 +- .../gui/deckeditor/views/VCardCatalog.java | 12 +- .../gui/deckeditor/views/VCurrentDeck.java | 9 +- .../gui/deckeditor/views/VProbabilities.java | 2 +- .../gui/toolbox/itemmanager/ItemManager.java | 179 +++++++++++++----- .../toolbox/itemmanager/ItemManagerModel.java | 12 +- .../toolbox/itemmanager/SItemManagerUtil.java | 13 +- .../itemmanager/table/ITableContainer.java | 22 --- .../toolbox/itemmanager/table/ItemTable.java | 22 ++- .../itemmanager/table/ItemTableModel.java | 10 - 19 files changed, 190 insertions(+), 142 deletions(-) delete mode 100644 src/main/java/forge/gui/toolbox/itemmanager/table/ITableContainer.java diff --git a/.gitattributes b/.gitattributes index cb3c5cb5e8e..89e0323019a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15002,7 +15002,6 @@ src/main/java/forge/gui/toolbox/itemmanager/SItemManagerIO.java -text src/main/java/forge/gui/toolbox/itemmanager/SItemManagerUtil.java -text src/main/java/forge/gui/toolbox/itemmanager/package-info.java -text src/main/java/forge/gui/toolbox/itemmanager/table/AlwaysShowToolTip.java -text -src/main/java/forge/gui/toolbox/itemmanager/table/ITableContainer.java -text src/main/java/forge/gui/toolbox/itemmanager/table/IntegerRenderer.java -text src/main/java/forge/gui/toolbox/itemmanager/table/ItemTable.java -text src/main/java/forge/gui/toolbox/itemmanager/table/ItemTableModel.java -text diff --git a/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java b/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java index 2209ce27103..0fc9930d1ce 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CCardCatalog.java @@ -108,7 +108,7 @@ public enum CCardCatalog implements ICDoc { } }; - for (Map.Entry entry : VCardCatalog.SINGLETON_INSTANCE.getStatLabels().entrySet()) { + for (Map.Entry entry : VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabels().entrySet()) { final FLabel statLabel = entry.getValue(); statLabel.setCommand(updateFilterCommand); @@ -123,7 +123,7 @@ public enum CCardCatalog implements ICDoc { disableFiltering = true; for (SItemManagerUtil.StatTypes s : SItemManagerUtil.StatTypes.values()) { if (s.group == group && s != st) { - VCardCatalog.SINGLETON_INSTANCE.getStatLabel(s).setSelected(false); + VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(s).setSelected(false); } } statLabel.setSelected(true); @@ -135,7 +135,7 @@ public enum CCardCatalog implements ICDoc { } } - VCardCatalog.SINGLETON_INSTANCE.getStatLabel(SItemManagerUtil.StatTypes.TOTAL).setCommand(new Command() { + VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(SItemManagerUtil.StatTypes.TOTAL).setCommand(new Command() { private boolean lastToggle = true; @Override @@ -144,7 +144,7 @@ public enum CCardCatalog implements ICDoc { lastToggle = !lastToggle; for (SItemManagerUtil.StatTypes s : SItemManagerUtil.StatTypes.values()) { if (SItemManagerUtil.StatTypes.TOTAL != s) { - VCardCatalog.SINGLETON_INSTANCE.getStatLabel(s).setSelected(lastToggle); + VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(s).setSelected(lastToggle); } } disableFiltering = false; @@ -351,7 +351,7 @@ public enum CCardCatalog implements ICDoc { List> cardPredicates = new ArrayList>(); cardPredicates.add(Predicates.instanceOf(PaperCard.class)); - cardPredicates.add(SFilterUtil.buildColorAndTypeFilter(VCardCatalog.SINGLETON_INSTANCE.getStatLabels())); + cardPredicates.add(SFilterUtil.buildColorAndTypeFilter(VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabels())); cardPredicates.addAll(activePredicates); // apply current values in the range filters @@ -373,7 +373,7 @@ public enum CCardCatalog implements ICDoc { // show packs and decks in the card shop according to the toggle setting // this is special-cased apart from the buildColorAndTypeFilter() above - if (VCardCatalog.SINGLETON_INSTANCE.getStatLabel(StatTypes.PACK).getSelected()) { + if (VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(StatTypes.PACK).getSelected()) { List> itemPredicates = new ArrayList>(); itemPredicates.add(cardFilter); itemPredicates.add(ItemPredicate.Presets.IS_PACK); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java index bbab1b9d14f..9c1c1fb01ba 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java @@ -125,7 +125,7 @@ public final class CEditorConstructed extends ACEditorBase { } if (sectionMode == DeckSection.Avatar || sectionMode == DeckSection.Commander) { - for(Map.Entry cp : getDeckManager().getItems()) { + for(Map.Entry cp : getDeckManager().getPool()) { getDeckManager().removeItem(cp.getKey(), cp.getValue()); } } @@ -310,8 +310,8 @@ public final class CEditorConstructed extends ACEditorBase { final List> lstCatalogCols = SColumnUtil.getCatalogDefaultColumns(); lstCatalogCols.remove(SColumnUtil.getColumn(ColumnName.CAT_QUANTITY)); - this.getCatalogManager().getTable().setup(VCardCatalog.SINGLETON_INSTANCE, lstCatalogCols); - this.getDeckManager().getTable().setup(VCurrentDeck.SINGLETON_INSTANCE, SColumnUtil.getDeckDefaultColumns()); + this.getCatalogManager().getTable().setup(lstCatalogCols); + this.getDeckManager().getTable().setup(SColumnUtil.getDeckDefaultColumns()); SItemManagerUtil.resetUI(); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java index 2d800885957..039c1a866c0 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java @@ -93,8 +93,8 @@ public class CEditorDraftingProcess extends ACEditorBase { *

*/ private void setup() { - this.getCatalogManager().getTable().setup(VCardCatalog.SINGLETON_INSTANCE, SColumnUtil.getCatalogDefaultColumns()); - this.getDeckManager().getTable().setup(VCurrentDeck.SINGLETON_INSTANCE, SColumnUtil.getDeckDefaultColumns()); + this.getCatalogManager().getTable().setup(SColumnUtil.getCatalogDefaultColumns()); + this.getDeckManager().getTable().setup(SColumnUtil.getDeckDefaultColumns()); ccAddLabel = VCardCatalog.SINGLETON_INSTANCE.getBtnAdd().getText(); VCardCatalog.SINGLETON_INSTANCE.getBtnAdd().setText("Choose Card"); @@ -171,7 +171,7 @@ public class CEditorDraftingProcess extends ACEditorBase { // add sideboard to deck CardPool side = deck.getOrCreate(DeckSection.Sideboard); - side.addAll(this.getDeckManager().getItems()); + side.addAll(this.getDeckManager().getPool()); final CardEdition landSet = IBoosterDraft.LAND_SET_CODE[0]; final int landsCount = 20; diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java index 4614c8701c7..9b69dbb400a 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorLimited.java @@ -160,8 +160,8 @@ public final class CEditorLimited extends ACEditorBase { */ @Override public void init() { - this.getCatalogManager().getTable().setup(VCardCatalog.SINGLETON_INSTANCE, SColumnUtil.getCatalogDefaultColumns()); - this.getDeckManager().getTable().setup(VCurrentDeck.SINGLETON_INSTANCE, SColumnUtil.getDeckDefaultColumns()); + this.getCatalogManager().getTable().setup(SColumnUtil.getCatalogDefaultColumns()); + this.getDeckManager().getTable().setup(SColumnUtil.getDeckDefaultColumns()); SItemManagerUtil.resetUI(); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java index f03f1259bf5..6084bf97d10 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuest.java @@ -278,8 +278,8 @@ public final class CEditorQuest extends ACEditorBase { columnsDeck.get(columnsDeck.size() - 1).setSortAndDisplayFunctions( this.fnDeckCompare, this.fnDeckGet); - this.getCatalogManager().getTable().setup(VCardCatalog.SINGLETON_INSTANCE, columnsCatalog); - this.getDeckManager().getTable().setup(VCurrentDeck.SINGLETON_INSTANCE, columnsDeck); + this.getCatalogManager().getTable().setup(columnsCatalog); + this.getDeckManager().getTable().setup(columnsDeck); Deck deck = new Deck(); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java index 60a47d95581..ff11243642c 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorQuestCardShop.java @@ -188,8 +188,8 @@ public final class CEditorQuestCardShop extends ACEditorBase> cardsToRemove = new LinkedList>(); - for (Map.Entry item : getDeckManager().getItems()) { + for (Map.Entry item : getDeckManager().getPool()) { PaperCard card = (PaperCard)item.getKey(); int numToKeep = card.getRules().getType().isBasic() ? 50 : 4; if ("Relentless Rats".equals(card.getName())) { @@ -536,7 +536,7 @@ public final class CEditorQuestCardShop extends ACEditorBaseSelling cards at " + formatter.format(multiPercent) + "% of their value.
" + maxSellingPrice + ""); - VCardCatalog.SINGLETON_INSTANCE.getStatLabel(SItemManagerUtil.StatTypes.PACK).setVisible(true); + VCardCatalog.SINGLETON_INSTANCE.getItemManager().getStatLabel(SItemManagerUtil.StatTypes.PACK).setVisible(true); deckGenParent = removeTab(VDeckgen.SINGLETON_INSTANCE); allDecksParent = removeTab(VAllDecks.SINGLETON_INSTANCE); @@ -571,7 +571,7 @@ public final class CEditorQuestCardShop extends ACEditorBase { final List> lstCatalogCols = SColumnUtil.getCatalogDefaultColumns(); lstCatalogCols.remove(SColumnUtil.getColumn(ColumnName.CAT_QUANTITY)); - this.getCatalogManager().getTable().setup(VCardCatalog.SINGLETON_INSTANCE, lstCatalogCols); - this.getDeckManager().getTable().setup(VCurrentDeck.SINGLETON_INSTANCE, SColumnUtil.getDeckDefaultColumns()); + this.getCatalogManager().getTable().setup(lstCatalogCols); + this.getDeckManager().getTable().setup(SColumnUtil.getDeckDefaultColumns()); SItemManagerUtil.resetUI(); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java b/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java index f6ff81486e7..7312e001a32 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CProbabilities.java @@ -65,7 +65,7 @@ public enum CProbabilities implements ICDoc { if (ed == null) { return new ArrayList(); } - final ItemPoolView deck = ItemPool.createFrom(ed.getDeckManager().getItems(), PaperCard.class); + final ItemPoolView deck = ItemPool.createFrom(ed.getDeckManager().getPool(), PaperCard.class); final List cardProbabilities = new ArrayList(); diff --git a/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java b/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java index b1a48d21350..b865b349aa3 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java @@ -71,7 +71,7 @@ public enum CStatistics implements ICDoc { if (ed == null) { return; } - final ItemPoolView deck = ItemPool.createFrom(ed.getDeckManager().getItems(), PaperCard.class); + final ItemPoolView deck = ItemPool.createFrom(ed.getDeckManager().getPool(), PaperCard.class); int total = deck.countAll(); diff --git a/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java b/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java index 9fa1bc23b93..b64d700b884 100644 --- a/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java +++ b/src/main/java/forge/gui/deckeditor/views/VCardCatalog.java @@ -37,7 +37,6 @@ import forge.gui.toolbox.FTextField; import forge.gui.toolbox.ToolTipListener; import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil; -import forge.gui.toolbox.itemmanager.table.ITableContainer; import forge.item.InventoryItem; import forge.util.TextUtil; @@ -47,7 +46,7 @@ import forge.util.TextUtil; *

(V at beginning of class name denotes a view class.) * */ -public enum VCardCatalog implements IVDoc, ITableContainer { +public enum VCardCatalog implements IVDoc { /** */ SINGLETON_INSTANCE; @@ -237,14 +236,10 @@ public enum VCardCatalog implements IVDoc, ITableContainer { public void setItemManager(final ItemManager itemManager0) { this.itemManager = itemManager0; + itemManager0.setStatLabels(this.statLabels); scroller.setViewportView(itemManager0.getTable()); } - @Override - public FLabel getStatLabel(SItemManagerUtil.StatTypes s) { - return statLabels.get(s); - } - //========== Accessor/mutator methods public JPanel getPnlHeader() { return pnlHeader; } public FLabel getLblTitle() { return lblTitle; } @@ -259,9 +254,6 @@ public enum VCardCatalog implements IVDoc, ITableContainer { public JComboBox getCbSearchMode() { return cbSearchMode; } public JTextField getTxfSearch() { return txfSearch; } - public Map getStatLabels() { - return statLabels; - } public Map> getSpinners() { return spinners; } diff --git a/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java b/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java index 6b15e3bb271..77c32233d2d 100644 --- a/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java +++ b/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java @@ -25,7 +25,6 @@ import forge.gui.toolbox.FTextField; import forge.gui.toolbox.ToolTipListener; import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.SItemManagerUtil; -import forge.gui.toolbox.itemmanager.table.ITableContainer; import forge.item.InventoryItem; @@ -34,7 +33,7 @@ import forge.item.InventoryItem; * *

(V at beginning of class name denotes a view class.) */ -public enum VCurrentDeck implements IVDoc, ITableContainer { +public enum VCurrentDeck implements IVDoc { /** */ SINGLETON_INSTANCE; @@ -239,16 +238,12 @@ public enum VCurrentDeck implements IVDoc, ITableContainer { public void setItemManager(final ItemManager itemManager0) { this.itemManager = itemManager0; + itemManager0.setStatLabels(this.statLabels); scroller.setViewportView(itemManager0.getTable()); } public JLabel getLblTitle() { return lblTitle; } - @Override - public FLabel getStatLabel(SItemManagerUtil.StatTypes s) { - return statLabels.get(s); - } - //========== Retrieval /** @return {@link javax.swing.JLabel} */ diff --git a/src/main/java/forge/gui/deckeditor/views/VProbabilities.java b/src/main/java/forge/gui/deckeditor/views/VProbabilities.java index a78e903d1b9..f51470a8afa 100644 --- a/src/main/java/forge/gui/deckeditor/views/VProbabilities.java +++ b/src/main/java/forge/gui/deckeditor/views/VProbabilities.java @@ -170,7 +170,7 @@ public enum VProbabilities implements IVDoc { final ACEditorBase ed = (ACEditorBase) CDeckEditorUI.SINGLETON_INSTANCE.getCurrentEditorController(); - final List cards = (List) ed.getDeckManager().getItems().toFlatList(); + final List cards = (List) ed.getDeckManager().getPool().toFlatList(); final String name1 = lbl.getText(); String name2; diff --git a/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java b/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java index 0338d28bf31..9fc040e0bf9 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java @@ -32,6 +32,7 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; +import forge.gui.toolbox.FLabel; import forge.gui.toolbox.itemmanager.table.ItemTable; import forge.gui.toolbox.itemmanager.table.ItemTableModel; import forge.item.InventoryItem; @@ -48,12 +49,13 @@ import forge.util.Aggregates; */ public final class ItemManager { private ItemPool pool; - private ItemManagerModel model; + private final ItemManagerModel model; private final ItemTable table; private Predicate filter = null; private boolean wantUnique = false; private boolean alwaysNonUnique = false; private final Class genericType; + private Map statLabels; /** * @@ -94,7 +96,17 @@ public final class ItemManager { this.genericType = genericType0; this.wantUnique = wantUnique0; this.model = new ItemManagerModel(this, genericType0); - this.table = new ItemTable(this.model); + this.table = new ItemTable(this, this.model); + } + + /** + * + * Gets the item pool. + * + * @return ItemPoolView + */ + public ItemPoolView getPool() { + return this.pool; } /** @@ -174,23 +186,6 @@ public final class ItemManager { return this.table.getSelectedItems(); } - private boolean isUnfiltered() { - return this.filter == null; - } - - /** - * - * setFilter. - * - * @param filterToSet - */ - public void setFilter(final Predicate filterToSet) { - this.filter = filterToSet; - if (null != pool) { - this.updateView(true); - } - } - /** * * addItem. @@ -203,11 +198,17 @@ public final class ItemManager { this.pool.add(item, qty); if (this.isUnfiltered()) { this.model.addItem(item, qty); - } + } this.updateView(false); this.table.fixSelection(n); } + /** + * + * addItems. + * + * @param itemsToAdd + */ public void addItems(Iterable> itemsToAdd) { final int n = this.table.getSelectedRow(); for (Map.Entry item : itemsToAdd) { @@ -220,6 +221,12 @@ public final class ItemManager { this.table.fixSelection(n); } + /** + * + * addItems. + * + * @param itemsToAdd + */ public void addItems(Collection itemsToAdd) { final int n = this.table.getSelectedRow(); for (T item : itemsToAdd) { @@ -237,7 +244,7 @@ public final class ItemManager { * removeItem. * * @param item - * an InventoryItem + * @param qty */ public void removeItem(final T item, int qty) { final int n = this.table.getSelectedRow(); @@ -249,6 +256,12 @@ public final class ItemManager { this.table.fixSelection(n); } + /** + * + * removeItems. + * + * @param itemsToRemove + */ public void removeItems(List> itemsToRemove) { final int n = this.table.getSelectedRow(); for (Map.Entry item : itemsToRemove) { @@ -261,12 +274,86 @@ public final class ItemManager { this.table.fixSelection(n); } + /** + * + * getItemCount. + * + * @param item + */ public int getItemCount(final T item) { - return model.isInfinite() ? Integer.MAX_VALUE : this.pool.count(item); + return this.model.isInfinite() ? Integer.MAX_VALUE : this.pool.count(item); } + /** + * Gets all filtered items in the model. + * + * @return ItemPoolView + */ + public ItemPoolView getFilteredItems() { + return this.model.getItems(); + } + + /** + * + * getStatLabels. + * + */ + public Map getStatLabels() { + return this.statLabels; + } + + /** + * + * getStatLabel. + * + * @param s + */ + public void setStatLabels(Map statLabels0) { + this.statLabels = statLabels0; + } + + /** + * + * getStatLabel. + * + * @param s + */ + public FLabel getStatLabel(SItemManagerUtil.StatTypes s) { + if (this.statLabels != null) { + return this.statLabels.get(s); + } + return null; + } + + /** + * + * getFilter. + * + */ public Predicate getFilter() { - return filter; + return this.filter; + } + + /** + * + * isUnfiltered. + * + */ + private boolean isUnfiltered() { + return this.filter == null; + } + + /** + * + * setFilter. + * + * @param filterToSet + */ + public void setFilter(final Predicate filterToSet) { + this.filter = filterToSet; + if (this.pool != null) { + this.updateView(true); + } } /** @@ -274,7 +361,6 @@ public final class ItemManager { * updateView. * * @param bForceFilter - * a boolean */ public void updateView(final boolean bForceFilter) { final boolean useFilter = (bForceFilter && (this.filter != null)) || !isUnfiltered(); @@ -300,16 +386,6 @@ public final class ItemManager { this.table.getTableModel().refreshSort(); } - /** - * - * getItems. - * - * @return ItemPoolView - */ - public ItemPoolView getItems() { - return this.pool; - } - /** * * getWantUnique. @@ -350,18 +426,30 @@ public final class ItemManager { this.alwaysNonUnique = nonUniqueOnly; } + /** + * + * setWantElasticColumns. + * + * @param value + */ public void setWantElasticColumns(boolean value) { - table.setAutoResizeMode(value ? JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS : JTable.AUTO_RESIZE_NEXT_COLUMN); + this.table.setAutoResizeMode(value ? JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS : JTable.AUTO_RESIZE_NEXT_COLUMN); } + /** + * + * selectAndScrollTo. + * + * @param rowIdx + */ public void selectAndScrollTo(int rowIdx) { - if (!(table.getParent() instanceof JViewport)) { + if (!(this.table.getParent() instanceof JViewport)) { return; } - JViewport viewport = (JViewport)table.getParent(); + JViewport viewport = (JViewport)this.table.getParent(); // compute where we're going and where we are - Rectangle targetRect = table.getCellRect(rowIdx, 0, true); + Rectangle targetRect = this.table.getCellRect(rowIdx, 0, true); Rectangle curViewRect = viewport.getViewRect(); // if the target cell is not visible, attempt to jump to a location where it is @@ -374,15 +462,20 @@ public final class ItemManager { targetRect.setLocation(targetRect.x, targetRect.y - (targetRect.height * 3)); } - table.scrollRectToVisible(targetRect); - table.setRowSelectionInterval(rowIdx, rowIdx); + this.table.scrollRectToVisible(targetRect); + this.table.setRowSelectionInterval(rowIdx, rowIdx); } + /** + * + * focus. + * + */ public void focus() { - table.requestFocusInWindow(); + this.table.requestFocusInWindow(); - if (table.getRowCount() > 0) { - table.changeSelection(0, 0, false, false); + if (this.table.getRowCount() > 0) { + this.table.changeSelection(0, 0, false, false); } } } diff --git a/src/main/java/forge/gui/toolbox/itemmanager/ItemManagerModel.java b/src/main/java/forge/gui/toolbox/itemmanager/ItemManagerModel.java index c8506acfaa7..efe91c4e535 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/ItemManagerModel.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/ItemManagerModel.java @@ -35,7 +35,7 @@ import forge.item.ItemPoolView; * @version $Id: ItemManagerModel.java 19857 2013-02-24 08:49:52Z Max mtg $ */ public final class ItemManagerModel { - private final ItemManager ItemManager; + private final ItemManager itemManager; private final ItemPool data; private boolean infiniteSupply; @@ -45,8 +45,8 @@ public final class ItemManagerModel { * @param ItemManager0 * @param genericType0 */ - public ItemManagerModel(final ItemManager ItemManager0, final Class genericType0) { - this.ItemManager = ItemManager0; + public ItemManagerModel(final ItemManager itemManager0, final Class genericType0) { + this.itemManager = itemManager0; this.data = new ItemPool(genericType0); } @@ -98,7 +98,7 @@ public final class ItemManagerModel { final boolean wasThere = this.data.count(item0) > 0; if (wasThere) { this.data.remove(item0, qty); - this.ItemManager.getTableModel().fireTableDataChanged(); + this.itemManager.getTableModel().fireTableDataChanged(); } } @@ -109,7 +109,7 @@ public final class ItemManagerModel { */ public void addItem(final T item0, int qty) { this.data.add(item0, qty); - this.ItemManager.getTableModel().fireTableDataChanged(); + this.itemManager.getTableModel().fireTableDataChanged(); } /** @@ -119,7 +119,7 @@ public final class ItemManagerModel { */ public void addItems(final Iterable> items0) { this.data.addAll(items0); - this.ItemManager.getTableModel().fireTableDataChanged(); + this.itemManager.getTableModel().fireTableDataChanged(); } /** * Sets whether this table's pool of items is in infinite supply. If false, items in the diff --git a/src/main/java/forge/gui/toolbox/itemmanager/SItemManagerUtil.java b/src/main/java/forge/gui/toolbox/itemmanager/SItemManagerUtil.java index 46ad14cfad1..17d98967eb1 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/SItemManagerUtil.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/SItemManagerUtil.java @@ -11,7 +11,6 @@ import forge.card.CardRulesPredicates; import forge.gui.deckeditor.views.VCardCatalog; import forge.gui.deckeditor.views.VCurrentDeck; import forge.gui.toolbox.FSkin; -import forge.gui.toolbox.itemmanager.table.ITableContainer; import forge.item.PaperCard; import forge.item.InventoryItem; import forge.item.ItemPoolView; @@ -85,22 +84,22 @@ public final class SItemManagerUtil { * setStats. * * @param   the generic type - * @param items   ItemPoolView - * @param view   {@link forge.gui.toolbox.itemmanager.table.ITableContainer} + * @param itemManager   {@link forge.gui.toolbox.itemmanager.ItemManager} */ - public static void setStats(final ItemPoolView items, final ITableContainer view) { + public static void setStats(final ItemManager itemManager) { + final ItemPoolView items = itemManager.getFilteredItems(); for (StatTypes s : StatTypes.values()) { switch (s) { case TOTAL: - view.getStatLabel(s).setText(String.valueOf( + itemManager.getStatLabel(s).setText(String.valueOf( Aggregates.sum(Iterables.filter(items, Predicates.compose(totalPred, items.FN_GET_KEY)), items.FN_GET_COUNT))); break; case PACK: - view.getStatLabel(s).setText(String.valueOf( + itemManager.getStatLabel(s).setText(String.valueOf( Aggregates.sum(Iterables.filter(items, Predicates.compose(packPred, items.FN_GET_KEY)), items.FN_GET_COUNT))); break; default: - view.getStatLabel(s).setText(String.valueOf(items.countAll(Predicates.compose(s.predicate, PaperCard.FN_GET_RULES), PaperCard.class))); + itemManager.getStatLabel(s).setText(String.valueOf(items.countAll(Predicates.compose(s.predicate, PaperCard.FN_GET_RULES), PaperCard.class))); } } } diff --git a/src/main/java/forge/gui/toolbox/itemmanager/table/ITableContainer.java b/src/main/java/forge/gui/toolbox/itemmanager/table/ITableContainer.java deleted file mode 100644 index 3675436ae78..00000000000 --- a/src/main/java/forge/gui/toolbox/itemmanager/table/ITableContainer.java +++ /dev/null @@ -1,22 +0,0 @@ -package forge.gui.toolbox.itemmanager.table; - -import forge.gui.toolbox.FLabel; -import forge.gui.toolbox.itemmanager.SItemManagerUtil; - -/** - * Dictates methods needed for a class to act as a container for - * a EditorTableView deck editing component. - * - *

(I at beginning of class name denotes an interface.) - * - */ -public interface ITableContainer { - /** - * Sets the table used for displaying cards in this - * deck editor container. - * - * @param tbl0   {@link forge.gui.toolbox.itemmanager.ItemManager} - */ - - FLabel getStatLabel(SItemManagerUtil.StatTypes s); - } diff --git a/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTable.java b/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTable.java index 7ebdda46f59..98fce8ddbf9 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTable.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTable.java @@ -39,6 +39,7 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.itemmanager.ItemManager; import forge.gui.toolbox.itemmanager.ItemManagerModel; import forge.gui.toolbox.itemmanager.SItemManagerUtil; import forge.item.InventoryItem; @@ -52,7 +53,8 @@ import forge.item.InventoryItem; */ @SuppressWarnings("serial") public final class ItemTable extends JTable { - private ItemTableModel tableModel; + private final ItemManager itemManager; + private final ItemTableModel tableModel; public ItemTableModel getTableModel() { return this.tableModel; @@ -61,11 +63,12 @@ public final class ItemTable extends JTable { /** * ItemTable Constructor. * - * @param forceUnique whether this table should display only one item with the same name - * @param type0 the class of item that this table will contain + * @param itemManager0 + * @param model0 */ - public ItemTable(ItemManagerModel model) { - this.tableModel = new ItemTableModel(this, model); + public ItemTable(ItemManager itemManager0, ItemManagerModel model0) { + this.itemManager = itemManager0; + this.tableModel = new ItemTableModel(this, model0); // use different selection highlight colors for focused vs. unfocused tables setSelectionBackground(FSkin.getColor(FSkin.Colors.CLR_INACTIVE)); @@ -102,13 +105,12 @@ public final class ItemTable extends JTable { /** * Applies a EditorTableModel and a model listener to this instance's JTable. * - * @param view0   the {@link forge.gui.itemItemManager.ITableCOntainer} - * @param cols0   List> of additional columns for this + * @param cols   List> of additional columns for this */ - public void setup(final ITableContainer view0, final List> cols0) { + public void setup(final List> cols) { final DefaultTableColumnModel colmodel = new DefaultTableColumnModel(); - for (TableColumnInfo item : cols0) { + for (TableColumnInfo item : cols) { item.setModelIndex(colmodel.getColumnCount()); if (item.isShowing()) { colmodel.addColumn(item); } } @@ -126,7 +128,7 @@ public final class ItemTable extends JTable { this.tableModel.addTableModelListener(new TableModelListener() { @Override public void tableChanged(final TableModelEvent ev) { - SItemManagerUtil.setStats(ItemTable.this.tableModel.getItems(), view0); + SItemManagerUtil.setStats(ItemTable.this.itemManager); } }); } diff --git a/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTableModel.java b/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTableModel.java index 158a4356892..d4719ec8b93 100644 --- a/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTableModel.java +++ b/src/main/java/forge/gui/toolbox/itemmanager/table/ItemTableModel.java @@ -46,7 +46,6 @@ import forge.gui.toolbox.itemmanager.SItemManagerIO; import forge.gui.toolbox.itemmanager.table.SColumnUtil.ColumnName; import forge.gui.toolbox.itemmanager.table.SColumnUtil.SortState; import forge.item.InventoryItem; -import forge.item.ItemPoolView; /** *

@@ -111,15 +110,6 @@ public final class ItemTableModel extends AbstractTable } } } - - /** - * Gets all items in the model. - * - * @return ItemPoolView - */ - public ItemPoolView getItems() { - return this.model.getItems(); - } /** * Row to card.