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.DatabaseType; 29 import org.enhydra.dods.editor.Doml.DbVendor; 30 import org.enhydra.dods.editor.Doml.DomlFactory; 31 import org.enhydra.dods.editor.Doml.DomlPackage; 32 33 39 public class DatabaseTypeItemProvider 40 extends ItemProviderAdapter 41 implements 42 IEditingDomainItemProvider, 43 IStructuredItemContentProvider, 44 ITreeItemContentProvider, 45 IItemLabelProvider, 46 IItemPropertySource { 47 53 public DatabaseTypeItemProvider(AdapterFactory adapterFactory) { 54 super(adapterFactory); 55 } 56 57 63 public List getPropertyDescriptors(Object object) { 64 if (itemPropertyDescriptors == null) { 65 super.getPropertyDescriptors(object); 66 67 addDatabasePropertyDescriptor(object); 68 addGenerateInsecurePropertyDescriptor(object); 69 addGenerateSecurePropertyDescriptor(object); 70 addMassDeletesPropertyDescriptor(object); 71 addMassUpdatesPropertyDescriptor(object); 72 addTemplatesetPropertyDescriptor(object); 73 } 74 return itemPropertyDescriptors; 75 } 76 77 83 protected void addDatabasePropertyDescriptor(Object object) { 84 itemPropertyDescriptors.add 85 (new ItemPropertyDescriptor 86 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 87 getResourceLocator(), 88 getString("_UI_DatabaseType_database_feature"), 89 getString("_UI_PropertyDescriptor_description", "_UI_DatabaseType_database_feature", "_UI_DatabaseType_type"), 90 DomlPackage.eINSTANCE.getDatabaseType_Database(), 91 true, 92 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 93 } 94 95 101 protected void addGenerateInsecurePropertyDescriptor(Object object) { 102 itemPropertyDescriptors.add 103 (new ItemPropertyDescriptor 104 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 105 getResourceLocator(), 106 getString("_UI_DatabaseType_generateInsecure_feature"), 107 getString("_UI_PropertyDescriptor_description", "_UI_DatabaseType_generateInsecure_feature", "_UI_DatabaseType_type"), 108 DomlPackage.eINSTANCE.getDatabaseType_GenerateInsecure(), 109 true, 110 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 111 } 112 113 119 protected void addGenerateSecurePropertyDescriptor(Object object) { 120 itemPropertyDescriptors.add 121 (new ItemPropertyDescriptor 122 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 123 getResourceLocator(), 124 getString("_UI_DatabaseType_generateSecure_feature"), 125 getString("_UI_PropertyDescriptor_description", "_UI_DatabaseType_generateSecure_feature", "_UI_DatabaseType_type"), 126 DomlPackage.eINSTANCE.getDatabaseType_GenerateSecure(), 127 true, 128 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 129 } 130 131 137 protected void addMassDeletesPropertyDescriptor(Object object) { 138 itemPropertyDescriptors.add 139 (new ItemPropertyDescriptor 140 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 141 getResourceLocator(), 142 getString("_UI_DatabaseType_massDeletes_feature"), 143 getString("_UI_PropertyDescriptor_description", "_UI_DatabaseType_massDeletes_feature", "_UI_DatabaseType_type"), 144 DomlPackage.eINSTANCE.getDatabaseType_MassDeletes(), 145 true, 146 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 147 } 148 149 155 protected void addMassUpdatesPropertyDescriptor(Object object) { 156 itemPropertyDescriptors.add 157 (new ItemPropertyDescriptor 158 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 159 getResourceLocator(), 160 getString("_UI_DatabaseType_massUpdates_feature"), 161 getString("_UI_PropertyDescriptor_description", "_UI_DatabaseType_massUpdates_feature", "_UI_DatabaseType_type"), 162 DomlPackage.eINSTANCE.getDatabaseType_MassUpdates(), 163 true, 164 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 165 } 166 167 173 protected void addTemplatesetPropertyDescriptor(Object object) { 174 itemPropertyDescriptors.add 175 (new ItemPropertyDescriptor 176 (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), 177 getResourceLocator(), 178 getString("_UI_DatabaseType_templateset_feature"), 179 getString("_UI_PropertyDescriptor_description", "_UI_DatabaseType_templateset_feature", "_UI_DatabaseType_type"), 180 DomlPackage.eINSTANCE.getDatabaseType_Templateset(), 181 true, 182 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE)); 183 } 184 185 193 public Collection getChildrenFeatures(Object object) { 194 if (childrenFeatures == null) { 195 super.getChildrenFeatures(object); 196 childrenFeatures.add(DomlPackage.eINSTANCE.getDatabaseType_Package()); 197 } 198 return childrenFeatures; 199 } 200 201 207 public Object getImage(Object object) { 208 return getResourceLocator().getImage("full/obj16/DatabaseType"); 209 } 210 211 217 public String getText(Object object) { 218 DbVendor labelValue = ((DatabaseType)object).getDatabase(); 219 String label = labelValue == null ? null : labelValue.toString(); 220 return label == null || label.length() == 0 ? 221 getString("_UI_DatabaseType_type") : 222 getString("_UI_DatabaseType_type") + " " + label; 223 } 224 225 232 public void notifyChanged(Notification notification) { 233 updateChildren(notification); 234 235 switch (notification.getFeatureID(DatabaseType.class)) { 236 case DomlPackage.DATABASE_TYPE__DATABASE: 237 case DomlPackage.DATABASE_TYPE__GENERATE_INSECURE: 238 case DomlPackage.DATABASE_TYPE__GENERATE_SECURE: 239 case DomlPackage.DATABASE_TYPE__MASS_DELETES: 240 case DomlPackage.DATABASE_TYPE__MASS_UPDATES: 241 case DomlPackage.DATABASE_TYPE__TEMPLATESET: 242 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); 243 return; 244 case DomlPackage.DATABASE_TYPE__PACKAGE: 245 fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); 246 return; 247 } 248 super.notifyChanged(notification); 249 } 250 251 258 protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) { 259 super.collectNewChildDescriptors(newChildDescriptors, object); 260 261 newChildDescriptors.add 262 (createChildParameter 263 (DomlPackage.eINSTANCE.getDatabaseType_Package(), 264 DomlFactory.eINSTANCE.createPackageType())); 265 } 266 267 273 public ResourceLocator getResourceLocator() { 274 return DomlEditPlugin.INSTANCE; 275 } 276 277 } 278 | Popular Tags |