西門子 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.pswp.cn/web/80516.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80516.shtml
英文地址,請注明出處:http://en.pswp.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…