mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
TokenViewer doesn't crash now.. Just need it to display
This commit is contained in:
@@ -2,6 +2,7 @@ package forge.itemmanager;
|
||||
|
||||
import forge.item.PaperToken;
|
||||
import forge.itemmanager.filters.ItemFilter;
|
||||
import forge.itemmanager.filters.TokenSearchFilter;
|
||||
import forge.screens.match.controllers.CDetailPicture;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -18,7 +19,11 @@ public class TokenManager extends ItemManager<PaperToken> {
|
||||
|
||||
@Override
|
||||
protected ItemFilter<PaperToken> createSearchFilter() {
|
||||
return null;
|
||||
return createSearchFilter(this);
|
||||
}
|
||||
|
||||
public static ItemFilter<PaperToken> createSearchFilter(final ItemManager<? super PaperToken> itemManager) {
|
||||
return new TokenSearchFilter(itemManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
package forge.itemmanager.filters;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import forge.UiCommand;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.item.PaperToken;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.SFilterUtil;
|
||||
import forge.toolbox.FComboBoxWrapper;
|
||||
import forge.toolbox.FLabel;
|
||||
import forge.toolbox.FTextField;
|
||||
import forge.toolbox.LayoutHelper;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
|
||||
|
||||
public class TokenSearchFilter extends TextSearchFilter<PaperToken> {
|
||||
private FComboBoxWrapper<String> cbSearchMode;
|
||||
private FLabel btnName, btnType, btnText, btnCost;
|
||||
|
||||
public TokenSearchFilter(ItemManager<? super PaperToken> itemManager0) {
|
||||
super(itemManager0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemFilter<PaperToken> createCopy() {
|
||||
TokenSearchFilter copy = new TokenSearchFilter(itemManager);
|
||||
copy.getWidget(); //initialize widget
|
||||
copy.txtSearch.setText(this.txtSearch.getText());
|
||||
copy.cbSearchMode.setSelectedIndex(this.cbSearchMode.getSelectedIndex());
|
||||
copy.btnName.setSelected(this.btnName.isSelected());
|
||||
copy.btnType.setSelected(this.btnType.isSelected());
|
||||
copy.btnText.setSelected(this.btnText.isSelected());
|
||||
copy.btnCost.setSelected(this.btnCost.isSelected());
|
||||
return copy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
super.reset();
|
||||
this.cbSearchMode.setSelectedIndex(0);
|
||||
this.btnName.setSelected(true);
|
||||
this.btnType.setSelected(true);
|
||||
this.btnText.setSelected(true);
|
||||
this.btnCost.setSelected(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final void buildWidget(JPanel widget) {
|
||||
super.buildWidget(widget);
|
||||
|
||||
cbSearchMode = new FComboBoxWrapper<String>();
|
||||
cbSearchMode.addItem("in");
|
||||
cbSearchMode.addItem("not in");
|
||||
cbSearchMode.addTo(widget);
|
||||
cbSearchMode.addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(ItemEvent arg0) {
|
||||
if (!txtSearch.isEmpty()) {
|
||||
applyChange();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
btnName = addButton(widget, "Name");
|
||||
btnType = addButton(widget, "Type");
|
||||
btnText = addButton(widget, "Text");
|
||||
btnCost = addButton(widget, "Cost");
|
||||
|
||||
btnCost.setSelected(false);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doWidgetLayout(LayoutHelper helper) {
|
||||
final int comboBoxWidth = 61;
|
||||
final int buttonWidth = 51;
|
||||
|
||||
helper.fillLine(txtSearch, FTextField.HEIGHT, comboBoxWidth + buttonWidth * 4 + 16); //leave space for combo box and buttons
|
||||
helper.include(cbSearchMode.getComponent(), comboBoxWidth, FTextField.HEIGHT);
|
||||
helper.include(btnName, buttonWidth, FTextField.HEIGHT);
|
||||
helper.include(btnType, buttonWidth, FTextField.HEIGHT);
|
||||
helper.include(btnText, buttonWidth, FTextField.HEIGHT);
|
||||
helper.include(btnCost, buttonWidth, FTextField.HEIGHT);
|
||||
}
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
private FLabel addButton(JPanel widget, String text) {
|
||||
FLabel button = new FLabel.Builder().text(text).hoverable().selectable().selected().build();
|
||||
|
||||
button.setCommand(new UiCommand() {
|
||||
@Override
|
||||
public void run() {
|
||||
applyChange();
|
||||
}
|
||||
});
|
||||
|
||||
widget.add(button);
|
||||
return button;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Predicate<PaperToken> buildPredicate() {
|
||||
// Don't filter anything out for now.
|
||||
return new Predicate<PaperToken>() {
|
||||
@Override
|
||||
public boolean apply(PaperToken paperToken) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <U extends InventoryItem> boolean showUnsupportedItem(U item) {
|
||||
//fallback to regular item text filter if item not PaperCard
|
||||
boolean result = btnName.isSelected() && SFilterUtil.buildItemTextFilter(txtSearch.getText()).apply(item);
|
||||
if (cbSearchMode.getSelectedIndex() != 0) { //invert result if needed
|
||||
result = !result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public class CEditorTokenViewer extends ACEditorBase<PaperToken, DeckBase> {
|
||||
private DragCell deckGenParent = null;
|
||||
private DragCell probsParent = null;
|
||||
|
||||
private final List<PaperToken> fullCatalogCards = FModel.getMagicDb().getAllTokens().getAllTokens();
|
||||
private List<PaperToken> fullCatalogCards;
|
||||
|
||||
// remember changed gui elements
|
||||
private String CCTabLabel = new String();
|
||||
@@ -38,6 +38,9 @@ public class CEditorTokenViewer extends ACEditorBase<PaperToken, DeckBase> {
|
||||
public CEditorTokenViewer(final CDetailPicture cDetailPicture) {
|
||||
super(FScreen.TOKEN_VIEWER, cDetailPicture);
|
||||
|
||||
FModel.getMagicDb().getAllTokens().preloadTokens();
|
||||
fullCatalogCards = FModel.getMagicDb().getAllTokens().getAllTokens();
|
||||
|
||||
final TokenManager catalogManager = new TokenManager(getCDetailPicture(), false);
|
||||
final TokenManager deckManager = new TokenManager(cDetailPicture, false);
|
||||
catalogManager.setCaption("All Tokens");
|
||||
@@ -102,8 +105,8 @@ public class CEditorTokenViewer extends ACEditorBase<PaperToken, DeckBase> {
|
||||
VCardCatalog.SINGLETON_INSTANCE.getTabLabel().setText("All tokens");
|
||||
|
||||
this.getBtnAdd().setVisible(false);
|
||||
this.getBtnAdd4().setVisible(false);
|
||||
this.getBtnRemove().setVisible(false);
|
||||
|
||||
this.getBtnAddBasicLands().setVisible(false);
|
||||
|
||||
VProbabilities.SINGLETON_INSTANCE.getTabLabel().setVisible(false);
|
||||
|
||||
Reference in New Issue
Block a user