精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Eclipse插件開發之簡單控件封裝—那些年冗長的裹腳布

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 17:28 ? 次閱讀

Hello,大家好~不知道還有沒有老朋友記得我。N年前那個寫流程自動化測試的程序媛就是我,可能看完那篇文章很多人認為我是自動化測試方向。No,No,No~今天破案了,我真正的主要技術方向——Eclipse插件開發。是的,如此小眾的技術,有點疑惑都滿網找不到答案的技術。思考了很久這塊可以寫點啥,基礎開發我也不多說了,愿意看這篇文章的我也就默認已經是Eclipse插件開發入門了。

Eclipse插件開發,接觸過這塊的同學們都知道,無論是控件也好,向導視圖也罷。但凡每次開發個不起眼的小功能,從零開始堆代碼,都很煩躁,各種composite開始套,各種GridLayout布局開始調。當你的公司要求你開發大量的插件功能時,可能多數的時間你都在堆砌這種煩躁的代碼。

在我司的EOS Platform里封裝了進行了大量的swt封裝,今天我們就來說說其中最基礎的控件類封裝,即屬性編輯器。我們先來看下我們的UI框架。

每個Tab頁中我們進行了完整的對象編輯器的封裝,每個對象編輯器上,放置了多個屬性編輯器。

StringPropertyEditor就是一個屬性編輯器,ObjectEditor為一個對象編輯器,我們可以在一個ObjectEditor上添加多個StringPropertyEditor。StringPropertyEditor基礎方法(不僅限于所展示的方法):setLabel(String label):標簽名稱。setPropertyName(String name):Text中value的數據映射key。doAddValidator(IValidator validator):添加校驗器。這個時候我們是不是可以看出SWT控件開發和屬性編輯器開發的差異了?總結一下:

可以看下我們可以進行多少種不同的控件封裝。

看到類名大家應該差不多都清楚每個屬性編輯器的大體功能。我們就拿一個StringPropertyEditor看看它是如何封裝的吧。

StringPropertyEditor

StringPropertyEditor就是Label+Text,例如:

1.首先它一定是先有一個對象屬性的基類AbstractPropertyAccessor,基類中的方法:

這個基類涉及到三個屬性:propertyName:value的數據映射key。element:默認為當前對象編輯器中的value對象,可給單個屬性編輯器設置單獨的value對象。But!該value對象中必須包含propertyName設置的key值。introspector:這是個什么?這是個數據訪問接口對象Introspector。該接口定義了如何根據一個名稱(propertyName)來訪問一個對象(element)中的值。這樣設計為了提供靈活性,因為通常訪問數據有兩種方式。一種是根據Bean的屬性進行訪問,還有一種是使用Map中的Key進行訪問,所以設計這個接口來訪問對象中的數據,用戶如果需要的話,也可以提供新的實現,如直接訪問對象的Field或者其它。簡單看下該接口的一個實現類所提供的方法。

通過Property的方式來訪問一個Bean對象,在Property 不存在的情況會拋出異常。對于對象的存儲用ognl.Ognl來實現。2.AbstractPropertyAccessor基類只是提供了數據層的封裝,我們還需要一層封裝來提供屬性編輯器的基本實現AbstractPropertyEditor,這個類封裝了所有控件的布局以及可能的操作。

其實這是相當長的一個封裝,抽取出核心事務,我們來說一說。添加控件

這是一個核心的方法,你不需要去調用這個方法,在對象編輯器中的基類里會自動調用來這個方法來繪制所有添加的屬性編輯器。buildEditorControl創建用來編輯的SWT控件,即控件,控件的基本提示信息,控件的GridData,控件的錯誤信息的圖片等等。該方法中通過調用保護方法protected abstract IControlCreator createControlCreator()來獲取真實的子類控件。getLayoutDataBuilder用來封裝控件的布局,同樣,子類可以通過重構來改變自己的布局。

這個方法同樣是對控件的處理,之所以同控件的添加分開,是因為這個方法中的操作并不是每個控件必須的,根據需要繼承開發。這個封裝方法中做了兩件事,一個是binding,也就是處理控件的聯動,這里封裝了控件的屬性值綁定聯動,以及反向綁定的聯動處理。另一個就是為當前的編輯控件增加焦點監聽器。動態更改控制值

這個方法除了在load的時候會調用,在對象編輯器使用的過程中,控件的聯動也會使用到,比如最常見到的,瀏覽資源,點擊瀏覽的button彈出資源選擇框,根據選中的對象回填對象編輯器中的值,就會用到該方法。在這個setValue方法中,是通過數據改變的封裝接口去實現的。我們可以看下這個數據改變的容器接口。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 封裝
    +關注

    關注

    125

    文章

    7587

    瀏覽量

    142136
  • Eclipse
    +關注

    關注

    1

    文章

    114

    瀏覽量

    21387
收藏 人收藏

    評論

    相關推薦

    圖片動畫控件和Video image控件的使用方法

    在UI開發過程中,序列幀基本是繞不開的,AWTK 支持多種方法實現序列幀顯示,本文介紹圖片動畫控件和Video image控件的使用方法。
    的頭像 發表于 08-06 16:44 ?387次閱讀
    圖片動畫<b class='flag-5'>控件</b>和Video image<b class='flag-5'>控件</b>的使用方法

    請問vscode和eclipse哪個好使?

    如題,最近開發esp32,在windows環境下。 說實話,idf的開發環境比以前搭建起來簡單多了,無論是vscode還是eclipse里都有一鍵安裝的
    發表于 06-21 06:43

    鴻蒙實戰開發學習:【HiView插件開發

    Hiview是一個跨平臺的終端設備維測服務集,其中是由插件管理平臺和插件實現的各自功能構成整套系統。 本文描述了hiview插件開發的全部流程。
    的頭像 發表于 03-12 11:52 ?1111次閱讀
    鴻蒙實戰<b class='flag-5'>開發</b>學習:【HiView<b class='flag-5'>插件</b><b class='flag-5'>開發</b>】

    插件型功率電感封裝類型對使用有影響嗎

    插件型功率電感封裝類型對使用有影響嗎 編輯:谷景電子 插件型功率電感在電子電路中是特別重要的一種電感元件,它對于保證電路的穩定運作有著特別重要的影響。要想充分發揮插件型功率電感的功能作
    的頭像 發表于 02-18 13:52 ?315次閱讀

    idea可以運行eclipse項目嗎

    可以運行Eclipse項目。Eclipse是一個開發環境,主要用于Java程序的開發,但它也支持其他編程語言如C++、Python等。通過Eclip
    的頭像 發表于 12-06 13:57 ?1927次閱讀

    eclipse安裝web插件步驟

    Eclipse 是一款功能強大的集成開發環境 (IDE),廣泛用于 Java 開發和各種 Web 應用程序的開發。通過安裝適當的插件,可以將
    的頭像 發表于 12-06 13:48 ?855次閱讀

    怎么用eclipse創建web項目

    使用Eclipse創建Web項目是一種常見的方式,下面將分步驟詳解如何使用Eclipse創建Web項目。在開始之前,請確保已經安裝了Java開發工具包(JDK)和Eclipse集成
    的頭像 發表于 12-06 13:40 ?1465次閱讀

    如何在eclipse配置jdk環境

    Eclipse中配置JDK環境非常重要,它是開發Java程序的基礎。本文將詳細介紹如何在Eclipse中配置JDK環境。 下載和安裝JDK 首先,在Oracle官網上下載適用于您的操作系統的JDK
    的頭像 發表于 12-06 11:49 ?1269次閱讀

    eclipse中沒有web怎么辦

    Eclipse中沒有Web的情況下,可以采取以下的解決方法: 第一種方法是通過Eclipse插件來添加Web開發功能。原始的Eclipse
    的頭像 發表于 12-06 11:30 ?2090次閱讀

    eclipse怎么使用命令行

    Eclipse是一種功能強大的集成開發環境(IDE),可用于開發各種類型的應用程序,包括Java、C/C++、Python等。雖然Eclipse提供了用戶友好的圖形用戶界面,但有時候我
    的頭像 發表于 12-06 11:26 ?1894次閱讀

    eclipse怎么運行java項目

    Eclipse中運行Java項目是非常簡單的。下面了解一下如何在Eclipse中運行Java項目。 首先,確保您已經在Eclipse中創建了Java項目。如果您尚未創建,請按照以下步
    的頭像 發表于 12-06 11:25 ?1688次閱讀

    eclipse怎么和navicat連接

    在進行軟件開發和數據庫管理時,常常需要將Eclipse與數據庫進行連接以便于進行開發、調試和測試工作。Navicat是一款強大的數據庫管理工具,可以與Eclipse進行無縫連接。本文將
    的頭像 發表于 12-06 11:10 ?3127次閱讀

    怎樣用現成的Eclipse插件來調試AT32系列芯片以及SLIB的配置范例

    本篇應用指南主要描述怎樣用現成的Eclipse插件來調試AT32系列芯片以及SLIB的配置范例。本文檔僅以AT32F403A為例進行說明,關于AT32F403A SLIB的詳細說明,請詳閱《AT32F403ASecurity Library Application Not
    發表于 10-24 07:41

    怎樣用現成的Eclipse插件來調試AT32系列芯片

    Eclipse是著名的跨平臺的自由集成開發環境(IDE),通過安裝不同的插件Eclipse可以支持不同的計算機語言,比如C/C++等,Eclipse
    發表于 10-24 07:12

    eclipse的快捷鍵匯總

    由于新的公司使用的 eclipse+myEclipe 的插件開發,myEclipse 的插件對 Hibernate 和 Struts 的支持要比 IDEA 操作容易的多,原來制作 Hi
    發表于 09-28 07:59