org.eclipse.ui.decorators use (transfer)

The org.eclipse.ui.decorators extension point can add different icon displays for the corresponding nodes.

The usage methods are almost the same, the following will reproduce the usage methods:
1. Add extension point org.eclipse.ui.decorators
2. Modify plugin.xml
   <extension
         point="org.eclipse.ui.decorators">
      <decorator
            id="my .ui.decorator"
            label="IFolder Decorator"
            state="true"
           class="my.ui.decorators.LabelDecorator">
         <enablement>
            <objectClass name="org.eclipse.core.resources.IFolder"/>
         </ enablement>
      </decorator>
   </extension>


3、my.ui.decorators.LabelDecorator类源码
package my.ui.decorators;
import org.eclipse.core.internal.resources.Folder;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.swt.graphics.Image;
import my.ui.BabaowgtkitUIPlugIn;
/**
* 更改图标
* ClassName:LabelDecorator
*/
@SuppressWarnings({ "restriction", "unused" })
public class LabelDecoratorimplementsILabelDecorator{
/**
  *
  * (non-Javadoc)
  * @see org.eclipse.jface.viewers.ILabelDecorator#decorateImage(org.eclipse.swt.graphics.Image, java.lang.Object)
  */
public Image decorateImage(Image image, Object element) {
  //更改src文件夹图标
  if (element instanceof Folder
    && ((Folder) element).getName().equals("src")) {
   return MyUIPlugIn.getImage("icons/packagefolder_obj.gif");
  }
  returnnull;
}
public String decorateText(String text, Object element) {
  // TODO Auto-generated method stub
  return null;
}
public void addListener(ILabelProviderListener listener) {
  // TODO Auto-generated method stub
 
}
public void dispose() {
  // TODO Auto-generated method stub
 
}
public boolean isLabelProperty(Object element, String property) {
  // TODO Auto-generated method stub
  return false;
}
public void removeListener(ILabelProviderListener listener) {
  // TODO Auto-generated method stub
 
}
}
The method of MyUIPlugIn.getImage is used above, and the source code is posted below, the purpose is to get the icon file in the project directory;
MyUIPlugIn is automatically generated when the plug-in project is created, and inherits AbstractUIPlugin;
public static ImageDescriptor getImageDescriptor(String path) {
  return imageDescriptorFromPlugin( PLUGIN_ID, path);
}

public static Image getImage(String path){
  return getImageDescriptor(path).createImage();
}
PLUGIN_ID is the ID of the plugin project;

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326754975&siteId=291194637