Creates a new ControlPanel
instance.
setBorder(BorderFactory.createTitledBorder("Controls: "));
final GridBagLayout gridbag = new GridBagLayout();
final GridBagConstraints c = new GridBagConstraints();
setLayout(gridbag);
// Pad everything
c.ipadx = 5;
c.ipady = 5;
// Add the 1st column of labels
c.gridx = 0;
c.anchor = GridBagConstraints.EAST;
c.gridy = 0;
JLabel label = new JLabel("Filter Level:");
gridbag.setConstraints(label, c);
add(label);
c.gridy++;
label = new JLabel("Filter Thread:");
gridbag.setConstraints(label, c);
add(label);
c.gridy++;
label = new JLabel("Filter Logger:");
gridbag.setConstraints(label, c);
add(label);
c.gridy++;
label = new JLabel("Filter NDC:");
gridbag.setConstraints(label, c);
add(label);
c.gridy++;
label = new JLabel("Filter Message:");
gridbag.setConstraints(label, c);
add(label);
// Add the 2nd column of filters
c.weightx = 1;
//c.weighty = 1;
c.gridx = 1;
c.anchor = GridBagConstraints.WEST;
c.gridy = 0;
final Level[] allPriorities = new Level[] {Level.FATAL,
Level.ERROR,
Level.WARN,
Level.INFO,
Level.DEBUG,
Level.TRACE };
final JComboBox priorities = new JComboBox(allPriorities);
final Level lowest = allPriorities[allPriorities.length - 1];
priorities.setSelectedItem(lowest);
aModel.setPriorityFilter(lowest);
gridbag.setConstraints(priorities, c);
add(priorities);
priorities.setEditable(false);
priorities.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent aEvent) {
aModel.setPriorityFilter(
(Priority) priorities.getSelectedItem());
}
});
c.fill = GridBagConstraints.HORIZONTAL;
c.gridy++;
final JTextField threadField = new JTextField("");
threadField.getDocument().addDocumentListener(new DocumentListener () {
public void insertUpdate(DocumentEvent aEvent) {
aModel.setThreadFilter(threadField.getText());
}
public void removeUpdate(DocumentEvent aEvente) {
aModel.setThreadFilter(threadField.getText());
}
public void changedUpdate(DocumentEvent aEvent) {
aModel.setThreadFilter(threadField.getText());
}
});
gridbag.setConstraints(threadField, c);
add(threadField);
c.gridy++;
final JTextField catField = new JTextField("");
catField.getDocument().addDocumentListener(new DocumentListener () {
public void insertUpdate(DocumentEvent aEvent) {
aModel.setCategoryFilter(catField.getText());
}
public void removeUpdate(DocumentEvent aEvent) {
aModel.setCategoryFilter(catField.getText());
}
public void changedUpdate(DocumentEvent aEvent) {
aModel.setCategoryFilter(catField.getText());
}
});
gridbag.setConstraints(catField, c);
add(catField);
c.gridy++;
final JTextField ndcField = new JTextField("");
ndcField.getDocument().addDocumentListener(new DocumentListener () {
public void insertUpdate(DocumentEvent aEvent) {
aModel.setNDCFilter(ndcField.getText());
}
public void removeUpdate(DocumentEvent aEvent) {
aModel.setNDCFilter(ndcField.getText());
}
public void changedUpdate(DocumentEvent aEvent) {
aModel.setNDCFilter(ndcField.getText());
}
});
gridbag.setConstraints(ndcField, c);
add(ndcField);
c.gridy++;
final JTextField msgField = new JTextField("");
msgField.getDocument().addDocumentListener(new DocumentListener () {
public void insertUpdate(DocumentEvent aEvent) {
aModel.setMessageFilter(msgField.getText());
}
public void removeUpdate(DocumentEvent aEvent) {
aModel.setMessageFilter(msgField.getText());
}
public void changedUpdate(DocumentEvent aEvent) {
aModel.setMessageFilter(msgField.getText());
}
});
gridbag.setConstraints(msgField, c);
add(msgField);
// Add the 3rd column of buttons
c.weightx = 0;
c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.EAST;
c.gridx = 2;
c.gridy = 0;
final JButton exitButton = new JButton("Exit");
exitButton.setMnemonic('x");
exitButton.addActionListener(ExitAction.INSTANCE);
gridbag.setConstraints(exitButton, c);
add(exitButton);
c.gridy++;
final JButton clearButton = new JButton("Clear");
clearButton.setMnemonic('c");
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent aEvent) {
aModel.clear();
}
});
gridbag.setConstraints(clearButton, c);
add(clearButton);
c.gridy++;
final JButton toggleButton = new JButton("Pause");
toggleButton.setMnemonic('p");
toggleButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent aEvent) {
aModel.toggle();
toggleButton.setText(
aModel.isPaused() ? "Resume" : "Pause");
}
});
gridbag.setConstraints(toggleButton, c);
add(toggleButton);