一般来说,把 IContributionItem 或 IAction 加入 ToolBarManager中,只会显示相应的图标。
但如果想即显示 图标,又显示文字(就像 Perspective Shortcut)。怎么办?
看了源码,知道 Perspective Shortcut 的是处理 ToolItem, 调用 ToolItem.setText(...)。
所以,只要我能拿到 ToolBarManager 中的 ToolBar 中 ToolItem
但是: 在 ApplicationActionBarAdvisor 或者 ViewPart 中, 当你添加 action 时, 是得不到 ToolItem 的(还没初始化)
像这样:
java 代码
- public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
- ...
- protected void fillCoolBar(ICoolBarManager coolBar) {
- ToolBarManager menu = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
- coolBar.add(menu);
- ...
- ...
- }
- ...
于是,我写了以下帮助类,它是一个
ContributionItem
java 代码
- public class ShowTextToolBarContributionItem extends ContributionItem {
-
- @Override
- public void fill(ToolBar parent, int index) {
- ToolItem[] toolItems = parent.getItems();
- for (ToolItem toolItem : toolItems) {
- ActionContributionItem contributionItem = (ActionContributionItem) toolItem.getData();
- IAction action = contributionItem.getAction();
- if (toolItem.getText() == null || toolItem.getText().length() == 0) {
- toolItem.setText(action.getText());
- }
- }
- }
- }
嘿,"这个时刻",总该让我得到 ToolItem 了吧! 见上面的 fill
然后, 我的 fillToolBar 大概像这样了:
java 代码
- protected void fillCoolBar(ICoolBarManager coolBar) {
- ToolBarManager menu = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
- coolBar.add(menu);
-
- u.add(new ShowTextToolBarContributionItem());
- }
...
分享到:
相关推荐
Action是Eclipse中处理用户交互的基本单元,它包含了行为(run方法)和展示信息(如文本、图标等)。通过`makeAction`函数创建Action,接着使用`fillMenuBar`和`fillToolBar`来将Action添加到对应的菜单和工具栏上。...
- **代码复用**:封装`ToolBar`可以将通用的功能(如设置标题、添加返回按钮、设置菜单项)集中到一个地方,避免在每个需要`ToolBar`的Activity或Fragment中重复编写相同的代码。 - **统一风格**:通过封装,可以...
例如,`MenuManager`和`ToolBarManager`用于管理菜单项和工具栏按钮,它们与`Action`配合,将用户的交互动作映射到具体的代码执行。 `IMenuManager`和`IToolBarManager`接口提供了添加、移除和更新菜单项或工具栏...
4. `Action` - JFace的行动类,用于定义用户界面中的可操作项,如按钮或菜单项。 5. `ToolBarManager` 和 `MenuManager` - 分别管理工具栏和菜单,用于组织用户界面中的操作。 6. `TableViewer` - JFace中的视图组件...
1. **ToolBarManager.cs**:这是核心管理类,负责工具栏的创建、组织和停靠逻辑。它可能提供了添加、删除工具栏,以及处理工具栏停靠状态变化的方法。 2. **ToolBarDockHolder.cs**:此文件可能定义了一个类,用于...
在VB(Visual Basic)编程环境中,MapObjects是一个强大的GIS(地理信息系统)组件库,由ESRI公司提供,它使得开发者能够轻易地在Windows应用程序中集成地图显示和地理数据处理功能。"vb+mo地理信息系统源码"这个...
扩展是一种动态的方式,可以在不修改原有代码的情况下扩展应用的功能。 - **扩展点**:扩展点是插件提供的接口,用于接收来自其他插件的扩展。通过定义扩展点,插件可以指定其他插件可以扩展的部分。 #### 2. 创建...
8. **菜单和工具栏**:JFace的`Action`类简化了菜单和工具栏的创建,通过`MenuManager`和`ToolBarManager`,我们可以轻松地添加菜单项和工具栏按钮。 在"SWTProjec"中,你可能已经实践了上述的一些或所有知识点,...
在这个BugTracker项目中,JFace的Action类被用来创建菜单项和工具栏按钮,这简化了事件处理逻辑。 在给出的代码中,`BugTracker`类是整个应用的核心,它初始化了一个SWT的`Shell`对象,即主窗口。窗口布局使用`...
- 在`com.PluginTest`项目中添加一个按钮或菜单项。 - 调用`com.HelloRcp`插件中`com.testplugin`包中的方法,例如: ```java Action action = new Action() { public void run() { ...
你可以创建`MenuManager`和`ToolBarManager`来管理这些动作,并在编辑器的上下文中添加它们。 5. **事件处理**:RCP编辑器需要监听并响应用户的交互事件,例如点击按钮、选择菜单项等。这些事件通常通过`Command`和...
this.toolbarManager = new ToolStripControl.ToolBarManager(this,this); ToolStripControl.ToolBarDockHolder holder = this.toolbarManager.AddControl(this.axToolbarControl, DockStyle.Top); holder....
"ToolbarManager.wsp"文件是一个SharePoint解决方案包,通常包含了WebPart或其他SharePoint组件。解压并查看这个WSP文件,我们可以学习到如何打包和部署WebPart,以及WebPart的元数据和配置信息。 通过深入研究Moss...
主界面动态适配ToolBar(由于需求三个组件都是动态交互的,所以不能写成静态的) 1)M层Utils包下建立ToolBarManager接口用于管理类 a.新建一个toolbar对象 b.写一个初始化Main主页标题信息 kotlin接口是可以写实现...
SWT ToolBar和CoolBar;...JFace ToolBarManager和CoolBarManager; Eclipse RCP CoolBar 包括一些基本使用、工具栏上自定义控件的添加,以及通过扩展向工具栏上添加按钮或自定义控件等。 详见本人CSDN相关文章。