private synchronized MultiSelection<Object> getMixedSelection() { if (mixedSelection == null) { mixedSelection = MultiSelection.from( Object.class, new ObservableSet<Object>() { @Override protected ImmutableSet<Object> compute() { if (tv != null) { ISelection s = tv.getSelection(); if (s instanceof IStructuredSelection) { Object[] elements = ((IStructuredSelection) s).toArray(); return ImmutableSet.copyOf(elements); } } return ImmutableSet.of(); } }); debug("mixedSelection", mixedSelection.getElements()); } if (tv != null) { addViewerSelectionListener(); } return mixedSelection; }
@Override public synchronized MultiSelection<BootDashElement> getSelection() { if (selection == null) { selection = getMixedSelection().filter(BootDashElement.class); debug("selection", selection.getElements()); } return selection; }
private void addViewerSelectionListener() { tv.setSelection(new StructuredSelection(Arrays.asList(mixedSelection.getValue().toArray()))); tv.addSelectionChangedListener( new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { mixedSelection.getElements().refresh(); } }); }
public AbstractBootDashAction(MultiSelection<BootDashElement> selection, UserInteractions ui) { this.selection = selection; this.ui = ui; selection .getElements() .addListener( new ValueListener<Set<BootDashElement>>() { public void gotValue( LiveExpression<Set<BootDashElement>> exp, Set<BootDashElement> selecteds) { updateEnablement(); } }); }
protected BootDashElement getSingleSelectedElement() { return selection.getSingle(); }
protected Collection<BootDashElement> getSelectedElements() { return selection.getValue(); }
public static <T> MultiSelection<T> union(MultiSelection<T> a, MultiSelection<T> b) { Assert.isLegal(a.getElementType().equals(b.getElementType())); return from(a.getElementType(), LiveSets.union(a.getElements(), b.getElements())); }