当前位置: 首页 > news >正文

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

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

  • 1 配置文件
  • 2 插件控制
  • 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() {}/*** 插件启动时调用*/@Overridepublic void start(BundleContext context) throws Exception {super.start(context);plugin = this;// 在这里注册监听器、服务、加载配置等}/*** 插件停止时调用*/@Overridepublic 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 {// 按钮idprivate static final String RADIO_COMMEND_ID = "com.xu.work.tool.bar";@Overridepublic Object execute(ExecutionEvent event) throws ExecutionException {// 获取选项参数String option = event.getParameter("option");// 获取命令服务和RadioStateICommandService 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;}
}

在这里插入图片描述

http://www.xdnf.cn/news/502075.html

相关文章:

  • 使用tensorRT10部署低光照补偿模型
  • 六、绘制图片
  • traceroute命令: -g与-i 参数
  • flutter长列表 ListView、GridView、SingleChildScrollView、CustomScrollView区别
  • 专题四:综合练习(组合问题的决策树与回溯算法)
  • 嘉立创EDA成图:文件管理
  • 【前端基础】11、CSS的属性特性(继承、层叠、元素类型、隐藏元素的四种方式)
  • 【笔记】正弦交流电路的特征量
  • MMDetection环境安装配置
  • 小蜗牛拨号助手用户使用手册
  • STM32中的DMA
  • Python自学笔记3 常见运算符
  • Redis 事务与管道:原理、区别与应用实践
  • 【JDBC】JDBC概述、历史版本及特征
  • 深入解析 React 的 useEffect:从入门到实战
  • (头歌作业)—6.1 葡萄酒评论分析报告(project)
  • DeepSeek超大模型的高效训练策略
  • 数据结构与算法——双向链表
  • 探秘 Java 字节缓冲流:解锁高效 IO 操作的进阶之路
  • Unity 人物模型学习笔记
  • MATLAB2025新功能
  • 开源项目实战学习之YOLO11:12.3 ultralytics-models-sam-encoders.py源码分析
  • gcc/g++常用参数
  • Go 语言的 GMP 模型
  • DeepSeek 赋能量子计算:突破与未来图景
  • Python时间处理全攻略:标准库与第三方库的实战应用
  • 如何 naive UI n-data-table 改变行移动光标背景色
  • Linux——shell编程
  • 线对板连接器的兼容性问题:为何老旧设计难以满足现代需求?
  • 前端-HTML元素