Moving hard-coded text to res files

This commit is contained in:
churrufli
2019-06-20 13:35:21 +02:00
parent 59d259e764
commit 181aa0f2ab
12 changed files with 690 additions and 515 deletions

View File

@@ -65,7 +65,8 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
chooser.populate(); chooser.populate();
final Dimension parentSize = JOptionPane.getRootFrame().getSize(); final Dimension parentSize = JOptionPane.getRootFrame().getSize();
chooser.setMinimumSize(new Dimension((int)(parentSize.getWidth() / 2), (int)parentSize.getHeight() - 200)); chooser.setMinimumSize(new Dimension((int)(parentSize.getWidth() / 2), (int)parentSize.getHeight() - 200));
final FOptionPane optionPane = new FOptionPane(null, title, null, chooser, ImmutableList.of("OK", "Cancel"), 0); final Localizer localizer = Localizer.getInstance();
final FOptionPane optionPane = new FOptionPane(null, title, null, chooser, ImmutableList.of(localizer.getMessage("lblOk"), localizer.getMessage("lblCancel")), 0);
optionPane.setDefaultFocus(chooser); optionPane.setDefaultFocus(chooser);
chooser.lstDecks.setItemActivateCommand(new UiCommand() { chooser.lstDecks.setItemActivateCommand(new UiCommand() {
@Override @Override
@@ -152,7 +153,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
lstDecks.setPool(ColorDeckGenerator.getColorDecks(lstDecks, formatFilter, isAi)); lstDecks.setPool(ColorDeckGenerator.getColorDecks(lstDecks, formatFilter, isAi));
lstDecks.setup(ItemManagerConfig.STRING_ONLY); lstDecks.setup(ItemManagerConfig.STRING_ONLY);
btnRandom.setText("Random Colors"); btnRandom.setText(localizer.getMessage("lblRandomColors"));
btnRandom.setCommand(new UiCommand() { btnRandom.setCommand(new UiCommand() {
@Override @Override
public void run() { public void run() {

View File

@@ -15,6 +15,7 @@ import javax.swing.event.ListSelectionListener;
import forge.deck.Deck; import forge.deck.Deck;
import forge.screens.deckeditor.controllers.CEditorConstructed; import forge.screens.deckeditor.controllers.CEditorConstructed;
import forge.screens.home.quest.DialogChooseFormats; import forge.screens.home.quest.DialogChooseFormats;
import forge.util.Localizer;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import forge.Singletons; import forge.Singletons;
@@ -200,6 +201,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
} }
@Override @Override
protected void buildAddFilterMenu(final JMenu menu) { protected void buildAddFilterMenu(final JMenu menu) {
GuiUtils.addSeparator(menu); //separate from current search item GuiUtils.addSeparator(menu); //separate from current search item
@@ -210,7 +212,9 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
merge(hierarchy, buildHierarchy(path)); merge(hierarchy, buildHierarchy(path));
} }
} }
final JMenu folder = GuiUtils.createMenu("Folder");
final Localizer localizer = Localizer.getInstance();
final JMenu folder = GuiUtils.createMenu(localizer.getMessage("lblFolder"));
if (hierarchy.size() > 0) { if (hierarchy.size() > 0) {
buildNestedMenu(hierarchy, folder, null); buildNestedMenu(hierarchy, folder, null);
} }
@@ -219,7 +223,8 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
} }
menu.add(folder); menu.add(folder);
final JMenu fmt = GuiUtils.createMenu("Format"); final JMenu fmt = GuiUtils.createMenu(localizer.getMessage("lblFormat"));
for (final GameFormat f : FModel.getFormats().getFilterList()) { for (final GameFormat f : FModel.getFormats().getFilterList()) {
GuiUtils.addMenuItem(fmt, f.getName(), null, new Runnable() { GuiUtils.addMenuItem(fmt, f.getName(), null, new Runnable() {
@Override @Override
@@ -231,7 +236,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
menu.add(fmt); menu.add(fmt);
GuiUtils.addMenuItem(menu, "Formats...", null, new Runnable() { GuiUtils.addMenuItem(menu, localizer.getMessage("lblFormats") + "...", null, new Runnable() {
@Override public void run() { @Override public void run() {
final DeckFormatFilter existingFilter = getFilter(DeckFormatFilter.class); final DeckFormatFilter existingFilter = getFilter(DeckFormatFilter.class);
if (existingFilter != null) { if (existingFilter != null) {
@@ -253,7 +258,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
}); });
GuiUtils.addMenuItem(menu, "Sets...", null, new Runnable() { GuiUtils.addMenuItem(menu, localizer.getMessage("lblSets") + "...", null, new Runnable() {
@Override public void run() { @Override public void run() {
final DeckSetFilter existingFilter = getFilter(DeckSetFilter.class); final DeckSetFilter existingFilter = getFilter(DeckSetFilter.class);
if (existingFilter != null) { if (existingFilter != null) {
@@ -272,7 +277,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
} }
}); });
final JMenu world = GuiUtils.createMenu("Quest world"); final JMenu world = GuiUtils.createMenu(localizer.getMessage("lblQuestWorld"));
for (final QuestWorld w : FModel.getWorlds()) { for (final QuestWorld w : FModel.getWorlds()) {
GuiUtils.addMenuItem(world, w.getName(), null, new Runnable() { GuiUtils.addMenuItem(world, w.getName(), null, new Runnable() {
@Override public void run() { @Override public void run() {
@@ -284,7 +289,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
GuiUtils.addSeparator(menu); GuiUtils.addSeparator(menu);
GuiUtils.addMenuItem(menu, "Colors", null, new Runnable() { GuiUtils.addMenuItem(menu, localizer.getMessage("lblColors"), null, new Runnable() {
@Override @Override
public void run() { public void run() {
addFilter(new DeckColorFilter(DeckManager.this)); addFilter(new DeckColorFilter(DeckManager.this));
@@ -293,7 +298,7 @@ public final class DeckManager extends ItemManager<DeckProxy> implements IHasGam
GuiUtils.addSeparator(menu); GuiUtils.addSeparator(menu);
GuiUtils.addMenuItem(menu, "Advanced...", null, new Runnable() { GuiUtils.addMenuItem(menu, localizer.getMessage("lblAdvanced") + "...", null, new Runnable() {
@Override @Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void run() { public void run() {

View File

@@ -65,6 +65,7 @@ import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn; import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel; import javax.swing.table.TableColumnModel;
import forge.util.Localizer;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import forge.assets.FSkinProp; import forge.assets.FSkinProp;
@@ -108,7 +109,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
private final ItemTable table = new ItemTable(); private final ItemTable table = new ItemTable();
private final ItemTableModel tableModel; private final ItemTableModel tableModel;
final Localizer localizer = Localizer.getInstance();
public ItemTableModel getTableModel() { public ItemTableModel getTableModel() {
return this.tableModel; return this.tableModel;
} }
@@ -176,7 +177,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
getPnlOptions().removeAll(); getPnlOptions().removeAll();
if (config.getShowUniqueCardsOption()) { if (config.getShowUniqueCardsOption()) {
final FCheckBox chkBox = new FCheckBox("Unique Cards Only", this.itemManager.getWantUnique()); final FCheckBox chkBox = new FCheckBox(localizer.getMessage("lblUniqueCardsOnly"), this.itemManager.getWantUnique());
chkBox.setFont(ROW_FONT); chkBox.setFont(ROW_FONT);
chkBox.setToolTipText("Toggle whether to show unique cards only"); chkBox.setToolTipText("Toggle whether to show unique cards only");
chkBox.addChangeListener(new ChangeListener() { chkBox.addChangeListener(new ChangeListener() {

View File

@@ -268,22 +268,22 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
cmb.addMoveAlternateItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard")); cmb.addMoveAlternateItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
break; break;
case Sideboard: case Sideboard:
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to sideboard"); cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltosideboard"));
break; break;
case Commander: case Commander:
cmb.addMoveItems("Set", "as commander"); cmb.addMoveItems(localizer.getMessage("lblSet2"), localizer.getMessage("lblascommander"));
break; break;
case Avatar: case Avatar:
cmb.addMoveItems("Set", "as avatar"); cmb.addMoveItems(localizer.getMessage("lblSet2"), localizer.getMessage("lblasavatar"));
break; break;
case Schemes: case Schemes:
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to scheme deck"); cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoschemedeck"));
break; break;
case Planes: case Planes:
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to planar deck"); cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoplanardeck"));
break; break;
case Conspiracy: case Conspiracy:
cmb.addMoveItems(localizer.getMessage("lblAdd"), "to conspiracy deck"); cmb.addMoveItems(localizer.getMessage("lblAdd"), localizer.getMessage("lbltoconspiracydeck"));
break; break;
} }
} }
@@ -293,7 +293,7 @@ public final class CEditorConstructed extends CDeckEditor<Deck> {
switch (sectionMode) { switch (sectionMode) {
case Main: case Main:
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromdeck")); cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromdeck"));
cmb.addMoveAlternateItems("Move", "to sideboard"); cmb.addMoveAlternateItems(localizer.getMessage("lblMove"), localizer.getMessage("lbltosideboard"));
break; break;
case Sideboard: case Sideboard:
cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromsideboard")); cmb.addMoveItems(localizer.getMessage("lblRemove"), localizer.getMessage("lblfromsideboard"));

View File

@@ -79,7 +79,7 @@ public enum VCurrentDeck implements IVDoc<CCurrentDeck> {
.tooltip(localizer.getMessage("ttImportDeck")) .tooltip(localizer.getMessage("ttImportDeck"))
.opaque(true).hoverable(true).build(); .opaque(true).hoverable(true).build();
private final FTextField txfTitle = new FTextField.Builder().ghostText("[New Deck]").build(); private final FTextField txfTitle = new FTextField.Builder().ghostText("[" + localizer.getMessage("lblNewDeck") +"]").build();
private final JPanel pnlHeader = new JPanel(); private final JPanel pnlHeader = new JPanel();

View File

@@ -720,7 +720,7 @@ public class VLobby implements ILobbyView {
switch (forGameType) { switch (forGameType) {
case Constructed: case Constructed:
decksFrame.add(deckChoosers.get(playerWithFocus), "grow, push"); decksFrame.add(deckChoosers.get(playerWithFocus), "grow, push");
if (deckChoosers.get(playerWithFocus).getSelectedDeckType().toString().contains("Random")) { if (deckChoosers.get(playerWithFocus).getSelectedDeckType().toString().contains(localizer.getMessage("lblRandom"))) {
final String strCheckboxConstraints = "h 30px!, gap 0 20px 0 0"; final String strCheckboxConstraints = "h 30px!, gap 0 20px 0 0";
decksFrame.add(cbSingletons, strCheckboxConstraints); decksFrame.add(cbSingletons, strCheckboxConstraints);
decksFrame.add(cbArtifacts, strCheckboxConstraints); decksFrame.add(cbArtifacts, strCheckboxConstraints);
@@ -894,7 +894,7 @@ public class VLobby implements ILobbyView {
final List<String> usedNames = getPlayerNames(); final List<String> usedNames = getPlayerNames();
do { do {
newName = NameGenerator.getRandomName(gender, type, usedNames); newName = NameGenerator.getRandomName(gender, type, usedNames);
confirmMsg = localizer.getMessage("lblconfirmName").replace("%s","\"" +newName + "\""); confirmMsg = localizer.getMessage("lblconfirmName").replace("%n","\"" +newName + "\"");
} while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true)); } while (!FOptionPane.showConfirmDialog(confirmMsg, title, localizer.getMessage("lblUseThisName"), localizer.getMessage("lblTryAgain"), true));
return newName; return newName;

View File

@@ -27,6 +27,7 @@ import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinColor; import forge.toolbox.FSkin.SkinColor;
import forge.toolbox.FSkin.SkinImage; import forge.toolbox.FSkin.SkinImage;
import forge.toolbox.FSkin.SkinnedLabel; import forge.toolbox.FSkin.SkinnedLabel;
import forge.util.Localizer;
import javax.swing.*; import javax.swing.*;
@@ -39,20 +40,19 @@ import java.awt.event.MouseEvent;
* <br><br><i>(V at beginning of class name denotes a view class.)</i> * <br><br><i>(V at beginning of class name denotes a view class.)</i>
*/ */
public class VDock implements IVDoc<CDock> { public class VDock implements IVDoc<CDock> {
final Localizer localizer = Localizer.getInstance();
// Fields used with interface IVDoc // Fields used with interface IVDoc
private DragCell parentCell; private DragCell parentCell;
private final DragTab tab = new DragTab("Dock"); private final DragTab tab = new DragTab(localizer.getMessage("lblDock"));
// Dock button instances // Dock button instances
private final DockButton btnConcede = new DockButton(FSkin.getIcon(FSkinProp.ICO_CONCEDE), "Concede Game"); private final DockButton btnConcede = new DockButton(FSkin.getIcon(FSkinProp.ICO_CONCEDE), localizer.getMessage("lblConcedeGame"));
private final DockButton btnSettings = new DockButton(FSkin.getIcon(FSkinProp.ICO_SETTINGS), "Game Settings"); private final DockButton btnSettings = new DockButton(FSkin.getIcon(FSkinProp.ICO_SETTINGS), localizer.getMessage("lblGameSettings"));
private final DockButton btnEndTurn = new DockButton(FSkin.getIcon(FSkinProp.ICO_ENDTURN), "End Turn"); private final DockButton btnEndTurn = new DockButton(FSkin.getIcon(FSkinProp.ICO_ENDTURN), localizer.getMessage("lblEndTurn"));
private final DockButton btnViewDeckList = new DockButton(FSkin.getIcon(FSkinProp.ICO_DECKLIST), "View Deck List"); private final DockButton btnViewDeckList = new DockButton(FSkin.getIcon(FSkinProp.ICO_DECKLIST), localizer.getMessage("lblViewDeckList"));
private final DockButton btnRevertLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_REVERTLAYOUT), "Revert Layout"); private final DockButton btnRevertLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_REVERTLAYOUT), localizer.getMessage("lblRevertLayout"));
private final DockButton btnOpenLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_OPENLAYOUT), "Open Layout"); private final DockButton btnOpenLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_OPENLAYOUT), localizer.getMessage("lblOpenLayout"));
private final DockButton btnSaveLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_SAVELAYOUT), "Save Layout"); private final DockButton btnSaveLayout = new DockButton(FSkin.getIcon(FSkinProp.ICO_SAVELAYOUT), localizer.getMessage("lblSaveLayout"));
private final DockButton btnAlphaStrike = new DockButton(FSkin.getIcon(FSkinProp.ICO_ALPHASTRIKE), "Alpha Strike"); private final DockButton btnAlphaStrike = new DockButton(FSkin.getIcon(FSkinProp.ICO_ALPHASTRIKE), localizer.getMessage("lblAlphaStrike"));
private final FLabel btnTargeting = new FLabel.Builder().icon(FSkin.getIcon(FSkinProp.ICO_ARCSOFF)) private final FLabel btnTargeting = new FLabel.Builder().icon(FSkin.getIcon(FSkinProp.ICO_ARCSOFF))
.hoverable(true).iconInBackground(true).iconScaleFactor(1.0).build(); .hoverable(true).iconInBackground(true).iconScaleFactor(1.0).build();

View File

@@ -27,6 +27,7 @@ import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.screens.match.controllers.CPrompt; import forge.screens.match.controllers.CPrompt;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import javax.swing.*; import javax.swing.*;
@@ -46,11 +47,12 @@ public class VPrompt implements IVDoc<CPrompt> {
// Fields used with interface IVDoc // Fields used with interface IVDoc
private DragCell parentCell; private DragCell parentCell;
private final DragTab tab = new DragTab("Prompt"); final Localizer localizer = Localizer.getInstance();
private final DragTab tab = new DragTab(localizer.getMessage("lblPrompt"));
// Various components // Various components
private final FButton btnOK = new FButton("OK"); private final FButton btnOK = new FButton(localizer.getMessage("lblOk"));
private final FButton btnCancel = new FButton("Cancel"); private final FButton btnCancel = new FButton(localizer.getMessage("lblCancel"));
private final FHtmlViewer tarMessage = new FHtmlViewer(); private final FHtmlViewer tarMessage = new FHtmlViewer();
private final FScrollPane messageScroller = new FScrollPane(tarMessage, false, private final FScrollPane messageScroller = new FScrollPane(tarMessage, false,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
@@ -122,7 +124,7 @@ public class VPrompt implements IVDoc<CPrompt> {
container.add(lblGames, "span 2, w 10:100%, h 22px!"); container.add(lblGames, "span 2, w 10:100%, h 22px!");
tarMessage.setFont(FSkin.getRelativeFont(14)); tarMessage.setFont(FSkin.getRelativeFont(14));
} }
lblGames.setText("Game Setup"); lblGames.setText(localizer.getMessage("lblGameSetup"));
container.add(messageScroller, "span 2, w 10:100%, h 0:100%"); container.add(messageScroller, "span 2, w 10:100%, h 0:100%");

View File

@@ -233,6 +233,7 @@ lblUseThisName=Nutzen
lblTryAgain=Neu lblTryAgain=Neu
lblAddAPlayer=Spieler hinzufügen lblAddAPlayer=Spieler hinzufügen
lblVariants=Varianten lblVariants=Varianten
lblRandom=Random
#VSubmenuConstructed.java #VSubmenuConstructed.java
lblConstructedMode=Constructed-Modus lblConstructedMode=Constructed-Modus
lblConstructed=Constructed lblConstructed=Constructed
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Erstelle neues Sealed Deck
#FDeckChooser.java #FDeckChooser.java
lblViewDeck=Zeige Deck lblViewDeck=Zeige Deck
lblRandomDeck=Zufälliges Deck lblRandomDeck=Zufälliges Deck
lblRandomColors=Random Colors
#GameType.java #GameType.java
lblSealed=Sealed lblSealed=Sealed
lblDraft=Draft lblDraft=Draft
@@ -734,6 +736,9 @@ lbl4starcards=4 star cards
lbl5starcards=5 star cards lbl5starcards=5 star cards
lblXcopiesof=X copies of lblXcopiesof=X copies of
lblcopiesof=copies of lblcopiesof=copies of
#ItemListView.java
lblUniqueCardsOnly=Unique Cards Only
ttUniqueCardsOnly=Toggle whether to show unique cards only
#ACEditorBase.java #ACEditorBase.java
lblAddcard=Add card lblAddcard=Add card
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar) ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
@@ -766,7 +771,7 @@ lblCollapseallgroups=Collapse all groups
lblGroupby=group by lblGroupby=group by
lblPileby=pile by lblPileby=pile by
lblColumns=Columns lblColumns=Columns
#CEditorVariant.java #CEditorVariant.java, CEditorConstructed.java
lblCatalog=Catalog lblCatalog=Catalog
lblAdd=Add lblAdd=Add
lbltodeck=to deck lbltodeck=to deck
@@ -778,10 +783,22 @@ lblasavatar=as avatar
lblfromschemedeck=from scheme deck lblfromschemedeck=from scheme deck
lblfromplanardeck=from planar deck lblfromplanardeck=from planar deck
lblfromconspiracydeck=from conspiracy deck lblfromconspiracydeck=from conspiracy deck
lbltoschemedeck=to scheme deck
lbltoplanardeck=to planar deck
lbltoconspiracydeck=to conspiracy deck
lblMove=Move
#VDock.java
lblDock=Dock
lblViewDeckList=View DeckList
lblRevertLayout=Revert Layout
lblOpenLayout=OpenLayout
lblSaveLayout=Save Layout
#GroupDef.java #GroupDef.java
lblColor=Color lblColor=Color
lblColorIdentity=Color Identity lblColorIdentity=Color Identity
lblSet=Set lblSet=Set
lblSet2=Set
#Set word has different meanings in other languages
lblDefault=Default lblDefault=Default
lblType=Type lblType=Type
lblPlaneswalkerDeckSort=Planeswalker Deck Sort lblPlaneswalkerDeckSort=Planeswalker Deck Sort
@@ -823,3 +840,38 @@ ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
#DeckCotroller.java #DeckCotroller.java
lblCurrentDeck2=Current Deck lblCurrentDeck2=Current Deck
lblUntitled=Untitled lblUntitled=Untitled
#VPrompt.java
lblPrompt=Prompt
lblGameSetup=Game Setup
#ColumnDef.java
lblAIStatus=AI Status
lblCMC=CMC
ttCMC=CMC
lblCN=CN
ttCN=Collector Number Order
ttColor=Color
lblCost=Cost
ttCost=Cost
lblDecks=Decks
lblDeleteEdit=Delete/Edit
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
ttFavorite=Favorite
lblFolder=Folder
ttFormats=Formats deck is legal in
lblMain=Main
ttMain=MainDeck
lblQty=Qty
lblQuantity=Quantity
lblSide=Side
lblSideboard=Sideboard
lblNew=New
lblOwned=Owned
lblPower=Power
ttPower=Power
lblPrice=Price
ttPrice=Price
lblRanking=Ranking
lblDraftRanking=Draft Ranking
lblToughness=Toughness
ttToughness=Toughness
ttType=Type

View File

@@ -233,6 +233,7 @@ lblUseThisName=Use this name
lblTryAgain=Try Again lblTryAgain=Try Again
lblAddAPlayer=Add a Player lblAddAPlayer=Add a Player
lblVariants=Variants lblVariants=Variants
lblRandom=Random
#VSubmenuConstructed.java #VSubmenuConstructed.java
lblConstructedMode=Constructed Mode lblConstructedMode=Constructed Mode
lblConstructed=Constructed lblConstructed=Constructed
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Build New Sealed Deck
#FDeckChooser.java #FDeckChooser.java
lblViewDeck=View Deck lblViewDeck=View Deck
lblRandomDeck=Random Deck lblRandomDeck=Random Deck
lblRandomColors=Random Colors
#GameType.java #GameType.java
lblSealed=Sealed lblSealed=Sealed
lblDraft=Draft lblDraft=Draft
@@ -734,6 +736,9 @@ lbl4starcards=4 star cards
lbl5starcards=5 star cards lbl5starcards=5 star cards
lblXcopiesof=X copies of lblXcopiesof=X copies of
lblcopiesof=copies of lblcopiesof=copies of
#ItemListView.java
lblUniqueCardsOnly=Unique Cards Only
ttUniqueCardsOnly=Toggle whether to show unique cards only
#ACEditorBase.java #ACEditorBase.java
lblAddcard=Add card lblAddcard=Add card
ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar) ttAddcard=Add selected card to current deck (or double click the row or hit the spacebar)
@@ -766,7 +771,7 @@ lblCollapseallgroups=Collapse all groups
lblGroupby=group by lblGroupby=group by
lblPileby=pile by lblPileby=pile by
lblColumns=Columns lblColumns=Columns
#CEditorVariant.java #CEditorVariant.java, CEditorConstructed.java
lblCatalog=Catalog lblCatalog=Catalog
lblAdd=Add lblAdd=Add
lbltodeck=to deck lbltodeck=to deck
@@ -778,10 +783,22 @@ lblasavatar=as avatar
lblfromschemedeck=from scheme deck lblfromschemedeck=from scheme deck
lblfromplanardeck=from planar deck lblfromplanardeck=from planar deck
lblfromconspiracydeck=from conspiracy deck lblfromconspiracydeck=from conspiracy deck
lbltoschemedeck=to scheme deck
lbltoplanardeck=to planar deck
lbltoconspiracydeck=to conspiracy deck
lblMove=Move
#VDock.java
lblDock=Dock
lblViewDeckList=View DeckList
lblRevertLayout=Revert Layout
lblOpenLayout=Open Layout
lblSaveLayout=Save Layout
#GroupDef.java #GroupDef.java
lblColor=Color lblColor=Color
lblColorIdentity=Color Identity lblColorIdentity=Color Identity
lblSet=Set lblSet=Set
lblSet2=Set
#Set word has different meanings in other languages
lblDefault=Default lblDefault=Default
lblType=Type lblType=Type
lblPlaneswalkerDeckSort=Planeswalker Deck Sort lblPlaneswalkerDeckSort=Planeswalker Deck Sort
@@ -823,3 +840,38 @@ ttbtnRandDeck5=Generate 5 color constructed deck in current deck area
#DeckCotroller.java #DeckCotroller.java
lblCurrentDeck2=Current Deck lblCurrentDeck2=Current Deck
lblUntitled=Untitled lblUntitled=Untitled
#VPrompt.java
lblPrompt=Prompt
lblGameSetup=Game Setup
#ColumnDef.java
lblAIStatus=AI Status
lblCMC=CMC
ttCMC=CMC
lblCN=CN
ttCN=Collector Number Order
ttColor=Color
lblCost=Cost
ttCost=Cost
lblDecks=Decks
lblDeleteEdit=Delete/Edit
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
ttFavorite=Favorite
lblFolder=Folder
ttFormats=Formats deck is legal in
lblMain=Main
ttMain=Main Deck
lblQty=Qty
lblQuantity=Quantity
lblSide=Side
lblSideboard=Sideboard
lblNew=New
lblOwned=Owned
lblPower=Power
ttPower=Power
lblPrice=Price
ttPrice=Price
lblRanking=Ranking
lblDraftRanking=Draft Ranking
lblToughness=Toughness
ttToughness=Toughness
ttType=Type

View File

@@ -233,6 +233,7 @@ lblUseThisName=Usar este nombre
lblTryAgain=Probar de nuevo lblTryAgain=Probar de nuevo
lblAddAPlayer=Añadir Jugador lblAddAPlayer=Añadir Jugador
lblVariants=Variantes lblVariants=Variantes
lblRandom=Aleatorio
#VSubmenuConstructed.java #VSubmenuConstructed.java
lblConstructedMode=Modo Construido lblConstructedMode=Modo Construido
lblConstructed=Construido lblConstructed=Construido
@@ -368,6 +369,7 @@ btnBuildNewSealedDeck=Nuevo Mazo Sellado
#FDeckChooser.java #FDeckChooser.java
lblViewDeck=Ver Mazo lblViewDeck=Ver Mazo
lblRandomDeck=Mazo Aleatorio lblRandomDeck=Mazo Aleatorio
lblRandomColors=Colores Aleatorios
#GameType.java #GameType.java
lblSealed=Sellado lblSealed=Sellado
lblDraft=Draft lblDraft=Draft
@@ -641,7 +643,7 @@ lblEasy=Fácil
lblMedium=Medio lblMedium=Medio
lblHard=Difícil lblHard=Difícil
lblExpert=Experto lblExpert=Experto
lblWinsforBooster=Victorias para Booster lblWinsforBooster=Victorias para Sobres
lblWinsforRankIncrease=Victorias por subir de Nivel lblWinsforRankIncrease=Victorias por subir de Nivel
lblWinsforMediumAI=Victoria por IA nivel Medio lblWinsforMediumAI=Victoria por IA nivel Medio
lblWinsforHardAI=Victoria por IA nivel Dificil lblWinsforHardAI=Victoria por IA nivel Dificil
@@ -659,8 +661,8 @@ lblMoreDuelChoices=Más Opciones de Duelo
lblCommon=Común lblCommon=Común
lblUncommon=Infrecuente lblUncommon=Infrecuente
lblRare=Rara lblRare=Rara
lblSpecialBoosters=Boosters Espciales lblSpecialBoosters=Sobres Especiales
ttSpecialBoosters=Permite que en la tienda aparezcan boosters especiales, específicos para cada color, y como recompensas. ttSpecialBoosters=Permite que en la tienda aparezcan sobres especiales, específicos para cada color y como recompensas.
lblMaximumPacks=Pack máximos lblMaximumPacks=Pack máximos
lblMinimumPacks=Pack mínimos lblMinimumPacks=Pack mínimos
lblStartingPacks=Packs de Inicio lblStartingPacks=Packs de Inicio
@@ -734,6 +736,9 @@ lbl4starcards=Cartas 4 estrellas
lbl5starcards=Cartas 5 estrellas lbl5starcards=Cartas 5 estrellas
lblXcopiesof=X copias de lblXcopiesof=X copias de
lblcopiesof=copias de lblcopiesof=copias de
#ItemListView.java
lblUniqueCardsOnly=Solo Cartas Únicas
ttUniqueCardsOnly=Alternar para mostrar solo cartas únicas
#ACEditorBase.java #ACEditorBase.java
lblAddcard=Añadir carta lblAddcard=Añadir carta
ttAddcard=Añade la carta seleccionada al mazo actual (o haz doble clic en la fila o presiona la barra espaciadora) ttAddcard=Añade la carta seleccionada al mazo actual (o haz doble clic en la fila o presiona la barra espaciadora)
@@ -766,7 +771,7 @@ lblCollapseallgroups=Contraer todos los grupos
lblGroupby=agrupar por lblGroupby=agrupar por
lblPileby=apilar por lblPileby=apilar por
lblColumns=Columnas lblColumns=Columnas
#CEditorVariant.java #CEditorVariant.java, CEditorConstructed.java
lblCatalog=Catálogo lblCatalog=Catálogo
lblAdd=Añadir lblAdd=Añadir
lbltodeck=al mazo lbltodeck=al mazo
@@ -778,10 +783,22 @@ lblasavatar=como avatar
lblfromschemedeck=del mazo de escenario lblfromschemedeck=del mazo de escenario
lblfromplanardeck=del mazo planar lblfromplanardeck=del mazo planar
lblfromconspiracydeck=del mazo conspiracy lblfromconspiracydeck=del mazo conspiracy
lbltoschemedeck=al mazo de escenario
lbltoplanardeck=al mazo planar
lbltoconspiracydeck=al mazo conspiracy
lblMove=Mover
#VDock.java
lblDock=Dock
lblViewDeckList=Ver Lista del Mazo
lblRevertLayout=Revertir Disposición de Elementos
lblOpenLayout=Abrir Disposición de Elementos
lblSaveLayout=Salvar Disposición de Elementos
#GroupDef.java #GroupDef.java
lblColor=Color lblColor=Color
lblColorIdentity=Identidad de Color lblColorIdentity=Identidad de Color
lblSet=Edición lblSet=Edición
lblSet2=Establecer
#Set word has different meanings in other languages
lblDefault=por defecto lblDefault=por defecto
lblType=Tipo lblType=Tipo
lblPlaneswalkerDeckSort=por Planewalkers lblPlaneswalkerDeckSort=por Planewalkers
@@ -811,15 +828,50 @@ lblFoil=Foil
lblPersonalRating=Puntuación Personal lblPersonalRating=Puntuación Personal
lblAdvanced=Avanzado lblAdvanced=Avanzado
#VDeckgen.java #VDeckgen.java
lblDeckGeneration=Deck Generation lblDeckGeneration=Generación de Mazos
btnRandCardpool=Random Cardpool btnRandCardpool=Pool de Cartas Aleatorio
ttbtnRandCardpool=Generate random constructed cardpool in current deck area ttbtnRandCardpool=Genera un grupo de cartas para formato construido de manera aleatoria en el área de Mazo Actual
btnRandDeck2=Constructed (2 color) btnRandDeck2=Construido (2 colores)
ttbtnRandDeck2=Generate 2 color constructed deck in current deck area ttbtnRandDeck2=Genera un Mazo Construido de 2 colores en el área de Mazo Actual
btnRandDeck3=Constructed (3 color) btnRandDeck3=Construido (3 colores)
ttbtnRandDeck3=Generate 3 color constructed deck in current deck area ttbtnRandDeck3=Genera un Mazo Construido de 3 colores en el área de Mazo Actual
btnRandDeck5=Constructed (5 color) btnRandDeck5=Construido (5 colores)
ttbtnRandDeck5=Generate 5 color constructed deck in current deck area ttbtnRandDeck5=Genera un Mazo Construido de 5 colores en el área de Mazo Actual
#DeckCotroller.java #DeckCotroller.java
lblCurrentDeck2=Current Deck lblCurrentDeck2=Mazo Actual
lblUntitled=Untitled lblUntitled=Sin Título
#VPrompt.java
lblPrompt=Aviso
lblGameSetup=Configuración del Juego
#ColumnDef.java
lblAIStatus=Estado de la IA
lblCMC=CMC
ttCMC=Coste de Maná Convertido
lblCN=CN
ttCN=Orden de Número de Coleccionista
ttColor=Color
lblCost=Coste
ttCost=Coste
lblDecks=Mazos
lblDeleteEdit=Borrar/Editar
lblSetEdition=Mystery column. We don't know what it does or if that's what it should do.
ttFavorite=Favorite
lblFolder=Carpeta
ttFormats=Formats deck is legal in
lblMain=Principal
ttMain=Mazo Principal
lblQty=Cantidad
lblQuantity=Cantidad
lblSide=Banquillo
lblSideboard=Banquillo
lblNew=Nuevo
lblOwned=Adquirida
lblPower=Fuerza
ttPower=Power
lblPrice=Precio
ttPrice=Price
lblRanking=Ranking
lblDraftRanking=Ranking en el Draft
lblToughness=Resistencia
ttToughness=Toughness
ttType=Type

View File

@@ -30,172 +30,14 @@ import forge.item.PaperCard;
import forge.itemmanager.ItemColumnConfig.SortState; import forge.itemmanager.ItemColumnConfig.SortState;
import forge.limited.DraftRankCache; import forge.limited.DraftRankCache;
import forge.model.FModel; import forge.model.FModel;
import forge.util.Localizer;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.Map.Entry; import java.util.Map.Entry;
public enum ColumnDef { public enum ColumnDef {
/**The column containing the inventory item name.*/ AI("lblAI", "lblAIStatus", 30, true, SortState.ASC,
STRING("", "", 0, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return from.getKey() instanceof Comparable<?> ? (Comparable<?>)from.getKey() : from.getKey().getName();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getKey().toString();
}
}),
/**The name column.*/
NAME("Name", "Name", 180, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toSortableName(from.getKey().getName());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getKey().getName();
}
}),
/**The column for sorting cards in collector order.*/
COLLECTOR_ORDER("CN", "Collector Number Order", 20, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toCollectorPrefix(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return "";
}
}),
/**The type column.*/
TYPE("Type", "Type", 100, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toType(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toType(from.getKey());
}
}),
/**The mana cost column.*/
COST("Cost", "Cost", 70, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toManaCost(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toCardRules(from.getKey());
}
}),
/**The color column.*/
COLOR("Color", "Color", 46, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toColor(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toColor(from.getKey());
}
}),
/**The power column.*/
POWER("Power", "Power", 20, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toPower(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toPower(from.getKey());
}
}),
/**The toughness column.*/
TOUGHNESS("Toughness", "Toughness", 20, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toToughness(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toToughness(from.getKey());
}
}),
/**The converted mana cost column.*/
CMC("CMC", "CMC", 20, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toCMC(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toCMC(from.getKey());
}
}),
/**The rarity column.*/
RARITY("Rarity", "Rarity", 20, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toRarity(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toRarity(from.getKey());
}
}),
/**The set code column.*/
SET("Set", "Set", 38, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
InventoryItem i = from.getKey();
return i instanceof InventoryItemFromSet ? FModel.getMagicDb().getEditions()
.get(((InventoryItemFromSet) i).getEdition()) : CardEdition.UNKNOWN;
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
InventoryItem i = from.getKey();
return i instanceof InventoryItemFromSet ? ((InventoryItemFromSet) i).getEdition() : "n/a";
}
}),
/**The AI compatibility flag column*/
AI("AI", "AI Status", 30, true, SortState.ASC,
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) {
@@ -216,81 +58,111 @@ public enum ColumnDef {
return ai.getRemAIDecks() ? (ai.getRemRandomDecks() ? "AI ?" : "AI") return ai.getRemAIDecks() ? (ai.getRemRandomDecks() ? "AI ?" : "AI")
: (ai.getRemRandomDecks() ? "?" : ""); : (ai.getRemRandomDecks() ? "?" : "");
} }
}), })/**The AI compatibility flag column*/
/**The Draft ranking column.*/ ,
RANKING("Ranking", "Draft Ranking", 50, true, SortState.ASC, CMC("lblCMC", "ttCMC", 20, true, SortState.ASC,
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) {
return toRanking(from.getKey(), false); return toCMC(from.getKey());
} }
}, },
new Function<Entry<? extends InventoryItem, Integer>, Object>() { new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override @Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toRanking(from.getKey(), true); return toCMC(from.getKey());
} }
}), })/**The converted mana cost column.*/
/**The quantity column.*/ ,
QUANTITY("Qty", "Quantity", 25, true, SortState.ASC,
COLLECTOR_ORDER("lblCN", "ttCN", 20, false, SortState.ASC,
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) {
return from.getValue(); return toCollectorPrefix(from.getKey());
} }
}, },
new Function<Entry<? extends InventoryItem, Integer>, Object>() { new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override @Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getValue(); return "";
} }
}), })/**The column for sorting cards in collector order.*/
/**The quantity in deck column.*/ ,
DECK_QUANTITY("Quantity", "Quantity", 50, true, SortState.ASC, COLOR("lblColor", "ttColor", 46, true, SortState.ASC,
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) {
return from.getValue(); return toColor(from.getKey());
} }
}, },
new Function<Entry<? extends InventoryItem, Integer>, Object>() { new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override @Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getValue(); return toColor(from.getKey());
} }
}), })/**The color column.*/
/**The new inventory flag column.*/ ,
NEW("New", "New", 30, true, SortState.DESC, COST("lblCost", "ttCost", 70, true, SortState.ASC,
null, null), //functions will be set later
/**The price column.*/
PRICE("Price", "Price", 35, true, SortState.DESC,
null, null),
/**The quantity owned column.*/
OWNED("Owned", "Owned", 20, true, SortState.ASC,
null, null),
/**The deck name column.*/
DECKS("Decks", "Decks", 20, true, SortState.ASC,
null, null),
/**The favorite flag column.*/
FAVORITE("", "Favorite", 18, true, SortState.DESC,
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) {
IPaperCard card = toCard(from.getKey()); return toManaCost(from.getKey());
if (card == null) {
return -1;
}
return CardPreferences.getPrefs(card).getStarCount();
} }
}, },
new Function<Entry<? extends InventoryItem, Integer>, Object>() { new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override @Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toCard(from.getKey()); return toCardRules(from.getKey());
} }
}), })/**The mana cost column.*/
/**The favorite deck flag column.*/ ,
DECK_FAVORITE("", "Favorite", 18, true, SortState.DESC, DECKS("lblDecks", "lblDecks", 20, true, SortState.ASC,
null, null)/**The deck name column.*/
,
DECK_ACTIONS("", "lblDeleteEdit", 40, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return 0;
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey());
}
})/**The edit/delete deck column.*/
,
DECK_COLOR("lblColor", "lblColor", 70, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toDeckColor(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeckColor(from.getKey());
}
})/**The deck color column.*/
,
DECK_EDITION("lblSet", "lblSetEdition", 38, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toDeck(from.getKey()).getEdition();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey()).getEdition().getCode();
}
})/**The deck edition column, a mystery to us all.*/
,
DECK_FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
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) {
@@ -306,23 +178,9 @@ public enum ColumnDef {
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey()); return toDeck(from.getKey());
} }
}), })/**The favorite deck flag column.*/
/**The edit/delete deck column.*/ ,
DECK_ACTIONS("", "Delete/Edit", 40, true, SortState.DESC, DECK_FOLDER("lblFolder", "lblFolder", 80, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return 0;
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey());
}
}),
/**The deck folder column.*/
DECK_FOLDER("Folder", "Folder", 80, false, SortState.ASC,
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) {
@@ -334,23 +192,9 @@ public enum ColumnDef {
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeckFolder(from.getKey()); return toDeckFolder(from.getKey());
} }
}), })/**The deck folder column.*/
/**The deck color column.*/ ,
DECK_COLOR("Color", "Color", 70, true, SortState.ASC, DECK_FORMAT("lblFormat", "ttFormats", 60, false, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toDeckColor(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeckColor(from.getKey());
}
}),
/**The deck format column.*/
DECK_FORMAT("Format", "Formats deck is legal in", 60, false, SortState.DESC,
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) {
@@ -377,23 +221,9 @@ public enum ColumnDef {
} }
return deck.getFormatsString(); return deck.getFormatsString();
} }
}), })/**The deck format column.*/
/**The deck edition column, a mystery to us all.*/ ,
DECK_EDITION("Set", "Mystery column. We don't know what it does or if that's what it should do.", 38, true, SortState.DESC, DECK_MAIN("lblMain", "ttMain", 30, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toDeck(from.getKey()).getEdition();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey()).getEdition().getCode();
}
}),
/**The main library size column.*/
DECK_MAIN("Main", "Main Deck", 30, true, SortState.ASC,
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) {
@@ -405,9 +235,23 @@ public enum ColumnDef {
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey()).getMainSize(); return toDeck(from.getKey()).getMainSize();
} }
}), })/**The main library size column.*/
/**The sideboard size column.*/ ,
DECK_SIDE("Side", "Sideboard", 30, true, SortState.ASC, DECK_QUANTITY("lblQty", "lblQuantity", 50, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return from.getValue();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getValue();
}
})/**The quantity in deck column.*/
,
DECK_SIDE("lblSide", "lblSideboard", 30, true, SortState.ASC,
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) {
@@ -419,13 +263,174 @@ public enum ColumnDef {
public Object apply(final Entry<? extends InventoryItem, Integer> from) { public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toDeck(from.getKey()).getSideSize(); return toDeck(from.getKey()).getSideSize();
} }
}); })/**The sideboard size column.*/
,
FAVORITE("", "ttFavorite", 18, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
IPaperCard card = toCard(from.getKey());
if (card == null) {
return -1;
}
return CardPreferences.getPrefs(card).getStarCount();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toCard(from.getKey());
}
})/**The favorite flag column.*/
,
NAME("lblName", "lblName", 180, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toSortableName(from.getKey().getName());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getKey().getName();
}
})/**The name column.*/
,
NEW("lblNew", "lblNew", 30, true, SortState.DESC,
null, null)/**The new inventory flag column.*/
, //functions will be set later
OWNED("lblOwned", "lblOwned", 20, true, SortState.ASC,
null, null)/**The quantity owned column.*/
,
POWER("lblPower", "ttPower", 20, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toPower(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toPower(from.getKey());
}
})/**The power column.*/
,
PRICE("lblPrice", "ttPrice", 35, true, SortState.DESC,
null, null)/**The price column.*/
,
QUANTITY("lblQty", "lblQuantity", 25, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return from.getValue();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getValue();
}
})/**The quantity column.*/
,
RANKING("lblRanking", "lblDraftRanking", 50, true, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toRanking(from.getKey(), false);
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toRanking(from.getKey(), true);
}
})/**The Draft ranking column.*/
,
RARITY("lblRarity", "lblRarity", 20, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toRarity(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toRarity(from.getKey());
}
})/**The rarity column.*/
,
SET("lblSet", "lblSet", 38, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
InventoryItem i = from.getKey();
return i instanceof InventoryItemFromSet ? FModel.getMagicDb().getEditions()
.get(((InventoryItemFromSet) i).getEdition()) : CardEdition.UNKNOWN;
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
InventoryItem i = from.getKey();
return i instanceof InventoryItemFromSet ? ((InventoryItemFromSet) i).getEdition() : "n/a";
}
})/**The set code column.*/
,
STRING("", "", 0, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return from.getKey() instanceof Comparable<?> ? (Comparable<?>) from.getKey() : from.getKey().getName();
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return from.getKey().toString();
}
})/**The column containing the inventory item name.*/
,
TOUGHNESS("lblToughness", "ttToughness", 20, true, SortState.DESC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toToughness(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toToughness(from.getKey());
}
})/**The toughness column.*/
,
TYPE("lblType", "ttType", 100, false, SortState.ASC,
new Function<Entry<InventoryItem, Integer>, Comparable<?>>() {
@Override
public Comparable<?> apply(final Entry<InventoryItem, Integer> from) {
return toType(from.getKey());
}
},
new Function<Entry<? extends InventoryItem, Integer>, Object>() {
@Override
public Object apply(final Entry<? extends InventoryItem, Integer> from) {
return toType(from.getKey());
}
})/**The type column.*/
;
ColumnDef(String shortName0, String longName0, int preferredWidth0, boolean isWidthFixed0, SortState sortState0, ColumnDef(String shortName0, String longName0, int preferredWidth0, boolean isWidthFixed0, SortState sortState0,
Function<Entry<InventoryItem, Integer>, Comparable<?>> fnSort0, Function<Entry<InventoryItem, Integer>, Comparable<?>> fnSort0,
Function<Entry<? extends InventoryItem, Integer>, Object> fnDisplay0) { Function<Entry<? extends InventoryItem, Integer>, Object> fnDisplay0) {
this.shortName = shortName0;
this.longName = longName0; final Localizer localizer = Localizer.getInstance();
if (shortName0 != null && !shortName0.isEmpty()) { this.shortName = localizer.getMessage(shortName0);} else {this.shortName = shortName0;}
if (longName0 != null && !longName0.isEmpty()) { this.longName = localizer.getMessage(longName0);} else {this.longName = longName0;}
this.preferredWidth = preferredWidth0; this.preferredWidth = preferredWidth0;
this.isWidthFixed = isWidthFixed0; this.isWidthFixed = isWidthFixed0;
this.sortState = sortState0; this.sortState = sortState0;
@@ -444,6 +449,7 @@ public enum ColumnDef {
public String toString() { public String toString() {
return this.longName; return this.longName;
} }
/** /**
*Converts a card name to a sortable name. *Converts a card name to a sortable name.
* Trim leading quotes, then move article last, then replace characters. * Trim leading quotes, then move article last, then replace characters.
@@ -492,9 +498,11 @@ public enum ColumnDef {
private static IPaperCard toCard(final InventoryItem i) { private static IPaperCard toCard(final InventoryItem i) {
return i instanceof IPaperCard ? ((IPaperCard) i) : null; return i instanceof IPaperCard ? ((IPaperCard) i) : null;
} }
private static ManaCost toManaCost(final InventoryItem i) { private static ManaCost toManaCost(final InventoryItem i) {
return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST; return i instanceof IPaperCard ? ((IPaperCard) i).getRules().getManaCost() : ManaCost.NO_COST;
} }
private static CardRules toCardRules(final InventoryItem i) { private static CardRules toCardRules(final InventoryItem i) {
return i instanceof IPaperCard ? ((IPaperCard) i).getRules() : null; return i instanceof IPaperCard ? ((IPaperCard) i).getRules() : null;
} }
@@ -545,9 +553,11 @@ public enum ColumnDef {
private static DeckProxy toDeck(final InventoryItem i) { private static DeckProxy toDeck(final InventoryItem i) {
return i instanceof DeckProxy ? ((DeckProxy) i) : null; return i instanceof DeckProxy ? ((DeckProxy) i) : null;
} }
private static ColorSet toDeckColor(final InventoryItem i) { private static ColorSet toDeckColor(final InventoryItem i) {
return i instanceof DeckProxy ? ((DeckProxy) i).getColor() : null; return i instanceof DeckProxy ? ((DeckProxy) i).getColor() : null;
} }
private static String toDeckFolder(final InventoryItem i) { private static String toDeckFolder(final InventoryItem i) {
return i instanceof DeckProxy ? ((DeckProxy) i).getPath() + "/" : null; return i instanceof DeckProxy ? ((DeckProxy) i).getPath() + "/" : null;
} }
@@ -578,7 +588,7 @@ public enum ColumnDef {
@param i A paper card. @param i A paper card.
@return Part of a sortable numeric string.*/ @return Part of a sortable numeric string.*/
private static String toArtifactsWithColorlessCostsLast(final InventoryItem i) { private static String toArtifactsWithColorlessCostsLast(final InventoryItem i) {
forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost(); ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
return !(((IPaperCard) i).getRules().getType().isArtifact() && (toColor(i).isColorless() || return !(((IPaperCard) i).getRules().getType().isArtifact() && (toColor(i).isColorless() ||
//If it isn't colorless, see if it can be paid with only white, only blue, only black. //If it isn't colorless, see if it can be paid with only white, only blue, only black.
@@ -626,7 +636,7 @@ public enum ColumnDef {
@param i A paper card. @param i A paper card.
@return Part of a sortable numeric string.*/ @return Part of a sortable numeric string.*/
private static String toGoldFirst(final InventoryItem i) { private static String toGoldFirst(final InventoryItem i) {
forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost(); ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost();
return !(manaCost.canBePaidWithAvaliable(MagicColor.WHITE) | manaCost.canBePaidWithAvaliable(MagicColor.BLUE) | return !(manaCost.canBePaidWithAvaliable(MagicColor.WHITE) | manaCost.canBePaidWithAvaliable(MagicColor.BLUE) |
manaCost.canBePaidWithAvaliable(MagicColor.BLACK) | manaCost.canBePaidWithAvaliable(MagicColor.RED) | manaCost.canBePaidWithAvaliable(MagicColor.BLACK) | manaCost.canBePaidWithAvaliable(MagicColor.RED) |
@@ -642,8 +652,8 @@ public enum ColumnDef {
//This method serves as an entry point only, separating the two card parts for convenience. //This method serves as an entry point only, separating the two card parts for convenience.
private static String toSplitCardSort(final InventoryItem i) { private static String toSplitCardSort(final InventoryItem i) {
CardRules rules = ((IPaperCard) i).getRules(); CardRules rules = ((IPaperCard) i).getRules();
forge.card.ICardFace mainPart = rules.getMainPart(); ICardFace mainPart = rules.getMainPart();
forge.card.ICardFace otherPart = rules.getOtherPart(); ICardFace otherPart = rules.getOtherPart();
return toSplitSort(mainPart, otherPart); return toSplitSort(mainPart, otherPart);
} }