Bug 565455 - The STEM AI plugin called "Automatic Experiments" requires
a more flexible and configurable error function
This contribution from Vishrawas Gopalakrishnan implements the feature
request
diff --git a/org.eclipse.stem/analysis/org.eclipse.stem.analysis/src/org/eclipse/stem/analysis/provider/CompoundErrorFunctionItemProvider.java b/org.eclipse.stem/analysis/org.eclipse.stem.analysis/src/org/eclipse/stem/analysis/provider/CompoundErrorFunctionItemProvider.java
new file mode 100644
index 0000000..1ec9ce3
--- /dev/null
+++ b/org.eclipse.stem/analysis/org.eclipse.stem.analysis/src/org/eclipse/stem/analysis/provider/CompoundErrorFunctionItemProvider.java
@@ -0,0 +1,180 @@
+/**
+ */
+package org.eclipse.stem.analysis.provider;
+
+
+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.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.stem.analysis.AnalysisPackage;
+import org.eclipse.stem.analysis.CompoundErrorFunction;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.analysis.CompoundErrorFunction} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CompoundErrorFunctionItemProvider extends ErrorFunctionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundErrorFunctionItemProvider(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);
+
+ addUseDeathsPropertyDescriptor(object);
+ addUseCumSumPropertyDescriptor(object);
+ addUseDailyPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Use Deaths feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUseDeathsPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompoundErrorFunction_useDeaths_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompoundErrorFunction_useDeaths_feature", "_UI_CompoundErrorFunction_type"),
+ AnalysisPackage.Literals.COMPOUND_ERROR_FUNCTION__USE_DEATHS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Use Cum Sum feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUseCumSumPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompoundErrorFunction_useCumSum_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompoundErrorFunction_useCumSum_feature", "_UI_CompoundErrorFunction_type"),
+ AnalysisPackage.Literals.COMPOUND_ERROR_FUNCTION__USE_CUM_SUM,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Use Daily feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUseDailyPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompoundErrorFunction_useDaily_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompoundErrorFunction_useDaily_feature", "_UI_CompoundErrorFunction_type"),
+ AnalysisPackage.Literals.COMPOUND_ERROR_FUNCTION__USE_DAILY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns SimpleErrorFunction.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/custom16/SimpleErrorFunction"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CompoundErrorFunction)object).getReferenceDataCompartment();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CompoundErrorFunction_type") :
+ getString("_UI_CompoundErrorFunction_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(CompoundErrorFunction.class)) {
+ case AnalysisPackage.COMPOUND_ERROR_FUNCTION__USE_DEATHS:
+ case AnalysisPackage.COMPOUND_ERROR_FUNCTION__USE_CUM_SUM:
+ case AnalysisPackage.COMPOUND_ERROR_FUNCTION__USE_DAILY:
+ 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);
+ }
+
+}