当前位置: 代码迷 >> Eclipse >> Eclipse GEF 创办浮动Palette
  详细解决方案

Eclipse GEF 创办浮动Palette

热度:63   发布时间:2016-04-23 12:28:06.0
Eclipse GEF 创建浮动Palette

第一步:新建Editor,并继承自GraphicalEditorWithFlyoutPalette

? ? ? ? ? ? 比如:public class ActivityEditor extends GraphicalEditorWithFlyoutPalette?

?

第二步:定义如下的静态变量

? ? ? ? ? ??protected static final String PALETTE_DOCK_LOCATION = "Dock location"; //$NON-NLS-1$

? ? ? ? ? ? protected static final String PALETTE_SIZE = "Palette Size"; //$NON-NLS-1$

? ? ? ? ? ? protected static final String PALETTE_STATE = "Palette state"; //$NON-NLS-1$

? ? ? ? ? ? protected static final int DEFAULT_PALETTE_SIZE = 130;

第三步:实现createPalettePage()?和createPaletteViewerProvider()?两个方法

?

?protected CustomPalettePage createPalettePage() {

? ? return new CustomPalettePage(getPaletteViewerProvider()) {

? ? public void init(IPageSite pageSite) {

? ? super.init(pageSite);

? ? IAction copy = getActionRegistry().getAction(ActionFactory.COPY.getId());

? ? pageSite.getActionBars().setGlobalActionHandler(

? ? ActionFactory.COPY.getId(), copy);

? ? }

? ? };

? ? }

? ? protected PaletteViewerProvider createPaletteViewerProvider() {

? ? return new PaletteViewerProvider(getEditDomain()) {

? ? private IMenuListener menuListener;

? ? protected void configurePaletteViewer(PaletteViewer viewer) {

? ? super.configurePaletteViewer(viewer);

? ? viewer.setCustomizer(new MyPaletteCustomizer());

? ? viewer.addDragSourceListener(new TemplateTransferDragSourceListener(viewer));

? ? }

? ? protected void hookPaletteViewer(PaletteViewer viewer) {

? ? super.hookPaletteViewer(viewer);

? ? final CopyTemplateAction copy = (CopyTemplateAction)getActionRegistry()

? ? .getAction(ActionFactory.COPY.getId());

? ? viewer.addSelectionChangedListener(copy);

? ? if (menuListener == null)

? ? menuListener = new IMenuListener() {

? ? public void menuAboutToShow(IMenuManager manager) {

? ? manager.appendToGroup(GEFActionConstants.GROUP_COPY, copy);

? ? }

? ? };

? ? viewer.getContextMenu().addMenuListener(menuListener);

? ? }

? ? };

? ? }

第四步:在测试插件时的时候,打开Palette视图就可以看到其中自己定义的选项了

  相关解决方案