List of usage examples for org.eclipse.jface.dialogs MessageDialog openError
public static void openError(Shell parent, String title, String message)
From source file:ac.soton.eventb.atomicitydecomposition.generator.actions.GenerateAction.java
License:Open Source License
@Override public Object execute(ExecutionEvent event) throws ExecutionException { IEditorPart editor = HandlerUtil.getActiveEditorChecked(event); if (editor instanceof RoseEditor) { final RoseEditor roseEditor = (RoseEditor) editor; IStructuredSelection selection = (IStructuredSelection) roseEditor.getSelection(); if (selection.getFirstElement() instanceof EventBElement) { final EventBElement eventBElement = (EventBElement) selection.getFirstElement(); ResourceSet resourceSet = eventBElement.eResource().getResourceSet(); if (editor.isDirty()) editor.doSave(new NullProgressMonitor()); // first validate, then transform // if (ValidateAction.validate(diagramDocumentEditor)){ for (AbstractExtension abs : eventBElement.getExtensions()) { TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Factory.INSTANCE .createEditingDomain(); AbstractExtension absExt; if (abs.eIsProxy()) { absExt = (AbstractExtension) resourceSet.getEObject(EcoreUtil.getURI(abs), false); } else absExt = abs;// w w w .j a v a 2 s. c o m if (absExt instanceof FlowDiagram) { //If there is no extension, set as being the name if (absExt.getExtensionId() == null || absExt.getExtensionId().equals("")) { absExt.setExtensionId(((FlowDiagram) absExt).getName()); } final GenerateCommand generateCommand = new GenerateCommand(editingDomain, absExt); if (generateCommand.canExecute()) { // run with progress ProgressMonitorDialog dialog = new ProgressMonitorDialog( roseEditor.getSite().getShell()); try { dialog.run(true, true, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) { monitor.beginTask(Messages.GENERATOR_MSG_05, IProgressMonitor.UNKNOWN); try { generateCommand.execute(monitor, roseEditor); } catch (ExecutionException e) { Activator.logError(Messages.GENERATOR_MSG_06, e); } monitor.done(); } }); } catch (InvocationTargetException e) { Activator.logError(Messages.GENERATOR_MSG_07, e); return null; } catch (InterruptedException e) { Activator.logError(Messages.GENERATOR_MSG_08, e); return null; } // error feedback if (false == generateCommand.getCommandResult().getStatus().isOK()) MessageDialog.openError(editor.getSite().getShell(), Messages.GENERATOR_MSG_09, Messages.GENERATOR_MSG_10); } } } } } return null; }
From source file:ac.soton.eventb.classdiagrams.diagram.part.ClassdiagramsInitDiagramFileAction.java
License:Open Source License
/** * @generated/*from w w w .j av a2 s . c o m*/ */ public void run(IAction action) { TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); ResourceSet resourceSet = editingDomain.getResourceSet(); EObject diagramRoot = null; try { Resource resource = resourceSet.getResource(domainModelURI, true); diagramRoot = (EObject) resource.getContents().get(0); } catch (WrappedException ex) { ClassdiagramsDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, //$NON-NLS-1$ ex); } if (diagramRoot == null) { MessageDialog.openError(getShell(), Messages.InitDiagramFile_ResourceErrorDialogTitle, Messages.InitDiagramFile_ResourceErrorDialogMessage); return; } Wizard wizard = new ClassdiagramsNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain); wizard.setWindowTitle(NLS.bind(Messages.InitDiagramFile_WizardTitle, ClassdiagramEditPart.MODEL_ID)); ClassdiagramsDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$ }
From source file:ac.soton.eventb.classdiagrams.diagram.sheet.custom.ElaboratesPropertySection.java
License:Open Source License
@Override public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) { super.createControls(parent, aTabbedPropertySheetPage); Control[] children = parent.getChildren(); FormData data;//from w w w.j a va 2 s. c o m // overriding "Delete" label removeButton.setText("Remove Event"); // a new button to create eventB event and add it to elaborates creAddButton = getWidgetFactory().createButton((Composite) children[0], "Create && Add", SWT.PUSH); data = new FormData(); data.left = new FormAttachment(removeButton, 0); data.bottom = new FormAttachment(100, 0); creAddButton.setLayoutData(data); creAddButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { // remember selection int idx = table.getSelectionIndex(); // create and add new event EObject container = EcoreUtil.getRootContainer(eObject); Machine machine = (Machine) container; NewEventDialog dialog = new NewEventDialog(getPart().getSite().getShell(), machine, null); if (Dialog.OK == dialog.open()) { EObject newChild = dialog.getEvent(); if (newChild == null) return; EditingDomain editingDomain = ((DiagramEditor) getPart()).getEditingDomain(); CompoundCommand cc = new CompoundCommand("Add new event for elaborates"); // new event cc.append(AddCommand.create(editingDomain, machine, MachinePackage.Literals.MACHINE__EVENTS, newChild)); // elaborate cc.append(AddCommand.create(editingDomain, eObject, getFeature(), newChild)); editingDomain.getCommandStack().execute(cc); refresh(); // restore selection table.select(idx); table.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event()); } } }); // a new button to create eventB event and add it to elaborates remDelButton = getWidgetFactory().createButton((Composite) children[0], "Remove && Delete", SWT.PUSH); data = new FormData(); data.left = new FormAttachment(creAddButton, 0); data.bottom = new FormAttachment(100, 0); remDelButton.setLayoutData(data); remDelButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { EditingDomain editingDomain = ((DiagramEditor) getPart()).getEditingDomain(); Object object = table.getSelection()[0].getData(); EList<EObject> newValues = new BasicEList<EObject>(); Iterator<EObject> it = ((EList) eObject.eGet(getFeature())).iterator(); for (; it.hasNext();) { EObject value = it.next(); if (!value.equals(object)) newValues.add(value); } editingDomain.getCommandStack() .execute(SetCommand.create(editingDomain, eObject, getFeature(), newValues)); //FIXME: RemoveCommand is preferred, but it causes non-containment references to be removed along with !originals! // RemoveCommand.create(editingDomain, eObject, getFeature(), object)); refresh(); //delete the event from the machine EObject container = EcoreUtil.getRootContainer(eObject); Machine machine = (Machine) container; if (object instanceof Event && machine instanceof Machine) { editingDomain.getCommandStack().execute(RemoveCommand.create(editingDomain, machine, MachinePackage.Literals.MACHINE__EVENTS, object)); refresh(); } } }); // button to add an event refines reference to an eventB event addRefinesButton = getWidgetFactory().createButton((Composite) children[0], "Add Refines", SWT.PUSH); data = new FormData(); data.left = new FormAttachment(remDelButton, 0); data.bottom = new FormAttachment(100, 0); addRefinesButton.setLayoutData(data); addRefinesButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { // remember selection int idx = table.getSelectionIndex(); Object object = table.getSelection()[0].getData(); if (!(object instanceof Event)) return; Event refinedEvent = (Event) object; if (((Machine) EcoreUtil.getRootContainer(eObject)).getRefines().isEmpty()) { MessageDialog.openError(getPart().getSite().getShell(), "Modelling Error", "There are no events to refine because this is the most abstract machine"); return; } // add refines to event List<Event> eventList = new ArrayList<Event>(); eventList.addAll(((Machine) EcoreUtil.getRootContainer(eObject)).getRefines().get(0).getEvents()); eventList.removeAll(refinedEvent.getRefines()); Event newRefinedEvent = selectEvent(eventList, "Events of Abstract Machine", "Select new event to refine"); if (newRefinedEvent == null) return; AddCommand addCommand = (AddCommand) AddCommand.create(getEditingDomain(), refinedEvent, MachinePackage.Literals.EVENT__REFINES, newRefinedEvent); getEditingDomain().getCommandStack().execute(addCommand); refresh(); // restore selection table.select(idx); table.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event()); } }); // button to remove an event refines reference to an eventB event remRefinesButton = getWidgetFactory().createButton((Composite) children[0], "Remove Refines", SWT.PUSH); data = new FormData(); data.left = new FormAttachment(addRefinesButton, 0); data.bottom = new FormAttachment(100, 0); remRefinesButton.setLayoutData(data); remRefinesButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { // remember selection int idx = table.getSelectionIndex(); Object object = table.getSelection()[0].getData(); if (!(object instanceof Event)) return; Event refinedEvent = (Event) object; List<Event> eventList = new ArrayList<Event>(); eventList.addAll(refinedEvent.getRefines()); Event remRefinedEvent = selectEvent(eventList, "Refined Events", "Select refined event to remove"); if (remRefinedEvent == null) return; eventList.remove(remRefinedEvent); getEditingDomain().getCommandStack().execute(SetCommand.create(getEditingDomain(), refinedEvent, MachinePackage.Literals.EVENT__REFINES, eventList)); refresh(); // restore selection table.select(idx); table.notifyListeners(SWT.Selection, new org.eclipse.swt.widgets.Event()); } }); }
From source file:ac.soton.eventb.emf.diagrams.generator.actions.GenerateAction.java
License:Open Source License
@Override public Object execute(ExecutionEvent event) throws ExecutionException { IEditorPart editor = HandlerUtil.getActiveEditorChecked(event); if (editor instanceof DiagramDocumentEditor) { final DiagramDocumentEditor diagramDocumentEditor = (DiagramDocumentEditor) editor; if (diagramDocumentEditor.getDiagram().getElement() instanceof EventBElement) { final EventBElement eventBElement = (EventBElement) diagramDocumentEditor.getDiagram().getElement(); // save before transformation if (editor.isDirty()) editor.doSave(new NullProgressMonitor()); // first validate, then transform if (ValidateAction.validate(diagramDocumentEditor)) { final GenerateCommand generateCommand = new GenerateCommand( diagramDocumentEditor.getDiagramEditPart().getEditingDomain(), eventBElement); if (generateCommand.canExecute()) { // run with progress ProgressMonitorDialog dialog = new ProgressMonitorDialog( diagramDocumentEditor.getSite().getShell()); try { dialog.run(true, true, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) { monitor.beginTask(Messages.GENERATOR_MSG_05, IProgressMonitor.UNKNOWN); try { generateCommand.execute(monitor, diagramDocumentEditor); } catch (ExecutionException e) { Activator.logError(Messages.GENERATOR_MSG_06, e); }//from w w w .ja v a 2 s .c om monitor.done(); } }); } catch (InvocationTargetException e) { Activator.logError(Messages.GENERATOR_MSG_07, e); return null; } catch (InterruptedException e) { Activator.logError(Messages.GENERATOR_MSG_08, e); return null; } // error feedback if (false == generateCommand.getCommandResult().getStatus().isOK()) MessageDialog.openError(editor.getSite().getShell(), Messages.GENERATOR_MSG_09, Messages.GENERATOR_MSG_10); } } } } return null; }
From source file:ac.soton.eventb.emf.diagrams.generator.actions.ValidateAction.java
License:Open Source License
/** * This provides a method for programmatic invocation of the validator. * In this case, no feedback is given for successful, error free completion. * /*w w w . j av a 2s . c om*/ * @param diagramDocumentEditor * @return * @throws ExecutionException */ public static boolean validate(DiagramDocumentEditor diagramDocumentEditor) throws ExecutionException { boolean result = ValidatorRegistry.validate(diagramDocumentEditor); if (result == false) { // didn't validate so show feedback String errors = ValidatorRegistry.getValidationErrors(diagramDocumentEditor); MessageDialog.openError(diagramDocumentEditor.getSite().getShell(), "Validation Information", "Validation discovered the following problems in the model:\n" + errors); } return result; }
From source file:ac.soton.eventb.statemachines.diagram.part.StatemachinesInitDiagramFileAction.java
License:Open Source License
/** * @generated//from w ww . ja va 2s . c o m */ public void run(IAction action) { TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); ResourceSet resourceSet = editingDomain.getResourceSet(); EObject diagramRoot = null; try { Resource resource = resourceSet.getResource(domainModelURI, true); diagramRoot = (EObject) resource.getContents().get(0); } catch (WrappedException ex) { StatemachinesDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, //$NON-NLS-1$ ex); } if (diagramRoot == null) { MessageDialog.openError(getShell(), Messages.InitDiagramFile_ResourceErrorDialogTitle, Messages.InitDiagramFile_ResourceErrorDialogMessage); return; } Wizard wizard = new StatemachinesNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain); wizard.setWindowTitle(NLS.bind(Messages.InitDiagramFile_WizardTitle, RootStatemachineEditPart.MODEL_ID)); StatemachinesDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$ }
From source file:ac.soton.eventb.statemachines.diagram.part.ValidateDiagramAction.java
License:Open Source License
/** * @generated NOT/*from w ww .j a va2 s. co m*/ */ public Object execute(ExecutionEvent event) throws ExecutionException { IEditorPart editor = HandlerUtil.getActiveEditorChecked(event); if (editor instanceof IDiagramWorkbenchPart) { IDiagramWorkbenchPart diagramEditor = (IDiagramWorkbenchPart) editor; // run validation ValidateAction action = new ValidateAction(editor.getSite().getPage()); action.run(); // show feedback try { IFile file = WorkspaceSynchronizer.getFile(diagramEditor.getDiagram().eResource()); String errors = ValidateAction.getValidationErrors(file); if (errors.isEmpty()) MessageDialog.openInformation(editor.getSite().getShell(), "Validation Information", "Validation completed successfully"); else MessageDialog.openError(editor.getSite().getShell(), "Validation Information", "Validation has found problems in your model:\n" + errors); } catch (CoreException e) { throw new ExecutionException("Validation result retrieval failed", e); } } return null; }
From source file:ac.soton.eventb.statemachines.transformation.TranslateAction.java
License:Open Source License
@Override public Object execute(ExecutionEvent event) throws ExecutionException { IEditorPart editor = HandlerUtil.getActiveEditorChecked(event); if (editor instanceof DiagramDocumentEditor) { final DiagramDocumentEditor diagramDocumentEditor = (DiagramDocumentEditor) editor; if (diagramDocumentEditor.getDiagram().getElement() instanceof Statemachine) { final Statemachine statemachine = (Statemachine) diagramDocumentEditor.getDiagram().getElement(); // save before transformation if (editor.isDirty()) editor.doSave(new NullProgressMonitor()); // first validate, then transform if (ValidateAction.validate(diagramDocumentEditor)) { final StatemachineTransformationCommand generateCommand = new StatemachineTransformationCommand( diagramDocumentEditor.getDiagramEditPart().getEditingDomain(), statemachine); if (generateCommand.canExecute()) { // run with progress ProgressMonitorDialog dialog = new ProgressMonitorDialog( diagramDocumentEditor.getSite().getShell()); try { dialog.run(true, true, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) { monitor.beginTask("Translating to Event-B ...", IProgressMonitor.UNKNOWN); try { generateCommand.execute(monitor, diagramDocumentEditor); } catch (ExecutionException e) { Activator.logError("Statemachine transformation failed", e); }//from w ww .ja v a2 s.com monitor.done(); } }); } catch (InvocationTargetException e) { TransformationPlugin.getDefault().logError("Transformation failed", e); return null; } catch (InterruptedException e) { TransformationPlugin.getDefault().logError("Transformation interrupted", e); return null; } // error feedback if (false == generateCommand.getCommandResult().getStatus().isOK()) MessageDialog.openError(editor.getSite().getShell(), "Translation Information", "Translation encountered problems.\n\nSee log for details."); } } } } return null; }
From source file:ac.soton.fmusim.components.diagram.part.ComponentsInitDiagramFileAction.java
License:Open Source License
/** * @generated//from ww w. j a v a 2 s . co m */ public void run(IAction action) { TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain(); ResourceSet resourceSet = editingDomain.getResourceSet(); EObject diagramRoot = null; try { Resource resource = resourceSet.getResource(domainModelURI, true); diagramRoot = (EObject) resource.getContents().get(0); } catch (WrappedException ex) { ComponentsDiagramEditorPlugin.getInstance().logError("Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$ } if (diagramRoot == null) { MessageDialog.openError(getShell(), Messages.InitDiagramFile_ResourceErrorDialogTitle, Messages.InitDiagramFile_ResourceErrorDialogMessage); return; } Wizard wizard = new ComponentsNewDiagramFileWizard(domainModelURI, diagramRoot, editingDomain); wizard.setWindowTitle(NLS.bind(Messages.InitDiagramFile_WizardTitle, ComponentDiagramEditPart.MODEL_ID)); ComponentsDiagramEditorUtil.runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$ }
From source file:ac.soton.fmusim.components.presentation.ComponentsModelWizard.java
License:Open Source License
/** * Do the work after everything is specified. * <!-- begin-user-doc -->/* w w w . j ava 2 s. co m*/ * <!-- end-user-doc --> * @generated */ @Override public boolean performFinish() { try { // Remember the file. // final IFile modelFile = getModelFile(); // Do the work within an operation. // WorkspaceModifyOperation operation = new WorkspaceModifyOperation() { @Override protected void execute(IProgressMonitor progressMonitor) { try { // Create a resource set // ResourceSet resourceSet = new ResourceSetImpl(); // Get the URI of the model file. // URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true); // Create a resource for this file. // Resource resource = resourceSet.createResource(fileURI); // Add the initial model object to the contents. // EObject rootObject = createInitialModel(); if (rootObject != null) { resource.getContents().add(rootObject); } // 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()); resource.save(options); } catch (Exception exception) { ComponentsEditorPlugin.INSTANCE.log(exception); } finally { progressMonitor.done(); } } }; getContainer().run(false, false, operation); // Select the new file resource in the current view. // IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); final IWorkbenchPart activePart = page.getActivePart(); if (activePart instanceof ISetSelectionTarget) { final ISelection targetSelection = new StructuredSelection(modelFile); getShell().getDisplay().asyncExec(new Runnable() { public void run() { ((ISetSelectionTarget) activePart).selectReveal(targetSelection); } }); } // Open an editor on the new file. // try { page.openEditor(new FileEditorInput(modelFile), workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId()); } catch (PartInitException exception) { MessageDialog.openError(workbenchWindow.getShell(), ComponentsEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); return false; } return true; } catch (Exception exception) { ComponentsEditorPlugin.INSTANCE.log(exception); return false; } }