psmith 2003/06/23 20:48:20 Modified: src/java/org/apache/log4j/chainsaw ReceiversPanel.java Added: src/java/org/apache/log4j/chainsaw ThresholdSlider.java Log: Initial addition of a Threshold slider dialog that does nothing. And when I say initial, I mean lame. Much more work to do here. Revision Changes Path 1.15 +18 -0 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java Index: ReceiversPanel.java =================================================================== RCS file: /home/cvs/jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ReceiversPanel.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ReceiversPanel.java 23 Jun 2003 07:48:09 -0000 1.14 +++ ReceiversPanel.java 24 Jun 2003 03:48:20 -0000 1.15 @@ -62,6 +62,7 @@ import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; +import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; @@ -80,6 +81,7 @@ import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JComponent; +import javax.swing.JDialog; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -670,6 +672,22 @@ addSeparator(); add(startAll); + + final JDialog dialog = new JDialog(logui, "Set Threshold", true); + Container container = dialog.getContentPane(); + container.add(new ThresholdSlider()); + dialog.setResizable(false); + dialog.pack(); + + + Action setThresholdAction = new AbstractAction("Set Threshold..."){ + + public void actionPerformed(ActionEvent e) { + dialog.setLocationRelativeTo(receiversTree); + dialog.show(); + }}; + + add(setThresholdAction); } } 1.1 jakarta-log4j-sandbox/src/java/org/apache/log4j/chainsaw/ThresholdSlider.java Index: ThresholdSlider.java =================================================================== /* * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ * * Copyright (C) 1999 The Apache Software Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: "This product includes software * developed by the Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The names "log4j" and "Apache Software Foundation" must not be used to * endorse or promote products derived from this software without prior * written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache", nor may * "Apache" appear in their name, without prior written permission of the * Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * This software consists of voluntary contributions made by many individuals * on behalf of the Apache Software Foundation. For more information on the * Apache Software Foundation, please see <http://www.apache.org/>. * */ package org.apache.log4j.chainsaw; import org.apache.log4j.Level; import org.apache.log4j.Priority; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.swing.DefaultBoundedRangeModel; import javax.swing.JLabel; import javax.swing.JSlider; /** * A Slider implementation that allows a user to * choose a particular Threshold * . * @author Paul Smith <[EMAIL PROTECTED]> * */ final class ThresholdSlider extends JSlider { ThresholdSlider() { Priority[] priorities = new Level[] { Level.OFF, Level.FATAL, Level.ERROR, Level.WARN, Level.INFO, Level.DEBUG }; List priorityList = Arrays.asList(priorities); Collections.sort( priorityList, new Comparator() { public int compare(Object o1, Object o2) { Priority p1 = (Priority) o1; Priority p2 = (Priority) o2; if (p1.toInt() == p2.toInt()) { return 0; } else if (p1.toInt() < p2.toInt()) { return -1; } return 1; } }); Level min = (Level) priorityList.get(0); Level max = (Level) priorityList.get(priorityList.size() - 1); setModel( new DefaultBoundedRangeModel( Level.DEBUG.getSyslogEquivalent(), 0, max.getSyslogEquivalent(), min.getSyslogEquivalent())); Hashtable labelMap = new Hashtable(); for (Iterator iter = priorityList.iterator(); iter.hasNext();) { Priority item = (Priority) iter.next(); labelMap.put(new Integer(item.getSyslogEquivalent()), new JLabel(item.toString())); // System.out.println("creating levels for :: " + item.toInt() + "," + item.toString()); } setOrientation(JSlider.VERTICAL); setInverted(true); setLabelTable(labelMap); setPaintLabels(true); // setPaintTicks(true); setSnapToTicks(true); // setMajorTickSpacing(10000); // setPaintTrack(true); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]