src/Tools/jEdit/src/debugger_dockable.scala
changeset 60850 d5d776c8a7e2
parent 60849 6e49311ef842
child 60851 35932863b114
equal deleted inserted replaced
60849:6e49311ef842 60850:d5d776c8a7e2
    10 import isabelle._
    10 import isabelle._
    11 
    11 
    12 import java.awt.{BorderLayout, Dimension}
    12 import java.awt.{BorderLayout, Dimension}
    13 import java.awt.event.{ComponentEvent, ComponentAdapter, KeyEvent, MouseEvent, MouseAdapter}
    13 import java.awt.event.{ComponentEvent, ComponentAdapter, KeyEvent, MouseEvent, MouseAdapter}
    14 import javax.swing.{JTree, JScrollPane}
    14 import javax.swing.{JTree, JScrollPane}
    15 import javax.swing.tree.{DefaultMutableTreeNode, TreeSelectionModel}
    15 import javax.swing.tree.{DefaultMutableTreeNode, DefaultTreeModel, TreeSelectionModel}
    16 import javax.swing.event.{TreeSelectionEvent, TreeSelectionListener}
    16 import javax.swing.event.{TreeSelectionEvent, TreeSelectionListener}
    17 
    17 
    18 import scala.swing.{Button, Label, Component, SplitPane, Orientation}
    18 import scala.swing.{Button, Label, Component, SplitPane, Orientation}
    19 import scala.swing.event.ButtonClicked
    19 import scala.swing.event.ButtonClicked
    20 
    20 
    78       pretty_text_area.update(new_snapshot, Command.Results.empty, Pretty.separate(new_output))
    78       pretty_text_area.update(new_snapshot, Command.Results.empty, Pretty.separate(new_output))
    79 
    79 
    80     current_snapshot = new_snapshot
    80     current_snapshot = new_snapshot
    81     current_threads = new_threads
    81     current_threads = new_threads
    82     current_output = new_output
    82     current_output = new_output
    83 
       
    84     revalidate()
       
    85     repaint()
       
    86   }
    83   }
    87 
    84 
    88 
    85 
    89   /* tree view */
    86   /* tree view */
    90 
    87 
    95   tree.getSelectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION)
    92   tree.getSelectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION)
    96 
    93 
    97   private def update_tree(entries: List[Debugger_Dockable.Tree_Entry])
    94   private def update_tree(entries: List[Debugger_Dockable.Tree_Entry])
    98   {
    95   {
    99     tree.clearSelection
    96     tree.clearSelection
       
    97     val tree_model = tree.getModel.asInstanceOf[DefaultTreeModel]
   100 
    98 
   101     root.removeAllChildren
    99     root.removeAllChildren
   102     val entry_nodes = entries.map(entry => new DefaultMutableTreeNode(entry))
   100     val entry_nodes = entries.map(entry => new DefaultMutableTreeNode(entry))
   103     for (node <- entry_nodes) root.add(node)
   101     for (node <- entry_nodes) root.add(node)
   104 
   102 
       
   103     tree_model.reload(root)
   105     for (i <- 0 until tree.getRowCount) tree.expandRow(i)
   104     for (i <- 0 until tree.getRowCount) tree.expandRow(i)
   106 
   105 
   107     for ((entry, node) <- entries zip entry_nodes) {
   106     for ((entry, node) <- entries zip entry_nodes) {
   108       for (debug_state <- entry.debug_states) {
   107       for (debug_state <- entry.debug_states) {
   109         val sub_node = new DefaultMutableTreeNode(debug_state.function)
   108         val sub_node = new DefaultMutableTreeNode(debug_state.function)
   110         node.add(sub_node)
   109         node.add(sub_node)
   111       }
   110       }
   112     }
   111     }
       
   112     tree_model.reload(root)
   113 
   113 
   114     tree.revalidate()
   114     tree.revalidate()
   115   }
   115   }
   116 
   116 
   117   private def action(node: DefaultMutableTreeNode)
   117   private def action(node: DefaultMutableTreeNode)