|
|
@@ -7,33 +7,11 @@
|
|
|
package org.eclipselabs.mscript.computation.computationmodel.ui.editor.presentation;
|
|
|
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
-import java.util.Collection;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.MissingResourceException;
|
|
|
-import java.util.StringTokenizer;
|
|
|
-
|
|
|
-import org.eclipse.emf.common.CommonPlugin;
|
|
|
-
|
|
|
-import org.eclipse.emf.common.util.URI;
|
|
|
-
|
|
|
-import org.eclipse.emf.ecore.EClass;
|
|
|
-import org.eclipse.emf.ecore.EClassifier;
|
|
|
-
|
|
|
-import org.eclipse.emf.ecore.resource.Resource;
|
|
|
-import org.eclipse.emf.ecore.resource.ResourceSet;
|
|
|
-
|
|
|
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
|
|
|
-
|
|
|
-import org.eclipse.emf.ecore.EObject;
|
|
|
-
|
|
|
-import org.eclipse.emf.ecore.xmi.XMLResource;
|
|
|
-
|
|
|
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
|
|
|
|
|
|
import org.eclipse.core.resources.IContainer;
|
|
|
import org.eclipse.core.resources.IFile;
|
|
|
@@ -41,53 +19,32 @@ import org.eclipse.core.resources.IFolder;
|
|
|
import org.eclipse.core.resources.IProject;
|
|
|
import org.eclipse.core.resources.IResource;
|
|
|
import org.eclipse.core.resources.ResourcesPlugin;
|
|
|
-
|
|
|
import org.eclipse.core.runtime.IProgressMonitor;
|
|
|
-
|
|
|
+import org.eclipse.core.runtime.Path;
|
|
|
+import org.eclipse.emf.common.util.URI;
|
|
|
+import org.eclipse.emf.ecore.EObject;
|
|
|
+import org.eclipse.emf.ecore.resource.Resource;
|
|
|
+import org.eclipse.emf.ecore.resource.ResourceSet;
|
|
|
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
|
|
|
+import org.eclipse.emf.ecore.xmi.XMLResource;
|
|
|
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
|
|
|
import org.eclipse.jface.dialogs.MessageDialog;
|
|
|
-
|
|
|
+import org.eclipse.jface.viewers.ISelection;
|
|
|
import org.eclipse.jface.viewers.IStructuredSelection;
|
|
|
-
|
|
|
+import org.eclipse.jface.viewers.StructuredSelection;
|
|
|
import org.eclipse.jface.wizard.Wizard;
|
|
|
-import org.eclipse.jface.wizard.WizardPage;
|
|
|
-
|
|
|
-import org.eclipse.swt.SWT;
|
|
|
-
|
|
|
-import org.eclipse.swt.events.ModifyListener;
|
|
|
-import org.eclipse.swt.events.ModifyEvent;
|
|
|
-
|
|
|
-import org.eclipse.swt.layout.GridData;
|
|
|
-import org.eclipse.swt.layout.GridLayout;
|
|
|
-
|
|
|
-import org.eclipse.swt.widgets.Combo;
|
|
|
-import org.eclipse.swt.widgets.Composite;
|
|
|
-import org.eclipse.swt.widgets.Label;
|
|
|
-
|
|
|
import org.eclipse.ui.INewWizard;
|
|
|
import org.eclipse.ui.IWorkbench;
|
|
|
-
|
|
|
+import org.eclipse.ui.IWorkbenchPage;
|
|
|
+import org.eclipse.ui.IWorkbenchPart;
|
|
|
+import org.eclipse.ui.IWorkbenchWindow;
|
|
|
+import org.eclipse.ui.PartInitException;
|
|
|
import org.eclipse.ui.actions.WorkspaceModifyOperation;
|
|
|
-
|
|
|
import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
|
|
|
-
|
|
|
import org.eclipse.ui.part.FileEditorInput;
|
|
|
import org.eclipse.ui.part.ISetSelectionTarget;
|
|
|
-
|
|
|
import org.eclipselabs.mscript.computation.computationmodel.ComputationModelFactory;
|
|
|
import org.eclipselabs.mscript.computation.computationmodel.ComputationModelPackage;
|
|
|
-import org.eclipselabs.mscript.computation.computationmodel.edit.ComputationModelEditPlugin;
|
|
|
-
|
|
|
-
|
|
|
-import org.eclipse.core.runtime.Path;
|
|
|
-
|
|
|
-import org.eclipse.jface.viewers.ISelection;
|
|
|
-import org.eclipse.jface.viewers.StructuredSelection;
|
|
|
-
|
|
|
-import org.eclipse.ui.IWorkbenchPage;
|
|
|
-import org.eclipse.ui.IWorkbenchPart;
|
|
|
-import org.eclipse.ui.IWorkbenchWindow;
|
|
|
-import org.eclipse.ui.PartInitException;
|
|
|
-
|
|
|
import org.eclipselabs.mscript.computation.computationmodel.ui.ComputationModelUIPlugin;
|
|
|
|
|
|
|
|
|
@@ -95,7 +52,7 @@ import org.eclipselabs.mscript.computation.computationmodel.ui.ComputationModelU
|
|
|
* This is a simple wizard for creating a new model file.
|
|
|
* <!-- begin-user-doc -->
|
|
|
* <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
+ * @generated NOT
|
|
|
*/
|
|
|
public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
/**
|
|
|
@@ -140,14 +97,6 @@ public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
*/
|
|
|
protected ComputationModelModelWizardNewFileCreationPage newFileCreationPage;
|
|
|
|
|
|
- /**
|
|
|
- * This is the initial object creation page.
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected ComputationModelModelWizardInitialObjectCreationPage initialObjectCreationPage;
|
|
|
-
|
|
|
/**
|
|
|
* Remember the selection during initialization for populating the default container.
|
|
|
* <!-- begin-user-doc -->
|
|
|
@@ -164,14 +113,6 @@ public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
*/
|
|
|
protected IWorkbench workbench;
|
|
|
|
|
|
- /**
|
|
|
- * Caches the names of the types that can be created as the root object.
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected List<String> initialObjectNames;
|
|
|
-
|
|
|
/**
|
|
|
* This just records the information.
|
|
|
* <!-- begin-user-doc -->
|
|
|
@@ -185,38 +126,14 @@ public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ComputationModelUIPlugin.INSTANCE.getImage("full/wizban/NewComputationModel")));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Returns the names of the types that can be created as the root object.
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected Collection<String> getInitialObjectNames() {
|
|
|
- if (initialObjectNames == null) {
|
|
|
- initialObjectNames = new ArrayList<String>();
|
|
|
- for (EClassifier eClassifier : computationModelPackage.getEClassifiers()) {
|
|
|
- if (eClassifier instanceof EClass) {
|
|
|
- EClass eClass = (EClass)eClassifier;
|
|
|
- if (!eClass.isAbstract()) {
|
|
|
- initialObjectNames.add(eClass.getName());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
|
|
|
- }
|
|
|
- return initialObjectNames;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* Create a new model.
|
|
|
* <!-- begin-user-doc -->
|
|
|
* <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
+ * @generated NOT
|
|
|
*/
|
|
|
protected EObject createInitialModel() {
|
|
|
- EClass eClass = (EClass)computationModelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
|
|
|
- EObject rootObject = computationModelFactory.create(eClass);
|
|
|
- return rootObject;
|
|
|
+ return computationModelFactory.createComputationModel();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -261,7 +178,7 @@ public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
// Save the contents of the resource to the file system.
|
|
|
//
|
|
|
Map<Object, Object> options = new HashMap<Object, Object>();
|
|
|
- options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
|
|
|
+ options.put(XMLResource.OPTION_ENCODING, "UTF-8");
|
|
|
resource.save(options);
|
|
|
}
|
|
|
catch (Exception exception) {
|
|
|
@@ -357,215 +274,6 @@ public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * This is the page where the type of object to create is selected.
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public class ComputationModelModelWizardInitialObjectCreationPage extends WizardPage {
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected Combo initialObjectField;
|
|
|
-
|
|
|
- /**
|
|
|
- * @generated
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- */
|
|
|
- protected List<String> encodings;
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected Combo encodingField;
|
|
|
-
|
|
|
- /**
|
|
|
- * Pass in the selection.
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public ComputationModelModelWizardInitialObjectCreationPage(String pageId) {
|
|
|
- super(pageId);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public void createControl(Composite parent) {
|
|
|
- Composite composite = new Composite(parent, SWT.NONE);
|
|
|
- {
|
|
|
- GridLayout layout = new GridLayout();
|
|
|
- layout.numColumns = 1;
|
|
|
- layout.verticalSpacing = 12;
|
|
|
- composite.setLayout(layout);
|
|
|
-
|
|
|
- GridData data = new GridData();
|
|
|
- data.verticalAlignment = GridData.FILL;
|
|
|
- data.grabExcessVerticalSpace = true;
|
|
|
- data.horizontalAlignment = GridData.FILL;
|
|
|
- composite.setLayoutData(data);
|
|
|
- }
|
|
|
-
|
|
|
- Label containerLabel = new Label(composite, SWT.LEFT);
|
|
|
- {
|
|
|
- containerLabel.setText(ComputationModelUIPlugin.INSTANCE.getString("_UI_ModelObject"));
|
|
|
-
|
|
|
- GridData data = new GridData();
|
|
|
- data.horizontalAlignment = GridData.FILL;
|
|
|
- containerLabel.setLayoutData(data);
|
|
|
- }
|
|
|
-
|
|
|
- initialObjectField = new Combo(composite, SWT.BORDER);
|
|
|
- {
|
|
|
- GridData data = new GridData();
|
|
|
- data.horizontalAlignment = GridData.FILL;
|
|
|
- data.grabExcessHorizontalSpace = true;
|
|
|
- initialObjectField.setLayoutData(data);
|
|
|
- }
|
|
|
-
|
|
|
- for (String objectName : getInitialObjectNames()) {
|
|
|
- initialObjectField.add(getLabel(objectName));
|
|
|
- }
|
|
|
-
|
|
|
- if (initialObjectField.getItemCount() == 1) {
|
|
|
- initialObjectField.select(0);
|
|
|
- }
|
|
|
- initialObjectField.addModifyListener(validator);
|
|
|
-
|
|
|
- Label encodingLabel = new Label(composite, SWT.LEFT);
|
|
|
- {
|
|
|
- encodingLabel.setText(ComputationModelUIPlugin.INSTANCE.getString("_UI_XMLEncoding"));
|
|
|
-
|
|
|
- GridData data = new GridData();
|
|
|
- data.horizontalAlignment = GridData.FILL;
|
|
|
- encodingLabel.setLayoutData(data);
|
|
|
- }
|
|
|
- encodingField = new Combo(composite, SWT.BORDER);
|
|
|
- {
|
|
|
- GridData data = new GridData();
|
|
|
- data.horizontalAlignment = GridData.FILL;
|
|
|
- data.grabExcessHorizontalSpace = true;
|
|
|
- encodingField.setLayoutData(data);
|
|
|
- }
|
|
|
-
|
|
|
- for (String encoding : getEncodings()) {
|
|
|
- encodingField.add(encoding);
|
|
|
- }
|
|
|
-
|
|
|
- encodingField.select(0);
|
|
|
- encodingField.addModifyListener(validator);
|
|
|
-
|
|
|
- setPageComplete(validatePage());
|
|
|
- setControl(composite);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected ModifyListener validator =
|
|
|
- new ModifyListener() {
|
|
|
- public void modifyText(ModifyEvent e) {
|
|
|
- setPageComplete(validatePage());
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected boolean validatePage() {
|
|
|
- return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void setVisible(boolean visible) {
|
|
|
- super.setVisible(visible);
|
|
|
- if (visible) {
|
|
|
- if (initialObjectField.getItemCount() == 1) {
|
|
|
- initialObjectField.clearSelection();
|
|
|
- encodingField.setFocus();
|
|
|
- }
|
|
|
- else {
|
|
|
- encodingField.clearSelection();
|
|
|
- initialObjectField.setFocus();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public String getInitialObjectName() {
|
|
|
- String label = initialObjectField.getText();
|
|
|
-
|
|
|
- for (String name : getInitialObjectNames()) {
|
|
|
- if (getLabel(name).equals(label)) {
|
|
|
- return name;
|
|
|
- }
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public String getEncoding() {
|
|
|
- return encodingField.getText();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Returns the label for the specified type name.
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected String getLabel(String typeName) {
|
|
|
- try {
|
|
|
- return ComputationModelEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
|
|
|
- }
|
|
|
- catch(MissingResourceException mre) {
|
|
|
- ComputationModelUIPlugin.INSTANCE.log(mre);
|
|
|
- }
|
|
|
- return typeName;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc -->
|
|
|
- * <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- protected Collection<String> getEncodings() {
|
|
|
- if (encodings == null) {
|
|
|
- encodings = new ArrayList<String>();
|
|
|
- for (StringTokenizer stringTokenizer = new StringTokenizer(ComputationModelUIPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
|
|
|
- encodings.add(stringTokenizer.nextToken());
|
|
|
- }
|
|
|
- }
|
|
|
- return encodings;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* The framework calls this to create the contents of the wizard.
|
|
|
* <!-- begin-user-doc -->
|
|
|
@@ -615,10 +323,6 @@ public class ComputationModelModelWizard extends Wizard implements INewWizard {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- initialObjectCreationPage = new ComputationModelModelWizardInitialObjectCreationPage("Whatever2");
|
|
|
- initialObjectCreationPage.setTitle(ComputationModelUIPlugin.INSTANCE.getString("_UI_ComputationModelModelWizard_label"));
|
|
|
- initialObjectCreationPage.setDescription(ComputationModelUIPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
|
|
|
- addPage(initialObjectCreationPage);
|
|
|
}
|
|
|
|
|
|
/**
|