KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > abe > nodes > properties > NamespaceProperty


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  * NamespaceProperty.java
22  *
23  * Created on January 5, 2006, 3:21 PM
24  *
25  */

26
27 package org.netbeans.modules.xml.schema.abe.nodes.properties;
28
29 import java.lang.reflect.InvocationTargetException JavaDoc;
30 import java.net.URI JavaDoc;
31 import java.net.URISyntaxException JavaDoc;
32 import org.netbeans.modules.xml.axi.AXIComponent;
33 import org.netbeans.modules.xml.schema.ui.nodes.schema.SchemaNode;
34 import org.openide.ErrorManager;
35 import org.openide.util.NbBundle;
36
37 /**
38  * This class provides property support for properties having namespace uris.
39  * @author Ajit Bhate
40  */

41 public class NamespaceProperty extends BaseABENodeProperty {
42     
43     private String JavaDoc typeDisplayName;
44     /**
45      * Creates a new instance of NamespaceProperty.
46      *
47      *
48      * @param component The schema component which property belongs to.
49      * @param property The property name.
50      * @param propDispName The display name of the property.
51      * @param propDesc Short description about the property.
52      * @throws java.lang.NoSuchMethodException If no getter and setter for the property are found
53      */

54     public NamespaceProperty(AXIComponent component,
55             String JavaDoc property, String JavaDoc dispName, String JavaDoc desc, String JavaDoc typeDisplayName)
56             throws NoSuchMethodException JavaDoc {
57             super(component,String JavaDoc.class,property,dispName,desc,null);
58             this.typeDisplayName = typeDisplayName;
59     }
60     
61     public void setValue(Object JavaDoc o) throws IllegalAccessException JavaDoc, InvocationTargetException JavaDoc {
62         if(o==null) {
63             super.setValue(null);
64         } else if(o instanceof String JavaDoc) {
65             try {
66                 new URI JavaDoc((String JavaDoc) o);
67                 super.setValue(o);
68             } catch (URISyntaxException JavaDoc urse) {
69                 String JavaDoc msg = NbBundle.getMessage(SchemaNode.class, "MSG_Invalid_URI",o); //NOI18N
70
IllegalArgumentException JavaDoc iae = new IllegalArgumentException JavaDoc(msg);
71                 ErrorManager.getDefault().annotate(iae, ErrorManager.USER,
72                         msg, msg, urse, new java.util.Date JavaDoc());
73                 throw iae;
74             }
75         }
76     }
77     /**
78      * This method returns the property editor.
79      * Overridden to return special editor.
80      */

81     @Override JavaDoc
82     public java.beans.PropertyEditor JavaDoc getPropertyEditor() {
83         return new NamespaceEditor((AXIComponent) super.getComponent(), typeDisplayName,
84                 getDisplayName());
85     }
86     
87 }
88
Popular Tags