KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > view > property > XSDEnumeratedAttributeProperty


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 Jun 30, 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.property;
27
28 import java.beans.PropertyEditor JavaDoc;
29 import java.util.ArrayList JavaDoc;
30 import java.util.Collection JavaDoc;
31
32 import org.netbeans.modules.xml.schema.model.Enumeration;
33 import org.netbeans.modules.xml.schema.model.SimpleType;
34 import org.netbeans.modules.xml.wsdl.ui.api.property.ComboBoxPropertyEditor;
35 import org.netbeans.modules.xml.wsdl.ui.api.property.PropertyAdapter;
36 import org.openide.nodes.PropertySupport;
37 import org.openide.util.NbBundle;
38
39 /**
40  * @author radval
41  *
42  * To change the template for this generated type comment go to
43  * Window - Preferences - Java - Code Generation - Code and Comments
44  */

45 public class XSDEnumeratedAttributeProperty extends PropertySupport.Reflection {
46     
47     private SimpleType mType;
48     private PropertyAdapter mPropAdapter;
49     private boolean optional;
50     private String JavaDoc valueNotSetMessage = NbBundle.getMessage(XSDEnumeratedAttributeProperty.class, "LBL_ValueNotSet");
51     
52     public XSDEnumeratedAttributeProperty(SimpleType type,
53                                             PropertyAdapter instance,
54                                             Class JavaDoc valueType,
55                                             String JavaDoc getter,
56                                             String JavaDoc setter, boolean isOptional) throws NoSuchMethodException JavaDoc {
57         super(instance, valueType, getter, setter);
58         this.mType = type;
59         mPropAdapter = instance;
60         optional = isOptional;
61     }
62     
63     @Override JavaDoc
64     public PropertyEditor JavaDoc getPropertyEditor() {
65         String JavaDoc[] enuValues = getAllEnumeratedValues();
66         return new ComboBoxPropertyEditor(enuValues);
67     }
68     
69     private String JavaDoc[] getAllEnumeratedValues() {
70         ArrayList JavaDoc<String JavaDoc> enuValueList = new ArrayList JavaDoc<String JavaDoc>();
71         if (optional) {
72             enuValueList.add(valueNotSetMessage);
73         }
74         Collection JavaDoc<Enumeration> coll = mType.getDefinition().getChildren(Enumeration.class);
75         if(coll != null) {
76             for(Enumeration enuFacet : coll) {
77                 enuValueList.add(enuFacet.getValue());
78             }
79         }
80         return enuValueList.toArray(new String JavaDoc[] {});
81     }
82     
83     @Override JavaDoc
84     public boolean canWrite() {
85         return mPropAdapter.isWritable();
86     }
87     
88 }
89
90
91
92
Popular Tags