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.edit.provider.ComposeableAdapterFactory; 19 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; 20 import org.eclipse.emf.edit.provider.IItemLabelProvider; 21 import org.eclipse.emf.edit.provider.IItemPropertySource; 22 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; 23 import org.eclipse.emf.edit.provider.ITreeItemContentProvider; 24 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; 25 import org.eclipse.emf.edit.provider.ItemProviderAdapter; 26 import org.eclipse.emf.edit.provider.ViewerNotification; 27 28 import org.enhydra.dods.editor.Doml.DomlFactory; 29 import org.enhydra.dods.editor.Doml.DomlPackage; 30 import org.enhydra.dods.editor.Doml.IndexType; 31 32 38 public class IndexTypeItemProvider 39 extends ItemProviderAdapter 40 implements 41 IEditingDomainItemProvider, 42 IStructuredItemContentProvider, 43 ITreeItemContentProvider, 44 IItemLabelProvider, 45 IItemPropertySource { 46 52 public IndexTypeItemProvider(AdapterFactory adapterFactory) { 53 super(adapterFactory); 54 } 55 56 62 public List getPropertyDescriptors(Object object) { 63 if (itemPropertyDescriptors == null) { 64 super.getPropertyDescriptors(object); 65 66 addClusteredPropertyDescriptor(object); 67 addIdPropertyDescriptor(object); 68 addUniquePropertyDescriptor(object); 69 } 70 return itemPropertyDescriptors; 71 } 72 73 79 protected void addClusteredPropertyDescriptor(Object object) { 80 itemPropertyDescriptors.add 81 (new ItemPropertyDescriptor 82 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 83 getResourceLocator(), 84 getString("_UI_IndexType_clustered_feature"), 85 getString("_UI_PropertyDescriptor_description", "_UI_IndexType_clustered_feature", "_UI_IndexType_type"), 86 DomlPackage.eINSTANCE.getIndexType_Clustered(), 87 true, 88 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 89 } 90 91 97 protected void addIdPropertyDescriptor(Object object) { 98 itemPropertyDescriptors.add 99 (new ItemPropertyDescriptor 100 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 101 getResourceLocator(), 102 getString("_UI_IndexType_id_feature"), 103 getString("_UI_PropertyDescriptor_description", "_UI_IndexType_id_feature", "_UI_IndexType_type"), 104 DomlPackage.eINSTANCE.getIndexType_Id(), 105 true, 106 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 107 } 108 109 115 protected void addUniquePropertyDescriptor(Object object) { 116 itemPropertyDescriptors.add 117 (new ItemPropertyDescriptor 118 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 119 getResourceLocator(), 120 getString("_UI_IndexType_unique_feature"), 121 getString("_UI_PropertyDescriptor_description", "_UI_IndexType_unique_feature", "_UI_IndexType_type"), 122 DomlPackage.eINSTANCE.getIndexType_Unique(), 123 true, 124 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 125 } 126 127 135 public Collection getChildrenFeatures(Object object) { 136 if (childrenFeatures == null) { 137 super.getChildrenFeatures(object); 138 childrenFeatures.add(DomlPackage.eINSTANCE.getIndexType_IndexColumn()); 139 } 140 return childrenFeatures; 141 } 142 143 149 public Object getImage(Object object) { 150 return getResourceLocator().getImage("full/obj16/IndexType"); 151 } 152 153 159 public String getText(Object object) { 160 String label = ((IndexType)object).getId(); 161 return label == null || label.length() == 0 ? 162 getString("_UI_IndexType_type") : 163 getString("_UI_IndexType_type") + " " + label; 164 } 165 166 173 public void notifyChanged(Notification notification) { 174 updateChildren(notification); 175 176 switch (notification.getFeatureID(IndexType.class)) { 177 case DomlPackage.INDEX_TYPE__CLUSTERED: 178 case DomlPackage.INDEX_TYPE__ID: 179 case DomlPackage.INDEX_TYPE__UNIQUE: 180 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); 181 return; 182 case DomlPackage.INDEX_TYPE__INDEX_COLUMN: 183 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); 184 return; 185 } 186 super.notifyChanged(notification); 187 } 188 189 196 protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { 197 super.collectNewChildDescriptors(newChildDescriptors, object); 198 199 newChildDescriptors.add 200 (createChildParameter 201 (DomlPackage.eINSTANCE.getIndexType_IndexColumn(), 202 DomlFactory.eINSTANCE.createIndexColumnType())); 203 } 204 205 211 public ResourceLocator getResourceLocator() { 212 return DomlEditPlugin.INSTANCE; 213 } 214 215 } 216 | Popular Tags |