org.eclipse.ui.viewActions

外掛程式通常會將行為提供到已在工作台中的檢視畫面中。 這是利用 org.eclipse.ui.viewActions 延伸點來完成的。 這個延伸點可讓外掛程式將功能表項目、子功能表和工具列項目提供到現有的檢視畫面本端下拉功能表和本 端工具列中。

您可能已注意到,每次選取 Readme 檔時,導覽器檢視畫面本端工具列中都會有一個項目進入啟用狀態。 這個項目也會出現在檢視畫面的本端下拉功能表中。 這些動作出現,是由於 Readme 工具外掛程式利用 viewActions 延伸項目來提供它們。

以下是相關的 plugin.xml 構成要素。

<extension
    point = "org.eclipse.ui.viewActions">
        <viewContribution 
            id="org.eclipse.ui.examples.readmetool.vc1" 
            targetID="org.eclipse.ui.views.ResourceNavigator">
                <action id="org.eclipse.ui.examples.readmetool.va1"
                    label="&amp;Readme View Extension"
                    menubarPath="additions"
                    toolbarPath="additions" 
                    icon="icons/basic/obj16/editor.gif" 
                    tooltip="Run Readme View Extension" 
                    helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
                    class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
                    enablesFor="1">
                    <selection class="org.eclipse.core.resources.IFile" name="*.readme"/>
                </action>
        </viewContribution>
</extension>

其中指定了一個含唯一 ID 的檢視構成要素。 我們將動作新增其中的檢視畫面是在 targetID 中指定的。 我們正在提供至資源導覽器檢視畫面的功能表。我們沿著功能表列和工具列位置指定新動作的標籤。 (如果需要功能表和工具列位置的完整討論,請參閱功能表和工具列路徑)。

我們也指定應該啟用動作的狀況。 當有 IFile 類型的選項且其副檔名為 ".readme" 時,就可以見到會啟用這個動作。 當然,這就是您按一下資源導覽器時所發生的動作。

plugin.xml 中的資訊就是所有必須移入適當功能表和工具列的內容。 在實際從功能表或工具列中選取動作之前,不會執行任何外掛程式碼。 plugin.xml 中所指定的實作類別必須實作 IViewActionDelegate 介面。

在這個範例中,Readme 外掛程式提供 ViewActionDelegate 來實作這個動作。 如果您瀏覽這個類別,您會見到它包含處理選項變更、呼叫動作及記住它是為了哪個檢視畫面而建立的方法。

動作本身只會啟動一個指出已執行檢視畫面動作的對話框。

public void run(org.eclipse.jface.action.IAction action) {
    MessageDialog.openInformation(view.getSite().getShell(),
        "Readme Editor", 
        "View Action executed");
}

雖然這個動作很簡單,但我們仍可以想像利用選項及其它功能對話框可以如何讓這個動作做一些更有趣的事。