Example usage for org.eclipse.jface.viewers IStructuredSelection getFirstElement

List of usage examples for org.eclipse.jface.viewers IStructuredSelection getFirstElement

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers IStructuredSelection getFirstElement.

Prototype

public Object getFirstElement();

Source Link

Document

Returns the first element in this selection, or null if the selection is empty.

Usage

From source file:ac.soton.eventb.statemachines.diagram.sheet.custom.InvariantsPropertySection.java

License:Open Source License

@Override
protected ISelection getEditorSelection(Object object) {
    StatemachinesDiagramEditor editor = (StatemachinesDiagramEditor) getPart();
    IStructuredSelection selection = (IStructuredSelection) editor.getDiagramGraphicalViewer().getSelection();
    if (selection != null && selection.size() == 1) {
        GraphicalEditPart selectedPart = (GraphicalEditPart) selection.getFirstElement();
        EditPart part = selectedPart.findEditPart(null, (EObject) object);
        if (part != null)
            return new StructuredSelection(part);
        if (selectedPart.getParent() != null) {
            part = ((GraphicalEditPart) selectedPart.getParent()).findEditPart(null, (EObject) object);
            if (part != null)
                return new StructuredSelection(part);
        }/* ww  w .j  av a 2s  .  com*/
    }
    return null;
}

From source file:ac.soton.fmusim.components.diagram.navigator.ComponentsNavigatorLinkHelper.java

License:Open Source License

/**
 * @generated/*  w  w  w  .j a  v a 2 s.  c  om*/
 */
public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) {
    if (aSelection == null || aSelection.isEmpty()) {
        return;
    }
    if (false == aSelection.getFirstElement() instanceof ComponentsAbstractNavigatorItem) {
        return;
    }

    ComponentsAbstractNavigatorItem abstractNavigatorItem = (ComponentsAbstractNavigatorItem) aSelection
            .getFirstElement();
    View navigatorView = null;
    if (abstractNavigatorItem instanceof ComponentsNavigatorItem) {
        navigatorView = ((ComponentsNavigatorItem) abstractNavigatorItem).getView();
    } else if (abstractNavigatorItem instanceof ComponentsNavigatorGroup) {
        ComponentsNavigatorGroup navigatorGroup = (ComponentsNavigatorGroup) abstractNavigatorItem;
        if (navigatorGroup.getParent() instanceof ComponentsNavigatorItem) {
            navigatorView = ((ComponentsNavigatorItem) navigatorGroup.getParent()).getView();
        }
    }
    if (navigatorView == null) {
        return;
    }
    IEditorInput editorInput = getEditorInput(navigatorView.getDiagram());
    IEditorPart editor = aPage.findEditor(editorInput);
    if (editor == null) {
        return;
    }
    aPage.bringToTop(editor);
    if (editor instanceof DiagramEditor) {
        DiagramEditor diagramEditor = (DiagramEditor) editor;
        ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet();
        EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true);
        if (selectedView == null) {
            return;
        }
        GraphicalViewer graphicalViewer = (GraphicalViewer) diagramEditor.getAdapter(GraphicalViewer.class);
        EditPart selectedEditPart = (EditPart) graphicalViewer.getEditPartRegistry().get(selectedView);
        if (selectedEditPart != null) {
            graphicalViewer.select(selectedEditPart);
        }
    }
}

From source file:ac.soton.fmusim.components.ui.actions.DeleteDiagramAction.java

License:Open Source License

@Override
public void run() {
    if (!(site.getStructuredViewer().getSelection().isEmpty())) {
        IStructuredSelection ssel = (IStructuredSelection) site.getStructuredViewer().getSelection();

        Object element = ssel.getFirstElement(); // TODO: add support for multiple files
        if (element instanceof IAdaptable) {
            View view = (View) ((IAdaptable) element).getAdapter(View.class);
            Resource resource = view.eResource();

            if (resource != null && resource.isLoaded()) {
                IFile file = WorkspaceSynchronizer.getFile(resource);
                MessageDialog dialog = new MessageDialog(site.getViewSite().getShell(),
                        "Confirm Diagram Delete", null,
                        "Are you sure you want to delete the diagram file '" + file.getName()
                                + "' from the project '" + file.getParent().getName() + "' ?",
                        MessageDialog.QUESTION, new String[] { "Yes", "No" }, 0);

                if (dialog.open() == 0) {
                    Resource domResource = view.getElement().eResource();
                    try {
                        closeOpenedEditor(file);
                        file.delete(false, false, new NullProgressMonitor());
                        WorkspaceSynchronizer.getFile(domResource).delete(false, false,
                                new NullProgressMonitor());
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    } catch (CoreException e) {
                        e.printStackTrace();
                    }/*from  ww w  .j  av  a 2 s .com*/
                }
            }
        }
    }

    // MULTIPLE FILES HANDLING (from Systerel's ActionCollection)
    //         
    //         // Putting the selection into a set which does not contains any pair
    //         // of parent and child
    //         Collection<IRodinElement> set = new ArrayList<IRodinElement>();
    //
    //         IStructuredSelection ssel = (IStructuredSelection) site.getStructuredViewer().getSelection();
    //
    //         for (Iterator<?> it = ssel.iterator(); it.hasNext();) {
    //            final Object obj = it.next();
    //            if (!(obj instanceof IRodinElement)) {
    //               continue;
    //            }
    //            IRodinElement elem = (IRodinElement) obj;
    //            if (elem.isRoot()) {
    //               elem = elem.getParent();
    //            }
    //            set = UIUtils.addToTreeSet(set, elem);
    //         }
    //         
    //         int answer = YesToAllMessageDialog.YES;
    //         for (IRodinElement element : set) {
    //         if (element instanceof IRodinFile) {
    //            if (answer != YesToAllMessageDialog.YES_TO_ALL) {
    //               answer = YesToAllMessageDialog.openYesNoToAllQuestion(
    //                     site.getViewSite().getShell(),
    //                     "Confirm File Delete",
    //                     "Are you sure you want to delete file '"
    //                           + ((IRodinFile) element)
    //                                 .getElementName()
    //                           + "' in project '"
    //                           + element.getParent().getElementName()
    //                           + "' ?");
    //            }
    //            if (answer == YesToAllMessageDialog.NO_TO_ALL)
    //               break;
    //
    //            if (answer != YesToAllMessageDialog.NO) {
    //               try {
    //                  closeOpenedEditor((IRodinFile) element);
    //                  ((IRodinFile) element).delete(true,
    //                        new NullProgressMonitor());
    //               } catch (PartInitException e) {
    //                  MessageDialog.openError(null, "Error", "Could not delete file");
    //               } catch (RodinDBException e) {
    //                  MessageDialog.openError(null, "Error", "Could not delete file");
    //               }
    //            }
    //         }
    //      }

}

From source file:ac.soton.fmusim.components.ui.actions.DeleteEventBComponentAction.java

License:Open Source License

@Override
public void run() {
    if (!(site.getStructuredViewer().getSelection().isEmpty())) {
        IStructuredSelection ssel = (IStructuredSelection) site.getStructuredViewer().getSelection();

        Object element = ssel.getFirstElement();
        if (element instanceof IAdaptable) {
            final EventBComponent component = (EventBComponent) ((IAdaptable) element)
                    .getAdapter(EObject.class);
            final Resource resource = component.eResource();

            if (resource != null && resource.isLoaded()) {
                TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(resource);
                if (editingDomain != null) {
                    Command cmd = new RecordingCommand(editingDomain, "Delete Diagram Command") {
                        protected void doExecute() {
                            EcoreUtil.delete(component, true);
                        }//from  w w  w  . jav  a2s  .c  o  m
                    };
                    if (cmd.canExecute()) {
                        editingDomain.getCommandStack().execute(cmd);
                        try {
                            resource.save(Collections.emptyMap());
                        } catch (IOException e) {
                            cmd.undo();
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
}

From source file:ac.soton.fmusim.components.ui.actions.OpenMachineAction.java

License:Open Source License

@Override
public void selectionChanged(IAction action, ISelection selection) {
    selectedElement = null;/*from   w w  w . j a va 2 s.co  m*/
    if (selection instanceof IStructuredSelection) {
        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
        if (structuredSelection.getFirstElement() instanceof EventBComponentEditPart)
            selectedElement = (EventBComponentEditPart) structuredSelection.getFirstElement();
    }
}

From source file:ac.soton.fmusim.components.ui.actions.SetParametersAction.java

License:Open Source License

@Override
public void selectionChanged(IAction action, ISelection selection) {
    selectedElement = null;/*  w  w  w  . j  a v a  2  s .  c  o m*/
    if (selection instanceof IStructuredSelection) {
        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
        if (structuredSelection.getFirstElement() instanceof FMUComponentEditPart)
            selectedElement = (FMUComponentEditPart) structuredSelection.getFirstElement();
    }
}

From source file:ac.soton.multisim.diagram.navigator.MultisimNavigatorLinkHelper.java

License:Open Source License

/**
 * @generated/*from   ww w. j  a v a2  s  .  co m*/
 */
public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) {
    if (aSelection == null || aSelection.isEmpty()) {
        return;
    }
    if (false == aSelection.getFirstElement() instanceof MultisimAbstractNavigatorItem) {
        return;
    }

    MultisimAbstractNavigatorItem abstractNavigatorItem = (MultisimAbstractNavigatorItem) aSelection
            .getFirstElement();
    View navigatorView = null;
    if (abstractNavigatorItem instanceof MultisimNavigatorItem) {
        navigatorView = ((MultisimNavigatorItem) abstractNavigatorItem).getView();
    } else if (abstractNavigatorItem instanceof MultisimNavigatorGroup) {
        MultisimNavigatorGroup navigatorGroup = (MultisimNavigatorGroup) abstractNavigatorItem;
        if (navigatorGroup.getParent() instanceof MultisimNavigatorItem) {
            navigatorView = ((MultisimNavigatorItem) navigatorGroup.getParent()).getView();
        }
    }
    if (navigatorView == null) {
        return;
    }
    IEditorInput editorInput = getEditorInput(navigatorView.getDiagram());
    IEditorPart editor = aPage.findEditor(editorInput);
    if (editor == null) {
        return;
    }
    aPage.bringToTop(editor);
    if (editor instanceof DiagramEditor) {
        DiagramEditor diagramEditor = (DiagramEditor) editor;
        ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet();
        EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true);
        if (selectedView == null) {
            return;
        }
        GraphicalViewer graphicalViewer = (GraphicalViewer) diagramEditor.getAdapter(GraphicalViewer.class);
        EditPart selectedEditPart = (EditPart) graphicalViewer.getEditPartRegistry().get(selectedView);
        if (selectedEditPart != null) {
            graphicalViewer.select(selectedEditPart);
        }
    }
}

From source file:ac.soton.multisim.ui.actions.DeleteDiagramAction.java

License:Open Source License

@Override
public void run() {
    if (!(site.getStructuredViewer().getSelection().isEmpty())) {
        IStructuredSelection ssel = (IStructuredSelection) site.getStructuredViewer().getSelection();

        Object element = ssel.getFirstElement();
        if (element instanceof IAdaptable) {
            View view = (View) ((IAdaptable) element).getAdapter(View.class);
            Resource resource = view.eResource();

            if (resource != null && resource.isLoaded()) {
                IFile file = WorkspaceSynchronizer.getFile(resource);
                MessageDialog dialog = new MessageDialog(site.getViewSite().getShell(),
                        "Confirm Diagram Delete", null,
                        "Are you sure you want to delete the diagram file '" + file.getName()
                                + "' from the project '" + file.getParent().getName() + "' ?",
                        MessageDialog.QUESTION, new String[] { "Yes", "No" }, 0);

                if (dialog.open() == 0) {
                    Resource domResource = view.getElement().eResource();
                    try {
                        closeOpenedEditor(file);
                        file.delete(false, false, new NullProgressMonitor());
                        WorkspaceSynchronizer.getFile(domResource).delete(false, false,
                                new NullProgressMonitor());
                    } catch (PartInitException e) {
                        e.printStackTrace();
                    } catch (CoreException e) {
                        e.printStackTrace();
                    }// w  ww  .  j  av  a 2 s .  com
                }
            }
        }
    }
}

From source file:ac.soton.multisim.ui.actions.DeleteEventBComponentAction.java

License:Open Source License

@Override
public void run() {
    if (!(site.getStructuredViewer().getSelection().isEmpty())) {
        IStructuredSelection ssel = (IStructuredSelection) site.getStructuredViewer().getSelection();

        Object element = ssel.getFirstElement();
        if (element instanceof IAdaptable) {
            final EventBComponent component = (EventBComponent) ((IAdaptable) element)
                    .getAdapter(EObject.class);
            final Resource resource = component.eResource();

            if (resource != null && resource.isLoaded()) {
                TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(resource);
                if (editingDomain != null) {
                    Command cmd = new RecordingCommand(editingDomain, "Delete Component Command") {
                        protected void doExecute() {
                            EcoreUtil.delete(component, true);
                        }//from   www.  j a  v a 2 s  .c  om
                    };
                    if (cmd.canExecute()) {
                        editingDomain.getCommandStack().execute(cmd);
                        try {
                            resource.save(Collections.emptyMap());
                        } catch (IOException e) {
                            cmd.undo();
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
}

From source file:ac.soton.multisim.ui.actions.DeleteFMUResourceAction.java

License:Open Source License

@Override
public void run() {
    if (!(site.getStructuredViewer().getSelection().isEmpty())) {
        IStructuredSelection ssel = (IStructuredSelection) site.getStructuredViewer().getSelection();

        Object element = ssel.getFirstElement();
        if (element instanceof FMUResource) {
            File file = ((FMUResource) element).getFile();
            if (file != null) {
                URI uri = file.toURI();
                IWorkspace ws = ResourcesPlugin.getWorkspace();
                IFile[] files = ws.getRoot().findFilesForLocationURI(uri);
                if (files != null && files.length > 0) {
                    try {
                        files[0].delete(false, new NullProgressMonitor());
                    } catch (CoreException e) {
                        e.printStackTrace();
                    }/*from   w w w . java 2s  .com*/
                }
            }
        }
    }
}