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/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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}),
|
||||
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(),
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user