There are static ArrayLists of TextEditor instances.. and a parallel contexts ArrayList (should be List if anything). These lists are only added to. When an editor is closed it is not disposed but stays in its list.
The editor should just be disposed when it closes unless we only want one open at a time, in which case we should just keep one instance that shows/hides as needed.