RCP 学习 - 编程加menu

package mantisrcp;

import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

import action.HappyAction;

/**
 * An action bar advisor is responsible for creating, adding, and disposing of
 * the actions added to a workbench window. Each window will be populated with
 * new actions.
 */
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
    private IWorkbenchAction haAction;
    // Actions - important to allocate these only in makeActions, and then use
    // them
    // in the fill methods. This ensures that the actions aren't recreated
    // when fillActionBars is called with FILL_PROXY.

    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }
    protected void makeActions(IWorkbenchWindow window) {
        haAction = new HappyAction(window);
        haAction.setText("Mantis code");
        haAction.setId("atcion.code1");
        register(haAction);
    }

    protected void fillMenuBar(IMenuManager menuBar) {
        MenuManager newMenu = new MenuManager("Happy Mantis", "mgr.hama1");
        menuBar.add(newMenu);
        newMenu.add(haAction);
        
        MenuManager codeMenu = new MenuManager("codeMenu", "codeMenu");
        menuBar.add(codeMenu);
        MenuManager conversionMenu = new MenuManager("SDM &Conversion", "codeconversion");
        codeMenu.add(conversionMenu);
        conversionMenu.add(haAction);
        
    }
}

 

 

 

package action;

import org.eclipse.jface.action.Action;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;

import dialog.MantisDialog;

public class HappyAction extends Action implements IWorkbenchAction {
    private IWorkbenchWindow workbenchWindow;

    public HappyAction(IWorkbenchWindow window) {
        if (window == null) {
            throw new IllegalArgumentException();
        }

        this.workbenchWindow = window;
    }

    public void run() {
        // make sure action is not disposed
        if (workbenchWindow != null) {

            MantisDialog dg = new MantisDialog(workbenchWindow.getShell(),"create from happy action");
            dg.open();
        }
    }

    public void dispose() {
        workbenchWindow = null;

    }
    
    public String getText() {
        return "happy";
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值