1 7 package org.enhydra.dods.editor.Doml.provider; 8 9 10 import java.util.Collection ; 11 import java.util.List ; 12 13 import org.eclipse.emf.common.notify.AdapterFactory; 14 import org.eclipse.emf.common.notify.Notification; 15 16 import org.eclipse.emf.common.util.ResourceLocator; 17 18 import org.eclipse.emf.ecore.EStructuralFeature; 19 20 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; 21 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; 22 import org.eclipse.emf.edit.provider.IItemLabelProvider; 23 import org.eclipse.emf.edit.provider.IItemPropertySource; 24 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; 25 import org.eclipse.emf.edit.provider.ITreeItemContentProvider; 26 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; 27 import org.eclipse.emf.edit.provider.ItemProviderAdapter; 28 import org.eclipse.emf.edit.provider.ViewerNotification; 29 30 import org.enhydra.dods.editor.Doml.DomlFactory; 31 import org.enhydra.dods.editor.Doml.DomlPackage; 32 import org.enhydra.dods.editor.Doml.PackageType; 33 34 40 public class PackageTypeItemProvider 41 extends ItemProviderAdapter 42 implements 43 IEditingDomainItemProvider, 44 IStructuredItemContentProvider, 45 ITreeItemContentProvider, 46 IItemLabelProvider, 47 IItemPropertySource { 48 54 public PackageTypeItemProvider(AdapterFactory adapterFactory) { 55 super(adapterFactory); 56 } 57 58 64 public List getPropertyDescriptors(Object object) { 65 if (itemPropertyDescriptors == null) { 66 super.getPropertyDescriptors(object); 67 68 addIdPropertyDescriptor(object); 69 } 70 return itemPropertyDescriptors; 71 } 72 73 79 protected void addIdPropertyDescriptor(Object object) { 80 itemPropertyDescriptors.add 81 (new ItemPropertyDescriptor 82 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 83 getResourceLocator(), 84 getString("_UI_PackageType_id_feature"), 85 getString("_UI_PropertyDescriptor_description", "_UI_PackageType_id_feature", "_UI_PackageType_type"), 86 DomlPackage.eINSTANCE.getPackageType_Id(), 87 true, 88 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 89 } 90 91 99 public Collection getChildrenFeatures(Object object) { 100 if (childrenFeatures == null) { 101 super.getChildrenFeatures(object); 102 childrenFeatures.add(DomlPackage.eINSTANCE.getPackageType_Package()); 103 childrenFeatures.add(DomlPackage.eINSTANCE.getPackageType_Table()); 104 } 105 return childrenFeatures; 106 } 107 108 113 protected EStructuralFeature getChildFeature(Object object, Object child) { 114 117 return super.getChildFeature(object, child); 118 } 119 120 126 public Object getImage(Object object) { 127 return getResourceLocator().getImage("full/obj16/PackageType"); 128 } 129 130 136 public String getText(Object object) { 137 String label = ((PackageType)object).getId(); 138 return label == null || label.length() == 0 ? 139 getString("_UI_PackageType_type") : 140 getString("_UI_PackageType_type") + " " + label; 141 } 142 143 150 public void notifyChanged(Notification notification) { 151 updateChildren(notification); 152 153 switch (notification.getFeatureID(PackageType.class)) { 154 case DomlPackage.PACKAGE_TYPE__ID: 155 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); 156 return; 157 case DomlPackage.PACKAGE_TYPE__PACKAGE: 158 case DomlPackage.PACKAGE_TYPE__TABLE: 159 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); 160 return; 161 } 162 super.notifyChanged(notification); 163 } 164 165 172 protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { 173 super.collectNewChildDescriptors(newChildDescriptors, object); 174 175 newChildDescriptors.add 176 (createChildParameter 177 (DomlPackage.eINSTANCE.getPackageType_Package(), 178 DomlFactory.eINSTANCE.createPackageType())); 179 180 newChildDescriptors.add 181 (createChildParameter 182 (DomlPackage.eINSTANCE.getPackageType_Table(), 183 DomlFactory.eINSTANCE.createTableType())); 184 } 185 186 192 public ResourceLocator getResourceLocator() { 193 return DomlEditPlugin.INSTANCE; 194 } 195 196 } 197 | Popular Tags |