/apache-log4j-1.2.17/src/main/java/org/apache/log4j/chainsaw/ControlPanel.java
Java | 222 lines | 166 code | 24 blank | 32 comment | 0 complexity | ae94ff5ad3cc6cab81452fe917fff83a MD5 | raw file
Possible License(s): Apache-2.0
- /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.log4j.chainsaw;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.BorderFactory;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.JTextField;
- import javax.swing.event.DocumentEvent;
- import javax.swing.event.DocumentListener;
- import org.apache.log4j.Logger;
- import org.apache.log4j.Priority;
- import org.apache.log4j.Level;
- /**
- * Represents the controls for filtering, pausing, exiting, etc.
- *
- * @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a>
- */
- class ControlPanel extends JPanel {
- /** use the log messages **/
- private static final Logger LOG =
- Logger.getLogger(ControlPanel.class);
- /**
- * Creates a new <code>ControlPanel</code> instance.
- *
- * @param aModel the model to control
- */
- ControlPanel(final MyTableModel aModel) {
- 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);
- }
- }