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.views.tree.commands.NewDiagramCommand.java

License:Open Source License

@Override
public void redo() {
    fFolder.getElements().add(fDiagramModel);

    // Select/* w  ww . j  ava  2 s  . co  m*/
    UIRequestManager.INSTANCE
            .fireRequest(new TreeSelectionRequest(this, new StructuredSelection(fDiagramModel), true));

    // Open Editor
    EditorManager.openDiagramEditor(fDiagramModel);
}

From source file:com.archimatetool.editor.views.tree.commands.NewElementCommand.java

License:Open Source License

@Override
public void undo() {
    fFolder.getElements().remove(fElement);

    // Select the parent node if no node is selected (this happens when the node is deleted)
    TreeSelectionRequest request = new TreeSelectionRequest(this, new StructuredSelection(fFolder), true) {
        @Override/*from  www . ja  va2s. c o m*/
        public boolean shouldSelect(Viewer viewer) {
            return viewer.getSelection().isEmpty();
        }
    };
    UIRequestManager.INSTANCE.fireRequest(request);
}

From source file:com.archimatetool.editor.views.tree.commands.NewElementCommand.java

License:Open Source License

@Override
public void redo() {
    fFolder.getElements().add(fElement);

    // Select/* w w w  .j ava 2s. co m*/
    UIRequestManager.INSTANCE
            .fireRequest(new TreeSelectionRequest(this, new StructuredSelection(fElement), true));
}

From source file:com.archimatetool.editor.views.tree.commands.NewFolderCommand.java

License:Open Source License

@Override
public void undo() {
    fParent.getFolders().remove(fFolder);

    // Select the parent node if no node is selected (this happens when the node is deleted)
    TreeSelectionRequest request = new TreeSelectionRequest(this, new StructuredSelection(fParent), true) {
        @Override/*from www.  j ava2 s.  co  m*/
        public boolean shouldSelect(Viewer viewer) {
            return viewer.getSelection().isEmpty();
        }
    };
    UIRequestManager.INSTANCE.fireRequest(request);
}

From source file:com.archimatetool.editor.views.tree.commands.NewFolderCommand.java

License:Open Source License

@Override
public void redo() {
    fParent.getFolders().add(fFolder);//  w w  w  .j  av a  2  s . c  o m

    // Select
    UIRequestManager.INSTANCE
            .fireRequest(new TreeSelectionRequest(this, new StructuredSelection(fFolder), true));
}

From source file:com.archimatetool.editor.views.tree.TreeModelView.java

License:Open Source License

@Override
public void propertyChange(PropertyChangeEvent evt) {
    String propertyName = evt.getPropertyName();
    Object source = evt.getSource();
    //Object newValue = evt.getNewValue();

    // New Model created or opened
    if (propertyName == IEditorModelManager.PROPERTY_MODEL_CREATED
            || propertyName == IEditorModelManager.PROPERTY_MODEL_OPENED) {
        getViewer().refresh();//  ww w  .  ja v  a  2 s .c o  m

        IArchimateModel model = (IArchimateModel) evt.getNewValue();

        // Expand and Select new node
        getViewer().expandToLevel(model.getDefaultDiagramModel(), -1);
        getViewer().setSelection(new StructuredSelection(model), true);
    }

    // Model removed
    else if (propertyName == IEditorModelManager.PROPERTY_MODEL_REMOVED) {
        getViewer().refresh();
    }

    // Model dirty state, so update Actions and modified state of source (asterisk on model node)
    else if (propertyName == IEditorModelManager.COMMAND_STACK_CHANGED) {
        updateActions();
        getViewer().update(source, null);
    }

    // Ecore Events will come so turn tree refresh off
    else if (propertyName == IEditorModelManager.PROPERTY_ECORE_EVENTS_START) {
        super.propertyChange(evt);
        // Remove Syncing
        TreeSelectionSynchroniser.INSTANCE.setSynchronise(false);
    }

    // Ecore Events have finished so turn tree refresh on
    else if (propertyName == IEditorModelManager.PROPERTY_ECORE_EVENTS_END) {
        super.propertyChange(evt);
        // Add Syncing
        TreeSelectionSynchroniser.INSTANCE.setSynchronise(true);
    }

    else {
        super.propertyChange(evt);
    }
}

From source file:com.archimatetool.editor.views.tree.TreeModelViewerDragDropHandlerTests.java

License:Open Source License

@Test
public void testIsValidTreeSelection() {
    // Null selection is not valid
    StructuredSelection selection = null;
    assertFalse(dragHandler.isValidTreeSelection(selection));

    // Set up some data
    IFolder userFolder = IArchimateFactory.eINSTANCE.createFolder();
    model.getFolder(FolderType.DIAGRAMS).getFolders().add(userFolder);
    IFolder businessFolder = model.getFolder(FolderType.BUSINESS);
    IArchimateElement e1 = IArchimateFactory.eINSTANCE.createBusinessActor();
    businessFolder.getElements().add(e1);
    IArchimateElement e2 = IArchimateFactory.eINSTANCE.createBusinessActor();
    businessFolder.getElements().add(e2);

    // Elements from the same root parent are OK
    selection = new StructuredSelection(new Object[] { e1, e2 });
    assertTrue(dragHandler.isValidTreeSelection(selection));

    // Can't DnD a model
    selection = new StructuredSelection(new Object[] { model });
    assertFalse(dragHandler.isValidTreeSelection(selection));

    // Can DnD a user folder
    selection = new StructuredSelection(new Object[] { userFolder });
    assertTrue(dragHandler.isValidTreeSelection(selection));

    // Can't DnD a system folder
    selection = new StructuredSelection(new Object[] { businessFolder });
    assertFalse(dragHandler.isValidTreeSelection(selection));

    // Can't DnD Mixed parent models
    IArchimateModel model2 = IArchimateFactory.eINSTANCE.createArchimateModel();
    model2.setDefaults();//from  w  w  w  .  j av a  2 s  . c  om
    IArchimateElement e3 = IArchimateFactory.eINSTANCE.createBusinessActor();
    model2.getFolder(FolderType.BUSINESS).getElements().add(e3);

    selection = new StructuredSelection(new Object[] { e1, e3 });
    assertFalse(dragHandler.isValidTreeSelection(selection));
}

From source file:com.archimatetool.editor.views.tree.TreeModelViewerDragDropHandlerTests.java

License:Open Source License

@Test
public void testDoDropOperation() {
    // Source//from   w  ww . ja v a2s.  c  o m
    IFolder sourceParentFolder = model.getFolder(FolderType.BUSINESS);
    IArchimateElement childElement = IArchimateFactory.eINSTANCE.createBusinessActor();
    sourceParentFolder.getElements().add(childElement);
    assertTrue(sourceParentFolder.getElements().contains(childElement));

    // Target
    IFolder targetParentFolder = model.getFolder(FolderType.APPLICATION);
    assertTrue(targetParentFolder.getElements().isEmpty());
    assertTrue(targetParentFolder.getFolders().isEmpty());

    // Set up a mock DropTargetEvent for the DropOperation
    DropTargetEvent event = createMockDropTargetEvent(targetParentFolder);
    // Set the selection of elements we want to DnD
    LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(new Object[] { childElement }));

    // And call the drop method
    dragHandler.doDropOperation(event);

    assertTrue(sourceParentFolder.getElements().isEmpty());
    assertTrue(targetParentFolder.getElements().contains(childElement));
}

From source file:com.archimatetool.editor.views.tree.TreeModelViewerDragDropHandlerTests.java

License:Open Source License

@Test
public void testIsValidDropTarget() {
    IFolder folder = IArchimateFactory.eINSTANCE.createFolder();
    IArchimateElement childElement = IArchimateFactory.eINSTANCE.createBusinessActor();
    folder.getElements().add(childElement);

    LocalSelectionTransfer.getTransfer().setSelection(new StructuredSelection(new Object[] { childElement }));

    // Can only drop onto a folder
    DropTargetEvent event = createMockDropTargetEvent(folder);
    assertTrue(dragHandler.isValidDropTarget(event));

    // And not something else
    event = createMockDropTargetEvent(childElement);
    assertFalse(dragHandler.isValidDropTarget(event));
}

From source file:com.archimatetool.editor.views.tree.TreeModelViewerFindReplaceProvider.java

License:Open Source License

public boolean find(String toFind) {
    // Find All//w  w  w .  ja  v  a 2s  .  com
    if (isAll()) {
        List<INameable> elements = getAllMatchingElements(toFind);
        fTreeModelViewer.setSelection(new StructuredSelection(elements), true);
        return !elements.isEmpty();
    }
    // Find Next/Previous
    else {
        INameable element = findNextElement(getFirstSelectedObject(), toFind);
        if (element != null) {
            fTreeModelViewer.setSelection(new StructuredSelection(element), true);
        }
        return (element != null);
    }
}