『GEF』如何在Palette中添加自定义菜单。
2009-06-23 14:43
447 查看
在GEF3.0中,支持了GraphicalEditorWithFlyoutPalette面板,它可以折叠,而且有右键菜单,通过重载,我们可以在它的右键菜单上增加我们自己的功能。
首先,需要重载Editor的createPaletteViewerProvider方法,返回一个我们自己的
PaletteViewerProvider对象,如下:
@Override
protected PaletteViewerProvider createPaletteViewerProvider() {
return new MenuPaletteProvider(getEditDomain());
}
然后,新建一个MenuPaletteProvider,继承自PaletteViewerProvider,这样我们可以在
configurePaletteViewer方法中添加我们自己的菜单就可以了,完整代码如下:
import org.eclipse.gef.EditDomain;
import org.eclipse.gef.ui.palette.PaletteViewer;
import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.palette.PaletteContextMenuProvider;
import org.eclipse.jface.action.IMenuManager;
import umldesigner.actions.AddNewPaletteObjectAction;
public class MenuPaletteProvider extends PaletteViewerProvider{
private BasicGraphicalEditor edit;
public MenuPaletteProvider(BasicGraphicalEditor editor, EditDomain graphicalViewerDomain)
{
super(graphicalViewerDomain);
this.edit = editor;
}
@Override
protected void configurePaletteViewer(PaletteViewer viewer) {
// TODO Auto-generated method stub
viewer.setContextMenu(new MenuPaletteContextMenuProvider(edit, viewer));
}
}
class MenuPaletteContextMenuProvider extends PaletteContextMenuProvider
{
private AddNewPaletteObjectAction anpoa;
private BasicGraphicalEditor edit;
public MenuPaletteContextMenuProvider(BasicGraphicalEditor editor, PaletteViewer palette) {
super(palette);
this.edit = editor;
// TODO Auto-generated constructor stub
}
@Override
public void buildContextMenu(IMenuManager menu) {
// TODO Auto-generated method stub
super.buildContextMenu(menu);
anpoa = new AddNewPaletteObjectAction(edit);
//menu.add(anpoa);
}
}
首先,需要重载Editor的createPaletteViewerProvider方法,返回一个我们自己的
PaletteViewerProvider对象,如下:
@Override
protected PaletteViewerProvider createPaletteViewerProvider() {
return new MenuPaletteProvider(getEditDomain());
}
然后,新建一个MenuPaletteProvider,继承自PaletteViewerProvider,这样我们可以在
configurePaletteViewer方法中添加我们自己的菜单就可以了,完整代码如下:
import org.eclipse.gef.EditDomain;
import org.eclipse.gef.ui.palette.PaletteViewer;
import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.palette.PaletteContextMenuProvider;
import org.eclipse.jface.action.IMenuManager;
import umldesigner.actions.AddNewPaletteObjectAction;
public class MenuPaletteProvider extends PaletteViewerProvider{
private BasicGraphicalEditor edit;
public MenuPaletteProvider(BasicGraphicalEditor editor, EditDomain graphicalViewerDomain)
{
super(graphicalViewerDomain);
this.edit = editor;
}
@Override
protected void configurePaletteViewer(PaletteViewer viewer) {
// TODO Auto-generated method stub
viewer.setContextMenu(new MenuPaletteContextMenuProvider(edit, viewer));
}
}
class MenuPaletteContextMenuProvider extends PaletteContextMenuProvider
{
private AddNewPaletteObjectAction anpoa;
private BasicGraphicalEditor edit;
public MenuPaletteContextMenuProvider(BasicGraphicalEditor editor, PaletteViewer palette) {
super(palette);
this.edit = editor;
// TODO Auto-generated constructor stub
}
@Override
public void buildContextMenu(IMenuManager menu) {
// TODO Auto-generated method stub
super.buildContextMenu(menu);
anpoa = new AddNewPaletteObjectAction(edit);
//menu.add(anpoa);
}
}
相关文章推荐
- Win7如何自定义鼠标右键菜单 添加在此处打开CMD窗口
- Win7系统如何在桌面右键菜单里添加自定义程序或网址?
- 如何添加自定义系统菜单 - C++ & MFC
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- Win7如何自定义鼠标右键菜单 添加用记事本打开
- Win7如何自定义鼠标右键菜单 添加新建WORD文档
- Win7如何自定义鼠标右键菜单 添加新建文本文档
- 微信公众号自定义菜单如何添加emoji表情图标?
- Win7如何自定义鼠标右键菜单 添加用记事本打开
- 如何添加自定义系统菜单
- Win7如何自定义鼠标右键菜单 添加新建PowerPoint文档
- Win7如何自定义鼠标右键菜单 添加在此处打开CMD窗口
- 如何在WebPart的菜单中添加自定义的Verbs.
- Win7如何自定义鼠标右键菜单 添加新建EXCEL文档
- C# 如何在 Windows 文件系统中添加自定义右键菜单
- 如何在Windows右键新建菜单中添加自定义项
- 如何在IE右键菜单中添加自定义项
- Win7如何自定义鼠标右键菜单 添加新建文本文档
- 在微信公众号中如何添加【自定义菜单】,原创图文教程
- Win7如何自定义鼠标右键菜单 添加新建EXCEL文档