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

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

Introduction

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

Prototype

public Object[] toArray();

Source Link

Document

Returns the elements in this selection as an array.

Usage

From source file:eu.geclipse.ui.internal.actions.PasteAction.java

License:Open Source License

protected void startTransfer(final IStructuredSelection source, final IStructuredSelection target) {

    if (!isEmpty(source) && !(isEmpty(target))) {

        Object[] sourceArray = source.toArray();
        IGridElement[] sourceElements = new IGridElement[source.size()];

        for (int i = 0; i < sourceArray.length; i++) {

            if (sourceArray[i] instanceof IGridElement) {
                sourceElements[i] = (IGridElement) sourceArray[i];
            } else {
                // TODO mathias error handling
            }//from www  .j a  va 2 s  . c  o m

        }

        Object targetObject = target.getFirstElement();
        IGridContainer targetContainer = null;

        if (targetObject instanceof IGridContainer) {
            targetContainer = (IGridContainer) targetObject;
        } else {
            // TODO mathias error handling
        }

        if (targetContainer != null) {
            startTransfer(sourceElements, targetContainer);
        }

    }

}

From source file:eu.hydrologis.jgrass.database.view.DatabaseView.java

License:Open Source License

private TableViewer createTableViewer(Composite connectionsListComposite) {
    final TableViewer connectionsViewer = new TableViewer(connectionsListComposite);
    Table table = connectionsViewer.getTable();
    GridData tableGD = new GridData(SWT.FILL, SWT.FILL, true, true);
    tableGD.horizontalSpan = 2;//from  www.  ja  v  a  2  s  .c o m
    table.setLayoutData(tableGD);
    connectionsViewer.setContentProvider(new IStructuredContentProvider() {
        public Object[] getElements(Object inputElement) {
            DatabaseConnectionProperties[] array = (DatabaseConnectionProperties[]) availableDatabaseConnectionProperties
                    .toArray(new DatabaseConnectionProperties[availableDatabaseConnectionProperties.size()]);
            return array;
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
    });

    connectionsViewer.setLabelProvider(new LabelProvider() {
        public Image getImage(Object element) {
            if (element instanceof DatabaseConnectionProperties) {
                DatabaseConnectionProperties connProp = (DatabaseConnectionProperties) element;

                Image image = null;
                if (ConnectionManager.isLocal(connProp)) {
                    if (connProp.isActive()) {
                        image = ImageCache.getInstance().getImage(ImageCache.LOCAL_DB_ACTIVE);
                        return image;
                    } else {
                        image = ImageCache.getInstance().getImage(ImageCache.LOCAL_DB);
                        return image;
                    }
                } else {
                    if (connProp.isActive()) {
                        image = ImageCache.getInstance().getImage(ImageCache.REMOTE_DB_ACTIVE);
                        return image;
                    } else {
                        image = ImageCache.getInstance().getImage(ImageCache.REMOTE_DB);
                        return image;
                    }
                }

            }
            return null;
        }

        public String getText(Object element) {
            if (element instanceof DatabaseConnectionProperties) {
                DatabaseConnectionProperties connProp = (DatabaseConnectionProperties) element;
                return connProp.getTitle();
            }
            return ""; //$NON-NLS-1$
        }
    });

    connectionsViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            if (!(event.getSelection() instanceof IStructuredSelection)) {
                return;
            }
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();

            Object selectedItem = sel.getFirstElement();
            if (selectedItem == null) {
                // unselected, show empty panel
                return;
            }

            if (selectedItem instanceof DatabaseConnectionProperties) {
                currentSelectedConnectionProperties = (DatabaseConnectionProperties) selectedItem;
                DatabaseConnectionPropertiesWidget widget = widgetMap.get(currentSelectedConnectionProperties);
                if (widget == null) {
                    widget = new DatabaseConnectionPropertiesWidget(DatabaseView.this);
                    widgetMap.put(currentSelectedConnectionProperties, widget);
                }
                Control propControl = widget.getComposite(currentSelectedConnectionProperties,
                        propertiesComposite);
                propertiesStackLayout.topControl = propControl;
                propertiesComposite.layout(true);
                widget.checkActivationButton();

                currentSelectedConnectionPropertiesList.clear();
                Object[] array = sel.toArray();
                for (Object conn : array) {
                    if (conn instanceof DatabaseConnectionProperties) {
                        currentSelectedConnectionPropertiesList.add((DatabaseConnectionProperties) conn);
                    }
                }

            } else {
                putUnselected();
            }
        }

    });
    return connectionsViewer;
}

From source file:eu.numberfour.n4js.ui.workingsets.internal.HideWorkingSetAction.java

License:Open Source License

@Override
public void run() {
    final IStructuredSelection selection = getStructuredSelection();
    final Object[] selectionElements = selection.toArray();
    final WorkingSet[] selectedWorkingSets = Arrays2.filter(selectionElements, WorkingSet.class);

    final WorkingSetManager manager = selectedWorkingSets[0].getWorkingSetManager();
    final WorkingSetDiffBuilder builder = new WorkingSetDiffBuilder(manager);
    final WorkingSet[] newAllItems = manager.getAllWorkingSets();
    final List<WorkingSet> newItems = newArrayList(manager.getWorkingSets());
    for (final WorkingSet toHide : selectedWorkingSets) {
        newItems.remove(toHide);/*w  ww . j a  v a 2s  . com*/
    }
    final Diff<WorkingSet> diff = builder.build(Iterables.toArray(newItems, WorkingSet.class), newAllItems);
    if (!diff.isEmpty()) {
        manager.updateState(diff);
        manager.saveState(new NullProgressMonitor());
        manager.getWorkingSetManagerBroker().refreshNavigator();
    }
}

From source file:eu.numberfour.n4js.ui.workingsets.internal.HideWorkingSetAction.java

License:Open Source License

@Override
@VisibleForTesting/*from w  w w . ja  va 2s. co m*/
public boolean updateSelection(IStructuredSelection selection) {
    if (selection == null || selection.isEmpty()) {
        return false;
    }

    final Object[] selectionElements = selection.toArray();
    final WorkingSet[] selectedWorkingSets = Arrays2.filter(selectionElements, WorkingSet.class);

    if (selectionElements.length != selectedWorkingSets.length) {
        return false;
    }

    final WorkingSetManager manager = selectedWorkingSets[0].getWorkingSetManager();
    // Cannot hide all working sets.
    return manager.getWorkingSets().length > selectedWorkingSets.length;
}

From source file:eu.numberfour.n4js.ui.workingsets.internal.N4JSProjectActionGroup.java

License:Open Source License

private void performSelectionChanged(final IStructuredSelection structuredSelection) {
    final Object[] array = structuredSelection.toArray();
    final ArrayList<IProject> openProjects = new ArrayList<>();
    final int selectionStatus = evaluateSelection(array, openProjects);
    final StructuredSelection sel = new StructuredSelection(openProjects);

    openAction.setEnabled(hasClosedProjectsInWorkspace());
    enableOpenInContextMenu = (selectionStatus & CLOSED_PROJECTS_SELECTED) != 0
            || (selectionStatus == 0 && array.length == 0 && hasClosedProjectsInWorkspace());
    closeAction.selectionChanged(sel);// w w  w  . java2 s.co  m
    closeUnrelatedAction.selectionChanged(sel);
}

From source file:eu.numberfour.n4js.ui.workingsets.WorkingSetConfigurationDialog.java

License:Open Source License

/**
 * Removes the selected working sets from the workbench.
 *//*from   w  ww.java 2s  . co  m*/
private void removeSelectedWorkingSets() {
    if (manager instanceof MutableWorkingSetManager) {

        final IStructuredSelection selection = tableViewer.getStructuredSelection();
        final Object[] objects = selection.toArray();
        final Collection<WorkingSet> removedWorkingSets = newArrayList();

        for (int i = 0, size = objects.length; i < size; i++) {
            final Object object = objects[i];
            if (object instanceof WorkingSet) {
                final WorkingSet workingSet = (WorkingSet) object;
                if (!OTHERS_WORKING_SET_ID.equals(workingSet)) {
                    removedWorkingSets.add(workingSet);
                }
            }
        }

        if (!removedWorkingSets.isEmpty()) {
            for (final WorkingSet workingSet : removedWorkingSets) {
                diffBuilder.delete(workingSet);
            }
            getShell().getDisplay().asyncExec(new Runnable() {

                @Override
                public void run() {
                    tableViewer.remove(removedWorkingSets.toArray());
                    allWorkingSets.removeAll(removedWorkingSets);
                }

            });
        }
    }

}

From source file:eu.numberfour.n4js.ui.workingsets.WorkingSetManualAssociationWizard.java

License:Open Source License

@Override
public void addPages() {
    addPage(new WizardPage("") {

        private Text nameText;
        private final Collection<IProject> workspaceProjects = newTreeSet(PROJECT_NAME_COMPARATOR);
        private final Collection<IProject> workingSetProjects = newTreeSet(PROJECT_NAME_COMPARATOR);

        @Override// w  w w  .jav  a 2 s .c o  m
        public void createControl(Composite parent) {

            final Composite composite = new Composite(parent, NONE);
            composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).create());
            composite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            new Label(composite, NONE).setText("Working set name:");
            nameText = new Text(composite, BORDER);
            nameText.setLayoutData(fillDefaults().align(FILL, CENTER).grab(true, false).create());

            Composite tableComposite = new Composite(composite, NONE);
            tableComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).create());
            tableComposite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).span(2, 1).create());

            Group workspaceGroup = new Group(tableComposite, SHADOW_IN);
            workspaceGroup.setText("Available workspace projects");
            workspaceGroup.setLayout(GridLayoutFactory.fillDefaults().create());
            workspaceGroup.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            final TableViewer allProjectsViewer = new TableViewerBuilder(singletonList("")).setHasBorder(true)
                    .setHeaderVisible(false).setLinesVisible(false).setMultipleSelection(true)
                    .setColumnWidthsInPixel(Ints.asList(350)).setLabelProvider(labelProvider)
                    .build(workspaceGroup);

            Composite buttonComposite = new Composite(tableComposite, NONE);
            buttonComposite.setLayout(GridLayoutFactory.fillDefaults().create());
            // buttonComposite.setLayoutData(fillDefaults().align(CENTER, CENTER).grab(false, false).create());

            final Button addButton = new Button(buttonComposite, PUSH);
            addButton.setImage(ImageRef.RIGHT_ARROW.asImage().orNull());
            addButton.setToolTipText("Add all selected workspace projects");
            addButton.setEnabled(false);

            final Button removeButton = new Button(buttonComposite, PUSH);
            removeButton.setImage(ImageRef.LEFT_ARROW.asImage().orNull());
            removeButton.setToolTipText("Remove all selected working set element projects");
            removeButton.setEnabled(false);

            Group workingSetGroup = new Group(tableComposite, SHADOW_IN);
            workingSetGroup.setText("Associated working set projects");
            workingSetGroup.setLayout(GridLayoutFactory.fillDefaults().create());
            workingSetGroup.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            final TableViewer associatedProjectsViewer = new TableViewerBuilder(singletonList(""))
                    .setHasBorder(true).setHeaderVisible(false).setLinesVisible(false)
                    .setMultipleSelection(true).setColumnWidthsInPixel(Ints.asList(350))
                    .setLabelProvider(labelProvider).build(workingSetGroup);

            addButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    IStructuredSelection selection = allProjectsViewer.getStructuredSelection();
                    if (selection != null && !selection.isEmpty()) {
                        final IProject[] projects = Arrays2.filter(selection.toArray(), IProject.class);
                        allProjectsViewer.remove(projects);
                        associatedProjectsViewer.add(projects);
                        workspaceProjects.removeAll(Arrays.asList(projects));
                        workingSetProjects.addAll(Arrays.asList(projects));
                        setPageComplete(validatePage());
                    }
                }
            });

            removeButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    IStructuredSelection selection = associatedProjectsViewer.getStructuredSelection();
                    if (selection != null && !selection.isEmpty()) {
                        final IProject[] projects = Arrays2.filter(selection.toArray(), IProject.class);
                        associatedProjectsViewer.remove(projects);
                        allProjectsViewer.add(projects);
                        workingSetProjects.removeAll(Arrays.asList(projects));
                        workspaceProjects.addAll(Arrays.asList(projects));
                        setPageComplete(validatePage());
                    }
                }
            });

            associatedProjectsViewer.addSelectionChangedListener(event -> {
                final IStructuredSelection selection = associatedProjectsViewer.getStructuredSelection();
                removeButton.setEnabled(null != selection && !selection.isEmpty());
            });

            allProjectsViewer.addSelectionChangedListener(event -> {
                final IStructuredSelection selection = allProjectsViewer.getStructuredSelection();
                addButton.setEnabled(null != selection && !selection.isEmpty());
            });

            setPageComplete(false);
            setControl(composite);

            final Optional<WorkingSet> editedWorkingSet = getEditedWorkingSet();
            workspaceProjects.addAll(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()));
            if (editedWorkingSet.isPresent()) {
                final ManualAssociationWorkingSet workingSet = (ManualAssociationWorkingSet) editedWorkingSet
                        .get();
                workingSetRef.set(workingSet);
                nameText.setText(workingSet.getName());
                nameText.selectAll();
                workingSetProjects.addAll(workingSet.getAssociatedProjects());
                workspaceProjects.removeAll(workingSetProjects);
                originalName.set(workingSet.getName());
            }

            composite.getDisplay().asyncExec(() -> {
                setTitle(TITLE);
                setDescription(DESCRIPTION);
                allProjectsViewer.setInput(workspaceProjects);
                associatedProjectsViewer.setInput(workingSetProjects);
            });

            nameText.addModifyListener(e -> setPageComplete(validatePage()));

        }

        @Override
        public void setVisible(boolean visible) {
            if (visible) {
                Rectangle location = UIUtils.getConstrainedShellBounds(getShell(), SHELL_SIZE);
                getShell().setBounds(location);
            }
            super.setVisible(visible);
        }

        @SuppressWarnings("null")
        private boolean validatePage() {

            String errorMessage = null;

            final String name = nameText.getText();
            final WorkingSetManager manager = getManager();

            if (manager == null) {
                errorMessage = "No active working set manager is available.";
            }

            if (errorMessage == null) {
                if (name == null || name.trim().length() == 0) {
                    errorMessage = "Working set name should be specified.";
                }
            }

            if (errorMessage == null) {
                if (!name.equals(originalName.get())
                        // This case ID and name are equal. Intentionally name.
                        && Arrays2.transform(manager.getAllWorkingSets(), ws -> ws.getName()).contains(name)) {
                    errorMessage = "A working set already exists with name '" + name + "'.";
                }
            }

            if (errorMessage != null) {
                workingSetRef.set(null);
            } else {
                final Iterable<String> projectNames = from(workingSetProjects).transform(p -> p.getName());
                workingSetRef.set(new ManualAssociationWorkingSet(projectNames, name, manager));
            }

            setMessage(errorMessage, ERROR);
            return errorMessage == null;
        }

    });
}

From source file:ext.org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.java

License:Open Source License

public static boolean isDeleteAvailable(final IStructuredSelection selection) {
    if (!selection.isEmpty())
        return isDeleteAvailable(selection.toArray());
    return false;
}

From source file:ext.org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.java

License:Open Source License

public static boolean isExtractSupertypeAvailable(final IStructuredSelection selection)
        throws JavaModelException {
    if (!selection.isEmpty()) {
        if (selection.size() == 1) {
            if (selection.getFirstElement() instanceof ICompilationUnit)
                return true; // Do not force opening
            final IType type = getSingleSelectedType(selection);
            if (type != null)
                return Checks.isAvailable(type) && isExtractSupertypeAvailable(new IType[] { type });
        }/*from   ww w  . ja  v  a 2 s .  co  m*/
        for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
            if (!(iterator.next() instanceof IMember))
                return false;
        }
        final Set<IMember> members = new HashSet<IMember>();
        @SuppressWarnings("unchecked")
        List<IMember> selectionList = (List<IMember>) (List<?>) Arrays.asList(selection.toArray());
        members.addAll(selectionList);
        return isExtractSupertypeAvailable(members.toArray(new IMember[members.size()]));
    }
    return false;
}

From source file:ext.org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.java

License:Open Source License

public static boolean isPullUpAvailable(final IStructuredSelection selection) throws JavaModelException {
    if (!selection.isEmpty()) {
        if (selection.size() == 1) {
            if (selection.getFirstElement() instanceof ICompilationUnit)
                return true; // Do not force opening
            final IType type = getSingleSelectedType(selection);
            if (type != null)
                return Checks.isAvailable(type) && isPullUpAvailable(new IType[] { type });
        }//from   www.j  a  v  a2  s . c  om
        for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
            if (!(iterator.next() instanceof IMember))
                return false;
        }
        final Set<IMember> members = new HashSet<IMember>();
        @SuppressWarnings("unchecked")
        List<IMember> selectionList = (List<IMember>) (List<?>) Arrays.asList(selection.toArray());
        members.addAll(selectionList);
        return isPullUpAvailable(members.toArray(new IMember[members.size()]));
    }
    return false;
}