package net.scapeemulator.game.tools.npcviewer;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import net.scapeemulator.cache.def.NPCDefinition;
import net.scapeemulator.game.model.definition.NPCDefinitions;
@SuppressWarnings("serial")
public class FilteredNPCJList extends JList<NPCDefinition> {
private DefaultListModel<NPCDefinition> model;
public FilteredNPCJList() {
model = new DefaultListModel<>();
setModel(model);
filterReset("");
}
public void filterReset(String newFilter) {
model.clear();
newFilter = format(newFilter);
for (NPCDefinition def : NPCDefinitions.getDefinitions()) {
if (def != null) {
if (format(def.toString()).contains(newFilter)) {
model.addElement(def);
}
}
}
setModel(model);
}
public void filterNarrowed(String newFilter) {
newFilter = format(newFilter);
for (int i = 0; i < model.getSize(); i++) {
if (!format(model.get(i).toString()).contains(newFilter)) {
model.remove(i--);
}
}
setModel(model);
}
private static String format(String s) {
return s.trim().toLowerCase();
}
}