diff --git a/.gitattributes b/.gitattributes index 5f851c8ff84..8bef430a289 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15509,6 +15509,7 @@ forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/TextSearchFilter.j forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/ToggleButtonsFilter.java -text forge-gui/src/main/java/forge/gui/toolbox/itemmanager/filters/ValueRangeFilter.java -text forge-gui/src/main/java/forge/gui/toolbox/itemmanager/package-info.java -text +forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColorSetRenderer.java -text forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/DeckQuantityRenderer.java -text forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/IntegerRenderer.java -text forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemCellRenderer.java -text diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColorSetRenderer.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColorSetRenderer.java new file mode 100644 index 00000000000..1a7f208790f --- /dev/null +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColorSetRenderer.java @@ -0,0 +1,83 @@ +package forge.gui.toolbox.itemmanager.views; + +import java.awt.Component; +import java.awt.Graphics; + +import javax.swing.JTable; + +import forge.card.ColorSet; +import forge.card.mana.ManaCostShard; +import forge.gui.toolbox.CardFaceSymbols; + +public class ColorSetRenderer extends ItemCellRenderer { + private static final long serialVersionUID = 1770527102334163549L; + + private static final int elemtWidth = 13; + private static final int elemtGap = 0; + private static final int padding0 = 2; + + + private ColorSet cs; + + /* + * (non-Javadoc) + * + * @see + * javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent + * (javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) + */ + @Override + public final Component getTableCellRendererComponent(final JTable table, final Object value, + final boolean isSelected, final boolean hasFocus, final int row, final int column) { + + if (value instanceof ColorSet) { + this.cs = (ColorSet) value; + } else { + this.cs = ColorSet.getNullColor(); + } + this.setToolTipText(cs.toString()); + return super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column); + } + + /* + * (non-Javadoc) + * + * @see javax.swing.JComponent#paint(java.awt.Graphics) + */ + @Override + public final void paint(final Graphics g) { + super.paint(g); + + final int cellWidth = this.getWidth(); + drawCost(g, cs, padding0, cellWidth); + + } + + /** + * TODO: Write javadoc for this method. + * @param g + * @param padding + * @param cellWidth + */ + private void drawCost(final Graphics g, ColorSet value, final int padding, final int cellWidth) { + int x = padding; + int y = padding0; + + final int cntGlyphs = value.countColors(); + final int offsetIfNoSpace = cntGlyphs > 1 ? (cellWidth - padding - elemtWidth) / (cntGlyphs - 1) + : elemtWidth + elemtGap; + final int dx = Math.min(elemtWidth + elemtGap, offsetIfNoSpace); + + // Display colorless mana before colored mana + if (cntGlyphs == 0) { + CardFaceSymbols.drawSymbol(ManaCostShard.X.getImageKey(), g, x, y); + x += dx; + } + + if( value.hasWhite() ) { CardFaceSymbols.drawSymbol(ManaCostShard.WHITE.getImageKey(), g, x, y); x += dx; } + if( value.hasBlue() ) { CardFaceSymbols.drawSymbol(ManaCostShard.BLUE.getImageKey(), g, x, y); x += dx; } + if( value.hasBlack() ) { CardFaceSymbols.drawSymbol(ManaCostShard.BLACK.getImageKey(), g, x, y); x += dx; } + if( value.hasRed() ) { CardFaceSymbols.drawSymbol(ManaCostShard.RED.getImageKey(), g, x, y); x += dx; } + if( value.hasGreen() ) { CardFaceSymbols.drawSymbol(ManaCostShard.GREEN.getImageKey(), g, x, y); x += dx; } + } +} \ No newline at end of file diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemColumn.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemColumn.java index 4c54a3b2580..87a75e50c75 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemColumn.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemColumn.java @@ -384,7 +384,7 @@ public class ItemColumn extends TableColumn { return toDeck(from.getKey()); } }), - DECK_COLOR("Color", "Color", 70, 70, 70, SortState.ASC, new ManaCostRenderer(), + DECK_COLOR("Color", "Color", 70, 70, 70, SortState.ASC, new ColorSetRenderer(), new Function, Comparable>() { @Override public Comparable apply(final Entry from) { @@ -416,7 +416,7 @@ public class ItemColumn extends TableColumn { if (deck == null) { return null; } - return Singletons.getModel().getFormats().getFormatOfDeck(deck); + return Singletons.getModel().getFormats().getFormatOfDeck(deck).getName(); } }), DECK_MAIN("Main", "Main Deck", 35, 35, 35, SortState.ASC, new IntegerRenderer(), diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ManaCostRenderer.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ManaCostRenderer.java index 61649f8d15e..12e7a7e91e4 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ManaCostRenderer.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ManaCostRenderer.java @@ -52,18 +52,15 @@ public class ManaCostRenderer extends ItemCellRenderer { @Override public final Component getTableCellRendererComponent(final JTable table, final Object value, final boolean isSelected, final boolean hasFocus, final int row, final int column) { + this.v2 = null; if (value instanceof CardRules) { CardRules v = (CardRules) value; this.v1 = v.getMainPart().getManaCost(); this.v2 = v.getSplitType() == CardSplitType.Split ? v.getOtherPart().getManaCost() : null; - } - else if (value instanceof ManaCost) { + } else if (value instanceof ManaCost) { this.v1 = (ManaCost) value; - this.v2 = null; - } - else { + } else { this.v1 = ManaCost.NO_COST; - this.v2 = null; } this.setToolTipText(v2 == null ? v1.toString() : v1.toString() + " // " + v2.toString()); return super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column);