Browse Source

ComputationModel#ownedDataType containment reference added.

au@andreasunger.net 14 years ago
parent
commit
a8dbe5c378
24 changed files with 368 additions and 435 deletions
  1. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_AnyDataType.gif
  2. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_ArrayType.gif
  3. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_BooleanType.gif
  4. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_Enumeration.gif
  5. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_IntegerType.gif
  6. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_InvalidDataType.gif
  7. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_RealType.gif
  8. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_Record.gif
  9. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_StringType.gif
  10. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_TensorType.gif
  11. 0 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_UnitType.gif
  12. 1 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/plugin.properties
  13. 36 13
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/src/org/eclipselabs/mscript/computation/computationmodel/edit/provider/NumberFormatMappingItemProvider.java
  14. 1 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/META-INF/MANIFEST.MF
  15. 0 3
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/ComputationModelUIPlugin.java
  16. 0 6
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/editor/presentation/ComputationModelActionBarContributor.java
  17. 72 376
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/editor/presentation/ComputationModelEditor.java
  18. 84 0
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/editor/presentation/ComputationModelEditorMainPage.java
  19. 4 2
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/model/ComputationModel.ecore
  20. 3 2
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/model/ComputationModel.genmodel
  21. 35 7
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/ComputationModelPackage.java
  22. 32 5
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/NumberFormatMapping.java
  23. 14 3
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/impl/ComputationModelPackageImpl.java
  24. 86 18
      org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/impl/NumberFormatMappingImpl.java

org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_AnyDataType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_AnyDataType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_ArrayType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_ArrayType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_BooleanType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_BooleanType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_Enumeration.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_Enumeration.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_IntegerType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_IntegerType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_InvalidDataType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_InvalidDataType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_RealType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_RealType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_Record.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_Record.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_StringType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_StringType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_TensorType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_TensorType.gif


org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_dataType_UnitType.gif → org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/icons/full/ctool16/CreateNumberFormatMapping_ownedDataType_UnitType.gif


+ 1 - 0
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/plugin.properties

@@ -32,6 +32,7 @@ _UI_FixedPointOperation_intermediateWordSize_feature = Intermediate Word Size
 _UI_FixedPointOperation_saturate_feature = Saturate
 _UI_ComputationModel_numberFormats_feature = Number Formats
 _UI_ComputationModel_numberFormatMappings_feature = Number Format Mappings
+_UI_NumberFormatMapping_ownedDataType_feature = Owned Data Type
 _UI_NumberFormatMapping_dataType_feature = Data Type
 _UI_NumberFormatMapping_numberFormat_feature = Number Format
 _UI_Unknown_feature = Unspecified

+ 36 - 13
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.edit/src/org/eclipselabs/mscript/computation/computationmodel/edit/provider/NumberFormatMappingItemProvider.java

@@ -65,11 +65,34 @@ public class NumberFormatMappingItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addDataTypePropertyDescriptor(object);
 			addNumberFormatPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
+	/**
+	 * This adds a property descriptor for the Data Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDataTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_NumberFormatMapping_dataType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_NumberFormatMapping_dataType_feature", "_UI_NumberFormatMapping_type"),
+				 ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Number Format feature.
 	 * <!-- begin-user-doc -->
@@ -104,7 +127,7 @@ public class NumberFormatMappingItemProvider
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE);
+			childrenFeatures.add(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE);
 		}
 		return childrenFeatures;
 	}
@@ -170,7 +193,7 @@ public class NumberFormatMappingItemProvider
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(NumberFormatMapping.class)) {
-			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE:
+			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -190,57 +213,57 @@ public class NumberFormatMappingItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createArrayType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createRealType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createIntegerType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createBooleanType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createStringType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createEnumeration()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createInvalidDataType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createTensorType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createRecord()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createUnitType()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__DATA_TYPE,
+				(ComputationModelPackage.Literals.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE,
 				 TypeSystemFactory.eINSTANCE.createAnyDataType()));
 	}
 

+ 1 - 0
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/META-INF/MANIFEST.MF

@@ -14,6 +14,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore.xmi;visibility:=reexport,
  org.eclipse.emf.edit.ui;visibility:=reexport,
  org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.ui.forms;bundle-version="3.5.2",
  org.eclipselabs.mscript.typesystem.edit;visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipselabs.mscript.computation.computationmodel.ui.editor.presentation;x-friends:="org.eclipselabs.damos.execution.executionmodel.ui"

+ 0 - 3
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/ComputationModelUIPlugin.java

@@ -7,11 +7,8 @@
 package org.eclipselabs.mscript.computation.computationmodel.ui;
 
 import org.eclipse.emf.common.EMFPlugin;
-
 import org.eclipse.emf.common.ui.EclipseUIPlugin;
-
 import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipselabs.mscript.typesystem.edit.TypeSystemEditPlugin;
 
 /**

+ 0 - 6
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/editor/presentation/ComputationModelActionBarContributor.java

@@ -10,17 +10,14 @@ import java.util.ArrayList;
 import java.util.Collection;
 
 import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
 import org.eclipse.emf.edit.ui.action.ControlAction;
 import org.eclipse.emf.edit.ui.action.CreateChildAction;
 import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
 import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
 import org.eclipse.emf.edit.ui.action.LoadResourceAction;
 import org.eclipse.emf.edit.ui.action.ValidateAction;
-
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.ActionContributionItem;
 import org.eclipse.jface.action.IAction;
@@ -32,17 +29,14 @@ import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
 import org.eclipse.jface.action.SubContributionItem;
-
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.Viewer;
-
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.PartInitException;
-
 import org.eclipselabs.mscript.computation.computationmodel.ui.ComputationModelUIPlugin;
 
 /**

+ 72 - 376
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/editor/presentation/ComputationModelEditor.java

@@ -9,7 +9,6 @@ package org.eclipselabs.mscript.computation.computationmodel.ui.editor.presentat
 
 import java.io.IOException;
 import java.io.InputStream;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -28,57 +27,73 @@ import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.resources.IResourceDeltaVisitor;
 import org.eclipse.core.resources.ResourcesPlugin;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
-
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
-
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
-import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
-
 import org.eclipse.swt.SWT;
-
 import org.eclipse.swt.custom.CTabFolder;
-
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.Transfer;
-
 import org.eclipse.swt.events.ControlAdapter;
 import org.eclipse.swt.events.ControlEvent;
-
 import org.eclipse.swt.graphics.Point;
-
-import org.eclipse.swt.layout.FillLayout;
-
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
 import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
@@ -86,83 +101,19 @@ import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IPartListener;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PartInitException;
-
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
 import org.eclipse.ui.dialogs.SaveAsDialog;
-
 import org.eclipse.ui.ide.IGotoMarker;
-
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.ui.part.MultiPageEditorPart;
-
 import org.eclipse.ui.views.contentoutline.ContentOutline;
 import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
 import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
 import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.PropertySheet;
 import org.eclipse.ui.views.properties.PropertySheetPage;
-
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.command.CommandStackListener;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.ui.MarkerHelper;
-import org.eclipse.emf.common.ui.ViewerPane;
-
-import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EValidator;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-
-import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
-
-import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
-import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
-import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
-
-import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
-import org.eclipse.emf.edit.ui.util.EditUIUtil;
-
-import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
-
 import org.eclipselabs.mscript.computation.computationmodel.edit.provider.ComputationModelItemProviderAdapterFactory;
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
 import org.eclipselabs.mscript.computation.computationmodel.ui.ComputationModelUIPlugin;
-
 import org.eclipselabs.mscript.typesystem.edit.provider.TypeSystemItemProviderAdapterFactory;
 
 
@@ -175,6 +126,9 @@ import org.eclipselabs.mscript.typesystem.edit.provider.TypeSystemItemProviderAd
 public class ComputationModelEditor
 	extends MultiPageEditorPart
 	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+	
+	private ComputationModelEditorMainPage mainPage;
+	
 	/**
 	 * This keeps track of the editing domain that is used to track all changes to the model.
 	 * <!-- begin-user-doc -->
@@ -232,56 +186,6 @@ public class ComputationModelEditor
 	 */
 	protected TreeViewer selectionViewer;
 
-	/**
-	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer parentViewer;
-
-	/**
-	 * This shows how a tree view works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewer;
-
-	/**
-	 * This shows how a list view works.
-	 * A list viewer doesn't support icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ListViewer listViewer;
-
-	/**
-	 * This shows how a table view works.
-	 * A table can be used as a list with icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TableViewer tableViewer;
-
-	/**
-	 * This shows how a tree view with columns works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewerWithColumns;
-
-	/**
-	 * This keeps track of the active viewer pane, in the book.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ViewerPane currentViewerPane;
-
 	/**
 	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
 	 * <!-- begin-user-doc -->
@@ -842,21 +746,6 @@ public class ComputationModelEditor
 		}
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewerPane(ViewerPane viewerPane) {
-		if (currentViewerPane != viewerPane) {
-			if (currentViewerPane != null) {
-				currentViewerPane.showFocus(false);
-			}
-			currentViewerPane = viewerPane;
-		}
-		setCurrentViewer(currentViewerPane.getViewer());
-	}
-
 	/**
 	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
 	 * is the current one.
@@ -998,7 +887,7 @@ public class ComputationModelEditor
 	 * This is the method used by the framework to install your own controls.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public void createPages() {
@@ -1011,204 +900,24 @@ public class ComputationModelEditor
 		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
 			// Create a page for the selection tree view.
 			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), ComputationModelEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				selectionViewer = (TreeViewer)viewerPane.getViewer();
-				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-
-				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-				selectionViewer.setInput(editingDomain.getResourceSet());
-				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-				viewerPane.setTitle(editingDomain.getResourceSet());
-
-				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(selectionViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_SelectionPage_label"));
-			}
-
-			// Create a page for the parent tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), ComputationModelEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				parentViewer = (TreeViewer)viewerPane.getViewer();
-				parentViewer.setAutoExpandLevel(30);
-				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
-				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(parentViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ParentPage_label"));
-			}
-
-			// This is the page for the list viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), ComputationModelEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new ListViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				listViewer = (ListViewer)viewerPane.getViewer();
-				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(listViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ListPage_label"));
-			}
-
-			// This is the page for the tree viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), ComputationModelEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				treeViewer = (TreeViewer)viewerPane.getViewer();
-				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+			
+//			mainPage = new ComputationModelEditorMainPage();
+			
+			Tree tree = new Tree(getContainer(), SWT.MULTI);
+			selectionViewer = new TreeViewer(tree);
+			setCurrentViewer(selectionViewer);
 
-				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+			selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+			selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+			selectionViewer.setInput(editingDomain.getResourceSet());
+			selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
 
-				createContextMenuFor(treeViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreePage_label"));
-			}
+			new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
 
-			// This is the page for the table viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), ComputationModelEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TableViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				tableViewer = (TableViewer)viewerPane.getViewer();
-
-				Table table = tableViewer.getTable();
-				TableLayout layout = new TableLayout();
-				table.setLayout(layout);
-				table.setHeaderVisible(true);
-				table.setLinesVisible(true);
-
-				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(3, 100, true));
-				objectColumn.setText(getString("_UI_ObjectColumn_label"));
-				objectColumn.setResizable(true);
-
-				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(2, 100, true));
-				selfColumn.setText(getString("_UI_SelfColumn_label"));
-				selfColumn.setResizable(true);
-
-				tableViewer.setColumnProperties(new String [] {"a", "b"});
-				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(tableViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TablePage_label"));
-			}
-
-			// This is the page for the table tree viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), ComputationModelEditor.this) {
-						@Override
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						@Override
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
-
-				Tree tree = treeViewerWithColumns.getTree();
-				tree.setLayoutData(new FillLayout());
-				tree.setHeaderVisible(true);
-				tree.setLinesVisible(true);
-
-				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
-				objectColumn.setText(getString("_UI_ObjectColumn_label"));
-				objectColumn.setResizable(true);
-				objectColumn.setWidth(250);
-
-				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
-				selfColumn.setText(getString("_UI_SelfColumn_label"));
-				selfColumn.setResizable(true);
-				selfColumn.setWidth(200);
-
-				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
-				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(treeViewerWithColumns);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
-			}
+			createContextMenuFor(selectionViewer);
+//			int pageIndex = addPage(mainPage.createPartControl(this, getContainer()));
+			int pageIndex = addPage(tree);
+			setPageText(pageIndex, getString("_UI_SelectionPage_label"));
 
 			getSite().getShell().getDisplay().asyncExec
 				(new Runnable() {
@@ -1415,34 +1124,22 @@ public class ComputationModelEditor
 	 * @generated
 	 */
 	public void handleContentOutlineSelection(ISelection selection) {
-		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+		if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
 			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
 			if (selectedElements.hasNext()) {
 				// Get the first selected element.
 				//
 				Object selectedElement = selectedElements.next();
 
-				// If it's the selection viewer, then we want it to select the same selection as this selection.
-				//
-				if (currentViewerPane.getViewer() == selectionViewer) {
-					ArrayList<Object> selectionList = new ArrayList<Object>();
-					selectionList.add(selectedElement);
-					while (selectedElements.hasNext()) {
-						selectionList.add(selectedElements.next());
-					}
-
-					// Set the selection to the widget.
-					//
-					selectionViewer.setSelection(new StructuredSelection(selectionList));
-				}
-				else {
-					// Set the input to the widget.
-					//
-					if (currentViewerPane.getViewer().getInput() != selectedElement) {
-						currentViewerPane.getViewer().setInput(selectedElement);
-						currentViewerPane.setTitle(selectedElement);
-					}
+				ArrayList<Object> selectionList = new ArrayList<Object>();
+				selectionList.add(selectedElement);
+				while (selectedElements.hasNext()) {
+					selectionList.add(selectedElements.next());
 				}
+
+				// Set the selection to the widget.
+				//
+				selectionViewer.setSelection(new StructuredSelection(selectionList));
 			}
 		}
 	}
@@ -1634,12 +1331,7 @@ public class ComputationModelEditor
 	 */
 	@Override
 	public void setFocus() {
-		if (currentViewerPane != null) {
-			currentViewerPane.setFocus();
-		}
-		else {
-			getControl(getActivePage()).setFocus();
-		}
+		getControl(getActivePage()).setFocus();
 	}
 
 	/**
@@ -1782,7 +1474,7 @@ public class ComputationModelEditor
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
 	public void dispose() {
@@ -1805,6 +1497,10 @@ public class ComputationModelEditor
 		if (contentOutlinePage != null) {
 			contentOutlinePage.dispose();
 		}
+		
+		if (mainPage != null) {
+			mainPage.dispose();
+		}
 
 		super.dispose();
 	}
@@ -1816,6 +1512,6 @@ public class ComputationModelEditor
 	 * @generated
 	 */
 	protected boolean showOutlineView() {
-		return true;
+		return false;
 	}
 }

+ 84 - 0
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel.ui/src/org/eclipselabs/mscript/computation/computationmodel/ui/editor/presentation/ComputationModelEditorMainPage.java

@@ -0,0 +1,84 @@
+/****************************************************************************
+ * Copyright (c) 2008, 2011 Andreas Unger and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Andreas Unger - initial API and implementation 
+ ****************************************************************************/
+
+package org.eclipselabs.mscript.computation.computationmodel.ui.editor.presentation;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipselabs.mscript.computation.computationmodel.ComputationModel;
+
+/**
+ * @author Andreas Unger
+ *
+ */
+public class ComputationModelEditorMainPage {
+	
+	private FormToolkit toolkit;
+	
+	public Control createPartControl(ComputationModelEditor editor, Composite parent) {
+		toolkit = new FormToolkit(parent.getDisplay());
+		ScrolledForm scrolledForm = toolkit.createScrolledForm(parent);
+		toolkit.decorateFormHeading(scrolledForm.getForm());
+		scrolledForm.setText("Computation Model");
+		
+		Composite body = scrolledForm.getBody();
+		GridLayout layout = new GridLayout(1, true);
+		body.setLayout(layout);
+				
+		Composite composite = toolkit.createComposite(body);
+		layout = new GridLayout();
+		composite.setLayout(layout);
+		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		composite.setLayoutData(gridData);
+		
+		Section section = toolkit.createSection(composite, Section.EXPANDED | Section.TITLE_BAR);
+		section.setText("Number Formats");
+		gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		GridLayout gridLayout = new GridLayout();
+		section.setLayout(gridLayout);
+		section.setLayoutData(gridData);
+		
+		Table tree = toolkit.createTable(section, SWT.MULTI);
+		section.setClient(tree);
+		gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		tree.setLayoutData(gridData);
+		TableViewer selectionViewer = new TableViewer(tree);
+		editor.setCurrentViewer(selectionViewer);
+		
+		EObject object = editor.getEditingDomain().getResourceSet().getResources().get(0).getContents().get(0);
+
+		selectionViewer.setContentProvider(new ArrayContentProvider());
+		selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(editor.getAdapterFactory()));
+		selectionViewer.setInput(((ComputationModel) object).getNumberFormats());
+		selectionViewer.setSelection(new StructuredSelection(object), true);
+
+//		editor.createContextMenuFor(selectionViewer);
+
+		return scrolledForm;
+	}
+	
+	public void dispose() {
+		toolkit.dispose();
+	}
+	
+}

+ 4 - 2
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/model/ComputationModel.ecore

@@ -57,9 +57,11 @@
         upperBound="-1" eType="#//NumberFormatMapping" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NumberFormatMapping">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipselabs.mscript.typesystem/model/TypeSystem.ecore#//DataType"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDataType" ordered="false"
+        eType="ecore:EClass ../../org.eclipselabs.mscript.typesystem/model/TypeSystem.ecore#//DataType"
         containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipselabs.mscript.typesystem/model/TypeSystem.ecore#//DataType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="numberFormat" ordered="false"
         lowerBound="1" eType="#//NumberFormat"/>
   </eClassifiers>

+ 3 - 2
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/model/ComputationModel.genmodel

@@ -13,7 +13,7 @@
   <foreignModel>ComputationModel.ecore</foreignModel>
   <genPackages prefix="ComputationModel" basePackage="org.eclipselabs.mscript.computation"
       disposableProviderFactory="true" providerPackageSuffix="edit.provider" presentationPackageSuffix="ui.editor.presentation"
-      contentTypeIdentifier="" ecorePackage="ComputationModel.ecore#/">
+      multipleEditorPages="false" contentTypeIdentifier="" ecorePackage="ComputationModel.ecore#/">
     <genEnums typeSafeEnumCompatible="false" ecoreEnum="ComputationModel.ecore#//FloatingPointFormatKind">
       <genEnumLiterals ecoreEnumLiteral="ComputationModel.ecore#//FloatingPointFormatKind/Binary16"/>
       <genEnumLiterals ecoreEnumLiteral="ComputationModel.ecore#//FloatingPointFormatKind/Binary32"/>
@@ -57,7 +57,8 @@
       </genOperations>
     </genClasses>
     <genClasses ecoreClass="ComputationModel.ecore#//NumberFormatMapping">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ComputationModel.ecore#//NumberFormatMapping/dataType"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ComputationModel.ecore#//NumberFormatMapping/ownedDataType"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ComputationModel.ecore#//NumberFormatMapping/dataType"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ComputationModel.ecore#//NumberFormatMapping/numberFormat"/>
     </genClasses>
   </genPackages>

+ 35 - 7
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/ComputationModelPackage.java

@@ -256,13 +256,22 @@ public interface ComputationModelPackage extends EPackage {
 	int NUMBER_FORMAT_MAPPING = 5;
 
 	/**
-	 * The feature id for the '<em><b>Data Type</b></em>' containment reference.
+	 * The feature id for the '<em><b>Owned Data Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NUMBER_FORMAT_MAPPING__DATA_TYPE = 0;
+	int NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Data Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT_MAPPING__DATA_TYPE = 1;
 
 	/**
 	 * The feature id for the '<em><b>Number Format</b></em>' reference.
@@ -271,7 +280,7 @@ public interface ComputationModelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int NUMBER_FORMAT_MAPPING__NUMBER_FORMAT = 1;
+	int NUMBER_FORMAT_MAPPING__NUMBER_FORMAT = 2;
 
 	/**
 	 * The number of structural features of the '<em>Number Format Mapping</em>' class.
@@ -280,7 +289,7 @@ public interface ComputationModelPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int NUMBER_FORMAT_MAPPING_FEATURE_COUNT = 2;
+	int NUMBER_FORMAT_MAPPING_FEATURE_COUNT = 3;
 
 	/**
 	 * The meta object id for the '{@link org.eclipselabs.mscript.computation.computationmodel.FloatingPointFormatKind <em>Floating Point Format Kind</em>}' enum.
@@ -474,10 +483,21 @@ public interface ComputationModelPackage extends EPackage {
 	EClass getNumberFormatMapping();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getDataType <em>Data Type</em>}'.
+	 * Returns the meta object for the containment reference '{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getOwnedDataType <em>Owned Data Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Owned Data Type</em>'.
+	 * @see org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getOwnedDataType()
+	 * @see #getNumberFormatMapping()
+	 * @generated
+	 */
+	EReference getNumberFormatMapping_OwnedDataType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getDataType <em>Data Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Data Type</em>'.
+	 * @return the meta object for the reference '<em>Data Type</em>'.
 	 * @see org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getDataType()
 	 * @see #getNumberFormatMapping()
 	 * @generated
@@ -678,7 +698,15 @@ public interface ComputationModelPackage extends EPackage {
 		EClass NUMBER_FORMAT_MAPPING = eINSTANCE.getNumberFormatMapping();
 
 		/**
-		 * The meta object literal for the '<em><b>Data Type</b></em>' containment reference feature.
+		 * The meta object literal for the '<em><b>Owned Data Type</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE = eINSTANCE.getNumberFormatMapping_OwnedDataType();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Type</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated

+ 32 - 5
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/NumberFormatMapping.java

@@ -17,6 +17,7 @@ import org.eclipselabs.mscript.typesystem.DataType;
  * <p>
  * The following features are supported:
  * <ul>
+ *   <li>{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getOwnedDataType <em>Owned Data Type</em>}</li>
  *   <li>{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getDataType <em>Data Type</em>}</li>
  *   <li>{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getNumberFormat <em>Number Format</em>}</li>
  * </ul>
@@ -28,26 +29,52 @@ import org.eclipselabs.mscript.typesystem.DataType;
  */
 public interface NumberFormatMapping extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Data Type</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Owned Data Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owned Data Type</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owned Data Type</em>' containment reference.
+	 * @see #setOwnedDataType(DataType)
+	 * @see org.eclipselabs.mscript.computation.computationmodel.ComputationModelPackage#getNumberFormatMapping_OwnedDataType()
+	 * @model containment="true" ordered="false"
+	 * @generated
+	 */
+	DataType getOwnedDataType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getOwnedDataType <em>Owned Data Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owned Data Type</em>' containment reference.
+	 * @see #getOwnedDataType()
+	 * @generated
+	 */
+	void setOwnedDataType(DataType value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Type</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Data Type</em>' containment reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Type</em>' containment reference.
+	 * @return the value of the '<em>Data Type</em>' reference.
 	 * @see #setDataType(DataType)
 	 * @see org.eclipselabs.mscript.computation.computationmodel.ComputationModelPackage#getNumberFormatMapping_DataType()
-	 * @model containment="true" required="true" ordered="false"
+	 * @model required="true" ordered="false"
 	 * @generated
 	 */
 	DataType getDataType();
 
 	/**
-	 * Sets the value of the '{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getDataType <em>Data Type</em>}' containment reference.
+	 * Sets the value of the '{@link org.eclipselabs.mscript.computation.computationmodel.NumberFormatMapping#getDataType <em>Data Type</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Type</em>' containment reference.
+	 * @param value the new value of the '<em>Data Type</em>' reference.
 	 * @see #getDataType()
 	 * @generated
 	 */

+ 14 - 3
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/impl/ComputationModelPackageImpl.java

@@ -301,7 +301,7 @@ public class ComputationModelPackageImpl extends EPackageImpl implements Computa
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getNumberFormatMapping_DataType() {
+	public EReference getNumberFormatMapping_OwnedDataType() {
 		return (EReference)numberFormatMappingEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -310,10 +310,19 @@ public class ComputationModelPackageImpl extends EPackageImpl implements Computa
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getNumberFormatMapping_NumberFormat() {
+	public EReference getNumberFormatMapping_DataType() {
 		return (EReference)numberFormatMappingEClass.getEStructuralFeatures().get(1);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getNumberFormatMapping_NumberFormat() {
+		return (EReference)numberFormatMappingEClass.getEStructuralFeatures().get(2);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -381,6 +390,7 @@ public class ComputationModelPackageImpl extends EPackageImpl implements Computa
 		createEReference(computationModelEClass, COMPUTATION_MODEL__NUMBER_FORMAT_MAPPINGS);
 
 		numberFormatMappingEClass = createEClass(NUMBER_FORMAT_MAPPING);
+		createEReference(numberFormatMappingEClass, NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE);
 		createEReference(numberFormatMappingEClass, NUMBER_FORMAT_MAPPING__DATA_TYPE);
 		createEReference(numberFormatMappingEClass, NUMBER_FORMAT_MAPPING__NUMBER_FORMAT);
 
@@ -451,7 +461,8 @@ public class ComputationModelPackageImpl extends EPackageImpl implements Computa
 		addEParameter(op, theTypeSystemPackage.getDataType(), "dataType", 1, 1, IS_UNIQUE, !IS_ORDERED);
 
 		initEClass(numberFormatMappingEClass, NumberFormatMapping.class, "NumberFormatMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNumberFormatMapping_DataType(), theTypeSystemPackage.getDataType(), null, "dataType", null, 1, 1, NumberFormatMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getNumberFormatMapping_OwnedDataType(), theTypeSystemPackage.getDataType(), null, "ownedDataType", null, 0, 1, NumberFormatMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getNumberFormatMapping_DataType(), theTypeSystemPackage.getDataType(), null, "dataType", null, 1, 1, NumberFormatMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getNumberFormatMapping_NumberFormat(), this.getNumberFormat(), null, "numberFormat", null, 1, 1, NumberFormatMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		// Initialize enums and add enum literals

+ 86 - 18
org.eclipselabs.mscript/plugins/org.eclipselabs.mscript.computation.computationmodel/src/org/eclipselabs/mscript/computation/computationmodel/impl/NumberFormatMappingImpl.java

@@ -24,6 +24,7 @@ import org.eclipselabs.mscript.typesystem.DataType;
  * <p>
  * The following features are implemented:
  * <ul>
+ *   <li>{@link org.eclipselabs.mscript.computation.computationmodel.impl.NumberFormatMappingImpl#getOwnedDataType <em>Owned Data Type</em>}</li>
  *   <li>{@link org.eclipselabs.mscript.computation.computationmodel.impl.NumberFormatMappingImpl#getDataType <em>Data Type</em>}</li>
  *   <li>{@link org.eclipselabs.mscript.computation.computationmodel.impl.NumberFormatMappingImpl#getNumberFormat <em>Number Format</em>}</li>
  * </ul>
@@ -33,7 +34,17 @@ import org.eclipselabs.mscript.typesystem.DataType;
  */
 public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormatMapping {
 	/**
-	 * The cached value of the '{@link #getDataType() <em>Data Type</em>}' containment reference.
+	 * The cached value of the '{@link #getOwnedDataType() <em>Owned Data Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedDataType()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataType ownedDataType;
+
+	/**
+	 * The cached value of the '{@link #getDataType() <em>Data Type</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #getDataType()
@@ -76,8 +87,8 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public DataType getDataType() {
-		return dataType;
+	public DataType getOwnedDataType() {
+		return ownedDataType;
 	}
 
 	/**
@@ -85,11 +96,11 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetDataType(DataType newDataType, NotificationChain msgs) {
-		DataType oldDataType = dataType;
-		dataType = newDataType;
+	public NotificationChain basicSetOwnedDataType(DataType newOwnedDataType, NotificationChain msgs) {
+		DataType oldOwnedDataType = ownedDataType;
+		ownedDataType = newOwnedDataType;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE, oldDataType, newDataType);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE, oldOwnedDataType, newOwnedDataType);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -100,18 +111,64 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setDataType(DataType newDataType) {
-		if (newDataType != dataType) {
+	public void setOwnedDataType(DataType newOwnedDataType) {
+		if (newOwnedDataType != ownedDataType) {
 			NotificationChain msgs = null;
-			if (dataType != null)
-				msgs = ((InternalEObject)dataType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE, null, msgs);
-			if (newDataType != null)
-				msgs = ((InternalEObject)newDataType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE, null, msgs);
-			msgs = basicSetDataType(newDataType, msgs);
+			if (ownedDataType != null)
+				msgs = ((InternalEObject)ownedDataType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE, null, msgs);
+			if (newOwnedDataType != null)
+				msgs = ((InternalEObject)newOwnedDataType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE, null, msgs);
+			msgs = basicSetOwnedDataType(newOwnedDataType, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE, newDataType, newDataType));
+			eNotify(new ENotificationImpl(this, Notification.SET, ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE, newOwnedDataType, newOwnedDataType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataType getDataTypeGen() {
+		if (dataType != null && dataType.eIsProxy()) {
+			InternalEObject oldDataType = (InternalEObject)dataType;
+			dataType = (DataType)eResolveProxy(oldDataType);
+			if (dataType != oldDataType) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE, oldDataType, dataType));
+			}
+		}
+		return dataType;
+	}
+	
+	public DataType getDataType() {
+		DataType dataType = getDataTypeGen();
+		if (dataType == null) {
+			dataType = getOwnedDataType();
+		}
+		return dataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataType basicGetDataType() {
+		return dataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDataType(DataType newDataType) {
+		DataType oldDataType = dataType;
+		dataType = newDataType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE, oldDataType, dataType));
 	}
 
 	/**
@@ -160,8 +217,8 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE:
-				return basicSetDataType(null, msgs);
+			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE:
+				return basicSetOwnedDataType(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -174,8 +231,11 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE:
+				return getOwnedDataType();
 			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE:
-				return getDataType();
+				if (resolve) return getDataType();
+				return basicGetDataType();
 			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__NUMBER_FORMAT:
 				if (resolve) return getNumberFormat();
 				return basicGetNumberFormat();
@@ -191,6 +251,9 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE:
+				setOwnedDataType((DataType)newValue);
+				return;
 			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE:
 				setDataType((DataType)newValue);
 				return;
@@ -209,6 +272,9 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE:
+				setOwnedDataType((DataType)null);
+				return;
 			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE:
 				setDataType((DataType)null);
 				return;
@@ -227,6 +293,8 @@ public class NumberFormatMappingImpl extends EObjectImpl implements NumberFormat
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__OWNED_DATA_TYPE:
+				return ownedDataType != null;
 			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__DATA_TYPE:
 				return dataType != null;
 			case ComputationModelPackage.NUMBER_FORMAT_MAPPING__NUMBER_FORMAT: