程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Eclipse插件開發之添加簡單的GUI元素

Eclipse插件開發之添加簡單的GUI元素

編輯:JAVA編程入門知識

編寫Eclipse插件的方法很簡單,你只需要編寫一個應用程序,並把它"添加"到Eclipse上。但是與編寫音樂類似,在能夠創作一部著作之前,首先必須學習大量的相關知識。

本文將討論少許幾個簡單的GUI元素:

· 工具條按鈕

· 菜單項

· 對話框

為了使用這些元素,我們將稍微修改已有的插件,順便編寫一個可供使用的工具類。

擴展點(Extension Points)

我們不能隨意地向Eclipse用戶界面的任何地方添加窗口小部件,只能在特殊的、指定的、有記載的位置添加。這些位置被稱為擴展點(extension points)。在基本的Eclipse安裝中存在數以百計可供使用的擴展點。插件自身也可以發布新的擴展點。我們來看一看列表中的擴展點。打開Invokatron項目(見天極網《Eclipse插件開發快速入門》)中的plugin.xml文件,進入"擴展"(Extensions)屬性頁。"所有擴展"樹列出了插件的不同的窗口部件,根據它們出現時所在的擴展點來分類。例如Invokatron編輯器位於編輯器(org.eclipse.ui.editor)擴展點中。圖1顯示了這個屬性頁。

圖1:擴展頁

現在請點擊"添加"(ADD)按鈕,出現了圖2所示的列表。

圖2:新增擴展向導,擴展列表

上下滾動這個列表可以看到很多可供使用的擴展點。你可能注意到了有兩種類型的擴展點:帶有擴展模板的(用加號標識)和不帶擴展模板的。大多數經常用到的擴展點都帶有用於輔助開發擴展的模板。圖2中選擇的擴展點Action Set,帶有一個叫做"Hello World"操作集的模板。當你選擇某個模板的時候,會出現簡短的描述。"下一個"頁面將詢問模板使用的參數。

現在請關閉向導並返回到"擴展"屬性頁。選擇"Invokatron編輯器"。在這個屬性頁中,你可能注意到了我們在向導中為Invokatron編輯器輸入的信息。正常的擴展需要一個唯一的標識符(ID字段)、一個供顯示的名稱(Name字段)和它所屬的擴展點(Point字段)。從模板中建立的擴展(例如Invokatron編輯器)需要更多的參數。沒有模板的擴展點也需要更多的信息,但是這些信息只能在文本編輯器中輸入。

添加工具條按鈕

現在我們已經了解了擴展點是什麼,讓我們來添加一個擴展吧。我們首先添加的是一個工具條按鈕。這個按鈕將調用我們前面建立的新的Invokatron向導。

添加工具條按鈕有三個步驟:

1.聲明一個新擴展。

2.用特定的標記來擴充該聲明。

3.編寫操作委托類

1.聲明一個新擴展

我們已經知道怎樣實現這個步驟了。簡單地返回到擴展點下的plugin.xml編輯器。點擊"添加"。工具條按鈕在org.eclipse.ui.actionSets擴展點下面。不要使用模板,直接點擊"完成"。輸入下面一些內容:

· Id: NewInvokatronAction

· Name: New Invokatron Document Action

· Point: (使用默認值:org.eclipse.ui.actionSets)

返回plugin.xml屬性頁,Eclipse給這個文件添加了新的代碼片斷。

2.用特定的標記來擴充該聲明

這個新擴展幾乎毫無內容。我們在下面添加一些標記(tag)。你知道可以使用哪些標記嗎?你可以右鍵點擊"所有擴展"樹中的元素,選擇"新增"菜單,會得到一個列表。你也可以查看Eclipse文檔。

現在我們看到自己可以在<extension>標記內部添加一個<actionSet>標記。它可以包含零個或多個<menu>標記,後面跟著零個或多個<action>標記,還可以選擇使用<description>標記。但是其中最重要的標記是<action>。它可以同時描述工具條按鈕和菜單項。>BR>下面是我們將添加的工具條按鈕的XML代碼片斷。其中的新代碼是黑體的。我們在後面會剖析這段代碼。

<extension id="NewInvokatronAction"

name="New Invokatron Document Action"

point="org.eclipse.ui.actionSets">

<actionSet id="invokatron.actionSet"

label="Invokatron Actions"

visible="true">

<action id="invokatron.wizard.RunWizardAction"

toolbarPath="org.eclipse.ui.workbench.file/new.ext"

icon="icons/InvokatronIcon16.gif"

tooltip="Starts the New Invokatron Document Wizard."

class="invokatron.wizard.RunWizardAction">

</action>

</actionSet>

</extension>

所有這些操作都可以在plugin.xml編輯器中用圖形化的方式來完成,但是我們查看XML以明確字段的完整文本內容。此處的<actionSet>標記只含有一個操作(action)。操作表現為菜單中的項或工具條中的按鈕的對象。操作的屬性實在太多了,你可以在在線文檔中查閱。其中最有趣的一些屬性是:

· id:操作的唯一標識符。可以用於在運行時引用操作。

· toolbarPath:放置工具條按鈕的位置。

· icon:工具條按鈕或菜單項左側顯示的圖標。它是一個與開發目錄關聯的16×16的GIF文件。請把 圖片存放到Invokatronicons文件夾中。這個文件夾已經被包含到二進制建立路徑中,因此該圖標將放入插件的文檔目錄中。

· tooltip:當鼠標停留在工具條按鈕上的時候出現的文本內容。

· class:這些操作的完整的合格的類名稱。
關於工具條路徑

工具條路徑(toolbar path)指出了添加工具條按鈕的位置。由於任何人都可以建立工具條,而且有時候一個按鈕可以包含子選項,因此我們用分層的標識符列表來訪問這個位置。下面是經常用到的工具條列表和它們的路徑:

· 文件: org.eclipse.ui.workbench.file 帶有一些公共的分組標志(你可以添加按鈕的更多的位置):

o "新建"區:new.ext

o "保存"區:save.ext

o "打印"區:print.ext

o "建立"區:build.ext

· 導航: org.eclipse.ui.workbench.navigate

· 載入: org.eclipse.debug.ui.launchActionSet

· 編輯器表示:org.eclipse.ui.edit.text.actionSet.presentation

· 搜索: org.eclipse.search.searchActionSet

· Java元素建立:org.eclipse.jdt.ui.JavaElementCreationActionSet

· 組: Team

· CVS: CVS

如果你提供的工具條ID不帶有標志ID,你的按鈕就會被添加到緊挨著這個工具條的一個新工具條之上。接著這個新工具條就可以被添加到Eclipse GUI上了。有時候你會看到使用工具條路徑"正常的(Normal)"的插件。這是舊的名稱轉換。在Eclipse 3中這樣使用的時候會建立一個叫作"Normal"的新工具條。如果你建立一個新工具條ID,你的工具條會被添加到"文件"工具條後面。

請注意"文件"工具條的"新建"組標志。這是我們添加自己的按鈕的地方。由於標志ID是new.ext,完整的路徑就是:

org.eclipse.ui.workbench.file/new.ext

3.編寫操作委托類

最後一步是編寫少量的用於實現操作的Java。這個類稱為操作委托。

package invokatron.wizard;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved