`

Palette面板

    博客分类:
  • GEF
 
阅读更多

Palette(面板):作为图形化编辑器的一部分而普片存在。一般它作为创建节点的源,包括线,类似一个编辑器的tool。

 

PaletteEntry:整个Palette框架的基类,它里面存在着大量的对面板上节点描述的最基本信息。这也表明,所有的面板元素的基本信息都可以定制,包括group之类的组容器。在一个PaletteEntry对象里,你只能找到它的父,而不可以找到子,因为PaletteEntry本身没有容器的特性。

 

PaletteContainer:所有面板上容器组件的基类。在一个PaletteEntry对象里,你只能找到它的父,而不可以找到子,因为PaletteEntry本身没有容器的特性。而PaletteContainer里面所有的方法都是操作它的子节点的,包括移动子节点的位置,只有上下。

 

PaletteRoot:整个面板的根节点。

 

PaletteDrawer :一个容器,类似抽屉,也有人说它像手风琴。一个PaletteDrawer 对象只是手风琴的一个页,一般PaletteDrawer 对象都是用于分组。另外,可以设置它的初始状态,是打开还是关闭。

 

PaletteGroup:PaletteGroup跟PaletteDrawer类似,唯一的区别就是PaletteDrawer是可以缩小关闭的能力,而PaletteGroup没有。

 

PaletteStack:这个暂时还不会用。

 

PaletteToolbar:这个也没用过,不知道涨啥样,等有机会试试看看样子再补充。

 

 

非容器组件:

PaletteSeparator:分隔符,类似菜单上的那个分隔符。

 

PaletteTemplateEntry:这个也没有用过,此类里面没有什么东西,就一个Object template对象,具体干嘛用的,以后再补充。

 

 

ToolEntry:一个父类,所有我们在面板上看到的那些常用的组件,都是它的子类。

 

 

ToolEntry的子类:

CreationToolEntry:

 

 

 

 

 

改变Palette的初始状态:

org.dengues.designer.ui.process.editors.GEFComponentsEditor。在一个Editor里面重写getPaletteRoot()方法。可以返回一个PaletteRoot。但是要配置Palette就要覆盖 getPalettePreferences();返回一个FlyoutPreferences主要需要三个参数:
public int getDockLocation() {
return getPreferenceStore().getInt(IDenguesPrefsConstant.PALETTE_DOCK_LOCATION);
}

public int getPaletteState() {
return getPreferenceStore().getInt(IDenguesPrefsConstant.PALETTE_STATE);
}

public int getPaletteWidth() {
return getPreferenceStore().getInt(IDenguesPrefsConstant.PALETTE_SIZE);
}
这三个参数的值范围:
getDockLocation()的参数有:
1.PositionConstants.EAST表示Palette在右边或说东边,这个是默认值。
2.PositionConstants.WEST表示Palette在左边或说西边。
getPaletteState()的参数有:
1.FlyoutPaletteComposite.STATE_COLLAPSED表示Palette会用完后自动收缩,还可以放大缩小。为默认值。
2.FlyoutPaletteComposite.STATE_PINNED_OPEN表示Palette会无法收缩和放大缩小。
getPaletteWidth()的参数范围是:FlyoutPaletteComposite.MAX_PALETTE_SIZE=500;
FlyoutPaletteComposite.MIN_PALETTE_SIZE=20;
FlyoutPaletteComposite.DEFAULT_PALETTE_SIZE=125;

 

 

改变Palette的初始布局:

 

获取到PaletteViewer的对象,然后获取PaletteViewerPreferences对象,为其配置项进行设置值。

 

//设置面板的初始布局方式
        paletteViewerProvider.getViewer().getPaletteViewerPreferences().setLayoutSetting(
                PaletteViewerPreferences.LAYOUT_DETAILS);

 

这里有一点需要注意的,setLayoutSetting改变了初始状态后,会刷新面板里面的节点。如果你改变布局样式的时候,面板的root节点还没有初始化,这个时候刷新就会报null指针异常。

所以解决的方式有两种:一种是重写属性改变的监听事件,另一种是在root初始化后再改变布局的样式,我选择了后者。

想办法在编辑器的configureGraphicalViewer方法里面,获取到PaletteViewer。

 

分享到:
评论

相关推荐

    PowerDesigner使用手册

    4. **使用palette面板**:在界面右上角,palette面板提供了图形元素,如表和关系的图标。 5. **添加表**:从palette面板拖放"Table"图标到工作区,双击表进行属性设置。 6. **设置表属性**: - Name属性:表在...

    实战 BIRT 系列-Deng Peng Zhou (zhoudp@cn.ibm.com), 软件工程师, IBM

    Palette面板则提供了各种报表展示元素,如Label控件,用于构建报表界面。 系列文章后续部分将涉及JavaScript和Java编程在BIRT中的应用,设置报表参数,实现报表国际化,利用BIRT API生成HTML和PDF报表,以及将BIRT...

    利用Myeclipse快速开发struts应用程序

    - 使用Palette面板上的创建JSP文件图标,输入文件名为`userLoginSuccess.jsp`。 - 选择模板为“2] Standard JSP using Struts 1.1”。 - 在JSP文件中添加以下内容: ```jsp <title>User Login ...

    MyEclipse报表开发

    在“布局”编辑模式下,右键点击并选择“插入”->“表”,或从Palette面板拖拽表格到模板上,指定数据集,然后确定。拖拽数据集中所需的列到明细数据行中,以决定报表的显示顺序。 为了查看报表效果,可以切换到...

    APROL REPORT

    - **添加静态文本**:从右侧的 Palette 面板中选择 Static Text 组件,并将其拖放到 Detail Band 中,输入所需的文本。完成后,点击 Preview 查看效果。 ##### 2.4 报表模板结构 - **Title (标题)**:仅在报表的第...

    eclipse Visual Editor 插件的安装方法

    4. **使用Palette面板**:把鼠标移到Eclipse代码编辑窗口的右边可以看到隐藏的Palette控件面板。从Palette面板中选择组件进行图形界面程序的开发。 #### 五、注意事项 - **插件解压缩的目录不能为中文名目录**:这...

    3_ZSYCLogic2使用说明书1

    - 开启Palette面板,并加载ZSYCLogic2模块。 - 将`Logic_Log`目录拖放到`Station/config/Apps`下,用于存储逻辑设备的三级记录。 - 使用`HelpTools`目录下的`LogicMessageReciver`块自定义事件记录块(可选)。 - ...

    Birt 4.2 学习手册

    - **设计报表布局**:在Palette面板选择Table元素,拖放到layout区域,设置列数和细节数,选择数据源,并将所需字段拖放到Table中。 - **数据排序**:在layout编辑面板中选择table,通过Property Editor进行排序...

    fastreport打印中文二维码的例子.rar

    1. **添加FastReport组件**:在Delphi的Form设计界面中,从Component Palette面板拖拽一个TfrxReport组件到表单上,这将成为报表的基础。 2. **添加QRCode Band**:在FastReport的Band列表中选择“QRCode”类型,将...

    PowerDesigner常用快捷键

    - **打开Palette面板**:可以通过菜单路径 `Tools -> Customize Toolbars -> Toolbars` 来打开Palette面板,该面板提供了丰富的图形元素供用户选择使用,对于绘制图形非常有帮助。 通过上述对PowerDesigner常用...

    MyEclipse 开发 Struts 快速上手 图解

    在 Palette 面板中,我们可以创建 JSP 文件、Action 和 ActionForm。首先,创建 `userLoginSuccess.jsp` 页面,选择 "Standard JSP using Struts 1.1" 模板,然后在 JSP 页面中添加显示用户名的代码。 接着,创建 `...

    Delphi7下使用Indy写的简单邮件收发示例

    为了实现邮件收发,你需要在Delphi7中创建一个新的VCL Forms应用程序,然后从Component Palette面板中拖放所需的Indy组件到Form上。配置好组件属性后,编写事件处理代码以完成邮件的发送和接收流程。 在提供的"邮件...

    Android Studio 学习笔记-新手入门-(1)第一个案例

    3. **添加组件**:在Design视图中,可以通过拖放的方式从Palette面板将一个Button添加到布局中。调整其位置和大小,并修改Button的文字,比如设置为"点击我"。 4. **编写代码逻辑**:切换到Java源代码文件(app/src...

    java可视化编程

    2. **界面元素布局**:使用Palette面板进行界面设计。通过拖放操作添加Button等控件,并通过Properties面板进行属性配置。例如,将一个按钮的文本设为“ClickMe”。 3. **事件处理**:为界面元素添加事件监听器,当...

    delphi 两种气泡实现方式

    1. 首先,从Component Palette面板中找到`THintComponent`,将其拖放到你的表单(Form)上。这个组件默认是隐藏的,但它是负责处理气泡提示的核心部分。 2. 接下来,选择表单上的控件(如TButton或TLabel),然后在...

    Virtual-TreeView-6.7.0.zip

    - 在Delphi IDE中将组件从Palette面板拖放到表单上。 - 配置组件属性,如父节点、子节点、节点文本、图像索引等。 - 实现数据绑定,将业务逻辑中的数据结构映射到树视图的节点。 - 处理用户交互事件,如节点点击...

    很不错的Delphi窗体-隐藏显示工具栏..rar

    1. **设计阶段**:在Delphi的Form Designer中,从Component Palette面板拖拽一个TToolBar组件到窗体上。然后,可以添加TToolButton组件到TToolBar中,每个ToolButton代表工具栏上的一个按钮。 2. **运行时控制**:...

    delphi读取磅秤数据

    1. **设置TSerialPort组件**:在Delphi的Form设计界面中,从Component Palette面板拖拽一个TSerialPort组件到Form上。接着,我们需要配置该组件的属性,如ComPort(选择要连接的COM口)、BaudRate(波特率,如9600、...

    delphi 计时器

    1. 在Delphi集成开发环境中,从Component Palette面板的Standard选项卡中找到TTimer组件,并将其拖放到Form上。 2. 设置TTimer的Interval属性,比如设置为1000,意味着每秒钟触发一次OnTimer事件。 3. 双击TTimer...

Global site tag (gtag.js) - Google Analytics