@Override public ISelection getSelection(String partId) { Object selection = selectionService.getSelection(partId); if (selection == null || selection instanceof ISelection) { return (ISelection) selection; } return new StructuredSelection(selection); }
@Inject void setSelectionService(@Optional ESelectionService selectionService) { if (this.selectionService != null) { this.selectionService.removeSelectionListener(listener); for (String partId : targetedListeners.keySet()) { this.selectionService.removeSelectionListener(partId, targetedListener); } this.selectionService.removePostSelectionListener(postListener); for (String partId : targetedPostSelectionListeners.keySet()) { this.selectionService.removePostSelectionListener(partId, targetedPostListener); } } if (selectionService != null) { selectionService.addSelectionListener(listener); for (String partId : targetedListeners.keySet()) { selectionService.addSelectionListener(partId, targetedListener); } selectionService.addPostSelectionListener(postListener); for (String partId : targetedPostSelectionListeners.keySet()) { selectionService.addPostSelectionListener(partId, targetedPostListener); } this.selectionService = selectionService; } }
@Override public void selectionChanged(SelectionChangedEvent e) { ESelectionService selectionService = part.getContext().get(ESelectionService.class); selectionService.setSelection(e.getSelection()); }
@Override public void removePostSelectionListener(String partId, ISelectionListener listener) { Set<ISelectionListener> listeners = targetedPostSelectionListeners.get(partId); if (listeners != null) { listeners.remove(listener); if (listeners.isEmpty() && selectionService != null) { selectionService.removePostSelectionListener(partId, targetedPostListener); } } }
@Override public void removeSelectionListener(String partId, ISelectionListener listener) { Set<ISelectionListener> listeners = targetedListeners.get(partId); if (listeners != null) { listeners.remove(listener); if (listeners.isEmpty() && selectionService != null) { selectionService.removeSelectionListener(partId, this.targetedListener); } } }
@Override public void addSelectionListener(String partId, ISelectionListener listener) { Set<ISelectionListener> listeners = targetedListeners.get(partId); if (listeners == null) { listeners = new HashSet<>(); targetedListeners.put(partId, listeners); } if (listeners.isEmpty() && selectionService != null) { selectionService.addSelectionListener(partId, this.targetedListener); } listeners.add(listener); }
@Override public void addPostSelectionListener(String partId, ISelectionListener listener) { Set<ISelectionListener> listeners = targetedPostSelectionListeners.get(partId); if (listeners == null) { listeners = new HashSet<>(); targetedPostSelectionListeners.put(partId, listeners); } if (listeners.isEmpty() && selectionService != null) { selectionService.addPostSelectionListener(partId, targetedPostListener); } listeners.add(listener); }
@Override public void selectionChanged(SelectionChangedEvent e) { MPart part = page.findPart(activePart); ESelectionService selectionService = part.getContext().get(ESelectionService.class); selectionService.setSelection(e.getSelection()); }
@PostConstruct public void create(Composite parent, EMenuService menuService, ESelectionService selectionService) { tableViewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL); tableViewer.getTable().setHeaderVisible(true); tableViewer.setContentProvider(ArrayContentProvider.getInstance()); new TimeZoneIDColumn().addColumnTo(tableViewer); new TimeZoneDisplayNameColumn().addColumnTo(tableViewer); new TimeZoneOffsetColumn().addColumnTo(tableViewer); new TimeZoneSummerTimeColumn().addColumnTo(tableViewer); tableViewer.setInput(ZoneId.getAvailableZoneIds().stream().map(ZoneId::of).toArray()); menuService.registerContextMenu(tableViewer.getControl(), "com.packtpub.e4.clock.ui.popup"); tableViewer.addSelectionChangedListener(event -> { // forward selection Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement(); if (selection != null && selectionService != null) { selectionService.setSelection(selection); } }); }
@Execute public void execute(ESelectionService selectionService) { Object selection = selectionService.getSelection(); if (selection instanceof ZoneId) { DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; String theTime = ZonedDateTime.now((ZoneId) selection).format(formatter); MessageDialog.openInformation(null, "The time is", theTime); } } }
selectionService.setSelection(selection);
@Override public ISelection getSelection() { if (activePart != null) { // get the selection from the active part ISelectionProvider selectionProvider = activePart.getSite().getSelectionProvider(); return selectionProvider == null ? null : selectionProvider.getSelection(); } Object selection = selectionService.getSelection(); if (selection == null || selection instanceof ISelection) { return (ISelection) selection; } return new StructuredSelection(selection); }
selectionService.setSelection(selectionProvider.getSelection());