- 浏览: 269012 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (152)
- lucene (5)
- java (12)
- eclipse (2)
- GEF (34)
- SWT/JFACE/PLUGIN (58)
- EMF (8)
- GMF (0)
- fckeditor (1)
- AIX (1)
- 云计算 (2)
- 使用 Grails 构建富 Internet 应用程序 (1)
- Grails (1)
- 动态调用动态语言 (2)
- W3C DOM (3)
- Google Maps (1)
- 优化 (1)
- WebSphere (1)
- NSIS (1)
- 计算机安全 (1)
- Mina (2)
- Draw2d (4)
- Compass (1)
- 原创诗集 (3)
- 人生 (1)
- 翻版 (1)
- OSGI (1)
- Ubuntu (2)
- Ireport (2)
最新评论
-
扬手就是一长鞭:
移动label也无法使得save可以执行。
让连线上的Label动起来吧 -
扬手就是一长鞭:
我的save是正常的,我添加删除node或者connectio ...
让连线上的Label动起来吧 -
扬手就是一长鞭:
我也是这扥写的,可是我双击label改变他的文字时,发现sav ...
让连线上的Label动起来吧 -
ae6623:
这段代码放到哪里??
控制拖拽范围 -
ae6623:
真牛!鼠标滚轮缩放GEF画布 ..
getGraphicalV ...
GEF实现用鼠标滑轮控制画布的放大与缩小
从插件/RCP中取得文件路径
1)从插件中获得绝对路径:
AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());
通过文件得到Project:
IProject project = ((IFile)o).getProject();
2)通过文件得到全路径:
①String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();
②IFolder srcFolder =
ResourcesPlugin.getPlugin().getWorkspace().getRoot().getProject(
"yourprojectname").getFolder("src");
IFile ifile = srcFolder.getFile("hibernate.cfg.xml");
String path= ifile.getLocation().makeAbsolute().toFile().getAbsolutePath();
其中path 得出的是真正的绝对路径.
3)得到整个Workspace的根:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
4)从根来查找资源:
IResource resource = root.findMember(new Path(containerName));
5)从Bundle来查找资源:
Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, filePath);
6)得到Appliaction workspace:
Platform.asLocalURL(
PRODUCT_BUNDLE.getEntry("")).getPath()).getAbsolutePath();
7)得到runtimeworkspace:
Platform.getInstanceLocation().getURL().getPath();
8)从编辑器来获得编辑文件:
IEditorPart editor = ((DefaultEditDomain)(parent.getViewer().getEditDomain())).getEditorPart();
IEditorInput input = editor.getEditorInput();
if(input instanceof IFileEditorInput){
IFile file = ((IFileEditorInput)input).getFile();
}
得到项目的绝对路径:
FileLocator.toFileURL(
Platform.getBundle(Application.PLUGIN_ID).getEntry("")).getPath()
10)如果你的RCP工程没有发布,得到的是eclipse的路径。如果你的RCP工程已经发布(假如在D:\RCP\下面),得到的路径就是D:/RCP/。
Location installLoc = LocationManager.getInstallLocation();
String path = null;
String installPath = null;
if (installLoc != null)
{
URL installURL = installLoc.getURL();
// assume install URL is file: based
path = installURL.getPath();
}
installPath = path.substring(1, path.length());
11)显示相对路径的image的方法。如下:
①ImageDescriptor imageDes =
AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, "/images/schemabase.jpg");
Image image = imageDes.createImage();
②Put a class in image directory.
For instance:
../../resource/icon1.bmp
../../resource/Resource.class
InputStream istream = Resources.class.getResourceAsStream("icon1.bmp");
Image icon_image = new Image(Display.getCurrent(), istream);
12)获取plugin根目录路径的方法
public static String getRoot(String pluginID){
String path=null;
try {
path = FileLocator.toFileURL(
Platform.getBundle(pluginID).getEntry("")).getPath();
path = path.substring(path.indexOf("/") + 1, path.length());
} catch (Exception e) {
e.printStackTrace();
}
return path;
}
13)eclipse 3.1.1以后用:
URL bundleRootURL = YourPlugin.getDefault().getBundle()
.getEntry("/");
try {
URL pluginURL = Platform.resolve(bundleRootURL);
return pluginURL.getPath();
} catch (IOException e) {
}
其中URL pluginURL = Platform.resolve(bundleRootURL);
eclipse 3.2M6建议使用FileLocator#resolve(URL)替代 Platform.resolve
1)从插件中获得绝对路径:
AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());
通过文件得到Project:
IProject project = ((IFile)o).getProject();
2)通过文件得到全路径:
①String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();
②IFolder srcFolder =
ResourcesPlugin.getPlugin().getWorkspace().getRoot().getProject(
"yourprojectname").getFolder("src");
IFile ifile = srcFolder.getFile("hibernate.cfg.xml");
String path= ifile.getLocation().makeAbsolute().toFile().getAbsolutePath();
其中path 得出的是真正的绝对路径.
3)得到整个Workspace的根:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
4)从根来查找资源:
IResource resource = root.findMember(new Path(containerName));
5)从Bundle来查找资源:
Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, filePath);
6)得到Appliaction workspace:
Platform.asLocalURL(
PRODUCT_BUNDLE.getEntry("")).getPath()).getAbsolutePath();
7)得到runtimeworkspace:
Platform.getInstanceLocation().getURL().getPath();
8)从编辑器来获得编辑文件:
IEditorPart editor = ((DefaultEditDomain)(parent.getViewer().getEditDomain())).getEditorPart();
IEditorInput input = editor.getEditorInput();
if(input instanceof IFileEditorInput){
IFile file = ((IFileEditorInput)input).getFile();
}
得到项目的绝对路径:
FileLocator.toFileURL(
Platform.getBundle(Application.PLUGIN_ID).getEntry("")).getPath()
10)如果你的RCP工程没有发布,得到的是eclipse的路径。如果你的RCP工程已经发布(假如在D:\RCP\下面),得到的路径就是D:/RCP/。
Location installLoc = LocationManager.getInstallLocation();
String path = null;
String installPath = null;
if (installLoc != null)
{
URL installURL = installLoc.getURL();
// assume install URL is file: based
path = installURL.getPath();
}
installPath = path.substring(1, path.length());
11)显示相对路径的image的方法。如下:
①ImageDescriptor imageDes =
AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, "/images/schemabase.jpg");
Image image = imageDes.createImage();
②Put a class in image directory.
For instance:
../../resource/icon1.bmp
../../resource/Resource.class
InputStream istream = Resources.class.getResourceAsStream("icon1.bmp");
Image icon_image = new Image(Display.getCurrent(), istream);
12)获取plugin根目录路径的方法
public static String getRoot(String pluginID){
String path=null;
try {
path = FileLocator.toFileURL(
Platform.getBundle(pluginID).getEntry("")).getPath();
path = path.substring(path.indexOf("/") + 1, path.length());
} catch (Exception e) {
e.printStackTrace();
}
return path;
}
13)eclipse 3.1.1以后用:
URL bundleRootURL = YourPlugin.getDefault().getBundle()
.getEntry("/");
try {
URL pluginURL = Platform.resolve(bundleRootURL);
return pluginURL.getPath();
} catch (IOException e) {
}
其中URL pluginURL = Platform.resolve(bundleRootURL);
eclipse 3.2M6建议使用FileLocator#resolve(URL)替代 Platform.resolve
发表评论
-
选择workspace中的文件对话框
2011-04-09 17:57 1585ElementTreeSelectionDialog dial ... -
在插件中访问StatusLine
2011-01-17 11:26 1132WorkbenchWindow window = Platfr ... -
给RCP添加SVN功能
2011-01-03 17:26 1849三个步骤: 一、下载SVN插件到eclipse; 二、给RCP ... -
获得当前激活状态的Iproject
2010-11-30 12:48 1526/** * 获得当前工程 * @return ... -
让TableViewer支持Tab编辑
2010-10-16 08:57 1965高效的编辑无疑于tab操作,给TableViewer加tab操 ... -
实现Eclipse自身的log管理
2010-01-14 10:58 3327做插件开发的都知道当 ... -
自定义RCP外观
2010-01-13 21:52 4295如果说只需要改变RCP的皮肤可以参照IBM上的Eclipse程 ... -
SWT GC重绘心得
2010-01-13 01:10 5232如果有需求要将Composite的边框颜色改成红色,大家肯定就 ... -
在eclipse中获得当前所有打开的editor实例列表
2009-12-18 14:42 1576EditorPart[] parts = Platfor ... -
将应用默认使用XP风格
2009-12-09 16:54 1089从http://www.eclipse.org/swt/jav ... -
RCP中访问StatusLine详解
2009-11-26 15:40 2802首先给大家介绍各种情 ... -
扩展org.eclipse.ui.preferencePages的些许经验
2009-11-13 15:28 2131最近参考Eclipse插件开发 ... -
给视图添加快捷键
2009-10-11 02:46 1039上一篇博文中讲了用扩展的方式添加全局快捷键,现在本文用硬编码的 ... -
添加全局快捷键
2009-10-11 02:38 1448两种方法:一种扩展, ... -
让SWT中的text只能输入数字
2009-10-07 14:51 3173思路:给Text添加键盘输入事件,判断按下的键的ASCII码 ... -
通过ACTION的ID来获得ACTION
2009-09-28 11:43 2954现在又很多需求都需要动态去改变Action的enable/di ... -
动态关闭ViewPart
2009-09-24 18:36 1929IWorkbenchPage page = PlatformU ... -
设置TreeViewer的前景色和背景色
2009-09-23 11:54 1693让TreeViewerLabelProvider实现IColo ... -
给子控件和父控件添加相同的事件
2009-09-18 13:24 1298方法很多种,我这里介绍种最简单易懂的;触发事件得有listen ... -
SWT时间选择器
2009-09-04 16:50 3324package com.netunit.workbench.t ...
相关推荐
1. **相对路径**:使用相对路径而不是绝对路径来引用HTML文件。这需要确保HTML文件与RCP应用的主入口点在同一目录下。 2. **资源加载器**:通过Eclipse的`Platform.getBundle()`方法,获取到包含`map.html`的bundle...
在RCP中,VIEWER和EDITOR是两个核心组件,它们在构建用户界面时起着至关重要的作用。 VIEWER是RCP中的一个重要组成部分,它主要负责数据的展示和交互。VIEWER可以看作是一种特殊的控件,它可以显示不同类型的数据,...
总的来说,RCP和OSGI的结合提供了一种高效、灵活且易于维护的桌面应用开发方式,开发者可以充分利用它们的优势来构建复杂、功能丰富的应用程序。在实际项目中,理解并熟练运用RCP和OSGI技术,能大大提高开发效率和...
【标题】"RCP和CXF做的例子"指的是一个基于 Rich Client Platform (RCP) 和 Apache CXF 的应用程序示例。RCP 是 Eclipse 平台的一部分,它提供了一个框架,用于构建功能丰富的桌面应用程序。而 CXF 是一个开源服务...
RCP(Representative Concentration Pathways,代表性浓度路径)是气候变化研究中的一个重要概念,用于描述未来不同温室气体排放情景对全球气候变化的影响。RCP2.6代表较低的温室气体排放情景,而RCP4.5则代表中等...
本文将详细介绍RCP在线升级的过程和相关技术。 首先,理解RCP升级的基础架构是至关重要的。RCP应用的更新通常基于p2(Provisioning Platform 2),这是Eclipse中用于软件管理、部署和更新的组件。p2提供了一种元...
- PDE(Plug-in Development Environment)是Eclipse中专门用于RCP和OSGi开发的工具集。 通过学习这个实例,开发者可以了解RCP的基本架构和组件,理解如何创建和组织UI元素,以及如何处理用户交互。虽然没有涉及...
通过RCP和GEF结合,开发者可以快速创建出功能强大的图形化应用程序,例如数据库建模工具、UML建模工具或者是软件工程中的配置管理工具。理解并掌握这两个框架的工作原理和组件,对于开发高质量的桌面应用至关重要。...
RCP提供了一个基础结构,包括窗口系统、工作台管理器、视图和编辑器等核心组件,使得开发者可以专注于业务逻辑和用户界面的设计,而不是底层架构。 【JavaOne大会】: JavaOne是Java开发者的重要会议,始于1997年,...
总的来说,"Eclipse RCP应用系统开发方法与实战"这套资源为开发者提供了一条深入学习和实践Eclipse RCP的路径。通过逐步学习并实践这些章节中的源代码,开发者能够全面掌握RCP开发技术,从而在实际项目中发挥出...
这个"rcp 学习资料下载,一个简单的rcp例子"是一个针对初学者的学习资源,旨在帮助他们快速理解和掌握RCP的开发技术。 在Eclipse RCP中,开发者可以利用工作台(Workbench)、视图(View)、编辑器(Editor)、透视...
### Eclipse RCP MenubarPath 和 ToolbarPath 参考值详解 #### 一、MenubarPath 概述 在 Eclipse RCP(Rich Client Platform)应用程序中,`menubarPath` 是用来定义菜单结构的一种方式。通过指定不同的路径,可以...
RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面设计。 Eclipse原本是一个Java IDE,由IBM捐献给开源社区后,其可扩展性和丰富的插件生态系统吸引了众多开发者。...
RCP 应用可以引入外部 JAR 包来扩展其功能,只需在项目的类路径中包含这些 JAR,并在需要的地方导入相应的类。 **8. 添加标志和帮助** 标志(icons)为应用程序提供视觉标识,帮助(Help)系统为用户提供指南和文档...
索尼公司生产的RCP-1500系列遥控面板(包括RCP-1500、RCP-1501和RCP-1530型号)是用于配置和控制演播室级及广播级摄像机的专业设备。这些设备提供了高级的操作便利性和功能的多样性,使得用户能够高效地进行摄影机的...
每个插件都有自己的类路径、资源和扩展点,可以独立于其他插件进行开发。插件之间通过API相互交互,实现功能集成。例如,一个插件可能负责用户界面展示,另一个插件则处理数据持久化。 3. **RCP的架构** RCP应用...
此外,RCP还提供了各种预定义的命令和动作工厂,如“Save”、“Copy”和“Cut”,这使得常见的操作可以快速实现,无需从头编写代码。 ### 结论 RCP菜单与工具栏是RCP应用的重要组成部分,它们不仅提供了功能访问的...
1. **引入依赖**:首先,你需要将JFreeChart的jar包添加到你的RCP项目类路径中。在描述中提到,这些依赖已经包含在提供的压缩包"RCPJFreeChart"里。如果没有,你可以在JFreeChart官方网站下载最新版本,或者通过...