KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > jboss4 > nodes > JBItemNode


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-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.j2ee.jboss4.nodes;
21
22 import java.awt.Image JavaDoc;
23 import javax.enterprise.deploy.shared.ModuleType JavaDoc;
24 import org.netbeans.modules.j2ee.deployment.plugins.api.UISupport;
25 import org.netbeans.modules.j2ee.deployment.plugins.api.UISupport.ServerIcon;
26 import org.netbeans.modules.j2ee.jboss4.nodes.actions.RefreshModulesAction;
27 import org.netbeans.modules.j2ee.jboss4.nodes.actions.RefreshModulesCookie;
28 import org.netbeans.modules.j2ee.jboss4.nodes.actions.Refreshable;
29 import org.openide.filesystems.Repository;
30 import org.openide.loaders.DataFolder;
31 import org.openide.nodes.AbstractNode;
32 import org.openide.nodes.Children;
33 import org.openide.nodes.Node;
34 import org.openide.util.actions.SystemAction;
35
36 /**
37  * Default Node which can have refresh action enabled and which has deafault icon.
38  *
39  * @author Michal Mocnak
40  */

41 public class JBItemNode extends AbstractNode {
42     
43     private ModuleType JavaDoc moduleType;
44     
45     public JBItemNode(Children children, String JavaDoc name){
46         super(children);
47         setDisplayName(name);
48         if(getChildren() instanceof Refreshable)
49             getCookieSet().add(new RefreshModulesCookieImpl((Refreshable)getChildren()));
50     }
51     
52     public JBItemNode(Children children, String JavaDoc name, ModuleType JavaDoc moduleType) {
53         this(children, name);
54         this.moduleType = moduleType;
55     }
56     
57     public Image JavaDoc getIcon(int type) {
58         if (ModuleType.WAR.equals(moduleType)) {
59             return UISupport.getIcon(ServerIcon.WAR_FOLDER);
60         } else if (ModuleType.EAR.equals(moduleType)) {
61             return UISupport.getIcon(ServerIcon.EAR_FOLDER);
62         } else if (ModuleType.EJB.equals(moduleType)) {
63             return UISupport.getIcon(ServerIcon.EJB_FOLDER);
64         } else {
65             return getIconDelegate().getIcon(type);
66         }
67     }
68     
69     public Image JavaDoc getOpenedIcon(int type) {
70         if (ModuleType.WAR.equals(moduleType)) {
71             return UISupport.getIcon(ServerIcon.WAR_OPENED_FOLDER);
72         } else if (ModuleType.EAR.equals(moduleType)) {
73             return UISupport.getIcon(ServerIcon.EAR_OPENED_FOLDER);
74         } else if (ModuleType.EJB.equals(moduleType)) {
75             return UISupport.getIcon(ServerIcon.EJB_OPENED_FOLDER);
76         } else {
77             return getIconDelegate().getOpenedIcon(type);
78         }
79     }
80     
81     private Node getIconDelegate() {
82         return DataFolder.findFolder(Repository.getDefault().getDefaultFileSystem().getRoot()).getNodeDelegate();
83     }
84     
85     public javax.swing.Action JavaDoc[] getActions(boolean context) {
86         if(getChildren() instanceof Refreshable)
87             return new SystemAction[] {
88                 SystemAction.get(RefreshModulesAction.class)
89             };
90         
91         return new SystemAction[] {};
92     }
93     
94     /**
95      * Implementation of the RefreshModulesCookie
96      */

97     private static class RefreshModulesCookieImpl implements RefreshModulesCookie {
98         Refreshable children;
99         
100         public RefreshModulesCookieImpl(Refreshable children){
101             this.children = children;
102         }
103         
104         public void refresh() {
105             children.updateKeys();
106         }
107     }
108 }
Popular Tags