KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > emf > ecore > provider > ETypedElementItemProvider


1 /**
2  * <copyright>
3  *
4  * Copyright (c) 2002-2004 IBM Corporation and others.
5  * All rights reserved. This program and the accompanying materials
6  * are made available under the terms of the Eclipse Public License v1.0
7  * which accompanies this distribution, and is available at
8  * http://www.eclipse.org/legal/epl-v10.html
9  *
10  * Contributors:
11  * IBM - Initial API and implementation
12  *
13  * </copyright>
14  *
15  * $Id: ETypedElementItemProvider.java,v 1.10 2005/06/08 06:15:46 nickb Exp $
16  */

17 package org.eclipse.emf.ecore.provider;
18
19
20 import java.util.Collection JavaDoc;
21 import java.util.Iterator JavaDoc;
22 import java.util.List JavaDoc;
23
24 import org.eclipse.emf.common.notify.AdapterFactory;
25 import org.eclipse.emf.common.notify.Notification;
26 import org.eclipse.emf.common.util.ResourceLocator;
27 import org.eclipse.emf.ecore.EAttribute;
28 import org.eclipse.emf.ecore.EClass;
29 import org.eclipse.emf.ecore.EcorePackage;
30 import org.eclipse.emf.ecore.EDataType;
31 import org.eclipse.emf.ecore.ETypedElement;
32 import org.eclipse.emf.ecore.EReference;
33 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
34 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
35 import org.eclipse.emf.edit.provider.IItemLabelProvider;
36 import org.eclipse.emf.edit.provider.IItemPropertySource;
37 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
38 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
39 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
40
41
42 import org.eclipse.emf.edit.provider.ViewerNotification;
43
44 /**
45  * This is the item provider adapter for a {@link org.eclipse.emf.ecore.ETypedElement} object.
46  * <!-- begin-user-doc -->
47  * <!-- end-user-doc -->
48  * @generated
49  */

50 public class ETypedElementItemProvider
51   extends ENamedElementItemProvider
52   implements
53     IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
54 {
55   /**
56    * This constructs an instance from a factory and a notifier.
57    * <!-- begin-user-doc -->
58    * <!-- end-user-doc -->
59    * @generated
60    */

61   public ETypedElementItemProvider(AdapterFactory adapterFactory)
62   {
63     super(adapterFactory);
64   }
65
66   /**
67    * This returns the property descriptors for the adapted class.
68    * <!-- begin-user-doc -->
69    * <!-- end-user-doc -->
70    * @generated
71    */

72   public List JavaDoc getPropertyDescriptors(Object JavaDoc object)
73   {
74     if (itemPropertyDescriptors == null)
75     {
76       super.getPropertyDescriptors(object);
77
78       addOrderedPropertyDescriptor(object);
79       addUniquePropertyDescriptor(object);
80       addLowerBoundPropertyDescriptor(object);
81       addUpperBoundPropertyDescriptor(object);
82       addManyPropertyDescriptor(object);
83       addRequiredPropertyDescriptor(object);
84       addETypePropertyDescriptor(object);
85     }
86     return itemPropertyDescriptors;
87   }
88
89   /**
90    * This adds a property descriptor for the Ordered feature.
91    * <!-- begin-user-doc -->
92    * <!-- end-user-doc -->
93    * @generated
94    */

95   protected void addOrderedPropertyDescriptor(Object JavaDoc object)
96   {
97     itemPropertyDescriptors.add
98       (createItemPropertyDescriptor
99         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
100          getResourceLocator(),
101          getString("_UI_ETypedElement_ordered_feature"),
102          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_ordered_feature", "_UI_ETypedElement_type"),
103          EcorePackage.eINSTANCE.getETypedElement_Ordered(),
104          true,
105          ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
106          null,
107          null));
108   }
109
110   /**
111    * This adds a property descriptor for the Unique feature.
112    * <!-- begin-user-doc -->
113    * <!-- end-user-doc -->
114    * @generated
115    */

116   protected void addUniquePropertyDescriptor(Object JavaDoc object)
117   {
118     itemPropertyDescriptors.add
119       (createItemPropertyDescriptor
120         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
121          getResourceLocator(),
122          getString("_UI_ETypedElement_unique_feature"),
123          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_unique_feature", "_UI_ETypedElement_type"),
124          EcorePackage.eINSTANCE.getETypedElement_Unique(),
125          true,
126          ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
127          null,
128          null));
129   }
130
131   /**
132    * This adds a property descriptor for the Lower Bound feature.
133    * <!-- begin-user-doc -->
134    * <!-- end-user-doc -->
135    * @generated
136    */

137   protected void addLowerBoundPropertyDescriptor(Object JavaDoc object)
138   {
139     itemPropertyDescriptors.add
140       (createItemPropertyDescriptor
141         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
142          getResourceLocator(),
143          getString("_UI_ETypedElement_lowerBound_feature"),
144          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_lowerBound_feature", "_UI_ETypedElement_type"),
145          EcorePackage.eINSTANCE.getETypedElement_LowerBound(),
146          true,
147          ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
148          null,
149          null));
150   }
151
152   /**
153    * This adds a property descriptor for the Upper Bound feature.
154    * <!-- begin-user-doc -->
155    * <!-- end-user-doc -->
156    * @generated
157    */

158   protected void addUpperBoundPropertyDescriptor(Object JavaDoc object)
159   {
160     itemPropertyDescriptors.add
161       (createItemPropertyDescriptor
162         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
163          getResourceLocator(),
164          getString("_UI_ETypedElement_upperBound_feature"),
165          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_upperBound_feature", "_UI_ETypedElement_type"),
166          EcorePackage.eINSTANCE.getETypedElement_UpperBound(),
167          true,
168          ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
169          null,
170          null));
171   }
172
173   /**
174    * This adds a property descriptor for the Many feature.
175    * <!-- begin-user-doc -->
176    * <!-- end-user-doc -->
177    * @generated
178    */

179   protected void addManyPropertyDescriptor(Object JavaDoc object)
180   {
181     itemPropertyDescriptors.add
182       (createItemPropertyDescriptor
183         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
184          getResourceLocator(),
185          getString("_UI_ETypedElement_many_feature"),
186          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_many_feature", "_UI_ETypedElement_type"),
187          EcorePackage.eINSTANCE.getETypedElement_Many(),
188          false,
189          ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
190          null,
191          null));
192   }
193
194   /**
195    * This adds a property descriptor for the Required feature.
196    * <!-- begin-user-doc -->
197    * <!-- end-user-doc -->
198    * @generated
199    */

200   protected void addRequiredPropertyDescriptor(Object JavaDoc object)
201   {
202     itemPropertyDescriptors.add
203       (createItemPropertyDescriptor
204         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
205          getResourceLocator(),
206          getString("_UI_ETypedElement_required_feature"),
207          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_required_feature", "_UI_ETypedElement_type"),
208          EcorePackage.eINSTANCE.getETypedElement_Required(),
209          false,
210          ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
211          null,
212          null));
213   }
214
215   /**
216    * This adds a property descriptor for the EType feature.
217    * <!-- begin-user-doc -->
218    * <!-- end-user-doc -->
219    * @generated NOT
220    */

221   protected void addETypePropertyDescriptor(Object JavaDoc object)
222   {
223     itemPropertyDescriptors.add
224       (new ItemPropertyDescriptor
225         (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
226          getString("_UI_ETypedElement_eType_feature"),
227          getString("_UI_PropertyDescriptor_description", "_UI_ETypedElement_eType_feature", "_UI_ETypedElement_type"),
228          EcorePackage.eINSTANCE.getETypedElement_EType(),
229          true)
230        {
231          public Collection JavaDoc getChoiceOfValues(Object JavaDoc object)
232          {
233            // Filter out types that aren't permitted.
234
//
235
Collection JavaDoc result = super.getChoiceOfValues(object);
236
237            for (Iterator JavaDoc i = EcorePackage.eINSTANCE.getEClassifiers().iterator(); i.hasNext(); )
238            {
239              Object JavaDoc classifier = i.next();
240              if (!result.contains(classifier))
241              {
242                result.add(classifier);
243              }
244            }
245
246            if (object instanceof EAttribute)
247            {
248              for (Iterator JavaDoc i = result.iterator(); i.hasNext(); )
249              {
250                if (i.next() instanceof EClass)
251                {
252                  i.remove();
253                }
254              }
255            }
256            else if (object instanceof EReference)
257            {
258              for (Iterator JavaDoc i = result.iterator(); i.hasNext(); )
259              {
260                if (i.next() instanceof EDataType)
261                {
262                  i.remove();
263                }
264              }
265            }
266
267            return result;
268          }
269        });
270   }
271
272
273   /**
274    * This returns the label text for the adapted class.
275    * <!-- begin-user-doc -->
276    * <!-- end-user-doc -->
277    * @generated
278    */

279   public String JavaDoc getText(Object JavaDoc object)
280   {
281     String JavaDoc label = ((ETypedElement)object).getName();
282     return label == null || label.length() == 0 ?
283       getString("_UI_ETypedElement_type") :
284       getString("_UI_ETypedElement_type") + " " + label;
285   }
286
287   /**
288    * This handles model notifications by calling {@link #updateChildren} to update any cached
289    * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
290    * <!-- begin-user-doc -->
291    * <!-- end-user-doc -->
292    * @generated
293    */

294   public void notifyChanged(Notification notification)
295   {
296     updateChildren(notification);
297
298     switch (notification.getFeatureID(ETypedElement.class))
299     {
300       case EcorePackage.ETYPED_ELEMENT__ORDERED:
301       case EcorePackage.ETYPED_ELEMENT__UNIQUE:
302       case EcorePackage.ETYPED_ELEMENT__LOWER_BOUND:
303       case EcorePackage.ETYPED_ELEMENT__UPPER_BOUND:
304       case EcorePackage.ETYPED_ELEMENT__MANY:
305       case EcorePackage.ETYPED_ELEMENT__REQUIRED:
306       case EcorePackage.ETYPED_ELEMENT__ETYPE:
307         fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
308         return;
309     }
310     super.notifyChanged(notification);
311   }
312
313   /**
314    * This adds to the collection of {@link org.eclipse.emf.edit.command.CommandParameter}s
315    * describing all of the children that can be created under this object.
316    * <!-- begin-user-doc -->
317    * <!-- end-user-doc -->
318    * @generated
319    */

320   protected void collectNewChildDescriptors(Collection JavaDoc newChildDescriptors, Object JavaDoc object)
321   {
322     super.collectNewChildDescriptors(newChildDescriptors, object);
323   }
324
325   /**
326    * Return the resource locator for this item provider's resources.
327    * <!-- begin-user-doc -->
328    * <!-- end-user-doc -->
329    * @generated
330    */

331   public ResourceLocator getResourceLocator()
332   {
333     return EcoreEditPlugin.INSTANCE;
334   }
335
336 }
337
Popular Tags