001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package org.netbeans.modules.vmd.api.model.descriptors;
042:
043: import java.util.Arrays;
044: import java.util.Collection;
045: import java.util.List;
046:
047: import org.netbeans.modules.vmd.api.model.ComponentDescriptor;
048: import org.netbeans.modules.vmd.api.model.PaletteDescriptor;
049: import org.netbeans.modules.vmd.api.model.Presenter;
050: import org.netbeans.modules.vmd.api.model.PropertyDescriptor;
051: import org.netbeans.modules.vmd.api.model.PropertyValue;
052: import org.netbeans.modules.vmd.api.model.TypeDescriptor;
053: import org.netbeans.modules.vmd.api.model.TypeID;
054: import org.netbeans.modules.vmd.api.model.VersionDescriptor;
055: import org.netbeans.modules.vmd.api.model.Versionable;
056: import org.netbeans.modules.vmd.api.model.common.DefaultVersionDescriptor;
057: import org.netbeans.modules.vmd.api.model.common.PaletteSupport;
058: import org.netbeans.modules.vmd.api.model.common.TypesSupport;
059: import org.netbeans.modules.vmd.api.model.presenters.TestPresenter1;
060: import org.netbeans.modules.vmd.api.model.presenters.TestPresenter2;
061:
062: import static org.netbeans.modules.vmd.api.model.utils.TestTypes.*;
063:
064: /**
065: * @author Karol Harezlak
066: */
067: public final class FirstCD extends ComponentDescriptor {
068:
069: public static final String PROPERTY_TEST = "test";//NOI18N
070: public static final String PROPERTY_REFERENCE = "reference"; //NOI18N
071: public static final String PROPERTY_READ_ONLY = "readOnly"; //NOI18N
072: public static final String PROPERTY_READ_WRITE = "readWrite"; //NOI18N
073: public static final String PROPERTY_ARRAY = "array"; //NOI18N
074:
075: public static final String DEFAULT_VALUE = "value"; //NOI18N
076: public static final Object DEFAULT_VALUE_REFERENCE = null; //NOI18N
077: public static final String DEFAULT_VALUE_READ_ONLY = "readOnly"; //NOI18N
078: public static final String DEFAULT_VALUE_READ_WRITE = "readWrite"; //NOI18N
079:
080: public static final TypeID TYPEID_CLASS = new TypeID(
081: TypeID.Kind.COMPONENT, "#Class"); // NOI18N
082: public static final TypeID TYPEID_ARRAY = new TypeID(
083: TypeID.Kind.PRIMITIVE, "#Array"); // NOI18N
084:
085: public TypeDescriptor getTypeDescriptor() {
086: return new TypeDescriptor(SuperFirstCD.TYPEID_CLASS,
087: TYPEID_CLASS, true, true);
088: }
089:
090: public Collection<String> getExcludedPropertyDescriptorNames() {
091: return null;
092: }
093:
094: public List<PropertyDescriptor> getDeclaredPropertyDescriptors() {
095: return Arrays
096: .asList(
097: new PropertyDescriptor(
098: PROPERTY_TEST,
099: TYPEID_JAVA_LANG_STRING,
100: TypesSupport
101: .createStringValue(DEFAULT_VALUE),
102: true, true, Versionable.FOREVER), //NOI18N
103: new PropertyDescriptor(PROPERTY_REFERENCE,
104: SecondCD.TYPEID_CLASS, PropertyValue
105: .createNull(), true, true,
106: Versionable.FOREVER), // NOI18N
107: new PropertyDescriptor(
108: PROPERTY_READ_ONLY,
109: TYPEID_JAVA_LANG_STRING,
110: TypesSupport
111: .createStringValue(DEFAULT_VALUE_READ_ONLY),
112: true, true, Versionable.FOREVER), //NOI18N
113: new PropertyDescriptor(
114: PROPERTY_READ_WRITE,
115: TYPEID_JAVA_LANG_STRING,
116: TypesSupport
117: .createStringValue(DEFAULT_VALUE_READ_WRITE),
118: false, false, Versionable.FOREVER), // NOI18N
119: new PropertyDescriptor(
120: PROPERTY_ARRAY,
121: TYPEID_ARRAY.getArrayType()
122: .getArrayType(),
123: PropertyValue
124: .createEmptyArray(TYPEID_ARRAY),
125: false, false, Versionable.FOREVER) // NOI18N
126: );
127: }
128:
129: public PaletteDescriptor getPaletteDescriptor() {
130: return PaletteSupport.create();
131: }
132:
133: public VersionDescriptor getVersionDescriptor() {
134: return DefaultVersionDescriptor
135: .createForeverCompatibleVersionDescriptor();
136: }
137:
138: public List<? extends Presenter> createPresenters() {
139: return Arrays.asList(new TestPresenter1(),
140: new TestPresenter2(), new TestPresenter2());
141: }
142:
143: }
|