Eclipse插件之动态刷新ToolBar的图片

本文介绍如何在Eclipse中实现ToolBar图标依据状态动态切换。通过实现IElementUpdater接口,可在不同状态下改变图标及提示信息,适用于开关类功能的开发。

Eclipse插件之动态刷新ToolBar的图片

扩展Eclipse的快捷工具栏的时候,经常会碰到一些类似于开关的问题,比如需要根据某个状态或开关量来显示不同的图片,但是IHandler或AbstractHandler只给出了定义回调的执行函数,并没有给出操作UI相关的方法,其实只需要实现一个接口IElementUpdater即可,闲话少说,直接给出代码。

public class TestAction extends AbstractHandler implements IElementUpdater{

    public static boolean isOn = false;
    private static ImageDescriptor IMAGE_ON = UIActivator.getImageDescriptor("icons/on.gif");
    private static ImageDescriptor IMAGE_OFF = UIActivator.getImageDescriptor("icons/off.gif");


    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {

        if(!isOn){
            System.out.println("on");
            isOn = true;
        }else{
            System.out.println("off");
            isOn = false;
        }
        Display.getDefault().asyncExec(new Runnable() {

            @Override
            public void run() {
                    ICommandService commandService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(ICommandService.class);
                if(commandService != null){
                    commandService.refreshElements("com.zj.test.ui.commands.on", null);
                }
            }
        });
        return null;
    }

    @Override
    public void updateElement(UIElement element, Map parameters) {
        if(!isOn){
            element.setIcon(IMAGE_ON);
            element.setTooltip("on");
        }else{
            element.setIcon(IMAGE_OFF);
            element.setTooltip("off");
        }
    }


}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值