mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Refactor previous fix
This commit is contained in:
@@ -110,27 +110,6 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
||||
return button;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <U extends InventoryItem> Predicate<U> buildPredicate(Class<U> genericType) {
|
||||
final Predicate<PaperCard> predicate = this.buildPredicate();
|
||||
return new Predicate<U>() {
|
||||
@Override
|
||||
public boolean apply(U item) {
|
||||
try {
|
||||
return predicate.apply((PaperCard)item);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
//fallback to regular item text filter if item not PaperCard
|
||||
boolean result = btnName.getSelected() && SFilterUtil.buildItemTextFilter(txtSearch.getText()).apply(item);
|
||||
if (cbSearchMode.getSelectedIndex() != 0) { //invert result if needed
|
||||
result = !result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Predicate<PaperCard> buildPredicate() {
|
||||
return SFilterUtil.buildTextFilter(
|
||||
@@ -140,4 +119,14 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
||||
btnType.getSelected(),
|
||||
btnText.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected <U extends InventoryItem> boolean showUnsupportedItem(U item) {
|
||||
//fallback to regular item text filter if item not PaperCard
|
||||
boolean result = btnName.getSelected() && SFilterUtil.buildItemTextFilter(txtSearch.getText()).apply(item);
|
||||
if (cbSearchMode.getSelectedIndex() != 0) { //invert result if needed
|
||||
result = !result;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
||||
this.itemManager.applyFilters();
|
||||
}
|
||||
|
||||
public <U extends InventoryItem> Predicate<U> buildPredicate(Class<U> genericType) {
|
||||
public final <U extends InventoryItem> Predicate<U> buildPredicate(Class<U> genericType) {
|
||||
final Predicate<T> predicate = this.buildPredicate();
|
||||
return new Predicate<U>() {
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -132,12 +132,16 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
||||
return predicate.apply((T)item);
|
||||
}
|
||||
catch (Exception ex) {
|
||||
return false; //if can't cast U to T, filter item out
|
||||
return showUnsupportedItem(item); //if can't cast U to T, filter item out unless derived class can handle it
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected <U extends InventoryItem> boolean showUnsupportedItem(U item) {
|
||||
return false; //don't show unsupported items by default
|
||||
}
|
||||
|
||||
public abstract ItemFilter<T> createCopy();
|
||||
public abstract boolean isEmpty();
|
||||
public abstract void reset();
|
||||
|
||||
Reference in New Issue
Block a user