KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > xam > ui > column > ColumnListCellRenderer


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.xml.xam.ui.column;
21
22 import java.awt.Component JavaDoc;
23 import javax.swing.JComponent JavaDoc;
24 import javax.swing.JList JavaDoc;
25 import org.netbeans.modules.xml.xam.ui.cookies.CountChildrenCookie;
26 import org.openide.awt.HtmlRenderer;
27 import org.openide.explorer.view.NodeRenderer;
28 import org.openide.explorer.view.Visualizer;
29 import org.openide.nodes.Node;
30
31 /**
32  * Renders the components in the list view.
33  *
34  * @author Nathan Fiedler
35  */

36 public class ColumnListCellRenderer extends NodeRenderer {
37     private static final long serialVersionUID = 1L;
38
39     public ColumnListCellRenderer() {
40         super();
41     }
42
43     public Component JavaDoc getListCellRendererComponent(JList JavaDoc list,
44             Object JavaDoc value, int index, boolean selected, boolean focused) {
45         Component JavaDoc c = super.getListCellRendererComponent(
46                 list, value, index, selected, focused);
47         if (c instanceof JComponent JavaDoc) {
48             // Add our child indicator to the node renderer.
49
// Testing if the value is a leaf is useless as the nodes
50
// usually have non-leaf Children instances.
51
Node node = Visualizer.findNode(value);
52             boolean hasChildren = true;
53             CountChildrenCookie ccc = (CountChildrenCookie) node.getCookie(
54                         CountChildrenCookie.class);
55             if (ccc != null) {
56                 hasChildren = ccc.getChildCount() > 0;
57             }
58             ArrowBorder border = new ArrowBorder(hasChildren);
59             JComponent JavaDoc jc = (JComponent JavaDoc) c;
60             jc.setBorder(border);
61         }
62         if (c instanceof HtmlRenderer.Renderer) {
63             // Prefer the ... over simply clipping the label.
64
HtmlRenderer.Renderer hr = (HtmlRenderer.Renderer) c;
65             hr.setRenderStyle(HtmlRenderer.STYLE_TRUNCATE);
66         }
67         return c;
68     }
69 }
70
Popular Tags