blob: 1ad9ab6c94801d9c5e3124bcc9b57ee40370c710 [file] [log] [blame]
cbateman6d3359f2006-11-28 20:23:25 +00001/***************************************************************************************************
2 * Copyright (c) 2005, 2006 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 * Oracle Corporation - revision
11 **************************************************************************************************/
12package org.eclipse.jst.jsf.facesconfig.edit.provider;
13
14import java.util.Collection;
15import java.util.List;
16
17import org.eclipse.emf.common.notify.AdapterFactory;
18import org.eclipse.emf.common.notify.Notification;
19import org.eclipse.emf.common.util.ResourceLocator;
20import org.eclipse.emf.ecore.EStructuralFeature;
21import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
22import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
23import org.eclipse.emf.edit.provider.IItemLabelProvider;
24import org.eclipse.emf.edit.provider.IItemPropertySource;
25import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
cbateman26b58832007-10-02 17:57:10 +000026import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
cbateman6d3359f2006-11-28 20:23:25 +000027import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
28import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
29import org.eclipse.emf.edit.provider.ItemProviderAdapter;
30import org.eclipse.emf.edit.provider.ViewerNotification;
cbateman39c15422006-12-21 02:36:52 +000031import org.eclipse.jst.jsf.facesconfig.FacesConfigPlugin;
cbateman6d3359f2006-11-28 20:23:25 +000032import org.eclipse.jst.jsf.facesconfig.emf.ConverterType;
gkessler97f5fcd2010-03-17 23:28:55 +000033import org.eclipse.jst.jsf.facesconfig.emf.DisplayNameType;
cbateman6d3359f2006-11-28 20:23:25 +000034import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigFactory;
35import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigPackage;
36
37/**
gkessler40272782010-03-17 00:22:30 +000038 * This is the item provider adapter for a {@link org.eclipse.jst.jsf.facesconfig.emf.ConverterType} object.
cbateman26b58832007-10-02 17:57:10 +000039 * <!-- begin-user-doc -->
40 * @extends ITableItemLabelProvider
41 * <!-- end-user-doc -->
cbateman6d3359f2006-11-28 20:23:25 +000042 * @generated
43 */
gkessler40272782010-03-17 00:22:30 +000044@SuppressWarnings("nls")
cbateman6d3359f2006-11-28 20:23:25 +000045public class ConverterTypeItemProvider extends ItemProviderAdapter implements
cbateman26b58832007-10-02 17:57:10 +000046 IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource, ITableItemLabelProvider {
cbateman39c15422006-12-21 02:36:52 +000047 /**
gkessler40272782010-03-17 00:22:30 +000048 * <!-- begin-user-doc --> <!-- end-user-doc -->
49 * @generated
50 */
gkesslercfc53082008-11-18 22:25:04 +000051 public static final String copyright = "Copyright (c) 2005, 2006 IBM Corporation and others"; //$NON-NLS-1$
cbateman6d3359f2006-11-28 20:23:25 +000052
53 /**
gkessler40272782010-03-17 00:22:30 +000054 * This constructs an instance from a factory and a notifier.
cbateman26b58832007-10-02 17:57:10 +000055 * <!-- begin-user-doc -->
56 * @param adapterFactory
57 * <!-- end-user-doc -->
cbateman6d3359f2006-11-28 20:23:25 +000058 * @generated
59 */
60 public ConverterTypeItemProvider(AdapterFactory adapterFactory) {
gkessler40272782010-03-17 00:22:30 +000061 super(adapterFactory);
62 }
cbateman6d3359f2006-11-28 20:23:25 +000063
64 /**
65 * This returns the property descriptors for the adapted class. <!--
66 * begin-user-doc --> <!-- end-user-doc -->
67 *
68 * @generated
69 */
70 public List getPropertyDescriptors(Object object) {
gkessler40272782010-03-17 00:22:30 +000071 if (itemPropertyDescriptors == null) {
72 super.getPropertyDescriptors(object);
cbateman6d3359f2006-11-28 20:23:25 +000073
gkessler40272782010-03-17 00:22:30 +000074 addIdPropertyDescriptor(object);
75 }
76 return itemPropertyDescriptors;
77 }
cbateman6d3359f2006-11-28 20:23:25 +000078
79 /**
gkessler40272782010-03-17 00:22:30 +000080 * This adds a property descriptor for the Id feature.
cbateman26b58832007-10-02 17:57:10 +000081 * <!-- begin-user-doc -->
cbateman26b58832007-10-02 17:57:10 +000082 * @param object
83 * <!-- end-user-doc -->
gkessler40272782010-03-17 00:22:30 +000084 * @generated
85 */
cbateman6d3359f2006-11-28 20:23:25 +000086 protected void addIdPropertyDescriptor(Object object) {
gkessler40272782010-03-17 00:22:30 +000087 itemPropertyDescriptors.add
88 (createItemPropertyDescriptor
89 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
90 getResourceLocator(),
91 getString("_UI_ConverterType_id_feature"),
92 getString("_UI_PropertyDescriptor_description", "_UI_ConverterType_id_feature", "_UI_ConverterType_type"),
93 FacesConfigPackage.Literals.CONVERTER_TYPE__ID,
94 true,
95 false,
96 false,
97 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
98 null,
99 null));
100 }
cbateman6d3359f2006-11-28 20:23:25 +0000101
cbateman39c15422006-12-21 02:36:52 +0000102 /**
gkessler40272782010-03-17 00:22:30 +0000103 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
104 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
105 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
106 * <!-- begin-user-doc --> <!-- end-user-doc -->
107 * @generated
108 */
cbateman6d3359f2006-11-28 20:23:25 +0000109 public Collection getChildrenFeatures(Object object) {
gkessler40272782010-03-17 00:22:30 +0000110 if (childrenFeatures == null) {
111 super.getChildrenFeatures(object);
112 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__DESCRIPTION);
113 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__DISPLAY_NAME);
114 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__ICON);
115 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_ID);
116 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_FOR_CLASS);
117 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_CLASS);
118 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__ATTRIBUTE);
119 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__PROPERTY);
120 childrenFeatures.add(FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_EXTENSION);
121 }
122 return childrenFeatures;
123 }
cbateman6d3359f2006-11-28 20:23:25 +0000124
cbateman39c15422006-12-21 02:36:52 +0000125 /**
gkessler40272782010-03-17 00:22:30 +0000126 * <!-- begin-user-doc --> <!-- end-user-doc -->
127 * @generated
128 */
cbateman6d3359f2006-11-28 20:23:25 +0000129 protected EStructuralFeature getChildFeature(Object object, Object child) {
gkessler40272782010-03-17 00:22:30 +0000130 // Check the type of the specified child object and return the proper feature to use for
131 // adding (see {@link AddCommand}) it as a child.
cbateman6d3359f2006-11-28 20:23:25 +0000132
gkessler40272782010-03-17 00:22:30 +0000133 return super.getChildFeature(object, child);
134 }
cbateman6d3359f2006-11-28 20:23:25 +0000135
136 /**
137 * This returns ConverterType.gif. <!-- begin-user-doc --> <!-- end-user-doc
138 * -->
139 *
140 * @generated
141 */
142 public Object getImage(Object object) {
gkessler40272782010-03-17 00:22:30 +0000143 return overlayImage(object, getResourceLocator().getImage("full/obj16/ConverterType"));
144 }
cbateman6d3359f2006-11-28 20:23:25 +0000145
gkessler97f5fcd2010-03-17 23:28:55 +0000146 /**
147 * This returns the label text for the adapted class. <!-- begin-user-doc
cbateman6d3359f2006-11-28 20:23:25 +0000148 * --> <!-- end-user-doc -->
gkessler97f5fcd2010-03-17 23:28:55 +0000149 *
150 * @generated NOT
gkessler40272782010-03-17 00:22:30 +0000151 */
cbateman6d3359f2006-11-28 20:23:25 +0000152 public String getText(Object object) {
gkessler97f5fcd2010-03-17 23:28:55 +0000153 String label = null;
154
155 if (((ConverterType) object).getDisplayName() != null
156 && ((ConverterType) object).getDisplayName().size() > 0) {
157 label = ((DisplayNameType) ((ConverterType) object)
158 .getDisplayName().get(0)).getTextContent();
159 }
160
161 if (label == null && ((ConverterType) object).getConverterId() != null) {
162 label = ((ConverterType) object).getConverterId().getTextContent();
163 }
164
165 if (label == null || label.length() == 0) {
166 if (((ConverterType) object).getConverterClass() != null)
167 label = ((ConverterType) object).getConverterClass()
168 .getTextContent();
169 }
170 if (label == null || label.length() ==0) {
171 label = ((ConverterType) object).getId();
172 }
173
174 return label == null || label.length() == 0 ? getString("_UI_ConverterType_type")
175 : label;
176// : getString("_UI_ConverterType_type") + " " + label;
gkessler40272782010-03-17 00:22:30 +0000177 }
cbateman6d3359f2006-11-28 20:23:25 +0000178
cbateman39c15422006-12-21 02:36:52 +0000179 /**
gkessler40272782010-03-17 00:22:30 +0000180 * This handles model notifications by calling {@link #updateChildren} to update any cached
181 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
182 * <!-- begin-user-doc --> <!--
cbateman6d3359f2006-11-28 20:23:25 +0000183 * end-user-doc -->
gkessler40272782010-03-17 00:22:30 +0000184 * @generated
185 */
cbateman6d3359f2006-11-28 20:23:25 +0000186 public void notifyChanged(Notification notification) {
gkessler40272782010-03-17 00:22:30 +0000187 updateChildren(notification);
cbateman6d3359f2006-11-28 20:23:25 +0000188
gkessler40272782010-03-17 00:22:30 +0000189 switch (notification.getFeatureID(ConverterType.class)) {
190 case FacesConfigPackage.CONVERTER_TYPE__ID:
191 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
192 return;
193 case FacesConfigPackage.CONVERTER_TYPE__DESCRIPTION:
194 case FacesConfigPackage.CONVERTER_TYPE__DISPLAY_NAME:
195 case FacesConfigPackage.CONVERTER_TYPE__ICON:
196 case FacesConfigPackage.CONVERTER_TYPE__CONVERTER_ID:
197 case FacesConfigPackage.CONVERTER_TYPE__CONVERTER_FOR_CLASS:
198 case FacesConfigPackage.CONVERTER_TYPE__CONVERTER_CLASS:
199 case FacesConfigPackage.CONVERTER_TYPE__ATTRIBUTE:
200 case FacesConfigPackage.CONVERTER_TYPE__PROPERTY:
201 case FacesConfigPackage.CONVERTER_TYPE__CONVERTER_EXTENSION:
202 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
203 return;
204 }
205 super.notifyChanged(notification);
206 }
cbateman6d3359f2006-11-28 20:23:25 +0000207
cbateman39c15422006-12-21 02:36:52 +0000208 /**
gkessler40272782010-03-17 00:22:30 +0000209 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
210 * that can be created under this object.
211 * <!-- begin-user-doc
cbateman6d3359f2006-11-28 20:23:25 +0000212 * --> <!-- end-user-doc -->
gkessler40272782010-03-17 00:22:30 +0000213 * @generated
214 */
cbateman39c15422006-12-21 02:36:52 +0000215 protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
gkessler40272782010-03-17 00:22:30 +0000216 super.collectNewChildDescriptors(newChildDescriptors, object);
cbateman6d3359f2006-11-28 20:23:25 +0000217
gkessler40272782010-03-17 00:22:30 +0000218 newChildDescriptors.add
219 (createChildParameter
220 (FacesConfigPackage.Literals.CONVERTER_TYPE__DESCRIPTION,
221 FacesConfigFactory.eINSTANCE.createDescriptionType()));
cbateman6d3359f2006-11-28 20:23:25 +0000222
gkessler40272782010-03-17 00:22:30 +0000223 newChildDescriptors.add
224 (createChildParameter
225 (FacesConfigPackage.Literals.CONVERTER_TYPE__DISPLAY_NAME,
226 FacesConfigFactory.eINSTANCE.createDisplayNameType()));
cbateman6d3359f2006-11-28 20:23:25 +0000227
gkessler40272782010-03-17 00:22:30 +0000228 newChildDescriptors.add
229 (createChildParameter
230 (FacesConfigPackage.Literals.CONVERTER_TYPE__ICON,
231 FacesConfigFactory.eINSTANCE.createIconType()));
cbateman6d3359f2006-11-28 20:23:25 +0000232
gkessler40272782010-03-17 00:22:30 +0000233 newChildDescriptors.add
234 (createChildParameter
235 (FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_ID,
236 FacesConfigFactory.eINSTANCE.createConverterIdType()));
cbateman6d3359f2006-11-28 20:23:25 +0000237
gkessler40272782010-03-17 00:22:30 +0000238 newChildDescriptors.add
239 (createChildParameter
240 (FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_FOR_CLASS,
241 FacesConfigFactory.eINSTANCE.createConverterForClassType()));
cbateman39c15422006-12-21 02:36:52 +0000242
gkessler40272782010-03-17 00:22:30 +0000243 newChildDescriptors.add
244 (createChildParameter
245 (FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_CLASS,
246 FacesConfigFactory.eINSTANCE.createConverterClassType()));
247
248 newChildDescriptors.add
249 (createChildParameter
250 (FacesConfigPackage.Literals.CONVERTER_TYPE__ATTRIBUTE,
251 FacesConfigFactory.eINSTANCE.createAttributeType()));
252
253 newChildDescriptors.add
254 (createChildParameter
255 (FacesConfigPackage.Literals.CONVERTER_TYPE__PROPERTY,
256 FacesConfigFactory.eINSTANCE.createPropertyType()));
257
258 newChildDescriptors.add
259 (createChildParameter
260 (FacesConfigPackage.Literals.CONVERTER_TYPE__CONVERTER_EXTENSION,
261 FacesConfigFactory.eINSTANCE.createConverterExtensionType()));
262 }
cbateman6d3359f2006-11-28 20:23:25 +0000263
264 /**
265 * Return the resource locator for this item provider's resources. <!--
266 * begin-user-doc --> <!-- end-user-doc -->
267 *
268 * @generated
269 */
270 public ResourceLocator getResourceLocator() {
gkessler40272782010-03-17 00:22:30 +0000271 return FacesConfigPlugin.INSTANCE;
272 }
cbateman6d3359f2006-11-28 20:23:25 +0000273
274 /* (non-Javadoc)
275 * @see org.eclipse.emf.edit.provider.ITableItemLabelProvider#getColumnImage(java.lang.Object, int)
276 */
277 public Object getColumnImage(Object object, int columnIndex) {
cbateman6d3359f2006-11-28 20:23:25 +0000278 if(columnIndex ==0)
279 return getImage(object);
280 return null;
281 }
282
283 /* (non-Javadoc)
284 * @see org.eclipse.emf.edit.provider.ITableItemLabelProvider#getColumnText(java.lang.Object, int)
285 */
286 public String getColumnText(Object object, int columnIndex) {
cbateman6d3359f2006-11-28 20:23:25 +0000287 switch (columnIndex) {
gkessler97f5fcd2010-03-17 23:28:55 +0000288
cbateman6d3359f2006-11-28 20:23:25 +0000289 case 0:
290 return getText(object);
291 case 1:
gkessler97f5fcd2010-03-17 23:28:55 +0000292 return getString("_UI_ConverterType_type"); //$NON-NLS-1$
cbateman6d3359f2006-11-28 20:23:25 +0000293 }
294 return null;
295 }
296
297}