List of usage examples for org.eclipse.jface.viewers IStructuredSelection toArray
public Object[] toArray();
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; }