DevFaqListenEditorChanges
How can I track what file the user is currently editing?
The editor keeps a registry of open editors; you can track the active editor using this method: org.netbeans.api.editor.EditorRegistry.addPropertyChangeListener(myListener);.
IMPORTANT: If you attach any listener to the Document or anything else in the active editor text component, remember to remove them when the active editor changes.
Applies to: Netbeans 6.x and later
Platforms: All
Track the currently modified files by DataObject Registry listening - Sample code
DataObject.Registry registries = DataObject.getRegistry(); registries.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { System.out.println("ChangedListener: o = " + e.getSource().getClass()); System.out.println("ChangedListener: o.source = " + e.getSource()); } }); DataObject[] objects = registries.getModified(); for (int i = 0; i < objects.length; i++) { DataObject dataObj = objects[I]; System.out.println("data object name = " + dataObj.getName()); System.out.println("data object pimary file name = " + dataObj.getPrimaryFile().getName()); Set fss = dataObj.files(); Iterator iter = fss.iterator(); while (iter.hasNext()) { FileObject fo = (FileObject) iter.next(); System.out.println("\tset file object: " + fo.getName()); } }
Libraries needed
- Datasystems API
- File System API
- Nodes API
- Utilities API