Esempio n. 1
0
  /** @generated */
  public boolean performFinish() {
    List affectedFiles = new LinkedList();
    IFile diagramFile = myFileCreationPage.createNewFile();
    AcoreDiagramEditorUtil.setCharset(diagramFile);
    affectedFiles.add(diagramFile);
    URI diagramModelURI = URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);
    ResourceSet resourceSet = myEditingDomain.getResourceSet();
    final Resource diagramResource = resourceSet.createResource(diagramModelURI);
    AbstractTransactionalCommand command =
        new AbstractTransactionalCommand(
            myEditingDomain, Messages.AcoreNewDiagramFileWizard_InitDiagramCommand, affectedFiles) {

          protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info)
              throws ExecutionException {
            int diagramVID =
                AcoreVisualIDRegistry.getDiagramVisualID(
                    diagramRootElementSelectionPage.getModelElement());
            if (diagramVID != ACoreRootEditPart.VISUAL_ID) {
              return CommandResult.newErrorCommandResult(
                  Messages.AcoreNewDiagramFileWizard_IncorrectRootError);
            }
            Diagram diagram =
                ViewService.createDiagram(
                    diagramRootElementSelectionPage.getModelElement(),
                    ACoreRootEditPart.MODEL_ID,
                    AcoreDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
            diagramResource.getContents().add(diagram);
            return CommandResult.newOKCommandResult();
          }
        };
    try {
      OperationHistoryFactory.getOperationHistory()
          .execute(command, new NullProgressMonitor(), null);
      diagramResource.save(AcoreDiagramEditorUtil.getSaveOptions());
      AcoreDiagramEditorUtil.openDiagram(diagramResource);
    } catch (ExecutionException e) {
      AcoreDiagramEditorPlugin.getInstance()
          .logError("Unable to create model and diagram", e); // $NON-NLS-1$
    } catch (IOException ex) {
      AcoreDiagramEditorPlugin.getInstance()
          .logError("Save operation failed for: " + diagramModelURI, ex); // $NON-NLS-1$
    } catch (PartInitException ex) {
      AcoreDiagramEditorPlugin.getInstance().logError("Unable to open editor", ex); // $NON-NLS-1$
    }
    return true;
  }
Esempio n. 2
0
  /** @generated */
  public AcoreNewDiagramFileWizard(
      URI domainModelURI, EObject diagramRoot, TransactionalEditingDomain editingDomain) {
    assert domainModelURI != null : "Domain model uri must be specified"; // $NON-NLS-1$
    assert diagramRoot != null : "Doagram root element must be specified"; // $NON-NLS-1$
    assert editingDomain != null : "Editing domain must be specified"; // $NON-NLS-1$

    myFileCreationPage =
        new WizardNewFileCreationPage(
            Messages.AcoreNewDiagramFileWizard_CreationPageName, StructuredSelection.EMPTY);
    myFileCreationPage.setTitle(Messages.AcoreNewDiagramFileWizard_CreationPageTitle);
    myFileCreationPage.setDescription(
        NLS.bind(
            Messages.AcoreNewDiagramFileWizard_CreationPageDescription,
            ACoreRootEditPart.MODEL_ID));
    IPath filePath;
    String fileName = URI.decode(domainModelURI.trimFileExtension().lastSegment());
    if (domainModelURI.isPlatformResource()) {
      filePath = new Path(domainModelURI.trimSegments(1).toPlatformString(true));
    } else if (domainModelURI.isFile()) {
      filePath = new Path(domainModelURI.trimSegments(1).toFileString());
    } else {
      // TODO : use some default path
      throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); // $NON-NLS-1$
    }
    myFileCreationPage.setContainerFullPath(filePath);
    myFileCreationPage.setFileName(
        AcoreDiagramEditorUtil.getUniqueFileName(
            filePath, fileName, "acore_diagram")); // $NON-NLS-1$

    diagramRootElementSelectionPage =
        new DiagramRootElementSelectionPage(
            Messages.AcoreNewDiagramFileWizard_RootSelectionPageName);
    diagramRootElementSelectionPage.setTitle(
        Messages.AcoreNewDiagramFileWizard_RootSelectionPageTitle);
    diagramRootElementSelectionPage.setDescription(
        Messages.AcoreNewDiagramFileWizard_RootSelectionPageDescription);
    diagramRootElementSelectionPage.setModelElement(diagramRoot);

    myEditingDomain = editingDomain;
  }