/** * Search for image and take overrides into account. * Uses only simple ITreeContentProvider.getParent() style semantics. */ private Image findImage(NavigatorContentExtension foundExtension, Object anElement) { Image image = null; INavigatorContentDescriptor foundDescriptor; image = foundExtension.getLabelProvider().getImage(anElement); if(image == null && (foundDescriptor = foundExtension.getDescriptor()).getOverriddenDescriptor() != null) { return findImage(contentService.getExtension(foundDescriptor.getOverriddenDescriptor()), anElement); } return image; }
/** * Search for text label and take overrides into account. * Uses only simple ITreeContentProvider.getParent() style semantics. */ private String findText(NavigatorContentExtension foundExtension, Object anElement) { String text = null; INavigatorContentDescriptor foundDescriptor; text = foundExtension.getLabelProvider().getText(anElement); if(text == null && (foundDescriptor = foundExtension.getDescriptor()).getOverriddenDescriptor() != null) { return findText(contentService.getExtension(foundDescriptor.getOverriddenDescriptor()), anElement); } return text; }
if (theEnabledDescriptors.contains(aDescriptor.getOverriddenDescriptor())) { return true;
private boolean shouldContinue(ReusableViewerLabel label, NavigatorContentExtension foundExtension) { if(foundExtension.getDescriptor().getOverriddenDescriptor() != null) { return !(label.isValid() && label.hasChanged()); } return false; }
.getExtension(aDescriptor.getOverriddenDescriptor()))) { return true;
/** * Search for text label and take overrides into account. * Uses only simple ITreeContentProvider.getParent() style semantics. */ private void findUpdateLabel(NavigatorContentExtension foundExtension, ReusableViewerLabel label, TreePath elementPath) { ILabelProvider labelProvider = foundExtension.getLabelProvider(); if (labelProvider instanceof ITreePathLabelProvider) { ITreePathLabelProvider tplp = (ITreePathLabelProvider) labelProvider; tplp.updateLabel(label, elementPath); } else { label.setImage(labelProvider.getImage(elementPath.getLastSegment())); label.setText(labelProvider.getText(elementPath.getLastSegment())); } if(shouldContinue(label, foundExtension)) { findUpdateLabel(contentService.getExtension(foundExtension.getDescriptor().getOverriddenDescriptor()), label, elementPath); } }