亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編輯器關閉后如何刪除 IMarkers(或者為什么 IMarker.TRANSIENT )?

編輯器關閉后如何刪除 IMarkers(或者為什么 IMarker.TRANSIENT )?

素胚勾勒不出你 2022-11-02 10:51:38
我正在 Eclipse 中編寫一個自定義編輯器,并且只是集成了自定義錯誤識別?,F在我面臨一個奇怪的問題:我可以將標記添加到我的編輯器中,這些標記可以很好地顯示,我也可以在編輯器運行時刪除它們。什么不起作用:當我關閉我的編輯器時,我希望標記消失/被刪除。我現在正在做的是使用像這樣設置的瞬態屬性創建標記:marker.setAttribute(IMarker.TRANSIENT, true);但這似乎并沒有改變任何東西。試圖通過源查看器 annotation-model刪除所有注釋。這不起作用,因為當我嘗試掛鉤到我的 editorsdispose()方法或將 a 添加DisposeListener到我的sourceviewers textwidget時, sourceviewer 已經被處理并getSourceViewer().getAnnotationModel();返回null。我的deleteMarkers方法:private void deleteMarkers() {        IAnnotationModel anmod = getSourceViewer().getAnnotationModel();        Iterator<Annotation> it = anmod.getAnnotationIterator();        while (it.hasNext()) {            SimpleMarkerAnnotation a = (SimpleMarkerAnnotation) it.next();            anmod.removeAnnotation(a);            try {                a.getMarker().delete();            } catch (CoreException e) {                e.printStackTrace();            }        }    }任何幫助表示贊賞^^
查看完整描述

1 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

掛鉤到您的編輯器關閉事件,獲取對編輯器 IResource 的引用(我相信您可以在 IEditorInput 上獲得該引用)并在相關資源上調用 IResource#deleteMarkers(),這將在您關閉編輯器時刪除它們。按照設計,當編輯器關閉時,eclipse 不會刪除標記。

這里有一些參考: http ://help.eclipse.org/kepler/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/core/resources/IResource.html#deleteMarkers(java.lang .字符串,布爾值,整數)


查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號