`

org.eclipse.ui.decorators 使用(转)

 
阅读更多
org.eclipse.ui.decorators这个扩展点可以为对应的节点添加不同的图标显示。

使用方式都差不多,以下就转载一下使用方式:
1、添加扩展点 org.eclipse.ui.decorators
2、修改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>
添加扩展点后,xml里有很多属性,为了单独对指定的文件夹起作用,删掉其他属性,并增加class属性;
enablement的意思是对什么起作用,这里是对文件夹IFolder起作用;
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
 
}
}
上面用到了MyUIPlugIn.getImage的方法,下面贴出源码,目的就是取项目目录下的图标文件;
MyUIPlugIn是建立插件项目时自动生成的,继承了 AbstractUIPlugin;
public static ImageDescriptor getImageDescriptor(String path) {
  return imageDescriptorFromPlugin(PLUGIN_ID, path);
}

public static Image getImage(String path){
  return getImageDescriptor(path).createImage();
}
PLUGIN_ID是插件项目的ID;
分享到:
评论

相关推荐

    Eclipse平台扩展点清单

    org.eclipse.ui.decorators** 此扩展点用于定义装饰器(Decorators),用于向视图中的元素添加额外的信息。 **16. org.eclipse.ui.dropActions** 此扩展点用于定义拖放动作(Drop Actions),用于定义当拖放操作...

    Node.js-Fitted:使用ES7decorators简化http请求

    本文将深入探讨如何使用名为Fitted的库,它结合了ES7 Decorators,使HTTP请求变得更简洁、易读。 首先,让我们了解什么是ES7 Decorators。Decorators是一种在运行时修改类行为的预处理器,它们允许我们在不修改源...

    mybatis源码中文注释.zip

    mybatis源码中文注释版 需要导入模块:需要将mybatis-parent模块导入。mybatis-parent模块 1.兵马未动,日志先行 org.apache.ibatis.logging ...org.apache.ibatis.cache.decorators org.apache.ibatis.cache.i

    网络架构师148讲视频课程

    │ │ ├─org.eclipse.core.resources │ │ │ ├─.history │ │ │ │ ├─0 │ │ │ │ ├─1 │ │ │ │ ├─10 │ │ │ │ ├─11 │ │ │ │ ├─12 │ │ │ │ ├─13 │ │ │ │ ├─14 │ │ │ ...

    前端-后端java的Util类的工具类

    │ │ org.eclipse.jdt.core.prefs │ │ │ └─src │ │ logging.properties │ │ │ └─com │ └─mine │ │ BigMap.java │ │ LogPack.java │ │ │ └─logging │ ConsoleHandler.java │ Error...

    Eclipse里配置Tomcat

    5. 删除Eclipse的configuration目录下的org.eclipse.update目录,这是为了提高Eclipse的启动速度,避免每次启动时扫描更新。 6. 启动Eclipse,检查插件是否正确安装,通过Help &gt; About Eclipse Platform &gt; Plug-in ...

    AngularJS - Novice to Ninja.pdf.pdf )

    非常不错的书 Preface . . . . . . . . ....Who Should Read This Book ....Conventions Used ....Code Samples ....Tips, Notes, and Warnings ....Supplementary Materials .... ....Chapter 1 Falling In Love With AngularJS ....

    ( [Python.in.Practice(2013.8)].Mark.Summerfield.文字版(英语)

    2.4.2. Class Decorators........................................ 54 2.4.2.1. Using a Class Decorator to Add Properties .......... 57 2.4.2.2. Using a Class Decorator Instead of Subclassing...... 58 2.5...

    babel-plugin-transform-decorators-legacy:Babel 6的插件(主要用于)复制Babel 5的旧装饰器行为

    如果您使用的是Babel 7,则此插件不适合您。 Babel 7的@babel/plugin-proposal-decorators正式支持此插件具有的相同逻辑,但与Babel 7的其他插件更好地集成。 您可以启用 { " plugins " : [ [ " @babel/plugin-...

    react-decorators, 高级ReactJS组件的集合.zip

    react-decorators, 高级ReactJS组件的集合 React高阶反应组件的集合如何安装 $ npm install react-decorators --save:如何使用import React from 'react';import

    PyPI 官网下载 | lambda-decorators-0.5.0.tar.gz

    "lambda-decorators"库为Python开发者提供了便捷的方式来构建和使用lambda装饰器,提高了代码的可读性和可维护性。通过熟练掌握这个库,我们可以更高效地利用装饰器这一Python的强大特性,优化我们的代码结构,提升...

    ember-lifeline-decorators-master.rar

    这个压缩包"ember-lifeline-decorators-master.rar"可能包含了项目的源代码,供开发者研究、学习或在自己的项目中使用。 在 Ember.js 中,装饰器是一种元编程工具,可以用来修饰类和类方法,为它们添加额外的行为或...

    fluxible-plugin-material-ui-源码.rar

    - `decorators.js`:可能包含用于装饰React组件的函数,以实现Fluxible和Material-UI的集成。 - `registerComponents.js`:可能用于注册Material-UI的所有组件,使其在Fluxible应用中可用。 - `styles.js`:可能...

    如何使用links方式安装Eclipse插件

    ### 如何使用links方式安装Eclipse插件:以eclemma为例 #### 一、eclemma简介及重要性 Eclemma是一款强大的代码覆盖率分析工具,它主要用于评估单元测试对代码的覆盖程度,帮助开发者识别未被测试覆盖的部分,从而...

    Python库 | aws-lambda-decorators-0.51.tar.gz

    对于那些希望在AWS Lambda上使用Python进行开发的工程师来说,理解和掌握`aws-lambda-decorators`库至关重要。 总结起来,`aws-lambda-decorators`库为Python开发者提供了一套高效、灵活的方式来构建和管理AWS ...

    Go-一组实用的decorators用于在golang中实现弹性http客户端

    如果需要自定义TLS配置(如使用特定的证书或忽略某些验证),这个项目可能提供了这样的装饰器。 9. **Custom Headers** 添加自定义请求头可以满足特定需求,如身份验证或服务间通信。装饰器可能允许在每个请求上...

    decorators:我做的功能装饰器

    通过执行git clone https://github.com/Louis-Navarro/decorators.git或下载.zip文件来下载此存储库。 然后,在文件中打开命令提示符。 输入pip install -e . 在命令提示符下,然后按Enter键以安装软件包。 完毕!...

    di-decorators:使用ES装饰器进行简单的依赖注入

    该项目是在ES Decorators之上易于使用的几乎没有依赖项注入的框架。 基本思想是有一种简单的方法来声明与ES装饰器的依赖关系。 如果您愿意,请花一些时间为该项目加注星标! “ npm star di-decorators”以及...

    springmvc+mybatis+maven+freemarker+urlwrite+decorators

    【标题】"springmvc+mybatis+maven+freemarker+urlwrite+decorators"是一个集成的Web开发框架,用于构建高效、模块化且易于维护的Java应用。这个框架结合了Spring MVC、MyBatis、Maven、FreeMarker、UrlRewrite和...

    Python库 | comapsmarthome-lambda-decorators-1.0.1.tar.gz

    使用`comapsmarthome-lambda-decorators`库,开发者可以更加专注于业务逻辑的实现,而将诸如错误处理、性能优化等通用功能交给装饰器来完成。这不仅提高了代码的可读性和可维护性,也使得Lambda函数的编写变得更加...

Global site tag (gtag.js) - Google Analytics