/** When the IS_LINKING_ENABLED_PROPERTY changes, we activate or deactivate this listener. */ @Override public void propertyChanged(Object source, int propId) { if (propId == CommonNavigator.IS_LINKING_ENABLED_PROPERTY) { // if the link with editor property has changed, we install or // remove the synchronizer according to the new value. if (navigator.isLinkingEnabled()) { enableSelectionListener(); } else { disableSelectionListener(); } } }
@Override public void selectionChanged(final IWorkbenchPart part, final ISelection selection) { if (selection instanceof ITreeSelection && part instanceof ResultList) { final Object first = ((ITreeSelection) selection).getFirstElement(); if (first instanceof CounterExampleResult) { final IEditorPart edPart = getSite().getPage().getActiveEditor(); actualAllowedInput = edPart.getTitle(); final CounterExampleResult<?, ?, ?> res = (CounterExampleResult<?, ?, ?>) first; if (res.getProgramExecution() != null) { // TODO: Implement this right with IProgramExecution and known values for generic // contProv.setValuation(res.getValuation()); } else { contProv.setValuation(new TestValuation()); } } viewer.getTree().removeAll(); } else if (selection instanceof ITreeSelection && part instanceof LocationTrace) { final Object first = ((ITreeSelection) selection).getFirstElement(); if (first != null) { viewer.setInput(((TraceNode) first).getOriginalIndex()); } } else if (selection instanceof ITextSelection && part instanceof EditorPart) { final String text = ((EditorPart) part).getTitle(); if (!text.equals(actualAllowedInput)) { viewer.getTree().removeAll(); } } else if (selection instanceof ITreeSelection && part instanceof CommonNavigator) { final CommonNavigator navi = (CommonNavigator) part; if (navi.isLinkingEnabled()) { if (((ITreeSelection) selection).getFirstElement() != null) { final String text = ((ITreeSelection) selection).getFirstElement().toString(); if (!text.equals(actualAllowedInput)) { viewer.getTree().removeAll(); } } else { viewer.getTree().removeAll(); } } } }