diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/.classpath b/edu.kit.ipd.descartes.perfdatarepo.edit/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..121e527a9386dd66bdd0ec178fc2d28d734b82f8 --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/.classpath @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/.project b/edu.kit.ipd.descartes.perfdatarepo.edit/.project new file mode 100644 index 0000000000000000000000000000000000000000..d1c05f59e557cb20684b3c333db23926bec04b27 --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/.project @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>edu.kit.ipd.descartes.perfdatarepo.edit</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.pde.PluginNature</nature> + </natures> +</projectDescription> diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/META-INF/MANIFEST.MF b/edu.kit.ipd.descartes.perfdatarepo.edit/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..36b0a22c995a51f3ae7da5e9374ca8e9a3b8da0f --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: edu.kit.ipd.descartes.perfdatarepo.edit;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Activator: edu.kit.ipd.descartes.perfdatarepo.provider.PerfdatarepoEditPlugin$Implementation +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Export-Package: edu.kit.ipd.descartes.perfdatarepo.provider +Require-Bundle: org.eclipse.core.runtime, + edu.kit.ipd.descartes.perfdatarepo;visibility:=reexport, + org.eclipse.emf.edit;visibility:=reexport, + edu.kit.ipd.descartes.core;visibility:=reexport, + edu.kit.ipd.descartes.core.edit;visibility:=reexport, + edu.kit.ipd.descartes.identifier;visibility:=reexport, + edu.kit.ipd.descartes.identifier.edit;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/build.properties b/edu.kit.ipd.descartes.perfdatarepo.edit/build.properties new file mode 100644 index 0000000000000000000000000000000000000000..f49dbb43fe1c660ba5a28e2b7e1537d06469665d --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/build.properties @@ -0,0 +1,10 @@ +# Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + +bin.includes = .,\ + icons/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_impactHistory_Impact.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_impactHistory_Impact.gif new file mode 100644 index 0000000000000000000000000000000000000000..f420604f4047de6fb03edd17e3cfa3c7b3b2c6c5 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_impactHistory_Impact.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_metricTypes_MetricType.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_metricTypes_MetricType.gif new file mode 100644 index 0000000000000000000000000000000000000000..08f15c5851e003aa21471cc9e59ddd3b43beedce Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_metricTypes_MetricType.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_resultHistory_Result.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_resultHistory_Result.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b6df378675bf2d7a741c5933395bafc19999544 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreatePerformanceDataRepository_resultHistory_Result.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreateResult_metricValues_MetricValue.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreateResult_metricValues_MetricValue.gif new file mode 100644 index 0000000000000000000000000000000000000000..5a340d5744ab5325b89ca5706ed316ebf4219ae3 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/ctool16/CreateResult_metricValues_MetricValue.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/Impact.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/Impact.gif new file mode 100644 index 0000000000000000000000000000000000000000..cb1755a712505aeaaa447d9b1cc5940e602f87b6 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/Impact.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/MetricType.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/MetricType.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c2aaac84ee6ea15757df499505e9aa0de4288f9 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/MetricType.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/MetricValue.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/MetricValue.gif new file mode 100644 index 0000000000000000000000000000000000000000..a26660ec28fda4a4216562537c32047bab42b782 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/MetricValue.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/PerformanceDataRepository.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/PerformanceDataRepository.gif new file mode 100644 index 0000000000000000000000000000000000000000..338fb8d9a728b682e398849d2038959d01b4e0f2 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/PerformanceDataRepository.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/Result.gif b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/Result.gif new file mode 100644 index 0000000000000000000000000000000000000000..e4bc22dd17e82d9350631bd55ad9671957cdaf50 Binary files /dev/null and b/edu.kit.ipd.descartes.perfdatarepo.edit/icons/full/obj16/Result.gif differ diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/plugin.properties b/edu.kit.ipd.descartes.perfdatarepo.edit/plugin.properties new file mode 100644 index 0000000000000000000000000000000000000000..8b7c3e42ebd1bbdc6b2b0331be87115b95711343 --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/plugin.properties @@ -0,0 +1,34 @@ +# Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + +pluginName = Perfdatarepo Edit Support +providerName = www.example.org + +_UI_CreateChild_text = {0} +_UI_CreateChild_text2 = {1} {0} +_UI_CreateChild_text3 = {1} +_UI_CreateChild_tooltip = Create New {0} Under {1} Feature +_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}. +_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent. + +_UI_PropertyDescriptor_description = The {0} of the {1} + +_UI_PerformanceDataRepository_type = Performance Data Repository +_UI_Result_type = Result +_UI_MetricType_type = Metric Type +_UI_MetricValue_type = Metric Value +_UI_Impact_type = Impact +_UI_Unknown_type = Object + +_UI_Unknown_datatype= Value + +_UI_PerformanceDataRepository_resultHistory_feature = Result History +_UI_PerformanceDataRepository_metricTypes_feature = Metric Types +_UI_PerformanceDataRepository_impactHistory_feature = Impact History +_UI_Result_timestamp_feature = Timestamp +_UI_Result_metricValues_feature = Metric Values +_UI_MetricValue_metricType_feature = Metric Type +_UI_MetricValue_value_feature = Value +_UI_Impact_before_feature = Before +_UI_Impact_after_feature = After +_UI_Unknown_feature = Unspecified + diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/plugin.xml b/edu.kit.ipd.descartes.perfdatarepo.edit/plugin.xml new file mode 100644 index 0000000000000000000000000000000000000000..5905d65320b3647d61b4ea564ceb52109984225a --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/plugin.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.0"?> + +<!-- + Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT +--> + +<plugin> + + <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories"> + <factory + uri="http://www.descartes-research.net/metamodel/perfdata/0.1" + class="edu.kit.ipd.descartes.perfdatarepo.provider.PerfdatarepoItemProviderAdapterFactory" + supportedTypes= + "org.eclipse.emf.edit.provider.IEditingDomainItemProvider + org.eclipse.emf.edit.provider.IStructuredItemContentProvider + org.eclipse.emf.edit.provider.ITreeItemContentProvider + org.eclipse.emf.edit.provider.IItemLabelProvider + org.eclipse.emf.edit.provider.IItemPropertySource"/> + </extension> + +</plugin> diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/ImpactItemProvider.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/ImpactItemProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..c17eb91857ab71fa6d4526c6a648aa99db7134d4 --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/ImpactItemProvider.java @@ -0,0 +1,174 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + + +import edu.kit.ipd.descartes.core.provider.EntityItemProvider; + +import edu.kit.ipd.descartes.perfdatarepo.Impact; +import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoPackage; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.Impact} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ImpactItemProvider + extends EntityItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ImpactItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addBeforePropertyDescriptor(object); + addAfterPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Before feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addBeforePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Impact_before_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Impact_before_feature", "_UI_Impact_type"), + PerfdatarepoPackage.Literals.IMPACT__BEFORE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the After feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addAfterPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Impact_after_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Impact_after_feature", "_UI_Impact_type"), + PerfdatarepoPackage.Literals.IMPACT__AFTER, + true, + false, + true, + null, + null, + null)); + } + + /** + * This returns Impact.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Impact")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + String label = ((Impact)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_Impact_type") : + getString("_UI_Impact_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return PerfdatarepoEditPlugin.INSTANCE; + } + +} diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/MetricTypeItemProvider.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/MetricTypeItemProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..f52693968b103f2562ce5001c53ada9d6734775f --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/MetricTypeItemProvider.java @@ -0,0 +1,126 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + + +import edu.kit.ipd.descartes.core.provider.EntityItemProvider; + +import edu.kit.ipd.descartes.perfdatarepo.MetricType; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the item provider adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.MetricType} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class MetricTypeItemProvider + extends EntityItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public MetricTypeItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This returns MetricType.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MetricType")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + String label = ((MetricType)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_MetricType_type") : + getString("_UI_MetricType_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return PerfdatarepoEditPlugin.INSTANCE; + } + +} diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/MetricValueItemProvider.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/MetricValueItemProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..15464b07be488bcb75566001489702452d4cbb64 --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/MetricValueItemProvider.java @@ -0,0 +1,182 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + + +import edu.kit.ipd.descartes.core.provider.EntityItemProvider; + +import edu.kit.ipd.descartes.perfdatarepo.MetricValue; +import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoPackage; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.MetricValue} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class MetricValueItemProvider + extends EntityItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public MetricValueItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addMetricTypePropertyDescriptor(object); + addValuePropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Metric Type feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addMetricTypePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_MetricValue_metricType_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_MetricValue_metricType_feature", "_UI_MetricValue_type"), + PerfdatarepoPackage.Literals.METRIC_VALUE__METRIC_TYPE, + true, + false, + true, + null, + null, + null)); + } + + /** + * This adds a property descriptor for the Value feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addValuePropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_MetricValue_value_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_MetricValue_value_feature", "_UI_MetricValue_type"), + PerfdatarepoPackage.Literals.METRIC_VALUE__VALUE, + true, + false, + false, + ItemPropertyDescriptor.REAL_VALUE_IMAGE, + null, + null)); + } + + /** + * This returns MetricValue.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/MetricValue")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + String label = ((MetricValue)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_MetricValue_type") : + getString("_UI_MetricValue_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(MetricValue.class)) { + case PerfdatarepoPackage.METRIC_VALUE__VALUE: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return PerfdatarepoEditPlugin.INSTANCE; + } + +} diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerfdatarepoEditPlugin.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerfdatarepoEditPlugin.java new file mode 100644 index 0000000000000000000000000000000000000000..b4794438cc5609b7022f6d3971e590d7fa7b119b --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerfdatarepoEditPlugin.java @@ -0,0 +1,96 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + +import edu.kit.ipd.descartes.core.provider.CoreEditPlugin; + +import edu.kit.ipd.descartes.identifier.provider.IdentifierEditPlugin; + +import org.eclipse.emf.common.EMFPlugin; + +import org.eclipse.emf.common.util.ResourceLocator; + +/** + * This is the central singleton for the Perfdatarepo edit plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public final class PerfdatarepoEditPlugin extends EMFPlugin { + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final PerfdatarepoEditPlugin INSTANCE = new PerfdatarepoEditPlugin(); + + /** + * Keep track of the singleton. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static Implementation plugin; + + /** + * Create the instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PerfdatarepoEditPlugin() { + super + (new ResourceLocator [] { + CoreEditPlugin.INSTANCE, + IdentifierEditPlugin.INSTANCE, + }); + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + @Override + public ResourceLocator getPluginResourceLocator() { + return plugin; + } + + /** + * Returns the singleton instance of the Eclipse plugin. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the singleton instance. + * @generated + */ + public static Implementation getPlugin() { + return plugin; + } + + /** + * The actual implementation of the Eclipse <b>Plugin</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static class Implementation extends EclipsePlugin { + /** + * Creates an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Implementation() { + super(); + + // Remember the static instance. + // + plugin = this; + } + } + +} diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerfdatarepoItemProviderAdapterFactory.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerfdatarepoItemProviderAdapterFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..89882ab99747dd813385dee3c83167616d8751ee --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerfdatarepoItemProviderAdapterFactory.java @@ -0,0 +1,296 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + +import edu.kit.ipd.descartes.perfdatarepo.util.PerfdatarepoAdapterFactory; + +import java.util.ArrayList; +import java.util.Collection; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.edit.provider.ChangeNotifier; +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.ComposedAdapterFactory; +import org.eclipse.emf.edit.provider.IChangeNotifier; +import org.eclipse.emf.edit.provider.IDisposable; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.INotifyChangedListener; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; + +/** + * This is the factory that is used to provide the interfaces needed to support Viewers. + * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. + * The adapters also support Eclipse property sheets. + * Note that most of the adapters are shared among multiple instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PerfdatarepoItemProviderAdapterFactory extends PerfdatarepoAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable { + /** + * This keeps track of the root adapter factory that delegates to this adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ComposedAdapterFactory parentAdapterFactory; + + /** + * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected IChangeNotifier changeNotifier = new ChangeNotifier(); + + /** + * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Collection<Object> supportedTypes = new ArrayList<Object>(); + + /** + * This constructs an instance. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PerfdatarepoItemProviderAdapterFactory() { + supportedTypes.add(IEditingDomainItemProvider.class); + supportedTypes.add(IStructuredItemContentProvider.class); + supportedTypes.add(ITreeItemContentProvider.class); + supportedTypes.add(IItemLabelProvider.class); + supportedTypes.add(IItemPropertySource.class); + } + + /** + * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PerformanceDataRepositoryItemProvider performanceDataRepositoryItemProvider; + + /** + * This creates an adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createPerformanceDataRepositoryAdapter() { + if (performanceDataRepositoryItemProvider == null) { + performanceDataRepositoryItemProvider = new PerformanceDataRepositoryItemProvider(this); + } + + return performanceDataRepositoryItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.perfdatarepo.Result} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ResultItemProvider resultItemProvider; + + /** + * This creates an adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.Result}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createResultAdapter() { + if (resultItemProvider == null) { + resultItemProvider = new ResultItemProvider(this); + } + + return resultItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.perfdatarepo.MetricType} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MetricTypeItemProvider metricTypeItemProvider; + + /** + * This creates an adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.MetricType}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createMetricTypeAdapter() { + if (metricTypeItemProvider == null) { + metricTypeItemProvider = new MetricTypeItemProvider(this); + } + + return metricTypeItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.perfdatarepo.MetricValue} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MetricValueItemProvider metricValueItemProvider; + + /** + * This creates an adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.MetricValue}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createMetricValueAdapter() { + if (metricValueItemProvider == null) { + metricValueItemProvider = new MetricValueItemProvider(this); + } + + return metricValueItemProvider; + } + + /** + * This keeps track of the one adapter used for all {@link edu.kit.ipd.descartes.perfdatarepo.Impact} instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ImpactItemProvider impactItemProvider; + + /** + * This creates an adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.Impact}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter createImpactAdapter() { + if (impactItemProvider == null) { + impactItemProvider = new ImpactItemProvider(this); + } + + return impactItemProvider; + } + + /** + * This returns the root adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ComposeableAdapterFactory getRootAdapterFactory() { + return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory(); + } + + /** + * This sets the composed adapter factory that contains this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) { + this.parentAdapterFactory = parentAdapterFactory; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isFactoryForType(Object type) { + return supportedTypes.contains(type) || super.isFactoryForType(type); + } + + /** + * This implementation substitutes the factory itself as the key for the adapter. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Adapter adapt(Notifier notifier, Object type) { + return super.adapt(notifier, this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object adapt(Object object, Object type) { + if (isFactoryForType(type)) { + Object adapter = super.adapt(object, type); + if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) { + return adapter; + } + } + + return null; + } + + /** + * This adds a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void addListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.addListener(notifyChangedListener); + } + + /** + * This removes a listener. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void removeListener(INotifyChangedListener notifyChangedListener) { + changeNotifier.removeListener(notifyChangedListener); + } + + /** + * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void fireNotifyChanged(Notification notification) { + changeNotifier.fireNotifyChanged(notification); + + if (parentAdapterFactory != null) { + parentAdapterFactory.fireNotifyChanged(notification); + } + } + + /** + * This disposes all of the item providers created by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void dispose() { + if (performanceDataRepositoryItemProvider != null) performanceDataRepositoryItemProvider.dispose(); + if (resultItemProvider != null) resultItemProvider.dispose(); + if (metricTypeItemProvider != null) metricTypeItemProvider.dispose(); + if (metricValueItemProvider != null) metricValueItemProvider.dispose(); + if (impactItemProvider != null) impactItemProvider.dispose(); + } + +} diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerformanceDataRepositoryItemProvider.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerformanceDataRepositoryItemProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..82d6ee951daf68bf94efe4675096487bdc42cf08 --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/PerformanceDataRepositoryItemProvider.java @@ -0,0 +1,186 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + + +import edu.kit.ipd.descartes.core.provider.EntityItemProvider; + +import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoFactory; +import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoPackage; +import edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class PerformanceDataRepositoryItemProvider + extends EntityItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PerformanceDataRepositoryItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PerfdatarepoPackage.Literals.PERFORMANCE_DATA_REPOSITORY__RESULT_HISTORY); + childrenFeatures.add(PerfdatarepoPackage.Literals.PERFORMANCE_DATA_REPOSITORY__METRIC_TYPES); + childrenFeatures.add(PerfdatarepoPackage.Literals.PERFORMANCE_DATA_REPOSITORY__IMPACT_HISTORY); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns PerformanceDataRepository.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/PerformanceDataRepository")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + String label = ((PerformanceDataRepository)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_PerformanceDataRepository_type") : + getString("_UI_PerformanceDataRepository_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(PerformanceDataRepository.class)) { + case PerfdatarepoPackage.PERFORMANCE_DATA_REPOSITORY__RESULT_HISTORY: + case PerfdatarepoPackage.PERFORMANCE_DATA_REPOSITORY__METRIC_TYPES: + case PerfdatarepoPackage.PERFORMANCE_DATA_REPOSITORY__IMPACT_HISTORY: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PerfdatarepoPackage.Literals.PERFORMANCE_DATA_REPOSITORY__RESULT_HISTORY, + PerfdatarepoFactory.eINSTANCE.createResult())); + + newChildDescriptors.add + (createChildParameter + (PerfdatarepoPackage.Literals.PERFORMANCE_DATA_REPOSITORY__METRIC_TYPES, + PerfdatarepoFactory.eINSTANCE.createMetricType())); + + newChildDescriptors.add + (createChildParameter + (PerfdatarepoPackage.Literals.PERFORMANCE_DATA_REPOSITORY__IMPACT_HISTORY, + PerfdatarepoFactory.eINSTANCE.createImpact())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return PerfdatarepoEditPlugin.INSTANCE; + } + +} diff --git a/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/ResultItemProvider.java b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/ResultItemProvider.java new file mode 100644 index 0000000000000000000000000000000000000000..8b6cb3d107161d32fea066420ffe4333b79f9c7d --- /dev/null +++ b/edu.kit.ipd.descartes.perfdatarepo.edit/src/edu/kit/ipd/descartes/perfdatarepo/provider/ResultItemProvider.java @@ -0,0 +1,200 @@ +/** + * Copyright 2009-2012, Descartes Research Group, SDQ, IPD, KIT + */ +package edu.kit.ipd.descartes.perfdatarepo.provider; + + +import edu.kit.ipd.descartes.core.provider.EntityItemProvider; + +import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoFactory; +import edu.kit.ipd.descartes.perfdatarepo.PerfdatarepoPackage; +import edu.kit.ipd.descartes.perfdatarepo.Result; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.ResourceLocator; + +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; +import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; +import org.eclipse.emf.edit.provider.IItemLabelProvider; +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.IItemPropertySource; +import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; +import org.eclipse.emf.edit.provider.ITreeItemContentProvider; +import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +/** + * This is the item provider adapter for a {@link edu.kit.ipd.descartes.perfdatarepo.Result} object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ +public class ResultItemProvider + extends EntityItemProvider + implements + IEditingDomainItemProvider, + IStructuredItemContentProvider, + ITreeItemContentProvider, + IItemLabelProvider, + IItemPropertySource { + /** + * This constructs an instance from a factory and a notifier. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public ResultItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + addTimestampPropertyDescriptor(object); + } + return itemPropertyDescriptors; + } + + /** + * This adds a property descriptor for the Timestamp feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addTimestampPropertyDescriptor(Object object) { + itemPropertyDescriptors.add + (createItemPropertyDescriptor + (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), + getResourceLocator(), + getString("_UI_Result_timestamp_feature"), + getString("_UI_PropertyDescriptor_description", "_UI_Result_timestamp_feature", "_UI_Result_type"), + PerfdatarepoPackage.Literals.RESULT__TIMESTAMP, + true, + false, + false, + ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, + null, + null)); + } + + /** + * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add(PerfdatarepoPackage.Literals.RESULT__METRIC_VALUES); + } + return childrenFeatures; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns Result.gif. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator().getImage("full/obj16/Result")); + } + + /** + * This returns the label text for the adapted class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getText(Object object) { + String label = ((Result)object).getName(); + return label == null || label.length() == 0 ? + getString("_UI_Result_type") : + getString("_UI_Result_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to update any cached + * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(Result.class)) { + case PerfdatarepoPackage.RESULT__TIMESTAMP: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); + return; + case PerfdatarepoPackage.RESULT__METRIC_VALUES: + fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children + * that can be created under this object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add + (createChildParameter + (PerfdatarepoPackage.Literals.RESULT__METRIC_VALUES, + PerfdatarepoFactory.eINSTANCE.createMetricValue())); + } + + /** + * Return the resource locator for this item provider's resources. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public ResourceLocator getResourceLocator() { + return PerfdatarepoEditPlugin.INSTANCE; + } + +}