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.TableType; 33 34 40 public class TableTypeItemProvider 41 extends ItemProviderAdapter 42 implements 43 IEditingDomainItemProvider, 44 IStructuredItemContentProvider, 45 ITreeItemContentProvider, 46 IItemLabelProvider, 47 IItemPropertySource { 48 54 public TableTypeItemProvider(AdapterFactory adapterFactory) { 55 super(adapterFactory); 56 } 57 58 64 public List getPropertyDescriptors(Object object) { 65 if (itemPropertyDescriptors == null) { 66 super.getPropertyDescriptors(object); 67 68 addDbTableNamePropertyDescriptor(object); 69 addDirtyDOsPropertyDescriptor(object); 70 addGenerateInsecurePropertyDescriptor(object); 71 addGenerateSecurePropertyDescriptor(object); 72 addIdPropertyDescriptor(object); 73 addIsViewPropertyDescriptor(object); 74 addMassDeletesPropertyDescriptor(object); 75 addMassUpdatesPropertyDescriptor(object); 76 addMultidbPropertyDescriptor(object); 77 } 78 return itemPropertyDescriptors; 79 } 80 81 87 protected void addDbTableNamePropertyDescriptor(Object object) { 88 itemPropertyDescriptors.add 89 (new ItemPropertyDescriptor 90 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 91 getResourceLocator(), 92 getString("_UI_TableType_dbTableName_feature"), 93 getString("_UI_PropertyDescriptor_description", "_UI_TableType_dbTableName_feature", "_UI_TableType_type"), 94 DomlPackage.eINSTANCE.getTableType_DbTableName(), 95 true, 96 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 97 } 98 99 105 protected void addDirtyDOsPropertyDescriptor(Object object) { 106 itemPropertyDescriptors.add 107 (new ItemPropertyDescriptor 108 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 109 getResourceLocator(), 110 getString("_UI_TableType_dirtyDOs_feature"), 111 getString("_UI_PropertyDescriptor_description", "_UI_TableType_dirtyDOs_feature", "_UI_TableType_type"), 112 DomlPackage.eINSTANCE.getTableType_DirtyDOs(), 113 true, 114 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 115 } 116 117 123 protected void addGenerateInsecurePropertyDescriptor(Object object) { 124 itemPropertyDescriptors.add 125 (new ItemPropertyDescriptor 126 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 127 getResourceLocator(), 128 getString("_UI_TableType_generateInsecure_feature"), 129 getString("_UI_PropertyDescriptor_description", "_UI_TableType_generateInsecure_feature", "_UI_TableType_type"), 130 DomlPackage.eINSTANCE.getTableType_GenerateInsecure(), 131 true, 132 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 133 } 134 135 141 protected void addGenerateSecurePropertyDescriptor(Object object) { 142 itemPropertyDescriptors.add 143 (new ItemPropertyDescriptor 144 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 145 getResourceLocator(), 146 getString("_UI_TableType_generateSecure_feature"), 147 getString("_UI_PropertyDescriptor_description", "_UI_TableType_generateSecure_feature", "_UI_TableType_type"), 148 DomlPackage.eINSTANCE.getTableType_GenerateSecure(), 149 true, 150 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 151 } 152 153 159 protected void addIdPropertyDescriptor(Object object) { 160 itemPropertyDescriptors.add 161 (new ItemPropertyDescriptor 162 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 163 getResourceLocator(), 164 getString("_UI_TableType_id_feature"), 165 getString("_UI_PropertyDescriptor_description", "_UI_TableType_id_feature", "_UI_TableType_type"), 166 DomlPackage.eINSTANCE.getTableType_Id(), 167 true, 168 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 169 } 170 171 177 protected void addIsViewPropertyDescriptor(Object object) { 178 itemPropertyDescriptors.add 179 (new ItemPropertyDescriptor 180 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 181 getResourceLocator(), 182 getString("_UI_TableType_isView_feature"), 183 getString("_UI_PropertyDescriptor_description", "_UI_TableType_isView_feature", "_UI_TableType_type"), 184 DomlPackage.eINSTANCE.getTableType_IsView(), 185 true, 186 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 187 } 188 189 195 protected void addMassDeletesPropertyDescriptor(Object object) { 196 itemPropertyDescriptors.add 197 (new ItemPropertyDescriptor 198 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 199 getResourceLocator(), 200 getString("_UI_TableType_massDeletes_feature"), 201 getString("_UI_PropertyDescriptor_description", "_UI_TableType_massDeletes_feature", "_UI_TableType_type"), 202 DomlPackage.eINSTANCE.getTableType_MassDeletes(), 203 true, 204 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 205 } 206 207 213 protected void addMassUpdatesPropertyDescriptor(Object object) { 214 itemPropertyDescriptors.add 215 (new ItemPropertyDescriptor 216 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 217 getResourceLocator(), 218 getString("_UI_TableType_massUpdates_feature"), 219 getString("_UI_PropertyDescriptor_description", "_UI_TableType_massUpdates_feature", "_UI_TableType_type"), 220 DomlPackage.eINSTANCE.getTableType_MassUpdates(), 221 true, 222 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 223 } 224 225 231 protected void addMultidbPropertyDescriptor(Object object) { 232 itemPropertyDescriptors.add 233 (new ItemPropertyDescriptor 234 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 235 getResourceLocator(), 236 getString("_UI_TableType_multidb_feature"), 237 getString("_UI_PropertyDescriptor_description", "_UI_TableType_multidb_feature", "_UI_TableType_type"), 238 DomlPackage.eINSTANCE.getTableType_Multidb(), 239 true, 240 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 241 } 242 243 251 public Collection getChildrenFeatures(Object object) { 252 if (childrenFeatures == null) { 253 super.getChildrenFeatures(object); 254 childrenFeatures.add(DomlPackage.eINSTANCE.getTableType_Column()); 255 childrenFeatures.add(DomlPackage.eINSTANCE.getTableType_Index()); 256 } 257 return childrenFeatures; 258 } 259 260 265 protected EStructuralFeature getChildFeature(Object object, Object child) { 266 269 return super.getChildFeature(object, child); 270 } 271 272 278 public Object getImage(Object object) { 279 return getResourceLocator().getImage("full/obj16/TableType"); 280 } 281 282 288 public String getText(Object object) { 289 String label = ((TableType)object).getDbTableName(); 290 return label == null || label.length() == 0 ? 291 getString("_UI_TableType_type") : 292 getString("_UI_TableType_type") + " " + label; 293 } 294 295 302 public void notifyChanged(Notification notification) { 303 updateChildren(notification); 304 305 switch (notification.getFeatureID(TableType.class)) { 306 case DomlPackage.TABLE_TYPE__DB_TABLE_NAME: 307 case DomlPackage.TABLE_TYPE__DIRTY_DOS: 308 case DomlPackage.TABLE_TYPE__GENERATE_INSECURE: 309 case DomlPackage.TABLE_TYPE__GENERATE_SECURE: 310 case DomlPackage.TABLE_TYPE__ID: 311 case DomlPackage.TABLE_TYPE__IS_VIEW: 312 case DomlPackage.TABLE_TYPE__MASS_DELETES: 313 case DomlPackage.TABLE_TYPE__MASS_UPDATES: 314 case DomlPackage.TABLE_TYPE__MULTIDB: 315 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); 316 return; 317 case DomlPackage.TABLE_TYPE__COLUMN: 318 case DomlPackage.TABLE_TYPE__INDEX: 319 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); 320 return; 321 } 322 super.notifyChanged(notification); 323 } 324 325 332 protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { 333 super.collectNewChildDescriptors(newChildDescriptors, object); 334 335 newChildDescriptors.add 336 (createChildParameter 337 (DomlPackage.eINSTANCE.getTableType_Column(), 338 DomlFactory.eINSTANCE.createColumnType())); 339 340 newChildDescriptors.add 341 (createChildParameter 342 (DomlPackage.eINSTANCE.getTableType_Index(), 343 DomlFactory.eINSTANCE.createIndexType())); 344 } 345 346 352 public ResourceLocator getResourceLocator() { 353 return DomlEditPlugin.INSTANCE; 354 } 355 356 } 357 | Popular Tags |