in src/main/java/org/apache/log4j/chainsaw/ExpressionRuleContext.java [46:115]
public ExpressionRuleContext(
final FilterModel filterModel, final JTextComponent textComponent) {
this.filterModel = filterModel;
this.textComponent = textComponent;
fieldModel.addElement("LOGGER");
fieldModel.addElement("LEVEL");
fieldModel.addElement("CLASS");
fieldModel.addElement("FILE");
fieldModel.addElement("LINE");
fieldModel.addElement("METHOD");
fieldModel.addElement("MSG");
fieldModel.addElement("NDC");
fieldModel.addElement("EXCEPTION");
fieldModel.addElement("TIMESTAMP");
fieldModel.addElement("THREAD");
fieldModel.addElement("PROP.");
operatorModel.addElement("&&");
operatorModel.addElement("||");
operatorModel.addElement("!");
operatorModel.addElement("!=");
operatorModel.addElement("==");
operatorModel.addElement("~=");
operatorModel.addElement("LIKE");
operatorModel.addElement("EXISTS");
operatorModel.addElement("<");
operatorModel.addElement(">");
operatorModel.addElement("<=");
operatorModel.addElement(">=");
//make long to avoid scrollbar
list.setVisibleRowCount(13);
PopupListener popupListener = new PopupListener();
textComponent.addMouseListener(popupListener);
list.addKeyListener(
new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
String value = list.getSelectedValue().toString();
String contextKey = getContextKey();
if (contextKey != null && (!(contextKey.endsWith(".")))) {
value = "'" + value + "'";
}
updateField(value);
contextMenu.setVisible(false);
}
}
});
list.addMouseListener(
new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
String value = list.getSelectedValue().toString();
String contextKey = getContextKey();
if (contextKey != null && (!(contextKey.endsWith(".")))) {
value = "'" + value + "'";
}
updateField(value);
contextMenu.setVisible(false);
}
}
});
contextMenu.insert(scrollPane, 0);
}