IEditorPart
を介してにアクセスできますIWorkbenchPage
。
IEditorPart editor = ((IWorkbenchPage) PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage()).getActiveEditor();
そこから、エディター、そのエディターによってロードされたもの、または基盤となるGUI要素など、他のさまざまなクラスにアクセスIEditorInput
できFile
ますControl
。(エディターの種類(テキストファイル、図など)によっては、異なるクラスにキャストする必要がある場合があることに注意してください。)
FileEditorInput input = (FileEditorInput) editor.getEditorInput();
StyledText editorControl = ((StyledText) editor.getAdapter(Control.class));
String path = input.getFile().getRawLocationURI().getRawPath();
これで、リスナーをに追加できますControl
。たとえばKeyAdapter
、それぞれのエディターで発生するすべてのキーストロークを監視するために。
editorControl.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Editing in file " + path);
}
});
または、すべてのキーストロークの監視が多すぎる場合はIPropertyListener
、エディターに登録できます。このリスナーは、たとえば、エディターが「ダーティ」になったとき、または保存されたときに通知されます。の意味はにありpropId
ますIWorkbenchPartConstants
。
editor.addPropertyListener(new IPropertyListener() {
@Override
public void propertyChanged(Object source, int propId) {
if (propId == IWorkbenchPartConstants.PROP_DIRTY) {
System.out.println("'Dirty' Property Changed");
}
}
});