Example usage for org.eclipse.jface.viewers StructuredSelection StructuredSelection

List of usage examples for org.eclipse.jface.viewers StructuredSelection StructuredSelection

Introduction

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

Prototype

public StructuredSelection(List elements) 

Source Link

Document

Creates a structured selection from the given List.

Usage

From source file:com.archimatetool.editor.diagram.actions.SelectAllAction.java

License:Open Source License

/**
 * Selects all edit parts and connections in the active workbench part.
 */// w  w w.j  av  a2  s .c  o m
@Override
public void run() {
    GraphicalViewer viewer = (GraphicalViewer) part.getAdapter(GraphicalViewer.class);
    if (viewer != null) {
        viewer.setSelection(new StructuredSelection(getSelectableEditParts(viewer.getContents()).toArray()));
    }
}

From source file:com.archimatetool.editor.diagram.actions.SelectElementInTreeAction.java

License:Open Source License

@Override
public void run() {
    List<?> selection = getSelectedObjects();

    List<Object> elements = new ArrayList<Object>();

    for (Object object : selection) {
        if (object instanceof EditPart) {
            Object model = ((EditPart) object).getModel();
            if (model instanceof IDiagramModel) {
                elements.add(model);// w  w w. j  a  v a  2s .co m
            } else if (model instanceof IDiagramModelArchimateObject) {
                elements.add(((IDiagramModelArchimateObject) model).getArchimateElement());
            } else if (model instanceof IDiagramModelArchimateConnection) {
                elements.add(((IDiagramModelArchimateConnection) model).getRelationship());
            }
        }
    }

    ITreeModelView view = (ITreeModelView) ViewManager.showViewPart(ITreeModelView.ID, true);
    if (view != null) {
        view.getViewer().setSelection(new StructuredSelection(elements), true);
    }
}

From source file:com.archimatetool.editor.diagram.ArchimateDiagramEditor.java

License:Open Source License

@Override
public void selectElements(IArchimateElement[] elements) {
    List<EditPart> editParts = new ArrayList<EditPart>();

    for (IArchimateElement element : elements) {
        // Find Diagram Components
        for (IDiagramModelComponent dc : DiagramModelUtils.findDiagramModelComponentsForElement(getModel(),
                element)) {//from   w w w  .j a  va2  s . c  om
            EditPart editPart = (EditPart) getGraphicalViewer().getEditPartRegistry().get(dc);
            if (editPart != null && editPart.isSelectable() && !editParts.contains(editPart)) {
                editParts.add(editPart);
            }
        }

        // Find Components from nested connections
        if (ConnectionPreferences.useNestedConnections() && element instanceof IRelationship) {
            for (IDiagramModelArchimateObject[] list : DiagramModelUtils
                    .findNestedComponentsForRelationship(getModel(), (IRelationship) element)) {
                EditPart editPart1 = (EditPart) getGraphicalViewer().getEditPartRegistry().get(list[0]);
                EditPart editPart2 = (EditPart) getGraphicalViewer().getEditPartRegistry().get(list[1]);
                if (editPart1 != null && editPart1.isSelectable() && !editParts.contains(editPart1)) {
                    editParts.add(editPart1);
                }
                if (editPart2 != null && editPart2.isSelectable() && !editParts.contains(editPart2)) {
                    editParts.add(editPart2);
                }
            }
        }
    }

    if (!editParts.isEmpty()) {
        getGraphicalViewer().setSelection(new StructuredSelection(editParts));
        getGraphicalViewer().reveal(editParts.get(0));
    } else {
        getGraphicalViewer().setSelection(StructuredSelection.EMPTY);
    }
}

From source file:com.archimatetool.editor.diagram.DiagramEditorFindReplaceProvider.java

License:Open Source License

@Override
public boolean find(String toFind) {
    // Find All/*from www.j ava 2 s  .c  o m*/
    if (isAll()) {
        List<EditPart> editParts = getAllMatchingEditParts(toFind);
        fGraphicalViewer.setSelection(new StructuredSelection(editParts));
        if (!editParts.isEmpty()) {
            fGraphicalViewer.reveal(editParts.get(0));
        }
        return !editParts.isEmpty();
    }
    // Find Next/Previous
    else {
        EditPart editPart = findNextEditPart(getFirstSelectedEditPart(), toFind);
        if (editPart != null) {
            fGraphicalViewer.setSelection(new StructuredSelection(editPart));
            fGraphicalViewer.reveal(editPart);
        }
        return (editPart != null);
    }
}

From source file:com.archimatetool.editor.diagram.DiagramEditorFindReplaceProvider.java

License:Open Source License

@Override
public boolean replace(String toFind, String toReplaceWith) {
    // Replace All
    if (isAll()) {
        List<EditPart> editParts = getAllMatchingEditParts(toFind);
        if (!editParts.isEmpty()) {
            List<String> newNames = new ArrayList<String>();

            for (EditPart editPart : editParts) {
                String newName = getNewName(((INameable) editPart.getModel()).getName(), toFind, toReplaceWith);
                newNames.add(newName);/* ww w.  j av a  2s.  c  o m*/
            }

            doRenameCommands(editParts, newNames);
            fGraphicalViewer.setSelection(new StructuredSelection(editParts));
            fGraphicalViewer.reveal(editParts.get(0));
        }
        return !editParts.isEmpty();
    }
    // Replace Next/Previous
    else {
        // Replace on selected EditParts
        if (replaceSelection) {
            List<EditPart> selected = getSelectedEditParts();
            if (!selected.isEmpty()) {
                List<EditPart> editParts = new ArrayList<EditPart>();
                List<String> newNames = new ArrayList<String>();

                for (EditPart editPart : selected) {
                    if (matches(editPart, toFind)) {
                        editParts.add(editPart);

                        String newName = getNewName(((INameable) editPart.getModel()).getName(), toFind,
                                toReplaceWith);
                        newNames.add(newName);
                    }
                }

                if (!editParts.isEmpty()) {
                    doRenameCommands(editParts, newNames);
                    return true;
                }
            }
        }
        // Replace on next single selection
        else {
            EditPart editPart = getFirstSelectedEditPart();
            if (matches(editPart, toFind)) {
                doRenameCommand(editPart,
                        getNewName(((INameable) editPart.getModel()).getName(), toFind, toReplaceWith));
                return true;
            }
        }

        // Else move forward
        return find(toFind);
    }
}

From source file:com.archimatetool.editor.diagram.dialog.NewNestedRelationDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    // Help/*from   w  ww .  ja va2 s  . co  m*/
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HELP_ID);

    setTitle(Messages.NewNestedRelationDialog_1);
    String message = NLS.bind(Messages.NewNestedRelationDialog_2, fParentElement.getName(),
            fChildElement.getName());
    setMessage(message);
    Composite composite = (Composite) super.createDialogArea(parent);

    Composite client = new Composite(composite, SWT.NULL);
    GridLayout layout = new GridLayout(1, false);
    client.setLayout(layout);
    client.setLayoutData(new GridData(GridData.FILL_BOTH));

    Composite tableComp = new Composite(client, SWT.BORDER);
    tableComp.setLayout(new TableColumnLayout());
    tableComp.setLayoutData(new GridData(GridData.FILL_BOTH));
    fTableViewer = new RelationsTableViewer(tableComp, SWT.NONE);
    fTableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    fTableViewer.setInput(""); // anything will do //$NON-NLS-1$

    fTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            okPressed();
        }
    });

    fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            fSelected = (EClass) ((IStructuredSelection) fTableViewer.getSelection()).getFirstElement();
        }
    });

    if (fValidRelations != null && fValidRelations.length > 0) {
        fTableViewer.setSelection(new StructuredSelection(fValidRelations[0]));
    }

    return composite;
}

From source file:com.archimatetool.editor.propertysections.ImageManagerDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    // Help/* ww  w  .j a v a  2s. co  m*/
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HELP_ID);

    setTitle(Messages.ImageManagerDialog_1);
    setMessage(Messages.ImageManagerDialog_2);
    Composite composite = (Composite) super.createDialogArea(parent);

    Composite client = new Composite(composite, SWT.NULL);
    GridLayout layout = new GridLayout(2, false);
    client.setLayout(layout);
    client.setLayoutData(new GridData(GridData.FILL_BOTH));

    SashForm sash = new SashForm(client, SWT.HORIZONTAL);
    sash.setLayoutData(new GridData(GridData.FILL_BOTH));
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.widthHint = 580;
    gd.heightHint = 300;
    sash.setLayoutData(gd);

    // Table
    Composite tableComp = new Composite(sash, SWT.BORDER);
    layout = new GridLayout();
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    tableComp.setLayout(layout);

    CLabel label = new CLabel(tableComp, SWT.NULL);
    label.setText(Messages.ImageManagerDialog_3);

    Composite tableComp2 = new Composite(tableComp, SWT.NULL);
    tableComp2.setLayout(new TableColumnLayout());
    tableComp2.setLayoutData(new GridData(GridData.FILL_BOTH));

    fModelsViewer = new ModelsViewer(tableComp2);
    fModelsViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
    fModelsViewer.setInput(""); //$NON-NLS-1$
    fModelsViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            Object o = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (o instanceof IArchimateModel) {
                fScale.setEnabled(true);
                clearGallery();
                updateGallery((IArchimateModel) o);
            }
        }
    });

    // Mouse Up action...
    fModelsViewer.getControl().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            Object o = ((IStructuredSelection) fModelsViewer.getSelection()).getFirstElement();
            // Open...
            if (o == OPEN) {
                handleOpenAction();
            }
        }
    });

    Composite galleryComposite = new Composite(sash, SWT.NULL);
    layout = new GridLayout();
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    galleryComposite.setLayout(layout);

    fGallery = new Gallery(galleryComposite, SWT.V_SCROLL | SWT.BORDER);
    fGallery.setLayoutData(new GridData(GridData.FILL_BOTH));

    // Renderers
    final NoGroupRenderer groupRenderer = new NoGroupRenderer();
    groupRenderer.setItemSize(DEFAULT_GALLERY_ITEM_SIZE, DEFAULT_GALLERY_ITEM_SIZE);
    groupRenderer.setAutoMargin(true);
    groupRenderer.setMinMargin(10);
    fGallery.setGroupRenderer(groupRenderer);

    final DefaultGalleryItemRenderer itemRenderer = new DefaultGalleryItemRenderer();
    itemRenderer.setDropShadows(true);
    itemRenderer.setDropShadowsSize(7);
    itemRenderer.setShowRoundedSelectionCorners(false);
    fGallery.setItemRenderer(itemRenderer);

    // Root Group
    fGalleryRoot = new GalleryItem(fGallery, SWT.NONE);

    // Slider
    fScale = new Scale(galleryComposite, SWT.HORIZONTAL);
    gd = new GridData(SWT.END, SWT.NONE, false, false);
    gd.widthHint = 120;
    fScale.setLayoutData(gd);
    fScale.setMinimum(MIN_GALLERY_ITEM_SIZE);
    fScale.setMaximum(MAX_GALLERY_ITEM_SIZE);
    fScale.setIncrement(8);
    fScale.setPageIncrement(32);
    fScale.setSelection(DEFAULT_GALLERY_ITEM_SIZE);
    fScale.setEnabled(false);
    fScale.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            int inc = fScale.getSelection();
            itemRenderer.setDropShadows(inc >= 96);
            groupRenderer.setItemSize(inc, inc);
        }
    });

    // Gallery selections
    fGallery.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (e.item instanceof GalleryItem) {
                fSelectedObject = ((GalleryItem) e.item).getData();
            } else {
                fSelectedObject = null;
            }
        }
    });

    // Double-clicks
    fGallery.addListener(SWT.MouseDoubleClick, new Listener() {
        public void handleEvent(Event event) {
            GalleryItem item = fGallery.getItem(new Point(event.x, event.y));
            if (item != null) {
                okPressed();
            }
        }
    });

    // Dispose of the images here not in the main dispose() method because if the help system is showing then 
    // the TrayDialog is resized and this control is asked to relayout.
    fGallery.addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            disposeImages();
        }
    });

    sash.setWeights(new int[] { 30, 70 });

    /*
     * Select the given model and image
     * Better to put this on a thread as selection sometimes doesn't happen
     */
    Display.getCurrent().asyncExec(new Runnable() {
        @Override
        public void run() {
            // Make selection of model in table if it has images
            if (fSelectedModel != null) {
                IArchiveManager archiveManager = (IArchiveManager) fSelectedModel
                        .getAdapter(IArchiveManager.class);
                if (archiveManager.hasImages()) {
                    // Select model
                    fModelsViewer.setSelection(new StructuredSelection(fSelectedModel));

                    // Make selection of image if set
                    if (fSelectedImagePath != null) {
                        for (GalleryItem item : fGalleryRoot.getItems()) {
                            String imagePath = (String) item.getData();
                            if (imagePath != null && fSelectedImagePath.equals(imagePath)) {
                                fGallery.setSelection(new GalleryItem[] { item });
                                fSelectedObject = imagePath; // we need to do this here because this is on a thread
                                break;
                            }
                        }
                    }
                }
                // Else select the first valid model that's open
                else {
                    for (IArchimateModel model : IEditorModelManager.INSTANCE.getModels()) {
                        archiveManager = (IArchiveManager) model.getAdapter(IArchiveManager.class);
                        if (archiveManager.hasImages()) {
                            fModelsViewer.setSelection(new StructuredSelection(model));
                            break;
                        }
                    }
                }
            }
        }
    });

    return composite;
}

From source file:com.archimatetool.editor.propertysections.PropertiesLabelProviderTests.java

License:Open Source License

@Test
public void testGetImageElement() {
    IArchimateElement element = IArchimateFactory.eINSTANCE.createArtifact();

    // Image for element
    Image image1 = provider.getImage(new StructuredSelection(element));
    assertNotNull(image1);//w  w  w . ja v a 2 s  .co m

    // Image for DiagramModelArchimateObject
    IDiagramModelArchimateObject dmo = IArchimateFactory.eINSTANCE.createDiagramModelArchimateObject();
    dmo.setArchimateElement(element);
    Image image2 = provider.getImage(new StructuredSelection(dmo));
    assertSame(image1, image2);

    // Image for EditPart
    EditPart editPart = new ArchimateElementEditPart();
    editPart.setModel(dmo);
    Image image3 = provider.getImage(new StructuredSelection(editPart));
    assertSame(image1, image3);
}

From source file:com.archimatetool.editor.propertysections.PropertiesLabelProviderTests.java

License:Open Source License

@Test
public void testGetImageRelation() {
    IArchimateRelationship relation = IArchimateFactory.eINSTANCE.createAssignmentRelationship();

    // Image for relation
    Image image1 = provider.getImage(new StructuredSelection(relation));
    assertNotNull(image1);// w ww .j ava  2s  .  c o  m

    // Image for DiagramModelArchimateConnection
    IDiagramModelArchimateConnection connection = IArchimateFactory.eINSTANCE
            .createDiagramModelArchimateConnection();
    connection.setArchimateRelationship(relation);
    Image image2 = provider.getImage(new StructuredSelection(connection));
    assertSame(image1, image2);

    // Image for EditPart
    EditPart editPart = new ArchimateRelationshipEditPart(AssignmentConnectionFigure.class);
    editPart.setModel(connection);
    Image image3 = provider.getImage(new StructuredSelection(editPart));
    assertSame(image1, image3);
}

From source file:com.archimatetool.editor.propertysections.PropertiesLabelProviderTests.java

License:Open Source License

@Test
public void testGetTextElement() {
    // Text for element
    IArchimateElement element = IArchimateFactory.eINSTANCE.createArtifact();
    String text = provider.getText(new StructuredSelection(element));
    assertEquals("Artifact", text);

    // Text for DiagramModelArchimateObject
    IDiagramModelArchimateObject dmo = IArchimateFactory.eINSTANCE.createDiagramModelArchimateObject();
    dmo.setArchimateElement(element);/*  www  .  j a  v a  2s  . c  om*/
    text = provider.getText(new StructuredSelection(dmo));
    assertEquals("Artifact", text);

    // Text for EditPart
    EditPart editPart = new ArchimateElementEditPart();
    editPart.setModel(dmo);
    text = provider.getText(new StructuredSelection(editPart));
    assertEquals("Artifact", text);
}