Java Reference
In-Depth Information
The label provider is declared to be the MindmapSheetLabelProvider
class, which we need to implement. The contributor ID and category match our
propertyTabs definition. Following the extension-point contribution is the
implementation of the label provider, which extends DecoratingLabel
Provider and mainly consists of unwrapping methods to adapt our underlying
EMF models.
<extension point=
"org.eclipse.ui.views.properties.tabbed.propertyContributor">
<propertyContributor
contributorId="org.eclipse.mindmap.diagram"
labelProvider=
"org.eclipse.mindmap.diagram.sheet.MindmapSheetLabelProvider">
<propertyCategory category="domain"/>
</propertyContributor>
</extension>
public class MindmapSheetLabelProvider extends DecoratingLabelProvider
{
public MindmapSheetLabelProvider() {
super ( new AdapterFactoryLabelProvider(
MindmapDiagramEditorPlugin.getInstance().
getItemProvidersAdapterFactory()), null );
}
@Override
public String getText(Object element) {
final Object selected = unwrap(element);
return super .getText(selected);
}
@Override
public Image getImage(Object element) {
return super .getImage(unwrap(element));
}
private Object unwrap(Object element) {
if (element instanceof IStructuredSelection) {
return unwrap(((IStructuredSelection)
element).getFirstElement());
}
if (element instanceof EditPart) {
return unwrapEditPart((EditPart) element);
}
if (element instanceof IAdaptable) {
final View view = (View) ((IAdaptable)
element).getAdapter(View. class );
if (view != null ) {
return unwrapView(view);
}
Search WWH ::




Custom Search