Example usage for org.eclipse.jface.dialogs MessageDialog openError

List of usage examples for org.eclipse.jface.dialogs MessageDialog openError

Introduction

In this page you can find the example usage for org.eclipse.jface.dialogs MessageDialog openError.

Prototype

public static void openError(Shell parent, String title, String message) 

Source Link

Document

Convenience method to open a standard error dialog.

Usage

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;
    }
}