新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于GEF的MiniGUI可視化開發工具設計

        基于GEF的MiniGUI可視化開發工具設計

        作者: 時間:2011-11-21 來源:網絡 收藏

        1 概 述
        隨著嵌入式系統的廣泛應用,圖形用戶界面(Graphical User Interface,GUI)在嵌入式系統中的地位也越來越重要。
        目前比較成熟的嵌入式GUI系統包括MicroWin-dows、Qt/Embedded、等。MicroWindows可移植性好,開發重點在底層的圖形引擎,但窗口系統和圖形接口方面的功能還比較欠缺。Qt/Embedded可移植性較好,Qt的X Window程序可以非常方便地移植到嵌入式系統,但對系統硬件要求較高,主要用于手持設備。最初是為了工業控制系統開發的,定制能力強,速度快,性能好,特別適合于實時性要求高的場合。由于受到嵌入式系統硬件資源的限制,對嵌入式系統GUI的基本要求包括:占用資源少、高性能、高可靠性、可配置。本文選擇作為圖形界面支持系統。
        MiniGUI是一款遵循LGPL條款的純自由軟件,是根據嵌入式系統應用特點量身定做的圖形界面支持系統,得到了廣泛應用。它提供了完備的多窗口機制和消息傳遞機制,以及對話框和常用的控件類,包括文本框、按鈕、編輯框、列表框等;非常小巧,包含全部功能的庫文件僅為300 KB左右。傳統的MiniGUI程序開發是文本編輯器的,開發人員在程序源代碼編寫過程中無法預先看到窗口、控件的整體效果,缺乏一個的開發環境。因此,本文了一個MiniGUI,并使用Eclipse (Graphical Editing Framework)實現。

        本文引用地址:http://www.104case.com/article/150039.htm


        2 可視化整體設計
        2.1 功能需求
        可視化開發工具要提供界面布局設計功能,主要包括:界面上控件位置的擺放、屬性的設置,為每個控件定義callback函數;菜單、狀態條、位圖編輯;響應界面編輯過程中發生的交互事件,比如drop/drag、undo/redo、move、de-lete、resize等;保存及解析呈現相應布局的功能;根據用戶設計生成可運行的MiniGUI源代碼。
        2.2 整體結構
        可視化開發工具主要由界面設計工具和源代碼生成工具兩部分組成。整體結構如圖1所示。

        界面設計工具:實現所見即所得的界面編輯器功能,可以根據需要改變和調整顯示的內容和形式,這使得用戶界面的制作非常方便。采用傳統的面向對象設計方法來開發可視化界面,會遇到用戶界面和底層的數據雜合、接口擴展導致的類膨脹等問題,因此界面設計工具使用MVC模式設計。用戶通過界面設計工具的“控件設計”設置控件屬性;“交互事件響應”用于響應界面編輯過程中發生的交互事件,完成控件屬性的修改。這兩部分對應MVC中的Control-ler。“控件類”保存控件的各種屬性,對應Model。“控件顯示”根據控件類的屬性設置顯示控件,對應View。XML文檔則負責保存界面布局,控件類也能夠根據XML解析文檔內容得到自身屬性。
        源代碼生成工具:通過遍歷所有控件類的屬性,將圖形用戶界面布局按照運行平臺要求(目前僅支持RTEMS)生成相應的MiniGUI源代碼。
        2.3 組織結構
        所有控件類通過樹的形式來管理。樹的頂層表示一個管理的工程,其下包括所有的對話框、菜單、狀態條及位圖資源,對話框的子節點是其上顯示的所有控件,菜單包括彈出菜單和菜單項,狀態條與對話框類似,樹形結構如圖2所示。由于XML文檔會被Java解析成樹形結構,解析界面布局的過程就是一個樹的遍歷過程。使用樹形結構來組織控件類,能夠讓軟件在邏輯上簡單易懂,控件組織關系清晰明了,并且通過樹的遍歷可以保存界面布局及生成源代碼。

        由于圖形用戶界面中許多元素具有共同屬性,本文把這些元素的共有屬性及方法抽象出來作為基類。主要使用2個基類:容器類Content和控件類Control。Content主要包括容器ID、文字屬性及保存解析控件等方法;Control主要包括控件ID、位置大小、控件風格等屬性,以及保存解析控件、生成源代碼等方法。其中,對話框、菜單、狀態條和位圖繼承自Content,如圖3(a)所示;對話框控件繼承自Control,如圖3(b)所示。在生成源代碼等操作時自頂向下遍歷整個界面工程,可直接調用基類的方法,無需區分控件具體的類別。這樣提高了代碼的重用度,減少了冗余代碼。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 崇礼县| 元谋县| 吴旗县| 扶余县| 甘泉县| 枣强县| 邵阳县| 繁峙县| 堆龙德庆县| 临泉县| 自治县| 沧州市| 磐安县| 胶州市| 滨州市| 汤阴县| 尼玛县| 云阳县| 美姑县| 海丰县| 潮安县| 米易县| 罗定市| 农安县| 饶阳县| 镇巴县| 饶平县| 偏关县| 永平县| 兰西县| 册亨县| 鄂尔多斯市| 娱乐| 大新县| 无极县| 五常市| 炎陵县| 华阴市| 德化县| 新邵县| 玉林市|