|
@@ -97,25 +97,57 @@ public class CreationWizard extends Wizard implements INewWizard {
|
|
|
|
|
|
@Override
|
|
|
public void addPages() {
|
|
|
+ initModelCreationPage();
|
|
|
+
|
|
|
+ initDomainWizardPage();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void initModelCreationPage() {
|
|
|
modelCreationPage = new ModelCreationWizardPage("DiagramModelFile", getSelection(), "sct");
|
|
|
modelCreationPage.setTitle("YAKINDU SCT Diagram");
|
|
|
modelCreationPage.setDescription("Create a new YAKINDU SCT Diagram File");
|
|
|
modelCreationPage.setImageDescriptor(StatechartImages.LOGO.imageDescriptor());
|
|
|
+ addPage(modelCreationPage);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void initDomainWizardPage() {
|
|
|
domainWizardPage = new DomainWizardPage("DomainWizard");
|
|
|
domainWizardPage.setTitle("Select Statechart Domain");
|
|
|
domainWizardPage.setDescription("Select the domain you want to create a statechart for.");
|
|
|
domainWizardPage.setImageDescriptor(StatechartImages.LOGO.imageDescriptor());
|
|
|
addPage(domainWizardPage);
|
|
|
-
|
|
|
- addPage(modelCreationPage);
|
|
|
}
|
|
|
|
|
|
+ public static class DiagramCreationDesccription{
|
|
|
+
|
|
|
+ private URI uri;
|
|
|
+ private String domainID;
|
|
|
+
|
|
|
+ public DiagramCreationDesccription(URI uri, String domainID) {
|
|
|
+ this.uri = uri;
|
|
|
+ this.domainID = domainID;
|
|
|
+ }
|
|
|
+
|
|
|
+ public URI getModelURI() {
|
|
|
+ return uri;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getDomainID() {
|
|
|
+ return domainID;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public boolean performFinish() {
|
|
|
+ final DiagramCreationDesccription create = getDiagramDescription();
|
|
|
+
|
|
|
IRunnableWithProgress op = new WorkspaceModifyOperation(null) {
|
|
|
@Override
|
|
|
protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException {
|
|
|
- diagram = createDiagram(modelCreationPage.getURI(), modelCreationPage.getURI(), monitor);
|
|
|
+
|
|
|
+ diagram = createDiagram(create, monitor);
|
|
|
if (isOpenOnCreate() && diagram != null) {
|
|
|
try {
|
|
|
openDiagram(diagram);
|
|
@@ -135,6 +167,17 @@ public class CreationWizard extends Wizard implements INewWizard {
|
|
|
return diagram != null;
|
|
|
}
|
|
|
|
|
|
+ protected DiagramCreationDesccription getDiagramDescription() {
|
|
|
+ URI uri = modelCreationPage.getURI();
|
|
|
+ final String domainID = domainWizardPage != null ? domainWizardPage.getDomainID()
|
|
|
+ : BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral();
|
|
|
+
|
|
|
+ final DiagramCreationDesccription create = new DiagramCreationDesccription(uri,domainID);
|
|
|
+ return create;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
protected boolean openDiagram(Resource diagram) throws PartInitException {
|
|
|
String path = diagram.getURI().toPlatformString(true);
|
|
|
IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
|
|
@@ -173,10 +216,12 @@ public class CreationWizard extends Wizard implements INewWizard {
|
|
|
return StatechartDiagramEditor.ID;
|
|
|
}
|
|
|
|
|
|
- protected Resource createDiagram(final URI diagramURI, final URI modelURI, IProgressMonitor progressMonitor) {
|
|
|
+ protected Resource createDiagram(final DiagramCreationDesccription create, IProgressMonitor progressMonitor) {
|
|
|
TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
|
|
|
progressMonitor.beginTask("Creating diagram file ...", 3);
|
|
|
- final Resource resource = editingDomain.getResourceSet().createResource(modelURI);
|
|
|
+
|
|
|
+ final Resource resource = editingDomain.getResourceSet().createResource(create.getModelURI());
|
|
|
+
|
|
|
AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain,
|
|
|
"Creating diagram file ...", Collections.EMPTY_LIST) {
|
|
|
@Override
|
|
@@ -186,8 +231,7 @@ public class CreationWizard extends Wizard implements INewWizard {
|
|
|
FactoryUtils.createStatechartModel(resource, preferencesHint);
|
|
|
Statechart statechart = (Statechart) EcoreUtil.getObjectByType(resource.getContents(),
|
|
|
SGraphPackage.Literals.STATECHART);
|
|
|
- statechart.setDomainID(domainWizardPage != null ? domainWizardPage.getDomainID()
|
|
|
- : BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral());
|
|
|
+ statechart.setDomainID(create.getDomainID());
|
|
|
|
|
|
try {
|
|
|
resource.save(getSaveOptions());
|