class MainWindow(SplitApplicationWindow): """ The main application window. """ #### 'SplitApplicationWindow' interface ################################### # The ratio of the size of the left/top pane to the right/bottom pane. ratio = Float(0.3) # The direction in which the window is split. direction = Str('vertical') ########################################################################### # Protected 'SplitApplicationWindow' interface. ########################################################################### def _create_lhs(self, parent): """ Creates the left hand side or top depending on the split. """ model = NodeTreeModel(node_manager=node_manager) model.root = os.path.abspath(os.curdir) self._tree = NodeTree(parent, model=model) self._tree.on_trait_change(self._on_tree_anytrait_changed) return self._tree.control def _create_rhs(self, parent): """ Creates the right hand side or bottom depending on the split. """ self._python_shell = PythonShell(parent) self._python_shell.bind('widget', self._tree) self._python_shell.bind('w', self._tree) return self._python_shell.control ########################################################################### # Private interface. ########################################################################### #### Trait event handlers ################################################# def _on_tree_anytrait_changed(self, tree, trait_name, old, new): """ Called when any trait on the tree has changed. """ print 'trait', trait_name, 'value', new return