`
cary
  • 浏览: 85791 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

RCP的一些细节部分

    博客分类:
  • J2EE
阅读更多
    ECLIPSE PLUG-IN RCP
此部分有的是自己的开发中的经验,有的是在论坛中看到别人的经验。我在这里把部分觉得好的部分收集,整理。希望对大家有帮助。
1:登陆对话框
public Object run(Object args) throws Exception {
Display display = PlatformUI.createDisplay();

try {
Platform.endSplash();
/**
* 登录
*/
if (!login())
return IPlatformRunnable.EXIT_OK;

logger.info("正在初始化客户端......");
//
InitUIProgress.addInfor("初始化主界面...");
int returnCode = PlatformUI.createAndRunWorkbench(display,
new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART) {
return IPlatformRunnable.EXIT_RESTART;
}

return IPlatformRunnable.EXIT_OK;
} finally {
display.dispose();
}
}



2:该写actionBar 的 ActionFactory.OPEN_PERSPECTIVE_DIALOG.create(window)

IActionBarConfigurer configurer = getActionBarConfigurer();
final IWorkbenchWindow window = configurer.getWindowConfigurer().getWindow();

MenuManager perspectiveMenu = new MenuManager("Open Perspective");
IContributionItem perspectiveList = ContributionItemFactory.PERSPECTIVES_SHORTLIST.create(window);
perspectiveMenu.add(perspectiveList);
windowMenu.add(perspectiveMenu);

3:让其viewpart显示流线型
在 WorkbenchWindowAdvisor 中的preWindowOpen()中设置
      //显示特效
    PlatformUI.getPreferenceStore().setDefault(
          IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, true);
//不显示传统的窗口
    PlatformUI.getPreferenceStore().setDefault(
          IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS,
          false);


4:可以使用action来做, 调用下面的方法:

IWorkbench.showPerspective(String perspectiveId, IWorkbenchWindow window)
or
IWorkbench.showPerspective(String perspectiveId, IWorkbenchWindow window, IAdaptable input)

IWorkbench和IWorkbenchWindow对象都可以在ViewPart中找到.

5:定义热键
getShell().getDisplay().addFilter(SWT.KeyDown, globEvent);

将plugin.xml里面hotkey
<extension
      point="org.eclipse.ui.bindings">
  <!--key
        commandId="org.eclipse.ui.file.exit"
        schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
        sequence="CTRL+X">
    </key -->
</extension>

6.如何或得RCP中的一些路径问题
从插件中获得绝对路径:
    AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());


通过文件得到Project:

IProject project = ((IFile)o).getProject();


通过文件得到全路径:

String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();



得到整个Workspace的根:

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();


从根来查找资源:

IResource resource = root.findMember(new Path(containerName));

从Bundle来查找资源:

Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, filePath);


得到Appliaction workspace:

Platform.asLocalURL(PRODUCT_BUNDLE.getEntry("")).getPath()).getAbsolutePath();

得到runtimeworkspace:
Platform.getInstanceLocation().getURL().getPath();

从编辑器来获得编辑文件:

IEditorPart editor = ((DefaultEditDomain)(parent.getViewer().getEditDomain())).getEditorPart();
IEditorInput input = editor.getEditorInput();
if(input instanceof IFileEditorInput){
IFile file = ((IFileEditorInput)input).getFile();
}

得到plugin.xml中的所以ACTION
IContributionItem[] items = getViewSite().getActionBars().getMenuManager().getItems();
for (int i = 0; i < items.length; i++) {
manager.add(items[i]);
}
分享到:
评论

相关推荐

    RCP 开发实例 源码

    **RCP(Rich Client Platform)开发实例源码详解** RCP,全称为Rich Client ...虽然没有涉及数据库连接,但这个实例仍然展示了RCP的强大之处,即它可以轻松地构建复杂的桌面应用程序,而无需关注底层数据存储的细节。

    rcp for java one

    2. **SWT和JFace**:RCP通常基于SWT(Standard Widget Toolkit)和JFace构建用户界面,这两者都是Eclipse项目的一部分,提供了与操作系统紧密集成的图形组件。 3. **Eclipse RCP开发**:分享使用Eclipse IDE进行RCP...

    一个RCP的简单例子

    **RCP(Rich Client Platform)**是Eclipse项目的一个核心组成部分,它提供了一个框架,用于构建功能丰富的桌面应用程序。RCP允许开发者利用Eclipse的强大功能,如插件系统、工作台管理、视图和编辑器,来创建自定义...

    Eclipse RCP详细教程

    这些概念是Eclipse RCP架构的基础,也是构建应用的关键组成部分。 - **插件**:在Eclipse RCP中,每个功能模块都被封装成一个独立的插件。这些插件包含了实现特定功能所需的所有代码和资源。 - **扩展**:插件可以...

    基于RCP的仿windows计算器

    Eclipse RCP提供了一些内置的测试框架,如JUnit,可以帮助开发者进行自动化测试。 总的来说,"基于RCP的仿Windows计算器"是一个涵盖了软件工程多个方面的实践案例,它涉及到UI设计、事件处理、数学运算、内存管理、...

    documents about Eclipse RCP

    它基于Java,由Eclipse基金会维护,是Eclipse IDE的核心组成部分。RCP允许开发者利用已有的插件系统构建可定制、模块化的应用,具有良好的用户界面和丰富的功能。 在"documents about Eclipse RCP"中,我们可以期待...

    Eclipse-RCP中文入门教程

    - **选择RCP类型**:在“Rich Client Application”部分选择“Yes”,以创建RCP应用。 - **选择模板**:选择“Hello RCP”模板并点击“Finish”。 完成这些步骤后,Eclipse会自动创建一个新的RCP应用项目。 ##### ...

    RCP开发实例

    尽管无法直接访问该链接获取更多细节,但我们可以根据 RCP 开发的一般概念来深入探讨。 RCP 的核心理念是组件化和插件化,这使得开发者能够将应用程序分解为独立的模块,每个模块都可以单独开发、测试和更新。在 ...

    rcp收集资料上传

    在IT行业中,RCP(Rich Client Platform)是Eclipse框架的一部分,它提供了一种构建桌面应用程序的强有力方式。"rcp收集资料上传"这个标题暗示了我们可能在讨论关于如何在RCP应用中实现数据的收集和上传功能。这篇...

    eclipse RCP入门示例介绍

    它可以被视为 Eclipse 的基础架构,提供了一系列的基础服务和工具,帮助开发者专注于应用程序的核心逻辑而非界面细节。 通过使用 RCP,开发者可以利用 Eclipse 已有的界面元素(如菜单、工具栏等)和功能组件(如...

    rcp与spring集成的一个简单例子

    在实际的示例中,可能还会涉及到更多细节,比如如何处理RCP的持久化数据与Spring的事务管理,或者如何在RCP的插件模型中注册Spring的bean等。`pro`这个文件名可能是项目文件夹或项目名称的简写,具体的内容没有给出...

    菜鸟EclipseRCP学习之路

    总的来说,"菜鸟Eclipse RCP学习之路"是一段充满挑战和收获的旅程,涵盖了从基础的Eclipse RCP概念到实际项目开发的诸多细节。通过这个过程,开发者不仅能学会如何构建桌面应用,还能理解软件架构设计和组件化开发的...

    RCP 资料

    **RCP(Rich Client Platform)**是Eclipse框架下的一个重要组成部分,全称为丰富客户端平台。它为开发桌面应用程序提供了一个可扩展的、模块化的、基于组件的架构。Eclipse RCP使得开发者能够利用Java和Eclipse插件...

    JAVA3D动画 Eclipse RCP

    Eclipse Rich Client Platform(RCP)是Eclipse开源项目的一个组成部分,它是一个用于构建桌面应用程序的框架。RCP提供了构建可扩展、模块化和可定制应用程序的基础,这些应用程序可以拥有与Eclipse IDE类似的外观和...

    基于Eclipse RCP的复合应用

    如果这个文件包含了关于如何设计和实现Eclipse RCP复合应用的细节,那么它可能会涵盖以下几个方面: 1. **项目结构**:介绍如何组织插件项目,以及如何定义依赖关系。 2. **视图(View)和编辑器(Editor)**:讲解...

    eclipse rcp入门

    - **RCP 架构**:RCP架构主要由以下几个部分组成: - **Workbench**:这是Eclipse UI的核心部分,包含所有可视组件(如菜单栏、工具栏、编辑器等)。 - **Perspectives**:定义了特定工作场景下的布局,例如Java...

    rcp的超市管理喜用

    “框架”标签进一步确认了该系统是基于某种特定的软件开发框架构建的,RCP提供了基础架构,使得开发者可以专注于业务逻辑和用户界面的设计,而不是底层的实现细节。 至于“CSN.SupermarketSystem”,这可能是超市...

    Eclipse RCP入门教程

    Eclipse RCP(Rich Client Platform)是Eclipse框架下的一个核心组成部分,专为构建功能丰富的桌面应用程序而设计。它提供了一种模型-视图-控制器(MVC)架构,允许开发者将关注点集中在应用程序的业务逻辑上,而...

    eclipse rcp excel表转mysql程序 源码

    在实际开发中,还需要考虑错误处理、用户界面交互、进度显示等细节。例如,用户界面可能包含一个文件选择器让用户选择Excel文件,一个预览区域展示Excel数据,以及一个进度条显示导入过程。此外,可能还需要提供配置...

Global site tag (gtag.js) - Google Analytics