`

CoolBar CoolBarManager应用到任何ViewForm

阅读更多
ViewForm viewForm = new ViewForm(container, SWT.NONE);
MyActionGroup actionGroup = new MyActionGroup();
CoolBar coolBar=new CoolBar(viewForm,SWT.FLAT);
CoolBarManager coolBarManager = new CoolBarManager(coolBar); // 创建一个toolBar的管理器
ToolBar toolBar = new ToolBar(coolBar, SWT.FLAT); // 创建一个ToolBar容器
ToolBarManager toolBarManager = new ToolBarManager(toolBar); // 创建一个toolBar的管理器
actionGroup.fillActionToolBars(coolBarManager,toolBarManager); //将Action通过toolBarManager注入ToolBar中
//actionGroup.fillContextMenu(new MenuManager());
viewForm.setTopLeft(coolBar);




package com.test;

import java.net.MalformedURLException;
import java.net.URL;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.CoolBarManager;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ViewForm;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.actions.RefreshAction;

public class MyActionGroup extends ActionGroup {

public void fillContextMenu(IMenuManager mgr) {
// 加入两个Action对象到菜单管理器
MenuManager menuManager = (MenuManager) mgr;
/*
* menuManager.add(new OpenAction()); menuManager.add(new
* RefreshAction()); // 生成Menu并挂在表格table上。menu和table两个对象互为对方的参数 Table
* table = tv.getTable();
*/
// Menu menu = menuManager.createContextMenu(compoiste);
// compoiste.setMenu(menu);
}

// 自定义方法。生成Action对象,并通过工具栏管理器ToolBarManager填充进工具栏
public void fillActionToolBars(CoolBarManager coolBarManager,
ToolBarManager actionBarManager) {
// 创建Action对象,一个按钮对应一个个的Action
Action refreshAction = new Action() {

};
Action addAction = new Action() {

};

// 将按钮通过工具栏管理器ToolBarManager填充进工具栏,如果用add(action)
// 也是可以的,只不过只有文字没有图像。要显示图像需要将Action包装成
// ActionContributionItem,在这里我们将包装的处理过程写成了一个方法
actionBarManager.add(createContributionItem(refreshAction));
actionBarManager.add(createContributionItem(addAction));
// actionBarManager.add(createContributionItem(removeAction));
actionBarManager.update(true);// 更新工具栏,否则工具栏不显示任何按钮
ToolBar toolBar=new ToolBar(coolBarManager.getControl(),SWT.FLAT);
ToolBarManager actionBarManager1=new ToolBarManager(toolBar);
actionBarManager1.add(createContributionItem(refreshAction));
actionBarManager1.add(createContributionItem(addAction));
actionBarManager1.update(true);

toolBar=new ToolBar(coolBarManager.getControl(),SWT.FLAT);
ToolBarManager actionBarManager2=new ToolBarManager(toolBar);
actionBarManager2.add(createContributionItem(refreshAction));
actionBarManager2.add(createContributionItem(addAction));
actionBarManager2.update(true);

toolBar=new ToolBar(coolBarManager.getControl(),SWT.FLAT);
ToolBarManager actionBarManager3=new ToolBarManager(toolBar);
actionBarManager3.add(createContributionItem(refreshAction));
actionBarManager3.add(createContributionItem(addAction));
actionBarManager3.update(true);

coolBarManager.add(actionBarManager);
coolBarManager.add(actionBarManager1);
coolBarManager.add(actionBarManager2);
coolBarManager.add(actionBarManager3);
coolBarManager.update(true);
}

// 将Action包装成ActionContributionItem类的方法。实际上Action加入到
// ToolBarManager或MenuManager里时,也做了ActionContributionItem的包装,
// 大家看它ToolBarManager的add(IAction)的源代码即知
private IContributionItem createContributionItem(IAction action) {
ActionContributionItem aci = new ActionContributionItem(action);
aci.setMode(ActionContributionItem.MODE_FORCE_TEXT);// 显示图像+文字
return aci;
}

// 得到一个图像的ImageDescriptor对象
private ImageDescriptor getImageDesc(String fileName) {
try {
URL url = new URL("file:icons/" + fileName);
return ImageDescriptor.createFromURL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
return null;
}
}
分享到:
评论

相关推荐

    拥有CoolBar的例程(CtrlDemo)

    通过学习CtrlDemo这个实例,开发者不仅可以掌握CoolBar的使用,还能了解到如何在MFC环境中设计和实现复杂的用户界面元素,这对于提升Windows应用程序的专业性和用户体验有着显著的帮助。同时,这个过程也会加深对MFC...

    coolbar实例

    在VC++编程环境中,"coolbar"是一种特殊的控件,它通常被用来创建自定义的工具栏或状态栏。Coolbar允许用户自定义其外观和功能,甚至可以实现...总之,掌握coolbar的使用,对于提升VC++应用的用户体验具有重要的意义。

    Controls-Coolbar.rar_coolbar_coolbar vb实例

    1. **基础使用**:展示如何在VB6环境中添加CoolBar控件到窗体,设置其基本属性,并添加按钮。 2. **浮动工具栏**:如何使工具栏可以浮动于窗口之外,提供更自由的操作体验。 3. **自定义样式**:通过修改控件的外观...

    coolbar 非常酷的工具条制作源程序

    标题中的“coolbar 非常酷的工具条制作源程序”指的是一个专门用于创建个性化、功能丰富的工具栏的源...通过阅读和实践,开发者能够理解如何将这些技术应用到自己的项目中,创造出更加独特且用户友好的应用程序界面。

    vc++coolbar平台手机小游戏

    CoolBar是MFC(Microsoft Foundation Classes)库中的一个组件,用于创建具有多种工具栏风格的应用程序,包括浮动、可停靠和多列布局等,为用户界面增加了灵活性和交互性。 在手机小游戏的开发过程中,使用VC++和...

    COOLBAR使用例程.rar_coolbar

    通过学习这个"COOLBAR使用例程",开发者不仅可以掌握如何在Windows应用程序中创建和使用自定义工具栏,还能了解如何设计和优化用户界面,提升应用的整体体验。对于新手来说,这是一个很好的实践项目,可以帮助他们更...

    coolbar类非常好用

    本文将深入探讨“coolbar类”的使用,包括它的特点、优点以及如何在实际开发中应用。 首先,"coolbar"是微软MFC(Microsoft Foundation Classes)库中的一个类,它实现了Windows API中的TBSTYLE_COOLBAR样式工具栏...

    CBEx.zip_BAR_coolbar_pathicb

    原生的CoolBar控件通常用于在应用程序界面上创建可自定义的工具栏,允许用户以垂直或水平布局排列各种控件,如按钮、菜单等。而"chevron support"意味着它添加了下拉箭头的功能,这使得用户可以展开隐藏的附加选项,...

    code_coolbar.zip_音乐播放系统

    【音乐播放系统】是一个专为音乐爱好者设计的应用程序,它允许用户轻松地打开和播放他们的音乐文件。这个系统的核心功能是提供一个用户友好的界面,让用户可以方便地浏览和选择要播放的歌曲,从而享受音乐带来的乐趣...

    pb9做的一个cool的菜单实例!

    通过这个实例,我们可以学习到如何设计和实现自定义的用户界面元素,以及如何将它们整合到应用程序中。 标签“coolbar”通常指的是在Windows应用程序中常见的工具栏或者状态栏,它能够显示各种快捷按钮、下拉菜单等...

    在DELPHI7中不使用任何第三方控件,实现放在工具栏上可拖动的

    1. **添加ActionBars到CoolBar**:通过`ActionBars`属性将Action Manager与CoolBar关联起来。例如,可以创建两个ActionBars:一个用于主菜单栏(`ActionMainMenuBar`),另一个用于工具栏(`ActionToolBar`)。 2. *...

    An example of how to create a coolbar such as the one in Int

    An example of how to create a coolbar such as the one in Internet Explorer without using a 3rd party control.

    vb visual basic

    在实际开发中,Coolbar控件可以极大地提升应用程序的用户界面体验,通过精心设计的带区布局和个性化的子控件组合,可以创建出符合用户需求的个性化工具栏。通过熟练掌握Coolbar控件的使用,开发者可以构建出更专业、...

    VB6制作Win98风格的工具栏...

    通过本教程,您将学习到如何利用 VB6 中的 ActiveX 控件(如 CoolBar 和 ToolBar)来实现这种风格的工具栏。 #### 关键概念与步骤 ##### 1. 创建项目与添加控件 首先,在 VB6 中创建一个新的项目,并将其命名为...

    MailRCP.zip

    SWT ToolBar和CoolBar;...JFace ToolBarManager和CoolBarManager; Eclipse RCP CoolBar 包括一些基本使用、工具栏上自定义控件的添加,以及通过扩展向工具栏上添加按钮或自定义控件等。 详见本人CSDN相关文章。

    mapx的鹰眼图以及浮动窗口的例子

    在本项目中,我们主要探讨的是使用MapX库来创建一个具有鹰眼图(迷你地图)功能的地图应用程序。MapX是Bentley Systems公司提供的一个GIS(地理信息系统)组件,它允许开发者在Windows应用程序中集成地图显示和地理...

    MiniGUI的软键盘快速设计方法

    本文介绍了一种在MiniGUI系统中快速设计软键盘的方法,该方法利用MiniGUI提供的酷工具栏(Coolbar)控件创建软键盘面板,并通过发送相应的按键消息到MiniGUI的内部输入法窗口,实现包括中文在内的字符输入功能。...

    《 VB6制作Win98风格的工具栏 》...

    ##### 步骤 3:添加 ToolBar 组件到 CoolBar - 在 CoolBar1 上添加一个新的 ToolBar 组件,将其命名为 `ToolBar1`。 - 通过 `CoolBar1` 的属性窗口找到 `Bands` 选项卡,点击 `Insert Band` 按钮添加一个新的工具栏...

    VB编程资源大全(英文源码 其它)

    6 , chunks.zip This will open a file and read it in "Chunks" of a selected file.<END><br>7 , logging.zip This is a bas that will log installation procedures so the file can be removed later....

    超高级的vb控件 教科书上不全的控件都在

    CoolBar控件 Datarepeater控件 RepeatedControl控件 DateTimePicker控件 FlatScrollBar控件 ImageCombo控件 ImageList控件 Internet Transfer控件 ListView控件 MAPI控件 MaskedEdit控件 MonthView控件 MSChart...

Global site tag (gtag.js) - Google Analytics