2012-11-20 21 views
1

我目前進入Eclipse插件開發。我需要爲自定義構建器使用IMarker。我通過org.eclipse.core.resources.IMarker創建了項目標記,並且我在兩種不同情況下使用了IMarker.PROBLEM刪除一個特定的IMarker在建設者

如何刪除和刷新特定的IMarker而不刪除項目資源中的所有iMarker

我試過delete()方法中的IMarker實現。但它並沒有幫助我。我在項目中只找到方法deleteMarkers(),它實際上刪除了項目資源中可用的所有標記。

iProject.deleteMarkers(IMarker.PROBLEM, true, 
        IProject.DEPTH_INFINITE); 
iProject.refreshLocal(IProject.DEPTH_INFINITE, null); 

請幫我通過這個,我想在指定的情況只刪除特定IMarker。我無法刪除單個標記。是否有任何來源或參考可以指向我?謝謝。

回答

2

基本上,你有存儲或找到你的特定標記。你可以尋找一個選擇資源的標記(不是一個項目,但目前的資源):

IMarker[] problems = null; 
int depth = IResource.DEPTH_INFINITE; 
try { 
    problems = resource.findMarkers(IMarker.PROBLEM, true, depth); 
} catch (CoreException e) { 
    // something went wrong 
} 

當你有正確的標記,你可以1)通過設置其屬性更新它,或2)使用IMarker.delete()刪除它。

這裏使用的代碼片段來自Mark My Words tutorial