/** * Close selected page. * * @param pageMngr */ public void execute(final Diagram diagram, final IEditorPart editorPart) { TransactionalEditingDomain editingDomain = EditorUtils.getTransactionalEditingDomain(); if (editingDomain != null) { InputDialog dialog = new InputDialog( Display.getCurrent().getActiveShell(), "Rename an existing diagram", "New name:", diagram.getName(), null); if (dialog.open() == Window.OK) { final String name = dialog.getValue(); if (name != null && name.length() > 0) { Command command = new RecordingCommand(editingDomain) { @Override protected void doExecute() { diagram.setName(name); } }; editingDomain.getCommandStack().execute(command); } } } }
protected void removeAction() { // Erase image content if (getElement() instanceof Image) { TransactionalEditingDomain dom = EditorUtils.getTransactionalEditingDomain(); AbstractTransactionalCommand operation = new AbstractTransactionalCommand(dom, "Remove Image content", null) { /** {@inheritDoc} */ @Override protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { try { ImageUtil.setContent((Image) getElement(), null); } catch (Exception ex) { return CommandResult.newErrorCommandResult(ex); } return CommandResult.newOKCommandResult(); } }; dom.getCommandStack().execute(new GMFtoEMFCommandWrapper(operation)); refresh(); } }
/** Add the created invoked object to its selected parent */ protected void addParameter(Parameter createdParameter) { TransactionalEditingDomain editingdomain = EditorUtils.getTransactionalEditingDomain(); // Let the command find the relation on its own. Command addCmd = AddCommand.create( editingdomain, parameterOwner, null, Collections.singleton(createdParameter)); addCmd.execute(); }
/** Navigate to the linked element. Open it in model editor and print its properties. */ protected void navigateToElement() { IMultiDiagramEditor editor = EditorUtils.getMultiDiagramEditor(); IViewReference[] views = editor.getSite().getPage().getViewReferences(); for (IViewReference view : views) { IWorkbenchPart part = view.getPart(false); if (part instanceof CommonNavigator) { CommonNavigator navigator = (CommonNavigator) part; // set focus to navigator, otherwise, diagram view will reset the selection navigator.setFocus(); navigator.selectReveal(new StructuredSelection(element)); } } }
/** * Execute the command : create the model element, then the corresponding views * * @see org.eclipse.gef.commands.Command#execute() */ @Override public void execute() { Object constraint = null; if (elementCreationCommand != null) { elementCreationCommand.execute(); constraint = elementCreationCommand.getICommand().getCommandResult().getReturnValue(); } if (constraint instanceof Constraint && compartment != null && type != null) { // construct the complete command for views creation and execute it. viewsCreationCommand = new CompoundCommand(); // creation of the node by the compartment ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor( new EObjectAdapter((EObject) constraint), Node.class, type.getSemanticHint(), compartment.getDiagramPreferencesHint()); CreateViewRequest request = new CreateViewRequest(descriptor); Command nodeCreationCommand = compartment.getCommand(request); viewsCreationCommand.add(nodeCreationCommand); // try and recover the created edit part, then create the link if (linkedActionEditPart != null && getLinkType() != null) { IAdaptable targetAdapter = extractResult(nodeCreationCommand); if (targetAdapter != null) { IAdaptable sourceAdapter = new SemanticAdapter(null, linkedActionEditPart.getModel()); // descriptor of the link CreateConnectionViewRequest.ConnectionViewDescriptor linkdescriptor = new CreateConnectionViewRequest.ConnectionViewDescriptor( getLinkType(), getLinkType().getSemanticHint(), compartment.getDiagramPreferencesHint()); CommonDeferredCreateConnectionViewCommand aLinkCommand = new CommonDeferredCreateConnectionViewCommand( EditorUtils.getTransactionalEditingDomain(), getLinkType().getSemanticHint(), sourceAdapter, targetAdapter, compartment.getViewer(), compartment.getDiagramPreferencesHint(), linkdescriptor, null); aLinkCommand.setElement((EObject) constraint); viewsCreationCommand.add(new ICommandProxy(aLinkCommand)); } } viewsCreationCommand.execute(); } }
/** * Execute the passed Runnable within a command * * @param label * @param command */ public static void exec(String label, final Runnable command) { TransactionalEditingDomain domain = EditorUtils.getTransactionalEditingDomain(); IOperationHistory history = OperationHistoryFactory.getOperationHistory(); try { history.execute( new AbstractTransactionalCommand(domain, label, Collections.EMPTY_LIST) { @Override public CommandResult doExecuteWithResult(IProgressMonitor dummy, IAdaptable info) { command.run(); return CommandResult.newOKCommandResult(); } }, null, null); } catch (ExecutionException e) { e.printStackTrace(); } }
/** {@inheritDoc} */ public Object[] getElements(Object inputElement) { try { IPageMngr iPageMngr = EditorUtils.getIPageMngr(); Object[] result = iPageMngr.allPages().toArray(); List<Object> res = new ArrayList<Object>(); for (Object current : result) { if (current != null /* && current instanceof PapyrusTableInstance */) { // if the model is a little bit corrupted, we can have a null element in the list res.add(current); } } return res.toArray(); } catch (Exception e) { Activator.log.error(e); } return null; }
@SuppressWarnings("deprecation") public void process( DiResourceSet diResourceSet, IFile newFile, String diagramCategoryId, String path) { createPapyrusModels(diResourceSet, newFile); // initDomainModel(diResourceSet, newFile, diagramCategoryId); createEmptyDomainModel(diResourceSet, diagramCategoryId); // initDiagrams(diResourceSet, null, "uml"); List<ICreationCommand> creationCommands = new ArrayList<ICreationCommand>(); // getDiagramKindsFor("uml"); creationCommands.add((ICreationCommand) new CreateSequenceDiagramCommand()); String diagramName = "NewSequenceDiagram"; if (creationCommands.isEmpty()) { EditorUtils.getTransactionalIPageMngr( diResourceSet.getDiResource(), diResourceSet.getTransactionalEditingDomain()); } else { for (int i = 0; i < creationCommands.size(); i++) { creationCommands.get(i).createDiagram(diResourceSet, null, diagramName); } } try { diResourceSet.save(new NullProgressMonitor()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String sourceDir = newFile.getLocation().removeLastSegments(1).toOSString(); String targitDir = new Path(path).removeLastSegments(1).toOSString(); String filename = newFile.getLocation().removeFileExtension().lastSegment(); moveFile(sourceDir, targitDir, filename, "di"); moveFile(sourceDir, targitDir, filename, "notation"); moveFile(sourceDir, targitDir, filename, "uml"); // openDiagram(newFile); }
protected void browseAction() { FileDialog fd = new FileDialog(composite.getShell()); String extensions[] = {"*.jpg;*.bmp;*.ico;*.gif;*.png;*.wmf;*.emf"}; // $NON-NLS-1$ fd.setFilterExtensions(extensions); String iconSelected = fd.open(); // No image selected if (iconSelected == null) { return; } if (getElement() instanceof Image) { final File imgFile = new File(iconSelected); TransactionalEditingDomain domain = EditorUtils.getTransactionalEditingDomain(); AbstractTransactionalCommand operation = new AbstractTransactionalCommand(domain, "Set Image content", null) { /** {@inheritDoc} */ @Override protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { try { ImageUtil.setContent((Image) getElement(), imgFile); ((Image) getElement()).setFormat(PAPYRUS_FORMAT); } catch (Exception ex) { return CommandResult.newErrorCommandResult(ex); } return CommandResult.newOKCommandResult(); } }; domain.getCommandStack().execute(new GMFtoEMFCommandWrapper(operation)); refresh(); } }