gpt4 book ai didi

java - 在 Eclipse/RCP 中定位工具栏

转载 作者:搜寻专家 更新时间:2023-10-31 19:41:47 25 4
gpt4 key购买 nike

我正在开发我的微型 RCP 应用程序,它需要一个自定义透视切换器来控制用户可以访问哪些 View 。所以我在这里,尝试添加一个带有几个按钮的工具栏来切换视角。

我认为控制这些东西的最佳方法是在 ApplicationActionBarAdvisor 中添加第二个工具栏,它会调用我的操作/命令来切换视角。

假设我在 fillCoolBar 方法中创建了第二个 ToolBarContributionItem,如下所示:

protected void fillCoolBar(ICoolBarManager coolBar) {
IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
ToolBarContributionItem mainBar = new ToolBarContributionItem(toolbar, "main");
coolBar.add(mainBar);

toolbar.add(openViewAction);
toolbar.add(newConnectionAction);

//Custom perspective switcher bar
IToolBarManager perspectives = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
ToolBarContributionItem perspectiveBar = new ToolBarContributionItem(perspectives, "perspectives");
coolBar.add(perspectiveBar);
}

关于如何对齐工具栏使其位于窗口右侧的任何想法?我希望对这个位置进行硬编码。

问候,迈克尔

最佳答案

我有一个类似的问题:我想在左侧有一个标准工具栏,在左侧有一个搜索文本和按钮。我没有找到真正的解决方案。我所做的是覆盖 ToolBarContributionItem 中的填充方法,以便更改 CoolBarManager 的布局。这不是一个好的解决方案,它适用于 Windows(在这种情况下就足够了),但不适用于 Linux,但它可能有帮助:

protected void fillCoolBar(ICoolBarManager coolBar) {
coolBar.setLockLayout(true);

IToolBarManager mainToolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
coolBar.add(new ToolBarContributionItem(mainToolBar, "main"));
fillMainToolBar(mainToolBar);

IToolBarManager searchToolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
ToolBarContributionItem searchBarItem = new ToolBarContributionItem(
searchToolBar, "search") {
@Override
public void fill(CoolBar coolBar, int index) {
super.fill(coolBar, index);
// change the layout of the cool-bar to have the search
// controls on the right side
GridLayout coolBarLayout = new GridLayout(2, false);
coolBarLayout.marginHeight = 0;
coolBarLayout.marginWidth = 0;
coolBarLayout.horizontalSpacing = 20;
coolBarLayout.verticalSpacing = 0;
coolBarLayout.marginLeft = 10;
coolBar.setLayout(coolBarLayout);
GridData mainGridData = new GridData(SWT.LEFT, SWT.CENTER, true,
false);
GridData searchGridData = new GridData(SWT.RIGHT, SWT.CENTER,
false, false);
coolBar.getItem(0).getControl().setLayoutData(mainGridData);
coolBar.getItem(1).getControl().setLayoutData(searchGridData);
}
};
coolBar.add(searchBarItem);
searchToolBar.add(new SearchTextControl());
searchToolBar.add(searchAction);
}

关于java - 在 Eclipse/RCP 中定位工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com