西门子 Teamcenter13 Eclipse RCP 开发 1.3 工具栏 单选按钮

西门子 Teamcenter13 Eclipse RCP 开发 1.3 工具栏 单选按钮

位置locationURI备注
菜单栏menu:org.eclipse.ui.main.menu添加到传统菜单
工具栏toolbar:org.eclipse.ui.main.toolbar添加到工具栏
style 值含义显示效果
push普通按钮(默认)普通的点击按钮,点一下执行一次
toggle切换按钮有按下/弹起两种状态,比如"开关"
radio单选按钮多个按钮互斥选择,比如 “模式切换”

1 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>

    <extension point="org.eclipse.ui.menus">
        <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar">
            <toolbar id="com.example.toolbar">
                <command commandId="com.xu.work.tool.bar" icon="icons/sample.png" label="单选按钮1" style="radio">
                    <parameter name="option" value="1"/>
                </command>
                <command commandId="com.xu.work.tool.bar" icon="icons/sample.png" label="单选按钮2" style="radio">
                    <parameter name="option" value="2"/>
                </command>
                <command commandId="com.xu.work.tool.bar" icon="icons/sample.png" label="单选按钮3" style="radio">
                    <parameter name="option" value="3"/>
                </command>
            </toolbar>
        </menuContribution>
    </extension>

    <extension point="org.eclipse.ui.commands">
        <command id="com.xu.work.tool.bar" name="工具栏:单选按钮" defaultHandler="com.xu.work.tool3.handlers.SampleHandler">
            <commandParameter id="option" name="选项" optional="false"/>
        </command>
    </extension>

</plugin>

2 插件控制

package com.xu.work.tool2;

import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;

/**
 * 插件激活器类,控制插件的生命周期
 */
public class Activator extends AbstractUIPlugin {

	/**
	 * 插件ID常量,通常与MANIFEST.MF中的Bundle-SymbolicName一致
	 */
	public static final String PLUGIN_ID = "com.xu.work.tool2"; //$NON-NLS-1$

	/**
	 * 单例实例引用
	 */
	private static Activator plugin;

	/**
	 * 构造函数
	 */
	public Activator() {
	}

	/**
	 * 插件启动时调用
	 */
	@Override
	public void start(BundleContext context) throws Exception {
		super.start(context);
		plugin = this;
		// 在这里注册监听器、服务、加载配置等
	}

	/**
	 * 插件停止时调用
	 */
	@Override
	public void stop(BundleContext context) throws Exception {
		plugin = null;
		super.stop(context);
	}

	/**
	 * 返回此插件的共享实例
	 *
	 * @return 共享实例
	 */
	public static Activator getDefault() {
		return plugin;
	}

}

3 命令框架

package com.xu.work.tool3.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.State;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.RadioState;

public class SampleHandler extends AbstractHandler {
	
	// 按钮id
    private static final String RADIO_COMMEND_ID = "com.xu.work.tool.bar";
    
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
        // 获取选项参数
        String option = event.getParameter("option");
        
        // 获取命令服务和RadioState
        ICommandService service = PlatformUI.getWorkbench().getService(ICommandService.class);
        State state = service.getCommand(RADIO_COMMEND_ID).getState(RadioState.STATE_ID);
        
        // 获取当前状态值
        String currentValue = state != null ? (String)state.getValue() : null;
        
        // 只在真正选择新选项时显示对话框(避免取消选择时的对话框)
        // 如果当前值与新选项不同,说明这是一个真正的选择操作
        if (option != null && !option.equals(currentValue)) {
            // 显示消息对话框
            Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
            MessageDialog.openInformation(shell, "单选按钮", "您点击了单选按钮 " + option);
        }
        
        // 更新按钮状态
        if (state != null) {
            state.setValue(option);
        }
        
        return null;
    }
}

在这里插入图片描述

基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码,个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+G
基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值