private class FrameListener extends InternalFrameAdapter {
@Override
public void internalFrameClosing(InternalFrameEvent evt) {
Editor editor = frames.inverse().get(evt.getInternalFrame());
if (editor != null) {
getEditorService().closeEditor(editor);
} else {
evt.getInternalFrame().dispose();
}