西门子 Teamcenter13 Eclipse RCP 开发 1.1 工具栏 普通按钮

西门子 Teamcenter13 Eclipse RCP 开发 1.1 工具栏 普通按钮

  • 1 配置文件
  • 2 插件控制
  • 3 命令框架

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

1 配置文件

在 Teamcenter 13 + Eclipse RCP 开发中,plugin.xml 是插件的核心配置文件,定义了插件的:

1、唯一身份(ID、版本)。
2、所依赖的其他插件。
3、注册的扩展点(Extensions)。
4、提供的功能,比如菜单项、视图、编辑器、命令、图标、语言包等。

内容plugin.xml 的角色
插件身份定义 id、版本、启动类
插件依赖MANIFEST.MF 中定义(与 plugin.xml 配合)
扩展注册注册视图、菜单、命令、动作等
Teamcenter 支持使用 Teamcenter 自定义扩展点,实现插件集成
<?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.example.commands.helloCommand" icon="icons/sample.png" tooltip="普通按钮" label="普通按钮" style="push"></command></toolbar></menuContribution></extension><extension point="org.eclipse.ui.handlers"><handler class="com.xu.work.tool1.handlers.SampleHandler" commandId="com.example.commands.helloCommand"></handler></extension></plugin>

2 插件控制

在使用 Siemens Teamcenter 13 进行 Eclipse RCP 插件开发 时,Activator.java 是插件生命周期管理的关键类。这个类通常由 Eclipse PDE 插件开发环境自动生成,并实现了 org.osgi.framework.BundleActivator 接口或继承了 AbstractUIPlugin(用户界面) / Plugin(后台应用)。

序号作用
1控制插件的生命周期:包括启动(start())和停止(stop())。
2提供插件范围的共享资源访问:例如共享的图标、配置文件、日志工具等。
3保存插件实例(单例):方便在其他地方访问插件上下文。
package com.xu.work.tool1;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.tool1"; //$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 命令框架

它是命令框架(Command Framework)的基础,用来处理 UI 中的命令(Command)。
当用户点击菜单或按钮,Eclipse 会根据 plugin.xml 中绑定的命令,调用对应的 Handler 类的 execute() 方法。

package com.xu.work.tool1.handlers;import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.jface.dialogs.MessageDialog;public class SampleHandler extends AbstractHandler {@Overridepublic Object execute(ExecutionEvent event) throws ExecutionException {IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);MessageDialog.openInformation(window.getShell(),"Tool1","Hello, Eclipse world");return null;}}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React中巧妙使用异步组件Suspense优化页面性能。

文章目录 前言一、为什么需要异步组件&#xff1f;1. 性能瓶颈分析2. 异步组件的价值 二、核心实现方式1. React.lazy Suspense&#xff08;官方推荐&#xff09;2. 路由级代码分割&#xff08;React Router v6&#xff09; 总结 前言 在 React 应用中&#xff0c;随着功能复…

现在环保方面有什么新的技术动态

环保领域的技术发展迅速&#xff0c;尤其在“双碳”目标、数字化转型和可持续发展背景下&#xff0c;涌现出许多创新技术和应用。以下是当前环保领域的新技术动态&#xff08;截至2024年&#xff09;&#xff1a; 一、碳中和与碳减排技术 CCUS&#xff08;碳捕集、利用与封存&a…

solidwors插件 开发————仙盟创梦IDE

SolidWorks VBS SolidWorks 支持通过 VBScript&#xff08;.vbs&#xff09;脚本 进行简单的二次开发&#xff08;如自动化建模、批量操作等&#xff09;&#xff0c;但严格来说这属于 脚本编程&#xff0c;而非传统的插件&#xff08;Plug-in&#xff09;开发&#xff08;插件…

docker(二)初识 docker

在第一章的容器化架构中&#xff0c;我们已经了解到了 docker 是一个容器化技术&#xff0c;本章将详细介绍什么是虚拟化、容器化技术&#xff0c;以及什么是 docker。 一、物理机 VS 虚拟化 VS 容器化 物理机&#xff1a; 实际的服务器或者计算机。是相对于虚拟机而言的对实体…

ChatGPT + DeepSeek 联合润色的 Prompt 模板指令合集,用来润色SCI论文太香了!

对于非英语母语的作者来说,写SCI论文的时候经常会碰到语法错误、表达不够专业、结构不清晰以及术语使用不准确等问题。传统的润色方式要么成本高、效率低,修改过程又耗时又费力。虽然AI工具可以帮助我们来润色论文,但单独用ChatGPT或DeepSeek都会存在内容泛泛、专业性不足的…

python打包exe报错:处理文件时错误:Excel xlsx file; not supported

背景&#xff1a;最近用python写一个excel解析工具&#xff0c;然后打包成exe可执行文件的时候&#xff0c;遇到这样的问题 1.在我自己编译器运行是可以正常将上传后的excel进行解析&#xff0c;但是在打包成exe后&#xff0c;就无法正常解析excel 问题排查&#xff1a; 1.切换…

Ubuntu操作合集

UFWUncomplicated Firewall 查看状态和规则&#xff1a; 1查看状态sudo ufw status&#xff0c; 2查看详细信息sudo ufw status verbose&#xff0c; 默认策略配置&#xff1a; 1拒绝所有入站sudo ufw default deny incoming 2允许所有出战sudo ufw default allow outgoing …

怎么用Origin画出MATLAB效果的3D时频图

MATLAB画3D时频图的效果比Origin差远了....但用Origin去画MATLAB需要一些过程 本帖让你轻轻松松把MATLAB的时频图搬移到Origin中&#xff0c;然后拥有高级视图的3D时频图&#xff0c;并且可以随心调整格式 一、数据搬移 首先&#xff0c;在MATLAB中打开时频图变量 复制 在O…

OpenEvidence AI临床决策支持工具平台研究报告

平台概述 OpenEvidence是一个专为医疗专业人士设计的临床决策支持工具,旨在通过整合各类临床计算器和先进的人工智能技术,提高医生的诊疗决策效率和准确性。作为一款综合性医疗平台,OpenEvidence将复杂的医学计算流程简化,同时提供个性化的临床建议,使医生能够更快、更准…

vim - v

在 Vim 中&#xff0c;使用 可视模式&#xff08;Visual Mode&#xff09; 可以选中文本并进行复制、剪切、粘贴等操作。以下是详细的使用方法&#xff1a; 1. 进入可视模式 命令功能v字符可视模式&#xff08;按字符选择&#xff09;V&#xff08;大写&#xff09;行可视模式…

GUI图形化演示

目录 概述 常用组件如下&#xff1a; JFrame: 一.新建JFrame对象&#xff1a; 二.设置JFrame的大小&#xff1a; 三.设定JFrame的关闭方式 布局方式&#xff1a; setLayout 方法概述 常用布局管理器 自定义布局 注意事项 面板与布局的嵌套&#xff1a; 监听器&#…

Visual Studio已更新为17.14+集成deepseek实现高效编程

01 Visual Studio 2022 v17.14。 此更新侧重于全面提供出色的开发人员体验&#xff0c;侧重于稳定性和安全性以及 AI 改进。 02 GPT-4o代码完成模式 我们非常高兴地宣布&#xff0c;新的 GPT-4o Copilot 代码完成模型现已在 Visual Studio 17.14 中为 GitHub Copilot 用户…

URP相机如何将场景渲染定帧模糊绘制

1&#xff09;URP相机如何将场景渲染定帧模糊绘制 2&#xff09;为什么Virtual Machine会随着游戏时间变大 3&#xff09;出海项目&#xff0c;打包时需要勾选ARMv7吗 4&#xff09;Unity是手动还是自动调用GC.Collect 这是第431篇UWA技术知识分享的推送&#xff0c;精选了UWA社…

OpenAI推出Codex — ChatGPT内置的软件工程Agents

OpenAI继续让ChatGPT对开发者更加实用。 几天前,他们增加了连接GitHub仓库的支持,可以"Deep Research"并根据你自己的代码提问。 今天,该公司在ChatGPT中推出了Codex的研究预览版,这是迄今为止最强大的AI编码Agent。 它可以编写代码、修复错误、运行测试,并在…

Python × CARLA:如何在自动驾驶仿真世界里打造智能驾驶系统?

Python CARLA:如何在自动驾驶仿真世界里打造智能驾驶系统? 在人工智能与自动驾驶的浪潮中,真实世界的测试成本高昂,而自动驾驶仿真已成为开发者训练和测试 AI 驾驶算法的关键技术手段。其中,CARLA(Car Learning to Act)作为开源自动驾驶仿真平台,凭借其真实感强、高度…

低空态势感知:基于AI的DAA技术是低空飞行的重要安全保障-机载端地面端

低空态势感知&#xff1a;基于AI的DAA技术是低空飞行的重要安全保障-机载端&地面端 目前空中已经有大量无人机和其他飞机&#xff0c;未来几年还会有空中出租车。目前&#xff0c;美国每年平均发生 15 到 25 起空中相撞事故。 检测和避免 (DAA) 检测和避免 (DAA) 技术可…

【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)

d该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍&#xff08;含源代码&#xff09;&#xff08;一&#xff09; springcloud学习&#xff08;dalston.sr1&#xff09;系统文章汇总如下&#xff1a; 【springcloud学习(dalsto…

CSS Grid布局:从入门到实战

CSS Grid布局&#xff1a;从入门到实战 一、初识Grid布局 还在为网页布局发愁吗&#xff1f;Flexbox虽然好用&#xff0c;但当遇到复杂布局时&#xff0c;CSS Grid才是真正的王者。Grid布局是CSS中最强大的二维布局系统&#xff0c;它就像一张无形的网格纸&#xff0c;让我们…

MongoDB 应用实战

1. java 原生客户端 引入maven 1 <dependencies> 2 <dependency> 3 <groupId>org.mongodb</groupId> 4 <artifactId>mongodb‐driver‐sync</artifactId> 5 <version>4.1.1</version> 6 </dependency> 7 </depende…

linux下tcp/ip网络通信笔记1,

本文章主要为博主在学习网络通信的笔记一个Udp_echo_server,和client的代码实现 1&#xff0c;网络发展&#xff0c;网络协议&#xff0c;意识到网络通信——不同主机的进程间通信&#xff0c; 2&#xff0c;学习如何在应用层调用系统提供的接口进行通信&#xff0c;echo_Udp…