my favorite

2007/04/05

XUL

XUL:XML User Interface Language
透過XUL可以實作Mozilla相關的Application,而Mozilla Firefox本身就是XUL的AP之一
此外,還可以開發Firefox Extension、Thunderbird Extension等程式,好處是

  1. 語法易懂:Markup Language學習曲線較低,懂得各種的Tag(包含attribute、value)
  2. 概念簡單:瞭解DOM(Tree structure)、ML、以及JavaScript的使用方法
  3. 可跨平台:只要附屬XULRunner,便可以執行XUL Application(有點像VM的概念,不過複雜度應該差不少
想要開發一個XUL AP,可以透過簡單的文字編輯器即可,當然每個人有各自愛用的TextEditor。包含EmEditor、PSPad、UltraEdit、Notepad++、Editplus、Eclipse+Plugin(Oxygen、Vex..etc)等等都是不錯的選擇。當然還要下載XULRunner,然後將資料按照架構擺放,便可以使用XULRunner執行所開發的XUL AP。

首先,先依照架構放置所需要的檔案
(這邊是參考網路上一位Ryan所編寫的XUL Runner tutorial)

  • /applicationName
    • /chrome
      • /applicationName
        • your app files
      • chrome.manifest
    • /defaults
      • /preferences
        • prefs.js
    • application.ini
綠色斜體字部份就是所開發的XUL AP的名稱,其它部份則是根據原來的預設名稱即可
也就是說,如果applicationName叫做HugeFirstXUL,app files則稱為HelloXUL
(programming界的濫觴),架構如下

  • /HugeFirstXUL
    • /chrome
      • /HugeFirstXUL
        • HelloXUL
      • chrome.manifest
    • /defaults
      • /preferences
        • prefs.js
    • application.ini
完成了架構之後,接下來編寫chrome.manifest、prefs.js、以及application.ini三個檔案的細節。
chrome.manifest
content applicationName file:applicationName/

prefs.js
pref("toolkit.defaultChromeURI","chrome://applicationName/content/startPage.xul");
這邊的
startPage.xul是HelloXUL.xul

application.ini
[App]
Vendor=Your_Company (ex: Huge_Home)
Name=Your_Name (ex: Huge)
Version=Your_Version (ex: v0.01)
BuildID=Your_BuildID (ex: 20070406)

[Gecko]
MinVersion=1.8
MaxVersion=1.8


最後一步,就是執行XULRunnder啦,將下載好的XULRunner安裝好
(如果是Windows,那麼可以將解壓縮後的XULRunner資料夾複製一份到AP的資料夾下。
接下來只要執行XULRunner application.ini就可以了 :)
實作一個簡單的Button,整個流程大致如此,附上程式碼
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<button label="Hello XUL" image="xulplanet.png"/>
< /window>

註:將AP包裝成jar的部份,再找另一篇補述了

No comments:

BIO

Taipei, GuTing, Taiwan

huang47 | personal

huang47 | personal