Palette面板

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。

 

你可能感兴趣的:(Palette面板)