Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Source Code for Apache Log4j 1.2.17
Apache Log4j provides the interface that applications should code to and provides the adapter components required for implementers to create a logging implementation.
Bytecode (Java 1.4) for Apache Log4j is provided in a JAR file like log4j-1.2.17.jar.
Source Code files for Apache Log4j are provided in both binary packge like log4j-1.2.17.zip and source package like log4j-1.2.17-sources.zip. You can download them at Apache Log4j Website.
You can also browse Source Code files for Apache Log4j 1.2.17 below.
✍: FYIcenter.com
⏎ org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditor.java
/* * 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.lf5.viewer.categoryexplorer; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Enumeration; import javax.swing.JCheckBox; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import javax.swing.JTree; import javax.swing.tree.TreePath; /** * CategoryNodeEditor * * @author Michael J. Sikorsky * @author Robert Shaw */ // Contributed by ThoughtWorks Inc. public class CategoryNodeEditor extends CategoryAbstractCellEditor { //-------------------------------------------------------------------------- // Constants: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Protected Variables: //-------------------------------------------------------------------------- protected CategoryNodeEditorRenderer _renderer; protected CategoryNode _lastEditedNode; protected JCheckBox _checkBox; protected CategoryExplorerModel _categoryModel; protected JTree _tree; //-------------------------------------------------------------------------- // Private Variables: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Constructors: //-------------------------------------------------------------------------- public CategoryNodeEditor(CategoryExplorerModel model) { _renderer = new CategoryNodeEditorRenderer(); _checkBox = _renderer.getCheckBox(); _categoryModel = model; _checkBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { _categoryModel.update(_lastEditedNode, _checkBox.isSelected()); stopCellEditing(); } }); _renderer.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) { showPopup(_lastEditedNode, e.getX(), e.getY()); } stopCellEditing(); } }); } //-------------------------------------------------------------------------- // Public Methods: //-------------------------------------------------------------------------- public Component getTreeCellEditorComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row) { _lastEditedNode = (CategoryNode) value; _tree = tree; return _renderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, true); // hasFocus ignored } public Object getCellEditorValue() { return _lastEditedNode.getUserObject(); } //-------------------------------------------------------------------------- // Protected Methods: //-------------------------------------------------------------------------- protected JMenuItem createPropertiesMenuItem(final CategoryNode node) { JMenuItem result = new JMenuItem("Properties"); result.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { showPropertiesDialog(node); } }); return result; } protected void showPropertiesDialog(CategoryNode node) { JOptionPane.showMessageDialog( _tree, getDisplayedProperties(node), "Category Properties: " + node.getTitle(), JOptionPane.PLAIN_MESSAGE ); } protected Object getDisplayedProperties(CategoryNode node) { ArrayList result = new ArrayList(); result.add("Category: " + node.getTitle()); if (node.hasFatalRecords()) { result.add("Contains at least one fatal LogRecord."); } if (node.hasFatalChildren()) { result.add("Contains descendants with a fatal LogRecord."); } result.add("LogRecords in this category alone: " + node.getNumberOfContainedRecords()); result.add("LogRecords in descendant categories: " + node.getNumberOfRecordsFromChildren()); result.add("LogRecords in this category including descendants: " + node.getTotalNumberOfRecords()); return result.toArray(); } protected void showPopup(CategoryNode node, int x, int y) { JPopupMenu popup = new JPopupMenu(); popup.setSize(150, 400); // // Configure the Popup // if (node.getParent() == null) { popup.add(createRemoveMenuItem()); popup.addSeparator(); } popup.add(createSelectDescendantsMenuItem(node)); popup.add(createUnselectDescendantsMenuItem(node)); popup.addSeparator(); popup.add(createExpandMenuItem(node)); popup.add(createCollapseMenuItem(node)); popup.addSeparator(); popup.add(createPropertiesMenuItem(node)); popup.show(_renderer, x, y); } protected JMenuItem createSelectDescendantsMenuItem(final CategoryNode node) { JMenuItem selectDescendants = new JMenuItem("Select All Descendant Categories"); selectDescendants.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { _categoryModel.setDescendantSelection(node, true); } } ); return selectDescendants; } protected JMenuItem createUnselectDescendantsMenuItem(final CategoryNode node) { JMenuItem unselectDescendants = new JMenuItem("Deselect All Descendant Categories"); unselectDescendants.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { _categoryModel.setDescendantSelection(node, false); } } ); return unselectDescendants; } protected JMenuItem createExpandMenuItem(final CategoryNode node) { JMenuItem result = new JMenuItem("Expand All Descendant Categories"); result.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { expandDescendants(node); } }); return result; } protected JMenuItem createCollapseMenuItem(final CategoryNode node) { JMenuItem result = new JMenuItem("Collapse All Descendant Categories"); result.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { collapseDescendants(node); } }); return result; } /** * This featured was moved from the LogBrokerMonitor class * to the CategoryNodeExplorer so that the Category tree * could be pruned from the Category Explorer popup menu. * This menu option only appears when a user right clicks on * the Category parent node. * * See removeUnusedNodes() */ protected JMenuItem createRemoveMenuItem() { JMenuItem result = new JMenuItem("Remove All Empty Categories"); result.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { while (removeUnusedNodes() > 0) ; } }); return result; } protected void expandDescendants(CategoryNode node) { Enumeration descendants = node.depthFirstEnumeration(); CategoryNode current; while (descendants.hasMoreElements()) { current = (CategoryNode) descendants.nextElement(); expand(current); } } protected void collapseDescendants(CategoryNode node) { Enumeration descendants = node.depthFirstEnumeration(); CategoryNode current; while (descendants.hasMoreElements()) { current = (CategoryNode) descendants.nextElement(); collapse(current); } } /** * Removes any inactive nodes from the Category tree. */ protected int removeUnusedNodes() { int count = 0; CategoryNode root = _categoryModel.getRootCategoryNode(); Enumeration enumeration = root.depthFirstEnumeration(); while (enumeration.hasMoreElements()) { CategoryNode node = (CategoryNode) enumeration.nextElement(); if (node.isLeaf() && node.getNumberOfContainedRecords() == 0 && node.getParent() != null) { _categoryModel.removeNodeFromParent(node); count++; } } return count; } protected void expand(CategoryNode node) { _tree.expandPath(getTreePath(node)); } protected TreePath getTreePath(CategoryNode node) { return new TreePath(node.getPath()); } protected void collapse(CategoryNode node) { _tree.collapsePath(getTreePath(node)); } //----------------------------------------------------------------------- // Private Methods: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Nested Top-Level Classes or Interfaces: //-------------------------------------------------------------------------- }
⏎ org/apache/log4j/lf5/viewer/categoryexplorer/CategoryNodeEditor.java
Or download all of them as a single archive file:
File name: log4j-1.2.17-sources.jar File size: 481200 bytes Release date: 2012-05-06 Download
⇒ Download and Install apache-log4j-1.2.15.zip
⇐ Download and Install log4j-1.2.17.zip
2015-12-14, 63328👍, 0💬
Popular Posts:
How to read XML document from socket connections with the socket\DelayedInput.java provided in the A...
JDK 11 jdk.internal.opt.jmod is the JMOD file for JDK 11 Internal Opt module. JDK 11 Internal Opt mo...
ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify ex...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
iText is an ideal library for developers looking to enhance web- and other applications with dynamic...