![](/img/trans.png)
[英]How to open a xml file with my editor in eclipse plugin development?
[英]Eclipse Plugin Development - Detect/Listen File open in editor
我需要檢測何時在 Eclipse 中打開文件(任何類型)並在發生這種情況時運行一些代碼。
我已嘗試使用以下代碼,但似乎多次調用該函數:
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(new IPartListener2() {
@Override
public void partOpened(IWorkbenchPartReference partRef) {
System.out.println("File opened");
}
});
}
});
有沒有辦法在 Eclipse RCP 中做到這一點?
IPartListener2.partOpened
是正確的使用方法。 確保只設置一次偵聽器。
partOpened
將對所有部分調用,因此您需要檢查您感興趣的部分。
@Override
public void partOpened(final IWorkbenchPartReference partRef)
{
// Check for editor reference and get the editor part
if (partRef instanceof IEditorReference &&
partRef.getPart(false) instanceof IEditorPart editorPart) {
// Example getting current IFile being edited:
IFile file = editorPart.getEditorInput().getAdapter(IFile.class);
}
}
注意:示例代碼使用 Java 16 類型模式,對於舊版本需要修改。
另請注意,通常不需要Display.asyncExec
來設置它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.