fenfire-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ff-cvs] fenfire/org/fenfire/demo text-mm.py


From: Tuukka Hastrup
Subject: [ff-cvs] fenfire/org/fenfire/demo text-mm.py
Date: Wed, 27 Aug 2003 04:06:26 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Tuukka Hastrup <address@hidden> 03/08/27 04:06:26

Modified files:
        org/fenfire/demo: text-mm.py 

Log message:
        cleared logic

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/text-mm.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/text-mm.py
diff -u fenfire/org/fenfire/demo/text-mm.py:1.5 
fenfire/org/fenfire/demo/text-mm.py:1.6
--- fenfire/org/fenfire/demo/text-mm.py:1.5     Tue Aug 26 18:43:25 2003
+++ fenfire/org/fenfire/demo/text-mm.py Wed Aug 27 04:06:26 2003
@@ -32,7 +32,7 @@
 import org.nongnu.alph as alph
 import org.nongnu.storm as storm
 
-# save and load
+# saving and loading
 from com.hp.hpl.mesa.rdf.jena.mem import ModelMem
 import os.path
 
@@ -55,33 +55,29 @@
 pool = storm.impl.DirPool(java.io.File(POOLDIR), java.util.HashSet())
 myalph = alph.impl.StormAlph(pool)
 
-# set flag to load an old graph or creating new
-do_load_graph = 0
-if os.path.isfile(FILE):
-    print 'Loading the RDF graph from the file %s.' % (FILE)
-    do_load_graph = 1
-else:
-    print 'Creating a new RDF graph.'
-    do_load_graph = 0
 
 fen = ff.Fen()
 
-if do_load_graph:
+if os.path.isfile(FILE):
+    print 'Loading the RDF graph from the file %s.' % (FILE)
     m = ModelMem()
     m.read(java.io.FileReader(FILE), None);
     fen.constgraph = fen.graph = ff.swamp.Graphs.toGraph(m);
-else: fen.graph = fen.constgraph = ff.swamp.impl.HashGraph()
+else:
+    print 'Creating a new RDF graph.'
+    fen.graph = fen.constgraph = ff.swamp.impl.HashGraph()
 
 fen.txt = ff.impl.SimpleNodeContent(fen, myalph);
 fen.txtfunc = fen.txt.getNodeFunction()
 fen.enfiladeOverlap = fen.txt.getTransclusionIndex()
 
-structLink = ff.structure.StructLink.create(fen.graph)
+## Not used now
+#structLink = ff.structure.StructLink.create(fen.graph)
 
 
 def save():
     """Save the structure."""
-    p("going to save");
+    print "Saving the RDF graph to file %s." % FILE
     m = ff.swamp.Graphs.toModel(fen.graph);
     m.write(java.io.FileWriter(FILE));
 
@@ -90,34 +86,42 @@
 
 
 class MMScene:
-    def __init__(self):
-        self.fen = fen
-        self.alphContent = ff.util.AlphContent(fen)
+    def compinit(self):
+        """Finds mindmap components; if none, creates one.
+        Returns tuple: the first element is a list of other components but
+                       the second element, which is the largest component"""
+        # find all nodes of mindmap node type
+        nodes1 = fen.graph.findN_X11_Iter(RDF.type, MINDSTRUCT.Data)
+        # find subjects of link property (objects are in same components)
+        nodes2 = fen.graph.findN_X1A_Iter(STRUCTLINK.linkedTo)
+        # search nodes of both finds for components
+        nodes = Traversals.concat(nodes1, nodes2)
+        comps, largest = Traversals.findComponents(nodes, STRUCTLINK.linkedTo, 
fen.graph)
         components = []
-        if do_load_graph:
-            nodes1 = fen.graph.findN_X11_Iter(RDF.type, MINDSTRUCT.Data)
-            nodes2 = fen.graph.findN_X1A_Iter(STRUCTLINK.linkedTo)
-            nodes = Traversals.concat(nodes1, nodes2)
-            comps = Traversals.findComponents(nodes, STRUCTLINK.linkedTo, 
fen.graph)
-            centered = comps[1]
-            for component in comps[0].toArray():
+        if largest == None:
+            # No components, so create one for focus
+            largest = ff.util.RDFUtil.N(fen.graph, MINDSTRUCT.Data)
+            self.alphContent.setText(largest, 'Home', 1)
+        else:
+            # convert from java.util.Set to list
+            for component in comps.toArray():
                 components.append(component)
             components.remove(centered)
-        else:
-            centered = ff.util.RDFUtil.N(fen.graph, MINDSTRUCT.Data)
-            self.alphContent.insertText(centered, 0, 'Home', 1)
+        return components, largest
 
-        self.components = components
-
-        self.focused = centered
+    def __init__(self):
+        self.fen = fen
+        self.alphContent = ff.util.AlphContent(fen)
 
+        self.components, self.focused = self.compinit()
+        
     def text(self, node):
         return self.alphContent.getText(self.fen.graph, node)
 
     def newNode(self, text):
         node = ff.util.RDFUtil.N(fen.graph, MINDSTRUCT.Data)
         if text != None:
-            self.alphContent.insertText(node, 0, text, 1)
+            self.alphContent.setText(node, text, 1)
         self.components.append(node)
         return node
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]