KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > view > treeeditor > WSDLNamedElementNode


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 /*
21  * Created on May 25, 2005
22  *
23  * To change the template for this generated file go to
24  * Window - Preferences - Java - Code Generation - Code and Comments
25  */

26 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor;
27
28 import java.util.logging.Level JavaDoc;
29
30 import javax.xml.namespace.QName JavaDoc;
31
32 import org.netbeans.modules.xml.wsdl.model.WSDLComponent;
33 import org.netbeans.modules.xml.wsdl.ui.commands.NamedPropertyAdapter;
34 import org.netbeans.modules.xml.wsdl.ui.model.StringAttribute;
35 import org.netbeans.modules.xml.wsdl.ui.view.property.BaseAttributeProperty;
36 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.NewTypesFactory;
37 import org.netbeans.modules.xml.xam.ComponentEvent;
38 import org.netbeans.modules.xml.xam.Named;
39 import org.openide.ErrorManager;
40 import org.openide.nodes.Children;
41 import org.openide.nodes.Node;
42 import org.openide.util.NbBundle;
43
44
45 /**
46  * @author radval
47  *
48  * To change the template for this generated type comment go to
49  * Window - Preferences - Java - Code Generation - Code and Comments
50  */

51 public abstract class WSDLNamedElementNode extends WSDLElementContainerNode {
52     public static final String JavaDoc NAME_PROP = "name";
53     
54     private NamedPropertyAdapter mPropertyAdapter;
55     private String JavaDoc nameAttributeName;
56     
57     public WSDLNamedElementNode(Children children,
58             WSDLComponent element,
59             NewTypesFactory newTypesFactory) {
60         super(children, element, newTypesFactory);
61     }
62     public WSDLNamedElementNode(Children children,
63             WSDLComponent element) {
64         super(children, element);
65     }
66     
67     
68     public void setNamedPropertyAdapter(NamedPropertyAdapter adapter) {
69         nameAttributeName = Named.NAME_PROPERTY;
70         this.mPropertyAdapter = adapter;
71         if(this.mPropertyAdapter != null) {
72             super.setName(this.mPropertyAdapter.getName());
73         }
74     }
75     
76     public void setNamedPropertyAdapter(String JavaDoc attributeName, NamedPropertyAdapter adapter) {
77         nameAttributeName = attributeName;
78         this.mPropertyAdapter = adapter;
79         if(this.mPropertyAdapter != null) {
80             super.setName(this.mPropertyAdapter.getName());
81         }
82     }
83     
84     @Override JavaDoc
85     public void setName(String JavaDoc name) {
86         if(this.mPropertyAdapter != null && isEditable()) {
87             this.mPropertyAdapter.setName(name);
88         }
89         
90     }
91     
92     @Override JavaDoc
93     public String JavaDoc getName() {
94         if (super.getName() == null)
95             return "";
96         return super.getName();
97     }
98   
99     
100     //a named element node has a name which can be renamed
101
@Override JavaDoc
102     public boolean canRename() {
103         return isEditable();
104     }
105     
106     @Override JavaDoc
107     protected Node.Property createAttributeProperty(QName JavaDoc attrQName) {
108         Node.Property attrValueProperty = null;
109         try {
110             String JavaDoc attrName = attrQName.getLocalPart();
111             //name
112
if(attrName.equals(nameAttributeName) && mPropertyAdapter != null) { //NOT I18N
113
attrValueProperty = new BaseAttributeProperty(mPropertyAdapter,
114                         String JavaDoc.class,
115                         "getName",
116                         "setName");
117                 attrValueProperty.setName(NbBundle.getMessage(WSDLNamedElementNode.class, "PROP_NAME_NAME"));
118                 
119             } else {
120                 attrValueProperty = super.createAttributeProperty(attrQName);
121             }
122             
123         } catch(Exception JavaDoc ex) {
124             mLogger.log(Level.SEVERE, "failed to create property sheet for "+ getWSDLComponent(), ex);
125             ErrorManager.getDefault().notify(ex);
126         }
127         return attrValueProperty;
128     }
129     
130
131     
132     @Override JavaDoc
133     public void valueChanged(ComponentEvent evt) {
134         Object JavaDoc source = evt.getSource();
135         if(!(source instanceof WSDLComponent)) {
136             return;
137         }
138         
139         WSDLComponent wsdlComponent = (WSDLComponent) source;
140         
141         if(!isSameAsMyWSDLElement(wsdlComponent)) {
142             return;
143         }
144         
145         String JavaDoc nodeName = getName();
146         String JavaDoc nameAttrValue = "";
147         if (mPropertyAdapter != null) {
148             nameAttrValue = mPropertyAdapter.getName();
149         } else {
150             if(nameAttributeName != null) {
151                 nameAttrValue = wsdlComponent.getAttribute(new StringAttribute(nameAttributeName));
152             }
153         }
154         
155         if(nameAttrValue != null && !nameAttrValue.equals(nodeName)) {
156             super.setName(nameAttrValue);
157             setDisplayName(nameAttrValue);
158         }
159         
160         super.valueChanged(evt);
161     }
162     
163     
164     
165     
166 }
167
Popular Tags