01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * 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: package org.netbeans.modules.xslt.tmap.nodes.properties;
20:
21: import javax.xml.namespace.QName;
22: import org.netbeans.modules.xslt.tmap.model.api.TMapComponent;
23: import org.netbeans.modules.xslt.tmap.nodes.DecoratedTMapComponent;
24: import org.netbeans.modules.xslt.tmap.nodes.TMapComponentNode;
25:
26: /**
27: *
28: * @author Vitaly Bychkov
29: * @author nk160297
30: */
31: public class QNamePropEditor extends StringPropEditor {
32:
33: public QNamePropEditor() {
34: }
35:
36: public boolean isEditable() {
37: return false;
38: }
39:
40: public String getAsText() {
41: Object value = super .getValue();
42: if (value == null)
43: return "";
44: assert (value instanceof QName);
45: //
46: String retValue = null;
47: QName qValue = (QName) value;
48: //
49: String prefix = qValue.getPrefix();
50: if (prefix == null || prefix.length() == 0) {
51: //
52: // Try calculate prefix here
53: if (myPropertyEnv != null) {
54: Object[] beans = myPropertyEnv.getBeans();
55: if (beans != null && beans.length > 0) {
56: Object firstBean = beans[0];
57: if (firstBean != null
58: && firstBean instanceof TMapComponentNode) {
59: DecoratedTMapComponent refDecObj = ((TMapComponentNode) firstBean)
60: .getReference();
61: TMapComponent refObj = refDecObj == null ? null
62: : refDecObj.getOriginal();
63: if (refObj != null) {
64: retValue = ResolverUtility
65: .qName2DisplayText(qValue, refObj);
66: }
67: }
68: }
69: }
70: } else {
71: retValue = ResolverUtility.qName2DisplayText(qValue);
72: }
73: return retValue;
74: }
75:
76: public void setAsText(String text)
77: throws java.lang.IllegalArgumentException {
78: if (text == null || text.length() == 0) {
79: setValue(null);
80: } else {
81: setValue(QName.valueOf(text));
82: }
83: }
84:
85: }
|