2012-09-21 49 views
3

我已經創建了一個GUI按鈕,並且我想在用戶只選擇任何文件夾時啓用該按鈕。如何僅爲文件夾操作顯示GUI擴展按鈕?

我試圖給像下面的配置xml,但它總是顯示。

  <ext:apply>     
      <ext:view name="DashboardView"> 
       <ext:control id="DashboardToolbar"/> 
      </ext:view> 
       <ext:view name="FolderView"> 
        <ext:control id="ItemToolbar"/> 
       </ext:view> 

      </ext:apply> 

回答

3

您必須在Command接口中執行isEnabled方法,並進行以下檢查,以確保所選元素的類型爲FOLDER。

YourEditor.YourCommand.prototype.isEnabled = 
      function YourCommand$isEnabled(selection) { 
    var itemID = selection.getItem(0); 

    if ($models.getItemType(itemID) != $const.ItemType.FOLDER) { 
     return false; 
    } 
    else 
     return true; 
}; 
  • 如果返回的isEnabled功能true,該按鈕將被啓用。
  • 如果返回false,該按鈕將被禁用

如果您需要關於如何設置可以參考擴展的更多信息:

+0

回報($ models.getItemType(itemID)== $ const.ItemType.FOLDER); –

1

有沒有這樣的事情作爲「FolderView」。將Tridion的GUI中的View視爲屏幕。因此,您的DashboardView左側有一棵樹,右側有一個列表,然後在打開組件時彈出一個Component視圖等。

根據您的要求,您將添加一個按鈕DashboardView並希望基於選擇啓用/禁用。您必須在您的命令的JavaScript的isEnabled方法中實現該邏輯。

如果你看看現有的任何擴展,你會看到一個selection參數被傳遞給這個方法。您可以從中確定哪些項目(以及它們的類型),從而確定何時啓用/禁用按鈕。