[Top][All Lists]
[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