<source id="4vppl"><ins id="4vppl"></ins></source>
<u id="4vppl"><sub id="4vppl"><label id="4vppl"></label></sub></u>
<object id="4vppl"></object>
  • <u id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></u>

    <object id="4vppl"></object>
    <b id="4vppl"><sub id="4vppl"><tr id="4vppl"></tr></sub></b>

      <i id="4vppl"><thead id="4vppl"></thead></i>

      <thead id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></thead>

      當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計軟件教程 > Eclipse Action 深入學(xué)習(xí)筆記(2)

      Eclipse Action 深入學(xué)習(xí)筆記(2)
      2010-01-14 23:11:04  作者:  來源:

      Object Action
      這種Action是跟彈出的上下文菜單相關(guān)的, 因此它主要用在org.eclipse.ui.popupMenus擴展點下的objectContribution 節(jié)點中, 這里有幾個屬性需要做一下說明:
      adaptable:true表示能將選中對象適配為objectClass中指定的類型
      nameFilter:這個是用來指定哪種文件類型為當(dāng)前contribution可用, 比如設(shè)置為*.java表示當(dāng)前action只針對java文件
      objectClass:指定contribution只用于那種對象類型
      contribution的其他屬性跟前面介紹的大同小異

      對contribition過濾和可用性的控制
      只有當(dāng)前選中的文件類型是nameFilter指定的類型, 或者選中的對象是objectClass指定的類型,contribution才會在右鍵菜單中出現(xiàn),而是否可用則要通過判斷選中的對象是否和enablesFor屬性中表達(dá)式規(guī)定的數(shù)量, 表達(dá)式的定義包括:!表示選中0個, ?表示0個或1個, +表示1個或多個, multiple, 2+兩個或多個, n表示具體個數(shù), *表示任意個

      objectContribution還提供visibility節(jié)點來控制contribution可見性, 它比通過nameFilter 和objectClass控制功能更強, 比如要達(dá)到和objectClass="org.eclipse.core.resources.IResource"同樣的效果可以這樣寫:

      xml 代碼
       
      1. <objectContribution ...   
      2.   <visibility>  
      3.       <objectClass  
      4.          name="org.eclipse.core.resources.IResource"/>  
      5.   visibility>  
      6.    ...the other stuff here...   
      7. objectContribution>  

      如果當(dāng)前contribution只用于可寫的對象,可以這樣寫:

      xml 代碼
       
      1. <objectContribution ...>  
      2.    <visibility>  
      3.       <and>  
      4.          <objectClass  
      5.             name="org.eclipse.core.resources.IResource"/>  
      6.          <objectState name="readOnly" value="false"/>  
      7.       and>  
      8.     visibility>  
      9.    ... the other stuff here ...   
      10. objectContribution>  

      visibility包括了not, and和or邏輯表達(dá)式節(jié)點以及adapt等Boolean表達(dá)式節(jié)點, adapt節(jié)點會先將選中對象適配為指定類型然后給其下級節(jié)點使用,比如這里:

      xml 代碼
       
      1. <adapt type="org.eclipse.core.resources.IResource">  
      2.    <objectState name="readOnly" value="false"/>  
      3. adapt>  


      首先適配成IResource,然后判斷其狀態(tài),該節(jié)點通常和and操作符結(jié)合使用, 如果適配器或者引用的類型沒有加載,那么將返回EvaluationResult.NOT_LOADED, 如果指定的類型不存在,將拋出ExpressionException 異常
      and節(jié)點只有下級子節(jié)點表達(dá)式都返回true才為true
      instanceof節(jié)點 只有選中的對象是指定的名稱時才為true, 和objectClass不同之處在于,它還可以與其他的元素通過and和or元素一起使用
      not節(jié)點只有在下級節(jié)點返回false才為true
      objectClass看上面的例子就知道了
      objectState 比較選中的對象的狀態(tài)是否指定的值
      or節(jié)點只要下級節(jié)點中有一個為true就返回為true
      pluginState節(jié)點對指定的插件的狀態(tài)進(jìn)行檢測, 這里的狀態(tài)有兩種:installed或者actived, 比如這樣寫:

      xml 代碼
       
      1. <pluginState id="org.eclipse.pde" value="installed"/>   


      表示只有org.eclipse.pde插件安裝才可見
      systemProperty 舉個例子就知道怎么用了

      xml 代碼
       
      1. <systemProperty name="user.language" value="en"/>  


      systemTest 跟systemProperty大同小異,只不過它可以通過and和or與其他的節(jié)點聯(lián)合使用
      test節(jié)點舉個例子來說吧:

      xml 代碼
       
      1. <test  
      2.     property="org.eclipse.debug.ui.projectNature"  
      3.     value="org.eclipse.jdt.core.javanature"/>  


      表示只有選中的是java項目下的對象當(dāng)前contribution才可見, 如果進(jìn)行比較的property沒有加載,將返回EvaluationResult.NOT_LOADED, 這里指定的進(jìn)行比較的屬性能通過使用org.eclipse.core.expressions.propertyTesters進(jìn)行擴展,具體的實現(xiàn)可參考o(jì)rg.eclipse.debug.internal.ui.ResourceExtender類


      安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
      国产午夜福三级在线播放_亚洲精品成a人片在线观看_亚洲自慰一区二区三区_久久棈精品久久久久久噜噜
      <source id="4vppl"><ins id="4vppl"></ins></source>
      <u id="4vppl"><sub id="4vppl"><label id="4vppl"></label></sub></u>
      <object id="4vppl"></object>
    1. <u id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></u>

      <object id="4vppl"></object>
      <b id="4vppl"><sub id="4vppl"><tr id="4vppl"></tr></sub></b>

        <i id="4vppl"><thead id="4vppl"></thead></i>

        <thead id="4vppl"><li id="4vppl"><label id="4vppl"></label></li></thead>
        欧美在线观看免费人成 | 亚洲一区在线官网观看 | 中文字幕a级片 | 五月丁香久久伊人 | 亚洲欧美另类久久久精品能播放的 | 久久深夜福利亚洲网站 |