mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
ColorSetRenderer for deck list
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -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
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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(),
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user