mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Refactor previous fix
This commit is contained in:
@@ -110,27 +110,6 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
|||||||
return button;
|
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
|
@Override
|
||||||
protected Predicate<PaperCard> buildPredicate() {
|
protected Predicate<PaperCard> buildPredicate() {
|
||||||
return SFilterUtil.buildTextFilter(
|
return SFilterUtil.buildTextFilter(
|
||||||
@@ -140,4 +119,14 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
|||||||
btnType.getSelected(),
|
btnType.getSelected(),
|
||||||
btnText.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();
|
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();
|
final Predicate<T> predicate = this.buildPredicate();
|
||||||
return new Predicate<U>() {
|
return new Predicate<U>() {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@@ -132,12 +132,16 @@ public abstract class ItemFilter<T extends InventoryItem> {
|
|||||||
return predicate.apply((T)item);
|
return predicate.apply((T)item);
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
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 ItemFilter<T> createCopy();
|
||||||
public abstract boolean isEmpty();
|
public abstract boolean isEmpty();
|
||||||
public abstract void reset();
|
public abstract void reset();
|
||||||
|
|||||||
Reference in New Issue
Block a user