|
XmlTreeNodeRenderer |
|
/* ** Luxor - XML User Interface Language (XUL) Toolkit ** Copyright (c) 2001, 2002 by Gerald Bauer ** ** This program is free software. ** ** You may redistribute it and/or modify it under the terms of the GNU ** General Public License as published by the Free Software Foundation. ** Version 2 of the license should be included with this distribution in ** the file LICENSE, as well as License.html. If the license is not ** included with this distribution, you may find a copy at the FSF web ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA. ** ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR ** REDISTRIBUTION OF THIS SOFTWARE. ** */ package luxor.swing.tree; import java.awt.Color; import java.awt.Component; import java.util.*; import javax.swing.*; import javax.swing.tree.*; import org.jdom.*; import luxor.status.*; public class XmlTreeNodeRenderer implements TreeCellRenderer { static Logger T = Logger.getLogger( XmlTreeNodeRenderer.class ); private Element _el; private JLabel _label; public XmlTreeNodeRenderer() { _label = new JLabel(); } public Component getTreeCellRendererComponent( JTree tree, Object value, boolean is_selected, boolean is_expanded, boolean is_leaf, int row, boolean has_focus ) { _el = ( Element ) value; StringBuffer buf = new StringBuffer(); if( is_selected ) { buf.append( "<body bgcolor=black><font color=white>" ); buf.append( "<b>" + _el.getName() + "</b> " ); List attributes = _el.getAttributes(); for( Iterator it = attributes.iterator(); it.hasNext(); ) { Attribute attr = ( Attribute ) it.next(); buf.append( "<em>" + attr.getName() + "=</em>" ); buf.append( attr.getValue() + " " ); } if( _el.getTextTrim() != null ) buf.append( _el.getTextTrim() ); buf.append( "</font></body>" ); } else { buf.append( "<b>" + _el.getName() + "</b> " ); List attributes = _el.getAttributes(); for( Iterator it = attributes.iterator(); it.hasNext(); ) { Attribute attr = ( Attribute ) it.next(); buf.append( "<em>" + attr.getName() ); buf.append( "<font color=grey>=</font></em>" ); buf.append( "<font color=blue>" + attr.getValue() + "</font>" ); buf.append( " " ); } if( _el.getTextTrim() != null ) buf.append( _el.getTextTrim() ); } _label.setText( "<html>" + buf.toString() + "</html>" ); return _label; } } // end of class
|
XmlTreeNodeRenderer |
|