Eclipse RCP资源操作的一些Tips:
取得常见图标图片
Image leftImage = PlatformUI.getWorkbench().getSharedImages().getImage(
ISharedImages.IMG_TOOL_BACK);
另外一种巨型复杂的方法:
/**
* Retuns an URL based on a plugin and file path
*
* @param plugin
* Object The plugin containing the file path
* @param name
* String The file path
* @return URL The URL representing the file at the specified path
* @throws Exception
*/
private static URL getPluginImageURL(Object plugin, String name)
throws Exception {
// try to work with 'plugin' as with OSGI BundleContext
try {
Class<?> bundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
Class<?> bundleContextClass = Class
.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
if (bundleContextClass.isAssignableFrom(plugin.getClass())) {
Method getBundleMethod = bundleContextClass.getMethod(
"getBundle", new Class[0]); //$NON-NLS-1$
Object bundle = getBundleMethod.invoke(plugin, new Object[0]);
//
Class<?> ipathClass = Class
.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
Class<?> pathClass = Class
.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
Constructor<?> pathConstructor = pathClass
.getConstructor(new Class[] { String.class });
Object path = pathConstructor
.newInstance(new Object[] { name });
//
Class<?> platformClass = Class
.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
Method findMethod = platformClass.getMethod(
"find", new Class[] { bundleClass, ipathClass }); //$NON-NLS-1$
return (URL) findMethod.invoke(null, new Object[] { bundle,
path });
}
} catch (Throwable e) {
// Ignore any exceptions
}
// else work with 'plugin' as with usual Eclipse plugin
{
Class<?> pluginClass = Class
.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
if (pluginClass.isAssignableFrom(plugin.getClass())) {
//
Class<?> ipathClass = Class
.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
Class<?> pathClass = Class
.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
Constructor<?> pathConstructor = pathClass
.getConstructor(new Class[] { String.class });
Object path = pathConstructor
.newInstance(new Object[] { name });
//
Method findMethod = pluginClass.getMethod(
"find", new Class[] { ipathClass }); //$NON-NLS-1$
return (URL) findMethod.invoke(plugin, new Object[] { path });
}
}
return null;
}
文件操作:
BriterPlugin.getDefault().getBundle().getResource(SELECT_SYMBOLS_FILE_PATH).openStream())
上面的代码可以取得URL并读取文件,但是不方便写。写文件要用到另外一个类
URL url = BriterPlugin.getDefault().getBundle().getResource(EaToolParse.SELECT_SYMBOLS_FILE_PATH);
URL path = FileLocator.resolve(url);
//得到文件路径了,可以想干嘛就干嘛了
writer = new PrintWriter(new FileWriter(new File(path.getFile())));
但是还是有隐患,有可能读取出来的是jar里面得文件,写就还是不好用了。
另外一种方法:
URL url = FileLocator.find(BriterPlugin.getDefault().getBundle(),
new Path(EaToolParse.SELECT_SYMBOLS_FILE_PATH), null);
URL path = FileLocator.resolve(url);
writer = new PrintWriter(new FileWriter(new File(path.getFile())));
但是对plugin得操作还是需要注意,就是plugin得导出方式,如果导出时以一个jar包形式导出的,以上的操作可能都会不好使了。
分享到:
相关推荐
5. **等待完成**:在设置好JRE后,Eclipse会处理打包过程。这可能需要一些时间,因为它需要构建一个包含所有必要组件的自包含可执行文件。 6. **去除闪屏**:默认情况下,Eclipse RCP应用程序可能会有启动时的闪屏...
Eclipse RCP,全称Eclipse Rich Client Platform,是一个基于Java的框架,用于构建桌面应用程序。这个框架由Eclipse基金会维护,是Eclipse IDE的一部分,允许开发者创建功能丰富的、可扩展的应用程序,拥有类似IDE的...
在 Eclipse RCP 中,有一些重要的术语需要了解: 1. Application:应用程序的入口,相当于 Java 系统中的 main() 方法。 2. Runtime:Eclipse RCP 的运行时环境,提供了应用程序的执行环境。 3. Workbench:Eclipse...
6. **国际化和本地化**:Eclipse RCP支持多语言环境,开发者需要了解如何实现应用程序的国际化和本地化,包括资源文件的处理和语言切换机制。 7. **源代码实践**:压缩包中的源代码提供了实际的开发示例,通过分析...
7. **学习资源**:这个项目对于想要学习Eclipse RCP开发的初学者来说是一个宝贵的实例,他们可以从源代码中学习如何结合Eclipse RCP和MP3处理技术。 综上所述,"eclipse RCP mp3工程"不仅是一个实用的音频处理应用...
### Eclipse RCP 入门详解 #### 一、Eclipse RCP 概述 **Eclipse RCP**(Rich Client Platform)是一种构建丰富客户端应用程序的框架,它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序。通过RCP,...
Eclipse Rich Client Platform(RCP)是Eclipse框架下的一个核心组成部分,用于构建桌面应用..."Eclipse RCP培训.zip"中的内容可能涵盖了这些方面,包括理论讲解、代码示例、练习项目等,是学习Eclipse RCP的好资源。
Eclipse RCP是一种基于Eclipse平台的富客户端平台技术,它允许开发者创建独立于Eclipse环境的Java桌面应用程序。RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面...
Eclipse RCP(Rich Client Platform)是一个开源框架,由Eclipse基金会开发,用于构建桌面应用程序。这个框架基于Java,提供了一套完整的工具集,包括插件系统、工作台管理、视图、编辑器、透视图等,使得开发者可以...
编辑器是在 Eclipse RCP 中处理文件的主要方式。编辑器提供了一种可视化的方式来显示和编辑文件内容。除了基本文本编辑器之外,还可以创建特定类型的编辑器,如图像编辑器、模型编辑器等。 ##### Help 帮助系统是 ...
eclipse RCP Plug-in开发自学教程 eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法...
通过这些资源,开发者不仅可以了解Eclipse RCP的基本原理,还能获得实践经验,掌握如何创建和维护功能丰富的桌面应用。对于希望深入Eclipse RCP开发的人员来说,这是一份非常有价值的学习资料。
《ECLIPSE+RCP应用系统开发方法与实战》这本书是高岗先生关于使用Eclipse RCP(Rich Client Platform)进行应用系统开发的一本实战指南。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,使得开发者可以构建...
Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序,它基于Java语言并利用了Eclipse IDE的核心技术。Eclipse RCP允许开发者创建功能丰富的、可扩展的应用程序,这些应用程序拥有与Eclipse...
《Eclipse RCP与Spring OSGi:技术详解与最佳实践》由资源的Eclipse专家亲自执笔,并得到了Eclipse官方技术社区的强烈推荐,权威性毋庸置疑!内容全面,系统讲解了利用Eclipse RCP和Spring OSGi开发大规模Java应用的...
Common Navigator是Eclipse RCP中的一个重要组件,它提供了一种通用的资源浏览和管理界面。在本"Common Navigator demo"中,我们将深入探讨如何利用Eclipse RCP创建一个基于Common Navigator的简单应用,并了解如何...
Actions是Eclipse RCP中用于处理用户交互的核心组件。它们可以绑定到菜单项、工具栏按钮或其他UI元素上。通过Actions,可以方便地响应用户的操作,执行相应的任务。 ##### 4.2. 通过编码添加 Actions可以通过编码...
这个压缩包中的“ECLIPSE RCP项目源程序”包含了使用Eclipse RCP开发的一个项目的完整源代码,并且有中文注释,这对于初学者或有经验的开发者来说都是一个宝贵的资源。 Eclipse RCP的核心概念主要包括以下几个方面...
Eclipse RCP负责处理菜单、工具栏、视图等界面元素的实现,让开发者可以更加专注于核心业务逻辑的开发。 #### 2. 为什么使用Eclipse RCP? - **广泛的应用支持**:许多知名应用都采用了Eclipse RCP作为其基础框架...
以上就是Eclipse RCP中实现“Check Table”功能的一些核心概念和技术,实际开发中,开发者还需要考虑代码的可维护性、用户体验以及与其他组件的集成等因素。通过深入理解这些知识,可以更好地利用Eclipse RCP构建...