ColorSetRenderer for deck list

This commit is contained in:
Maxmtg
2014-01-13 18:46:40 +00:00
parent 42cf0def0f
commit 91be7b5a32
4 changed files with 89 additions and 8 deletions

1
.gitattributes vendored
View File

@@ -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/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/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/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/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/IntegerRenderer.java -text
forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemCellRenderer.java -text forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ItemCellRenderer.java -text

View File

@@ -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; }
}
}

View File

@@ -384,7 +384,7 @@ public class ItemColumn extends TableColumn {
return toDeck(from.getKey()); 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<Entry<InventoryItem, Integer>, Comparable<?>>() { new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override @Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) { public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
@@ -416,7 +416,7 @@ public class ItemColumn extends TableColumn {
if (deck == null) { if (deck == null) {
return 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(), DECK_MAIN("Main", "Main Deck", 35, 35, 35, SortState.ASC, new IntegerRenderer(),

View File

@@ -52,18 +52,15 @@ public class ManaCostRenderer extends ItemCellRenderer {
@Override @Override
public final Component getTableCellRendererComponent(final JTable table, final Object value, public final Component getTableCellRendererComponent(final JTable table, final Object value,
final boolean isSelected, final boolean hasFocus, final int row, final int column) { final boolean isSelected, final boolean hasFocus, final int row, final int column) {
this.v2 = null;
if (value instanceof CardRules) { if (value instanceof CardRules) {
CardRules v = (CardRules) value; CardRules v = (CardRules) value;
this.v1 = v.getMainPart().getManaCost(); this.v1 = v.getMainPart().getManaCost();
this.v2 = v.getSplitType() == CardSplitType.Split ? v.getOtherPart().getManaCost() : null; 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.v1 = (ManaCost) value;
this.v2 = null; } else {
}
else {
this.v1 = ManaCost.NO_COST; this.v1 = ManaCost.NO_COST;
this.v2 = null;
} }
this.setToolTipText(v2 == null ? v1.toString() : v1.toString() + " // " + v2.toString()); this.setToolTipText(v2 == null ? v1.toString() : v1.toString() + " // " + v2.toString());
return super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column); return super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column);