Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

E4/EAS/Label Decoration

< E4‎ | EAS

Components should be able to provide decorations to labels and icons for conveying information to the user. This allows a view to provide information about the model objects in question that it originally did not provide since third-party bundles can now contribute information to this view via the decoration mechanism.

Eclipse 3.x API

In Eclipse 3.x, the IDecorationManager and ILightweightLabelDecorator can be used by bundles to decorate objects.

Extension definition

<extension point="org.eclipse.ui.decorators">
<decorator
    adaptable="true"
    class="org.eclipse.e4.internal.ui.decorators.ResourceDecorator"
    id="org.eclipse.e4.internal.ui.decorators.ResourceDecorator"
    label="Resource Decorator"
    lightweight="true"
    state="true">
  <enablement>
    <and>
      <objectClass
          name="org.eclipse.core.resources.IResource">
      </objectClass>
       <or>
         <objectClass
             name="org.eclipse.core.resources.IFolder">
         </objectClass>
         <objectClass
             name="org.eclipse.core.resources.IFile">
         </objectClass>
        </or>
      </and>
  </enablement>
</decorator>
</extension>

Implementation

public class ResourceDecorator implements ILightweightLabelDecorator {
 
  public void decorate(Object element, IDecoration decoration) {
    if (element instanceof IFolder) {
      decoration.addOverlay(getFolderImageDescriptor(), IDecoration.TOP_LEFT);
    } else if (element instanceof IFile) {
      decoration.addOverlay(getFileImageDescriptor(), IDecoration.TOP_LEFT);
    }
  }
}

Decoration request

PlatformUI.getWorkbench().getDecoratorManager().update("org.eclipse.e4.internal.ui.decorators.ResourceDecorator");

Back to the top