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;
分享到:
相关推荐
org.eclipse.ui.decorators** 此扩展点用于定义装饰器(Decorators),用于向视图中的元素添加额外的信息。 **16. org.eclipse.ui.dropActions** 此扩展点用于定义拖放动作(Drop Actions),用于定义当拖放操作...
本文将深入探讨如何使用名为Fitted的库,它结合了ES7 Decorators,使HTTP请求变得更简洁、易读。 首先,让我们了解什么是ES7 Decorators。Decorators是一种在运行时修改类行为的预处理器,它们允许我们在不修改源...
mybatis源码中文注释版 需要导入模块:需要将mybatis-parent模块导入。mybatis-parent模块 1.兵马未动,日志先行 org.apache.ibatis.logging ...org.apache.ibatis.cache.decorators org.apache.ibatis.cache.i
│ │ ├─org.eclipse.core.resources │ │ │ ├─.history │ │ │ │ ├─0 │ │ │ │ ├─1 │ │ │ │ ├─10 │ │ │ │ ├─11 │ │ │ │ ├─12 │ │ │ │ ├─13 │ │ │ │ ├─14 │ │ │ ...
│ │ org.eclipse.jdt.core.prefs │ │ │ └─src │ │ logging.properties │ │ │ └─com │ └─mine │ │ BigMap.java │ │ LogPack.java │ │ │ └─logging │ ConsoleHandler.java │ Error...
5. 删除Eclipse的configuration目录下的org.eclipse.update目录,这是为了提高Eclipse的启动速度,避免每次启动时扫描更新。 6. 启动Eclipse,检查插件是否正确安装,通过Help > About Eclipse Platform > Plug-in ...
非常不错的书 Preface . . . . . . . . ....Who Should Read This Book ....Conventions Used ....Code Samples ....Tips, Notes, and Warnings ....Supplementary Materials .... ....Chapter 1 Falling In Love With AngularJS ....
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 7,则此插件不适合您。 Babel 7的@babel/plugin-proposal-decorators正式支持此插件具有的相同逻辑,但与Babel 7的其他插件更好地集成。 您可以启用 { " plugins " : [ [ " @babel/plugin-...
react-decorators, 高级ReactJS组件的集合 React高阶反应组件的集合如何安装 $ npm install react-decorators --save:如何使用import React from 'react';import
"lambda-decorators"库为Python开发者提供了便捷的方式来构建和使用lambda装饰器,提高了代码的可读性和可维护性。通过熟练掌握这个库,我们可以更高效地利用装饰器这一Python的强大特性,优化我们的代码结构,提升...
这个压缩包"ember-lifeline-decorators-master.rar"可能包含了项目的源代码,供开发者研究、学习或在自己的项目中使用。 在 Ember.js 中,装饰器是一种元编程工具,可以用来修饰类和类方法,为它们添加额外的行为或...
- `decorators.js`:可能包含用于装饰React组件的函数,以实现Fluxible和Material-UI的集成。 - `registerComponents.js`:可能用于注册Material-UI的所有组件,使其在Fluxible应用中可用。 - `styles.js`:可能...
### 如何使用links方式安装Eclipse插件:以eclemma为例 #### 一、eclemma简介及重要性 Eclemma是一款强大的代码覆盖率分析工具,它主要用于评估单元测试对代码的覆盖程度,帮助开发者识别未被测试覆盖的部分,从而...
对于那些希望在AWS Lambda上使用Python进行开发的工程师来说,理解和掌握`aws-lambda-decorators`库至关重要。 总结起来,`aws-lambda-decorators`库为Python开发者提供了一套高效、灵活的方式来构建和管理AWS ...
如果需要自定义TLS配置(如使用特定的证书或忽略某些验证),这个项目可能提供了这样的装饰器。 9. **Custom Headers** 添加自定义请求头可以满足特定需求,如身份验证或服务间通信。装饰器可能允许在每个请求上...
通过执行git clone https://github.com/Louis-Navarro/decorators.git或下载.zip文件来下载此存储库。 然后,在文件中打开命令提示符。 输入pip install -e . 在命令提示符下,然后按Enter键以安装软件包。 完毕!...
该项目是在ES Decorators之上易于使用的几乎没有依赖项注入的框架。 基本思想是有一种简单的方法来声明与ES装饰器的依赖关系。 如果您愿意,请花一些时间为该项目加注星标! “ npm star di-decorators”以及...
【标题】"springmvc+mybatis+maven+freemarker+urlwrite+decorators"是一个集成的Web开发框架,用于构建高效、模块化且易于维护的Java应用。这个框架结合了Spring MVC、MyBatis、Maven、FreeMarker、UrlRewrite和...
使用`comapsmarthome-lambda-decorators`库,开发者可以更加专注于业务逻辑的实现,而将诸如错误处理、性能优化等通用功能交给装饰器来完成。这不仅提高了代码的可读性和可维护性,也使得Lambda函数的编写变得更加...