equal
deleted
inserted
replaced
164 case _ => None |
164 case _ => None |
165 } |
165 } |
166 |
166 |
167 private def update_tree(thread_entries: List[Debugger_Dockable.Thread_Entry]) |
167 private def update_tree(thread_entries: List[Debugger_Dockable.Thread_Entry]) |
168 { |
168 { |
169 val old_thread_selection = |
169 val old_thread_selection: Option[String] = |
170 thread_selection() orElse |
170 thread_selection() orElse thread_entries.headOption.map(_.thread_name) |
171 thread_entries.collectFirst { case t if t.debug_states.nonEmpty => t.thread_name } |
|
172 |
171 |
173 tree.clearSelection |
172 tree.clearSelection |
174 root.removeAllChildren |
173 root.removeAllChildren |
175 |
174 |
176 for (thread_entry <- thread_entries) { |
175 for (thread_entry <- thread_entries) { |
183 root.add(thread_node) |
182 root.add(thread_node) |
184 } |
183 } |
185 |
184 |
186 tree.getModel.asInstanceOf[DefaultTreeModel].reload(root) |
185 tree.getModel.asInstanceOf[DefaultTreeModel].reload(root) |
187 |
186 |
|
187 tree.expandRow(0) |
|
188 for (i <- Range.inclusive(tree.getRowCount - 1, 1, -1)) tree.expandRow(i) |
|
189 |
188 old_thread_selection match { |
190 old_thread_selection match { |
189 case Some(thread_name) if thread_entries.exists(t => t.thread_name == thread_name) => |
191 case Some(thread_name) if thread_entries.exists(t => t.thread_name == thread_name) => |
190 val i = |
192 val i = |
191 (for (t <- thread_entries.iterator.takeWhile(t => t.thread_name != thread_name)) |
193 (for (t <- thread_entries.iterator.takeWhile(t => t.thread_name != thread_name)) |
192 yield 1 + t.debug_states.length).sum |
194 yield 1 + t.debug_states.length).sum |
193 tree.addSelectionRow(i + 1) |
195 tree.addSelectionRow(i + 1) |
194 case _ => |
196 case _ => |
195 } |
197 } |
196 for (i <- 0 until tree.getRowCount) tree.expandRow(i) |
|
197 |
198 |
198 tree.revalidate() |
199 tree.revalidate() |
199 } |
200 } |
200 |
201 |
201 def update_vals() |
202 def update_vals() |