in src/main/java/org/apache/log4j/chainsaw/LogPanel.java [4167:4190]
private void refilter() {
//only refilter if we're not bypassing filtering AND the text has changed since the last call to refilter
String textToMatch = getEditor().getItem().toString();
if (bypassFiltering || (lastTextToMatch != null && lastTextToMatch.equals(textToMatch))) {
return;
}
lastTextToMatch = textToMatch;
bypassFiltering = true;
model.removeAllElements();
List entriesCopy = new ArrayList(allEntries);
for (Object anEntriesCopy : entriesCopy) {
String thisEntry = anEntriesCopy.toString();
if (thisEntry.toLowerCase(Locale.ENGLISH).contains(textToMatch.toLowerCase())) {
model.addElement(thisEntry);
}
}
bypassFiltering = false;
//TODO: on no-match, don't filter at all (show the popup?)
if (displayedEntries.size() > 0 && !textToMatch.equals("")) {
showPopup();
} else {
hidePopup();
}
}