`
lizhensan
  • 浏览: 378362 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

rcp ui 操作

阅读更多
package sunline.ide2.transaction.utils;

import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertySheet;

import sunline.ide2.transaction.gef.uis.editor.TransViewEditor;

/**
* 对界面操作的常用方法
* @author Administrator
*
*/
public class UIUtil {

public static void closeEditor(String id)
{
//System.out.println("closeing... :"+id);
IEditorReference[]  editorRefs=getActivePage().getEditorReferences();
for(IEditorReference  editorRef:editorRefs)
{
//System.out.println(editorRef.getId());
if(id.equals(editorRef.getId()))
{
//System.out.println("close :"+id);
getActivePage().closeEditor(editorRef.getEditor(true), true);
break;
}
}
}
public static IWorkbenchPage  getActivePage()
{
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
return page;
}
public static  PropertySheet getPropertySheet()
{
IWorkbenchPage page = getActivePage();
IViewPart ivp = page.findView("org.eclipse.ui.views.PropertySheet");
if (ivp == null) {
try {
ivp = page.showView("org.eclipse.ui.views.PropertySheet");
} catch (PartInitException e1) {
e1.printStackTrace();
}
}
PropertySheet property = (PropertySheet) ivp;
return property;
}

public static  IEditorPart getActiveEditor()
{
IWorkbenchPage page = getActivePage();
return page.getActiveEditor();
}
public static  IEditorPart getEditor(String id)
{
IWorkbenchPage page = getActivePage();
IEditorReference[]  editorRefs=getActivePage().getEditorReferences();
for(IEditorReference  editorRef:editorRefs)
{
//System.out.println(editorRef.getId());
if(id.equals(editorRef.getId()))
{

return editorRef.getEditor(true);
}
}

return null;
}
public static  IWorkbenchPart getActivePart()
{
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
return page.getActivePart();
}

//现实一般模型的属性
public static void showPropertyInPropertySheet(IAdaptable model)
{
PropertySheet property = getPropertySheet();
IPropertySource  source= (IPropertySource) model.getAdapter(IPropertySource.class);
// IPropertySourceProvider  sourceProvider= (IPropertySource) model.getAdapter(IPropertySourceProvider.class);
if(source!=null)
{

//将选择的对象 加载到 属性面板中,有属性源 动态的创建具体的属性内容
StructuredSelection sel=new StructuredSelection(model);
property.selectionChanged(getActivePart(), sel);
}
else
{
LogUtil.log("error:showPropertyInPropertySheet   model   格式不正确。");
}
}

}
分享到:
评论

相关推荐

    RCP基本框架分析 Workbench是工作台,通俗地说就是代表用户界面的UI元素

    Workbench是RCP应用的中心,它是一个工作台,包含了UI元素如窗口、图标、按钮和控件,用户的所有操作都在这个工作台上进行。Workbench对象可以通过`PlatformUI.getWorkbench()`获取。工作台提供了`restart()`和`...

    svn-rcp开发实例

    4. **UI集成**:将svn操作与RCP的用户界面(UI)相结合,例如,通过菜单项或快捷键触发操作。这需要在RCP的UI部件(如Action、Menu或ToolBar)上创建事件监听器,当用户触发相应操作时,调用之前实现的svn服务提供者...

    RCP 开发实例 源码

    这样的例子通常会聚焦于UI设计和事件处理,展示如何利用RCP框架创建用户友好的图形界面。以下是对这个实例源码的详细解析: 1. **项目结构**: - `RCPProject`:这是整个项目的根目录,包含了所有源代码、资源文件...

    eclipse-rcp开发培训PPT

    3. **工作台(Workbench)**:Eclipse RCP的工作台是整个应用的中心,它管理窗口、视图、编辑器和其他UI组件,为用户提供统一的操作界面。 4. **模型(Model)**:Eclipse RCP采用MVC(Model-View-Controller)设计...

    rcp for java one

    4. **RCP与JavaFX的结合**:随着JavaFX成为Java客户端UI的新选择,如何将JavaFX与RCP结合,提升UI表现和交互性。 5. **性能优化**:针对RCP应用的性能调优策略,包括内存管理和并发处理。 6. **案例研究**:展示成功...

    Eclipse的RCP开发的入门教程

    通过这个系列教程的学习,开发者不仅可以掌握Eclipse RCP的基础知识,还能了解如何利用RCP构建功能丰富的桌面应用程序,包括UI设计、交互逻辑、以及与操作系统深度集成的能力。对于想要从事桌面应用开发的程序员来说...

    Eclipse Rcp

    RCP应用通常拥有和Eclipse类似的外观与操作体验,例如动态的菜单栏(Menubar)、工具栏(Toolbar)、编辑器(Editor)、视图(View)、工作台窗口(WorkbenchWindow)以及工作区(WorkSpace)等。这些组件共同构成了...

    Eclipse RCP培训.zip

    5. **命令(Command)与手势(Handler)**:命令是Eclipse RCP中的动作抽象,手势则将命令与用户操作(如鼠标点击、键盘快捷键)关联起来。这种设计使得UI行为的实现与表现分离,易于维护。 6. **服务(Service)**...

    Eclipse RCP详细教程

    此外,Eclipse RCP还支持多种UI组件和技术,如Swing和SWT,这使得开发者可以根据具体需求选择最适合的技术栈。 ##### 1.2. Eclipse RCP 建设风格——插件、扩展和扩展点 Eclipse RCP的核心是插件、扩展和扩展点的...

    Eclipse rcp深入浅出中英文版及配套代码

    4. **SWT和JFace**:SWT(Standard Widget Toolkit)是Eclipse RCP的UI库,提供了与操作系统紧密集成的图形组件。JFace是在SWT之上的一层抽象,简化了UI开发。 5. **透视图(Perspective)**:透视图是工作台中组织...

    rcp的文本编辑器的实例

    RCP(Rich Client Platform)是Eclipse框架下的一个核心组件,它提供了一种构建桌面应用程序的强大工具。RCP允许开发者创建丰富的、可扩展的应用程序,而无需从零开始构建用户界面。在这个实例中,我们将深入探讨...

    RCP与GEF课件,介绍RCP和GEF各组成部分和工作原理

    4. **Command**:GEF也使用命令框架,允许撤销/重做操作,并将UI操作与模型状态的更改分离。 5. **Zones and Connections**:区域和连接用于管理图形元素之间的布局和连接线。 通过RCP和GEF结合,开发者可以快速...

    RCP弹出日期控件

    在RCP系统中,弹出式日期控件通常是为了简化用户在日期输入时的操作。这种控件不仅允许用户通过点击按钮弹出一个日历视图,还可以在该视图中轻松切换至上一月、下一月,向前或向后滚动一年。这种设计考虑到了用户的...

    eclipse rcp 例子 源码

    `org.eclipse.jface.source_3.6.0.I20100601-0800.jar.zip` 文件则涉及到了JFace,它是Eclipse RCP中的一个高级UI库,基于SWT构建,提供了一些抽象和简化UI开发的类和视图。JFace的目标是减少编写GUI代码的复杂性,...

    eclipse RCP mp3工程

    【标题】"eclipse RCP mp3工程"指的是一...综上所述,"eclipse RCP mp3工程"不仅是一个实用的音频处理应用,还是一个深入学习Eclipse RCP开发的实战案例,涵盖了从基础的UI设计到复杂的音频处理和插件扩展等多个领域。

    EclipseRcp 例子程序

    8. **模型与数据绑定**:Eclipse RCP提供了数据绑定机制,使得UI控件可以自动与模型对象同步。例子中可能会包含如何使用.databinding包来实现数据绑定的实例。 9. **国际化(i18n)**:Eclipse RCP支持多语言环境,...

    EclipseSWT_JFace_RCP插件开发

    EclipseSWT(Standard Widget Toolkit)提供了与操作系统原生界面元素紧密集成的GUI组件,而JFace则是在SWT之上构建的一层抽象,简化了UI开发,提供了一些高级控件和数据绑定功能。Rich Client Platform(RCP)是...

    RCP实例

    RCP使用命令模型来处理用户的操作,命令可以绑定到菜单项、按钮或者其他UI元素上。手势则定义了当命令被触发时应执行的操作。 9. **首选项(Preferences)**: 用户可以通过首选项对话框调整应用程序的设置。RCP...

    Eclipse RCP开发教程

    视图和编辑器是 RCP 应用中展示数据和执行操作的主要组件。视图通常用于显示辅助信息,而编辑器用于处理和编辑主要内容。开发者可以自定义视图和编辑器,实现特定的用户界面和功能。 **6. 对话框(Dialogs)** ...

Global site tag (gtag.js) - Google Analytics