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