日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 17:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

Eclipse插件開發(fā),接觸過這塊的同學(xué)們都知道,無論是控件也好,向?qū)б晥D也罷。但凡每次開發(fā)個(gè)不起眼的小功能,從零開始堆代碼,都很煩躁,各種composite開始套,各種GridLayout布局開始調(diào)。當(dāng)你的公司要求你開發(fā)大量的插件功能時(shí),可能多數(shù)的時(shí)間你都在堆砌這種煩躁的代碼。

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

每個(gè)Tab頁中我們進(jìn)行了完整的對(duì)象編輯器的封裝,每個(gè)對(duì)象編輯器上,放置了多個(gè)屬性編輯器。

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

可以看下我們可以進(jìn)行多少種不同的控件封裝。

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

StringPropertyEditor

StringPropertyEditor就是Label+Text,例如:

1.首先它一定是先有一個(gè)對(duì)象屬性的基類AbstractPropertyAccessor,基類中的方法:

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

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

其實(shí)這是相當(dāng)長的一個(gè)封裝,抽取出核心事務(wù),我們來說一說。添加控件

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

這個(gè)方法同樣是對(duì)控件的處理,之所以同控件的添加分開,是因?yàn)檫@個(gè)方法中的操作并不是每個(gè)控件必須的,根據(jù)需要繼承開發(fā)。這個(gè)封裝方法中做了兩件事,一個(gè)是binding,也就是處理控件的聯(lián)動(dòng),這里封裝了控件的屬性值綁定聯(lián)動(dòng),以及反向綁定的聯(lián)動(dòng)處理。另一個(gè)就是為當(dāng)前的編輯控件增加焦點(diǎn)監(jiān)聽器。動(dòng)態(tài)更改控制值

這個(gè)方法除了在load的時(shí)候會(huì)調(diào)用,在對(duì)象編輯器使用的過程中,控件的聯(lián)動(dòng)也會(huì)使用到,比如最常見到的,瀏覽資源,點(diǎn)擊瀏覽的button彈出資源選擇框,根據(jù)選中的對(duì)象回填對(duì)象編輯器中的值,就會(huì)用到該方法。在這個(gè)setValue方法中,是通過數(shù)據(jù)改變的封裝接口去實(shí)現(xiàn)的。我們可以看下這個(gè)數(shù)據(jù)改變的容器接口。

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 封裝
    +關(guān)注

    關(guān)注

    128

    文章

    9343

    瀏覽量

    149092
  • Eclipse
    +關(guān)注

    關(guān)注

    1

    文章

    121

    瀏覽量

    22701
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在 S32DS 3.6 中安裝 IAR Eclipse 插件并創(chuàng)建 IAR 項(xiàng)目?

    如何在 S32DS 3.6 中安裝 IAR Eclipse 插件并創(chuàng)建 IAR 項(xiàng)目? There is an article here that explains how to operate
    發(fā)表于 04-23 07:44

    工作流插件節(jié)點(diǎn)節(jié)點(diǎn)說明

    節(jié)點(diǎn)中開發(fā)者需要為必選的輸入?yún)?shù)指定數(shù)據(jù)來源,支持設(shè)置為固定值或引用上游節(jié)點(diǎn)的輸出參數(shù)。插件節(jié)點(diǎn)運(yùn)行時(shí),會(huì)調(diào)用工具處理輸入?yún)?shù),并以工具定義的輸出結(jié)構(gòu)輸出處理后的數(shù)據(jù)。 添加使用端插件節(jié)點(diǎn) 本文參考鴻蒙官方文檔
    發(fā)表于 03-23 16:54

    RK3576+ES8388音頻開發(fā):tinymix控件全解析

    在基于RK3576的嵌入式音頻開發(fā)中,tinymix是調(diào)試音頻通路的核心工具——它能直接操作音頻CODEC(本文中為ES8388)的底層配置項(xiàng)。但很多開發(fā)者面對(duì)tinymix輸出的81項(xiàng)控件常會(huì)
    的頭像 發(fā)表于 03-10 08:03 ?6772次閱讀
    RK3576+ES8388音頻<b class='flag-5'>開發(fā)</b>:tinymix<b class='flag-5'>控件</b>全解析

    CW32系列MCU在Eclipse GCC + JLink下的使用示例分享

    CW32系列MCU在Eclipse GCC + JLink下的使用示例: 1、下載安裝Eclipse IDE for Embedded C/C++ Developers。 2、下載安裝
    發(fā)表于 02-02 06:57

    經(jīng)驗(yàn)分享 | eclipse搭建先楫開發(fā)環(huán)境

    最近有小伙伴留言,想在eclipse平臺(tái)下開發(fā)先楫的MCU,但是苦于沒有工程模板,自己折騰了半天又遇到一堆報(bào)錯(cuò),很費(fèi)時(shí)間?;诖诵枨螅P者基于HPM6E00EVK一步一步搭建在eclipse下的
    的頭像 發(fā)表于 12-19 08:32 ?1179次閱讀
    經(jīng)驗(yàn)分享 | <b class='flag-5'>eclipse</b>搭建先楫<b class='flag-5'>開發(fā)</b>環(huán)境

    廣州易顯操作按鈕控件實(shí)驗(yàn)

    目錄一、實(shí)驗(yàn)?zāi)康亩?shí)驗(yàn)設(shè)備三、實(shí)驗(yàn)步驟3.1新建工程3.2新建畫面3.3添加控件3.4模擬工程3.5硬件驗(yàn)證一、實(shí)驗(yàn)?zāi)康?1、AVR、PIC、STM等8位或者32位單片機(jī)的串口與單片機(jī)智能顯示卡
    的頭像 發(fā)表于 12-02 16:29 ?577次閱讀
    廣州易顯操作按鈕<b class='flag-5'>控件</b>實(shí)驗(yàn)

    那些我用OpenCV+Qt趟過哪些坑?寫給視覺應(yīng)用開發(fā)者的避坑指南

    的桌面軟件,問題就全來了。 “界面卡成PPT了”、“點(diǎn)個(gè)按鈕程序就無響應(yīng)”、“想加個(gè)新功能,代碼改得心驚膽戰(zhàn),到處報(bào)錯(cuò)……” 我看著他,就像看到五六前的自己。那時(shí)我也以為,視覺應(yīng)用開發(fā) = 調(diào)好算法
    發(fā)表于 12-02 09:43

    在windows上用Eclipse IDE調(diào)試蜂鳥E203,用的開發(fā)板是哪個(gè)型號(hào)的?

    在windows上用Eclipse IDE調(diào)試蜂鳥E203,用的開發(fā)板是哪個(gè)型號(hào)的,有哪位大佬調(diào)試出來了,求告知
    發(fā)表于 11-07 07:19

    所見即所得——Luban-Lite VS Code插件開發(fā)實(shí)現(xiàn)“命令行自由”

    NEWS所見即所得!Luban-LiteVSCode插件指南親愛的開發(fā)者朋友們,你是否還在為嵌入式開發(fā)中頻繁切換命令行而抓狂?配置環(huán)境參數(shù)如“走迷宮”,編譯燒錄還需切換AiBurn?今天,匠芯創(chuàng)為您
    的頭像 發(fā)表于 08-07 15:38 ?1269次閱讀
    所見即所得——Luban-Lite VS Code<b class='flag-5'>插件</b>讓<b class='flag-5'>開發(fā)</b>實(shí)現(xiàn)“命令行自由”

    調(diào)試工具:Eclipse調(diào)試工具欄與窗口的深入分析

    摘要 :在嵌入式系統(tǒng)開發(fā)領(lǐng)域,高效的調(diào)試工具鏈對(duì)于項(xiàng)目的成功實(shí)施具有決定性意義。本文聚焦于 Eclipse 調(diào)試工具欄與窗口的功能特性,深入剖析其在嵌入式開發(fā)調(diào)試過程中的關(guān)鍵作用。以廈門國科安芯
    的頭像 發(fā)表于 07-07 11:32 ?1088次閱讀
    調(diào)試工具:<b class='flag-5'>Eclipse</b>調(diào)試工具欄與窗口的深入分析

    【微五科技CF5010RBT60開發(fā)板試用體驗(yàn)】開發(fā)環(huán)境搭建——項(xiàng)目編譯環(huán)境

    1 從廠家獲得SDK 2 Eclipse設(shè)置 Eclipse 在SDK中的路徑:CF5010_SDK\\\\3 開發(fā)環(huán)境\\\\toolchain\\\\eclipse 進(jìn)入以上路徑
    發(fā)表于 06-25 20:10

    用 VSCode 編寫自己的 KiCad 插件(下)

    “ ?很多小伙伴都想自己開發(fā) KiCad 插件,但不知從何入手。本文由華秋電子的另一位 KiCad 開發(fā)者波波同學(xué)撰寫,分享了如何快速搭建環(huán)境,并開發(fā)一個(gè)
    的頭像 發(fā)表于 06-19 11:44 ?3250次閱讀
    用 VSCode 編寫自己的 KiCad <b class='flag-5'>插件</b>(下)

    用VSCode編寫自己的KiCad插件(上)詳細(xì)步驟教程

    “ ?很多小伙伴都想自己開發(fā) KiCad 插件,但不知從何入手。本文由華秋電子的另一位 KiCad 開發(fā)者波波同學(xué)撰寫,分享了如何快速搭建環(huán)境,并開發(fā)一個(gè)
    的頭像 發(fā)表于 06-17 11:10 ?3458次閱讀
    用VSCode編寫自己的KiCad<b class='flag-5'>插件</b>(上)詳細(xì)步驟教程

    使用DevEcoStudio 開發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件

    # 使用DevEcoStudio 開發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件 #鴻蒙開發(fā)工具 #DevEco Studio ## 1. 概述 DevEco Studio 是華為提供
    發(fā)表于 06-11 17:18

    從代碼到部署,一站式躍遷 鴻道Intewell Developer的集成開發(fā)革命

    在軟件開發(fā)工具演進(jìn)歷程中,Eclipse等傳統(tǒng)開發(fā)工具曾占據(jù)重要地位,但由于其復(fù)雜插件及依賴鏈等弊端,導(dǎo)致啟動(dòng)慢、占資源、大文件處理耗時(shí)長、UI交互繁瑣等困難不斷暴露。在應(yīng)對(duì)新場景時(shí)存
    的頭像 發(fā)表于 06-11 14:21 ?654次閱讀
    從代碼到部署,一站式躍遷 鴻道Intewell Developer的集成<b class='flag-5'>開發(fā)</b>革命
    东乡族自治县| 斗六市| 漾濞| 七台河市| 将乐县| 旬邑县| 温州市| 唐河县| 武平县| 衡阳市| 穆棱市| 始兴县| 高密市| 民县| 邹平县| 汪清县| 龙里县| 昌宁县| 武夷山市| 富锦市| 阿合奇县| 二连浩特市| 东丰县| 社会| 镇平县| 喜德县| 洞头县| 苍溪县| 资源县| 钟山县| 漯河市| 绥江县| 元氏县| 视频| 德惠市| 漳州市| 离岛区| 天等县| 嘉鱼县| 姜堰市| 贵阳市|