equal
deleted
inserted
replaced
137 component |
137 component |
138 } |
138 } |
139 } |
139 } |
140 status.renderer = new Node_Renderer |
140 status.renderer = new Node_Renderer |
141 |
141 |
142 private def handle_changed(changed_nodes: Set[Document.Node.Name]) |
142 private def handle_update(restriction: Option[Set[Document.Node.Name]] = None) |
143 { |
143 { |
144 Swing_Thread.now { |
144 Swing_Thread.now { |
145 // FIXME correlation to changed_nodes!? |
|
146 val snapshot = Isabelle.session.snapshot() |
145 val snapshot = Isabelle.session.snapshot() |
|
146 val nodes = restriction getOrElse snapshot.version.nodes.keySet |
147 |
147 |
148 var nodes_status1 = nodes_status |
148 var nodes_status1 = nodes_status |
149 for { |
149 for { |
150 name <- changed_nodes |
150 name <- nodes |
151 node <- snapshot.version.nodes.get(name) |
151 node <- snapshot.version.nodes.get(name) |
152 val status = Isar_Document.node_status(snapshot.state, snapshot.version, node) |
152 val status = Isar_Document.node_status(snapshot.state, snapshot.version, node) |
153 } nodes_status1 += (name -> status) |
153 } nodes_status1 += (name -> status) |
154 |
154 |
155 if (nodes_status != nodes_status1) { |
155 if (nodes_status != nodes_status1) { |
177 } |
177 } |
178 |
178 |
179 case phase: Session.Phase => |
179 case phase: Session.Phase => |
180 Swing_Thread.now { session_phase.text = " " + phase.toString + " " } |
180 Swing_Thread.now { session_phase.text = " " + phase.toString + " " } |
181 |
181 |
182 case changed: Session.Commands_Changed => handle_changed(changed.nodes) |
182 case changed: Session.Commands_Changed => handle_update(Some(changed.nodes)) |
183 |
183 |
184 case bad => System.err.println("Session_Dockable: ignoring bad message " + bad) |
184 case bad => System.err.println("Session_Dockable: ignoring bad message " + bad) |
185 } |
185 } |
186 } |
186 } |
187 } |
187 } |
195 override def exit() { |
195 override def exit() { |
196 Isabelle.session.syslog_messages -= main_actor |
196 Isabelle.session.syslog_messages -= main_actor |
197 Isabelle.session.phase_changed -= main_actor |
197 Isabelle.session.phase_changed -= main_actor |
198 Isabelle.session.commands_changed -= main_actor |
198 Isabelle.session.commands_changed -= main_actor |
199 } |
199 } |
|
200 |
|
201 handle_update() |
200 } |
202 } |