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/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

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());
}
}),
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<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> 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(),

View File

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