DevFaqListenEditorChanges

Revision as of 10:50, 7 December 2009 by Mmetelka (Talk | contribs)

How can I track what file the user is currently editing?

The editor keeps a registry of open editors; you can track changes in which editor is active using this method: org.netbeans.api.editor.EditorRegistry.addPropertyChangeListener(myListener);. If you attach any listeners to the Document or anything else in the active editor text component, remember to remove them when the active editor changes.

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
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo