如何在Palette中添加自定义菜单
答案:2 悬赏:30 手机版
解决时间 2021-03-21 06:40
- 提问者网友:山高云阔
- 2021-03-21 02:22
如何在Palette中添加自定义菜单
最佳答案
- 五星知识达人网友:平生事
- 2021-03-21 03:52
首先,需要重载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);
}
}
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);
}
}
全部回答
- 1楼网友:野慌
- 2021-03-21 05:02
我是来看评论的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯