List of usage examples for org.eclipse.jface.viewers IStructuredSelection iterator
@Override
public Iterator iterator();
From source file:bndtools.editor.pkgpatterns.PkgPatternsListPart.java
License:Open Source License
private void doAddClausesAfterSelection(Collection<? extends C> newClauses) { if (newClauses != null && !newClauses.isEmpty()) { int selectedIndex = -1; IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (!selection.isEmpty()) { // find the highest selected index for (Iterator<?> iter = selection.iterator(); iter.hasNext();) { int index = this.clauses.indexOf(iter.next()); if (index > selectedIndex) selectedIndex = index; }/*from w w w . ja v a 2s. c o m*/ } doAddClauses(newClauses, selectedIndex, true); } }
From source file:bndtools.MakeBundleWithRefreshAction.java
License:Open Source License
@Override public void run(IAction action) { // What should we refresh?? IStructuredSelection selection = StructuredSelection.EMPTY; if (targetPart instanceof IEditorPart) { IEditorInput input = ((IEditorPart) targetPart).getEditorInput(); if (input instanceof IFileEditorInput) { IFile file = ((IFileEditorInput) input).getFile(); selection = new StructuredSelection(file); }//from w w w .j a v a2 s . co m } else { ISelection sel = targetPart.getSite().getSelectionProvider().getSelection(); if (sel instanceof IStructuredSelection) { selection = (IStructuredSelection) sel; } } selectionChanged(action, selection); super.run(action); final List<IResource> resources = new ArrayList<IResource>(selection.size()); for (Iterator<?> iter = selection.iterator(); iter.hasNext();) { Object next = iter.next(); if (next instanceof IResource) resources.add((IResource) next); } if (!resources.isEmpty()) { final IWorkspace workspace = resources.get(0).getWorkspace(); final IWorkspaceRunnable operation = new IWorkspaceRunnable() { public void run(IProgressMonitor monitor) throws CoreException { SubMonitor progress = SubMonitor.convert(monitor, resources.size()); MultiStatus status = new MultiStatus(Plugin.PLUGIN_ID, 0, "One or more errors occurred while refreshing resources", null); for (IResource resource : resources) { try { resource.getParent().refreshLocal(1, progress.newChild(1)); } catch (CoreException e) { status.add(new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, e.getMessage(), e)); } } if (!status.isOK()) { ErrorDialog.openError(targetPart.getSite().getShell(), "Error", null, status); } } }; IRunnableWithProgress task = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { try { workspace.run(operation, monitor); } catch (CoreException e) { throw new InvocationTargetException(e); } } }; try { targetPart.getSite().getWorkbenchWindow().run(false, false, task); } catch (InvocationTargetException e) { CoreException ce = (CoreException) e.getCause(); ErrorDialog.openError(targetPart.getSite().getShell(), "Error", null, new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, "Error refreshing resources", ce)); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } // Process it IRunnableContext context = targetPart.getSite().getWorkbenchWindow(); try { context.run(false, false, new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { } }); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:bndtools.utils.SelectionUtils.java
License:Open Source License
public static <T> Collection<T> getSelectionMembers(ISelection selection, Class<T> clazz, Predicate<? super T> filter) throws Exception { if (selection.isEmpty() || !(selection instanceof IStructuredSelection)) { return Collections.emptyList(); }/* w ww . j av a 2s . c om*/ IStructuredSelection structSel = (IStructuredSelection) selection; List<T> result = new ArrayList<T>(structSel.size()); Iterator<?> iter = structSel.iterator(); while (iter.hasNext()) { Object element = iter.next(); if (clazz.isInstance(element)) { @SuppressWarnings("unchecked") T casted = (T) element; if (filter == null || filter.test(casted)) { result.add(casted); } } else if (element instanceof IAdaptable) { @SuppressWarnings("unchecked") T adapted = (T) ((IAdaptable) element).getAdapter(clazz); if (adapted != null) { if (filter == null || filter.test(adapted)) { result.add(adapted); } } } } return result; }
From source file:bndtools.views.ImportsExportsView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { this.display = parent.getDisplay(); tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI); tree.setHeaderVisible(true);/*w w w .ja va 2 s . co m*/ tree.setLinesVisible(true); TreeColumn col; col = new TreeColumn(tree, SWT.NONE); col.setText("Package"); col.setWidth(400); col = new TreeColumn(tree, SWT.NONE); col.setText("Attribs"); col.setWidth(100); viewer = new TreeViewer(tree); viewer.setContentProvider(new ImportsExportsTreeContentProvider()); viewer.setSorter(new ImportsAndExportsViewerSorter()); viewer.setLabelProvider(new ImportsExportsTreeLabelProvider()); viewer.setAutoExpandLevel(2); hideSelfImportsFilter = new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof ImportPackage) { return !((ImportPackage) element).isSelfImport(); } else if (element instanceof RequiredBundle) { return !((RequiredBundle) element).isSatisfied(); } return true; } }; viewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter }); viewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new DragSourceListener() { public void dragStart(DragSourceEvent event) { } public void dragSetData(DragSourceEvent event) { LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer(); if (transfer.isSupportedType(event.dataType)) transfer.setSelection(viewer.getSelection()); } public void dragFinished(DragSourceEvent event) { } }); viewer.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); for (Iterator<?> iter = selection.iterator(); iter.hasNext();) { Object item = iter.next(); if (item instanceof ImportUsedByClass) { ImportUsedByClass importUsedBy = (ImportUsedByClass) item; String className = importUsedBy.getClazz().getFQN(); IType type = null; if (selectedFiles != null) { IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot(); for (File selectedFile : selectedFiles) { IFile[] wsfiles = wsroot.findFilesForLocationURI(selectedFile.toURI()); for (IFile wsfile : wsfiles) { IJavaProject javaProject = JavaCore.create(wsfile.getProject()); try { type = javaProject.findType(className); if (type != null) break; } catch (JavaModelException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status( IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java class '{0}'.", className), e)); } } } } try { if (type != null) JavaUI.openInEditor(type, true, true); } catch (PartInitException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java editor for class '{0}'.", className), e)); } catch (JavaModelException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java class '{0}'.", className), e)); } } } } }); fillActionBars(); getSite().getPage().addPostSelectionListener(this); getSite().getPage().addPartListener(partAdapter); ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE); // Current selection & part IWorkbenchPart activePart = getSite().getPage().getActivePart(); ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection(); selectionChanged(activePart, activeSelection); }
From source file:bndtools.views.ImportsExportsView.java
License:Open Source License
private static Collection<File> getFilesFromSelection(ISelection selection) { if (selection.isEmpty() || !(selection instanceof IStructuredSelection)) { return Collections.emptyList(); }//from w ww. jav a 2 s .c om IStructuredSelection structSel = (IStructuredSelection) selection; Collection<File> result = new ArrayList<File>(); Iterator<?> iter = structSel.iterator(); while (iter.hasNext()) { Object element = iter.next(); File file = SelectionUtils.adaptObject(element, File.class); if (file != null) { result.add(file); } else { IResource resource = SelectionUtils.adaptObject(element, IResource.class); if (resource != null) { IPath location = resource.getLocation(); if (location != null) result.add(location.toFile()); } } } return result; }
From source file:bndtools.views.resolution.ResolutionView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { this.display = parent.getDisplay(); SashForm splitPanel = new SashForm(parent, SWT.HORIZONTAL); splitPanel.setLayout(new FillLayout()); Composite reqsPanel = new Composite(splitPanel, SWT.NONE); reqsPanel.setBackground(parent.getBackground()); GridLayout reqsLayout = new GridLayout(1, false); reqsLayout.marginWidth = 0;//from ww w .ja va 2 s . c o m reqsLayout.marginHeight = 0; reqsLayout.verticalSpacing = 2; reqsPanel.setLayout(reqsLayout); new Label(reqsPanel, SWT.NONE).setText("Requirements:"); reqsTree = new Tree(reqsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER); reqsTree.setHeaderVisible(false); reqsTree.setLinesVisible(false); reqsTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); reqsViewer = new TreeViewer(reqsTree); ColumnViewerToolTipSupport.enableFor(reqsViewer); reqsViewer.setLabelProvider(new RequirementWrapperLabelProvider(true)); reqsViewer.setContentProvider(new CapReqMapContentProvider()); Composite capsPanel = new Composite(splitPanel, SWT.NONE); capsPanel.setBackground(parent.getBackground()); GridLayout capsLayout = new GridLayout(1, false); capsLayout.marginWidth = 0; capsLayout.marginHeight = 0; capsLayout.verticalSpacing = 2; capsPanel.setLayout(capsLayout); new Label(capsPanel, SWT.NONE).setText("Capabilities:"); capsTable = new Table(capsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER); capsTable.setHeaderVisible(false); capsTable.setLinesVisible(false); capsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); capsViewer = new TableViewer(capsTable); ColumnViewerToolTipSupport.enableFor(capsViewer); capsViewer.setLabelProvider(new CapabilityLabelProvider(true)); capsViewer.setContentProvider(new CapReqMapContentProvider()); capsViewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parent, Object element) { return !filteredCapabilityNamespaces.contains(((Capability) element).getNamespace()); } } }); hideSelfImportsFilter = new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof RequirementWrapper) { RequirementWrapper rw = (RequirementWrapper) element; return !rw.resolved; } return true; } }; reqsViewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter }); reqsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(reqsViewer)); capsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(capsViewer)); reqsViewer.addOpenListener(new IOpenListener() { @Override public void open(OpenEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); for (Iterator<?> iter = selection.iterator(); iter.hasNext();) { Object item = iter.next(); if (item instanceof Clazz) { Clazz clazz = (Clazz) item; String className = clazz.getFQN(); IType type = null; if (!loaders.isEmpty()) { IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot(); for (CapReqLoader loader : loaders) { if (loader instanceof BndBuilderCapReqLoader) { File loaderFile = ((BndBuilderCapReqLoader) loader).getFile(); IFile[] wsfiles = wsroot.findFilesForLocationURI(loaderFile.toURI()); for (IFile wsfile : wsfiles) { IJavaProject javaProject = JavaCore.create(wsfile.getProject()); try { type = javaProject.findType(className); if (type != null) break; } catch (JavaModelException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat .format("Error opening Java class '{0}'.", className), e)); } } } } } try { if (type != null) JavaUI.openInEditor(type, true, true); } catch (PartInitException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java editor for class '{0}'.", className), e)); } catch (JavaModelException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java class '{0}'.", className), e)); } } } } }); fillActionBars(); getSite().getPage().addPostSelectionListener(this); getSite().getPage().addPartListener(partAdapter); ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE); // Current selection & part IWorkbenchPart activePart = getSite().getPage().getActivePart(); ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection(); selectionChanged(activePart, activeSelection); }
From source file:bndtools.views.resolution.ResolutionView.java
License:Open Source License
private Set<CapReqLoader> getLoadersFromSelection(IStructuredSelection structSel) { Set<CapReqLoader> result = new LinkedHashSet<CapReqLoader>(); Iterator<?> iter = structSel.iterator(); while (iter.hasNext()) { Object element = iter.next(); CapReqLoader loader = null;/*from w ww. j a va 2s . c om*/ File file = SelectionUtils.adaptObject(element, File.class); if (file != null) { loader = getLoaderForFile(file); } else { IResource eresource = SelectionUtils.adaptObject(element, IResource.class); if (eresource != null) { IPath location = eresource.getLocation(); if (location != null) { loader = getLoaderForFile(location.toFile()); } } else if (element instanceof RepositoryResourceElement) { Resource resource = ((RepositoryResourceElement) element).getResource(); loader = new ResourceCapReqLoader(resource); } } if (loader != null) result.add(loader); } return result; }
From source file:bndtools.views.ResolutionView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { this.display = parent.getDisplay(); SashForm splitPanel = new SashForm(parent, SWT.HORIZONTAL); splitPanel.setLayout(new FillLayout()); Composite reqsPanel = new Composite(splitPanel, SWT.NONE); reqsPanel.setBackground(parent.getBackground()); GridLayout reqsLayout = new GridLayout(1, false); reqsLayout.marginWidth = 0;/* w ww . j av a 2s . c o m*/ reqsLayout.marginHeight = 0; reqsLayout.verticalSpacing = 2; reqsPanel.setLayout(reqsLayout); new Label(reqsPanel, SWT.NONE).setText("Requirements:"); reqsTree = new Tree(reqsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER); reqsTree.setHeaderVisible(false); reqsTree.setLinesVisible(false); reqsTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); reqsViewer = new TreeViewer(reqsTree); ColumnViewerToolTipSupport.enableFor(reqsViewer); reqsViewer.setLabelProvider(new RequirementWrapperLabelProvider(true)); reqsViewer.setContentProvider(new CapReqMapContentProvider()); Composite capsPanel = new Composite(splitPanel, SWT.NONE); capsPanel.setBackground(parent.getBackground()); GridLayout capsLayout = new GridLayout(1, false); capsLayout.marginWidth = 0; capsLayout.marginHeight = 0; capsLayout.verticalSpacing = 2; capsPanel.setLayout(capsLayout); new Label(capsPanel, SWT.NONE).setText("Capabilities:"); capsTable = new Table(capsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER); capsTable.setHeaderVisible(false); capsTable.setLinesVisible(false); capsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); capsViewer = new TableViewer(capsTable); ColumnViewerToolTipSupport.enableFor(capsViewer); capsViewer.setLabelProvider(new CapabilityLabelProvider(true)); capsViewer.setContentProvider(new CapReqMapContentProvider()); capsViewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parent, Object element) { return !filteredCapabilityNamespaces.contains(((Capability) element).getNamespace()); } } }); hideSelfImportsFilter = new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof RequirementWrapper) { RequirementWrapper rw = (RequirementWrapper) element; return !rw.resolved; } return true; } }; reqsViewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter }); reqsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(reqsViewer)); capsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(capsViewer)); reqsViewer.addOpenListener(new IOpenListener() { @Override public void open(OpenEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); for (Iterator<?> iter = selection.iterator(); iter.hasNext();) { Object item = iter.next(); if (item instanceof Clazz) { Clazz clazz = (Clazz) item; String className = clazz.getFQN(); IType type = null; if (selectedFiles != null) { IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot(); for (File selectedFile : selectedFiles) { IFile[] wsfiles = wsroot.findFilesForLocationURI(selectedFile.toURI()); for (IFile wsfile : wsfiles) { IJavaProject javaProject = JavaCore.create(wsfile.getProject()); try { type = javaProject.findType(className); if (type != null) break; } catch (JavaModelException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status( IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java class '{0}'.", className), e)); } } } } try { if (type != null) JavaUI.openInEditor(type, true, true); } catch (PartInitException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java editor for class '{0}'.", className), e)); } catch (JavaModelException e) { ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat.format("Error opening Java class '{0}'.", className), e)); } } } } }); fillActionBars(); getSite().getPage().addPostSelectionListener(this); getSite().getPage().addPartListener(partAdapter); ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE); // Current selection & part IWorkbenchPart activePart = getSite().getPage().getActivePart(); ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection(); selectionChanged(activePart, activeSelection); }
From source file:ca.mcgill.sable.soot.attributes.VisManLauncher.java
License:Open Source License
public void selectionChanged(IAction action, ISelection selection) { if (selection instanceof IStructuredSelection) { IStructuredSelection struct = (IStructuredSelection) selection; Iterator it = struct.iterator(); while (it.hasNext()) { Object next = it.next(); if (next instanceof IResource) { setProj(((IResource) next).getProject()); setRec((IResource) next); } else if (next instanceof IJavaElement) { IJavaElement jElem = (IJavaElement) next; setProj(jElem.getJavaProject().getProject()); setRec(jElem.getResource()); }//from w w w .j a va 2 s . co m } } }
From source file:ca.uvic.chisel.diver.sequencediagrams.sc.java.actions.OpenEditorAction.java
License:Open Source License
/** * Selection in the workbench has been changed. We * can change the state of the 'real' action here * if we want, but this can only happen after * the delegate has been created./*from w w w. ja v a2 s. co m*/ * @see IWorkbenchWindowActionDelegate#selectionChanged */ public void selectionChanged(IAction action, ISelection selection) { action.setEnabled(false); if (selection instanceof IStructuredSelection) { IStructuredSelection ss = (IStructuredSelection) selection; this.method = null; for (Iterator<?> i = ss.iterator(); i.hasNext();) { Object o = i.next(); if (o instanceof IAdaptable) { IMethod method = (IMethod) ((IAdaptable) o).getAdapter(IMethod.class); this.method = method; break; } } action.setEnabled(method != null); } }