equal
deleted
inserted
replaced
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) |