日本一区二区免费播放_麻豆导航_久久精品99_国产性av_色婷婷噜噜久久国产精品12p_av福利资源_精品综合久久

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > Eclipse Action 深入學習筆記(2)

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

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

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

objectContribution還提供visibility節(jié)點來控制contribution可見性, 它比通過nameFilter 和objectClass控制功能更強, 比如要達到和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>  

如果當前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邏輯表達式節(jié)點以及adapt等Boolean表達式節(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操作符結合使用, 如果適配器或者引用的類型沒有加載,那么將返回EvaluationResult.NOT_LOADED, 如果指定的類型不存在,將拋出ExpressionException 異常
and節(jié)點只有下級子節(jié)點表達式都返回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)進行檢測, 這里的狀態(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項目下的對象當前contribution才可見, 如果進行比較的property沒有加載,將返回EvaluationResult.NOT_LOADED, 這里指定的進行比較的屬性能通過使用org.eclipse.core.expressions.propertyTesters進行擴展,具體的實現(xiàn)可參考org.eclipse.debug.internal.ui.ResourceExtender類


安徽新華電腦學校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
相關熱詞搜索:筆記 學習
主站蜘蛛池模板: 高清日韩在线 | 国产成人香蕉久久久久 | 亚洲天堂免费在线视频 | 日夜操在线视频 | 国产日韩亚洲不卡高清在线观看 | 蜜臀αv| 精品久| 成人的天堂视频一区二区三区 | 国产精品久久久久无码av | 欧美日韩免费看 | 国产福利网站 | 国产精品人伦久久 | 欧美亚洲国产另类在线观看 | avwww在线| 亚洲成片| 青青草影院在线观看 | 国内自产拍自a免费毛片 | 玖玖玖传媒有限公司 | 中文字幕在线永久在线视频2020 | 欧美日韩在大午夜爽爽影院 | 久久伊人精品一区二区三区 | 欧美视频国产 | 黄色大片视频网站 | 久久综合一区二区 | 波多野结衣中文一区 | 国产午夜片 | 国产真实搭讪系列 | 日韩免费a级在线观看 | 国产丝袜制服在线 | 欧美一区二区三区不卡片 | 99热这里有精品 | 手机国产日韩高清免费看片 | 国产日韩欧美91 | 欧洲一区二区 | 欧美视频不卡一区二区三区 | 狠狠色噜噜狠狠狠狠999米奇 | 欧美一区二区三区精品 | 久久精品国产99国产精品亚洲 | 日日狠狠久久偷偷四色综合免费 | 日本高清色www网站色 | 午夜日b视频 |