// don't share, or you might end up listening to stale old windows...
     // do window listeners keep a pointer to the things they listen to, or is it the other way around?
     // it seems like it's probably the other way around.
     // in which case, it's bad for observable things to stay around for longer than their observers.
     // anyways, the overhead of making a new one is pretty small.
     return new WindowListener() {
         public void windowActivated(WindowEvent e) {
           // nothing...
         }
         public void windowClosed(WindowEvent e) {
           node.store();