src/Tools/jEdit/src/document_model.scala
changeset 43697 77ce24aa1770
parent 43661 39fdbd814c7f
child 43715 518e44a0ee15
--- a/src/Tools/jEdit/src/document_model.scala	Thu Jul 07 14:10:50 2011 +0200
+++ b/src/Tools/jEdit/src/document_model.scala	Thu Jul 07 22:04:30 2011 +0200
@@ -45,7 +45,7 @@
     }
   }
 
-  def init(session: Session, buffer: Buffer, master_dir: String, thy_name: String): Document_Model =
+  def init(session: Session, buffer: Buffer, master_dir: Path, thy_name: String): Document_Model =
   {
     exit(buffer)
     val model = new Document_Model(session, buffer, master_dir, thy_name)
@@ -57,14 +57,13 @@
 
 
 class Document_Model(val session: Session,
-  val buffer: Buffer, val master_dir: String, val thy_name: String)
+  val buffer: Buffer, val master_dir: Path, val thy_name: String)
 {
   /* pending text edits */
 
-  private def capture_header(): Exn.Result[Thy_Header.Header] =
-    Exn.capture {
-      Thy_Header.check(thy_name, buffer.getSegment(0, buffer.getLength))
-    }
+  private def node_header(): Document.Node.Header =
+    new Document.Node.Header(master_dir,
+      Exn.capture { Thy_Header.check(thy_name, buffer.getSegment(0, buffer.getLength)) })
 
   private object pending_edits  // owned by Swing thread
   {
@@ -78,14 +77,14 @@
         case Nil =>
         case edits =>
           pending.clear
-          session.edit_node(master_dir + "/" + thy_name, capture_header(), edits)
+          session.edit_node(thy_name, node_header(), edits)
       }
     }
 
     def init()
     {
       flush()
-      session.init_node(master_dir + "/" + thy_name, capture_header(), Isabelle.buffer_text(buffer))
+      session.init_node(thy_name, node_header(), Isabelle.buffer_text(buffer))
     }
 
     private val delay_flush =
@@ -105,7 +104,8 @@
   def snapshot(): Document.Snapshot =
   {
     Swing_Thread.require()
-    session.snapshot(master_dir + "/" + thy_name, pending_edits.snapshot())
+    val node_name = (master_dir + Path.basic(thy_name)).implode  // FIXME
+    session.snapshot(node_name, pending_edits.snapshot())
   }