/[fenfire]/fenfire/org/fenfire/demo/mind.py
ViewVC logotype

Diff of /fenfire/org/fenfire/demo/mind.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by humppake, Tue Aug 12 20:12:34 2003 UTC revision 1.6 by humppake, Tue Aug 12 21:10:38 2003 UTC
# Line 1  Line 1 
1  # (c): Matti J. Katila  # (c): Matti J. Katila, Asko Soukka
2    
3    import jarray
4    
 #import vob  
5  import org.fenfire as ff  import org.fenfire as ff
6  import org.nongnu.alph as alph  import org.nongnu.alph as alph
7  import org.nongnu.storm as storm  import org.nongnu.storm as storm
# Line 8  from java.lang import Math Line 9  from java.lang import Math
9  from org.fenfire.vocab import RDF  from org.fenfire.vocab import RDF
10  from org.fenfire.util import Pair  from org.fenfire.util import Pair
11    
 import jarray  
   
12  # save and load  # save and load
13  from com.hp.hpl.mesa.rdf.jena.mem import ModelMem  from com.hp.hpl.mesa.rdf.jena.mem import ModelMem
14  import os.path  import os.path
# Line 21  os.system('mkdir -p '+DIR) Line 20  os.system('mkdir -p '+DIR)
20  pool = storm.impl.DirPool(java.io.File(DIR), java.util.HashSet())  pool = storm.impl.DirPool(java.io.File(DIR), java.util.HashSet())
21  myalph = alph.impl.StormAlph(pool)  myalph = alph.impl.StormAlph(pool)
22    
 vob.putil.demo.usingNormalBindings = 0  
   
 # manual system to toggle the load point ;)  
 # first time put 0 in here,  
 # then Qtrl-Q for quit and save  
 # then put load_toggle to 1 and rerun.  
23  do_load_graph = 0  do_load_graph = 0
   
24  # automatic system for previous  # automatic system for previous
25  if os.path.isfile(FILE):  if os.path.isfile(FILE):
26      print 'Loading the RDF graph from the file %s', FILE      print 'Loading the RDF graph from the file %s' % (FILE)
27      do_load_graph = 1      do_load_graph = 1
28  else:  else:
29      print 'Creating a new RDF graph'      print 'Creating a new RDF graph'
# Line 50  fen.enfiladeOverlap = fen.txt.getTranscl Line 42  fen.enfiladeOverlap = fen.txt.getTranscl
42  alphContent = ff.util.AlphContent(fen)  alphContent = ff.util.AlphContent(fen)
43    
44  vs = w.createVobScene()  vs = w.createVobScene()
45  vs.put(background((1, 1, 1)))  vs.put(background((.9, .9, .9)))
46    
47  textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24)  textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24)
48  nodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1)  nodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1)
# Line 68  class MindMap: Line 60  class MindMap:
60      def __init__(self):      def __init__(self):
61          self._acc = None          self._acc = None
62          self.offset = 0          self.offset = 0
63    
64      def insertText(self, text):      def insertText(self, text):
65          if self._acc == None:          if self._acc == None:
66              self.setAccursed(ff.util.RDFUtil.N(fen.graph, M.Data))              self.setAccursed(ff.util.RDFUtil.N(fen.graph, M.Data))
67              self.offset = 0              self.offset = 0
68          alphContent.insertText(self._acc, self.offset, text, 1)          alphContent.insertText(self._acc, self.offset, text, 1)
69          self.offset += len(text)          self.offset += len(text)
70    
71      def deleteText(self):      def deleteText(self):
72          p('offs:', self.offset)          if dbg: p('offs:', self.offset)
73          if self._acc == None: return          if self._acc == None: return
74                    
75          alphContent.deleteText(self._acc, self.offset-1,  self.offset)          alphContent.deleteText(self._acc, self.offset-1,  self.offset)
# Line 83  class MindMap: Line 77  class MindMap:
77          l = len(alphContent.getText(fen.graph, self._acc))          l = len(alphContent.getText(fen.graph, self._acc))
78          if self.offset == 0 and l == 0:          if self.offset == 0 and l == 0:
79              fen.graph.rm_111(self._acc, RDF.type, M.Data)              fen.graph.rm_111(self._acc, RDF.type, M.Data)
80              try:  #            try:
81                  self.setAaccursed(  #                self.setAaccursed(
82                      fen.graph.findN_X11_Iter(RDF.type, M.Data).next())  #                    fen.graph.findN_X11_Iter(RDF.type, M.Data).next())
83              except: self.setAccursed(None)  #            except:
84          p('offs:', self.offset, l)              self.setAccursed(None)
85            if dbg: p('offs:', self.offset, l)
86    
87      def setAccursed(self, node):      def setAccursed(self, node):
88          self._acc = node          self._acc = node
# Line 95  class MindMap: Line 90  class MindMap:
90              self.offset = len(alphContent.getText(fen.graph, self._acc))              self.offset = len(alphContent.getText(fen.graph, self._acc))
91          else:          else:
92              self.offset = 0              self.offset = 0
93    
94      def getAccursed(self):      def getAccursed(self):
95          return self._acc          return self._acc
96    
97      def rmLinkTo(self, obj, with):      def rmLinkTo(self, obj, with):
98          iter = fen.graph.findN_11X_Iter(obj, M.link)          iter = fen.graph.findN_11X_Iter(obj, M.link)
99          try:          try:
# Line 108  class MindMap: Line 105  class MindMap:
105                  if obj == iter.next():                  if obj == iter.next():
106                      fen.graph.rm_111(with, M.link, obj)                      fen.graph.rm_111(with, M.link, obj)
107          except: pass          except: pass
108            
109      def isLinked(self, obj):      def isLinked(self, obj):
110          iter = fen.graph.findN_11X_Iter(obj, M.link)          iter = fen.graph.findN_11X_Iter(obj, M.link)
111          if iter.hasNext(): return 1          if iter.hasNext(): return 1
# Line 125  class MindMap: Line 122  class MindMap:
122              if obj == iter.next(): return 1              if obj == iter.next(): return 1
123          return 0          return 0
124    
   
   
125  class Scene:  class Scene:
126      def __init__(self):      def __init__(self):
127          w.setCursor('default')          w.setCursor('default')
128          self.mm = MindMap()          self.mm = MindMap()
129            if do_load_graph:
130  #        init = [ 'elephant', 'carrot', 'mouse', 'line', 'smoke',              print "Setting accursed node."
131  #                'dog', 'fish', 'wait', 'light', 'smile', 'work to do' ]              self.center = fen.graph.findN_X1A_Iter(M.link).next()
132  #        for i in init:          else: self.center = None
 #           self.mm.setAccursed(None)  
 #           self.mm.insertText(i)  
         self.center = None  
133          self.scumm = [ 'go', 'link', 'unlink' ]          self.scumm = [ 'go', 'link', 'unlink' ]
134    
135      def mouse(self, ev):      def mouse(self, ev):
136          vs = self.vs          vs = self.vs
   
137          if ev.getType() == ev.MOUSE_CLICKED:          if ev.getType() == ev.MOUSE_CLICKED:
138              print              print
139              if ev.getButton() == 3: #Modifiers() == ev.MOUSE_BUTTON3:              if ev.getButton() == 3: #Modifiers() == ev.MOUSE_BUTTON3:
# Line 196  class Scene: Line 187  class Scene:
187                  self.mm.deleteText()                  self.mm.deleteText()
188                  if self.mm.getAccursed() == None:                  if self.mm.getAccursed() == None:
189                      self.center = None                      self.center = None
190            elif key == "Ctrl-S":
191                p("going to save");
192    
193                m = ff.swamp.Graphs.toModel(fen.graph);
194                m.write(java.io.FileWriter(FILE));
195          elif key == "Ctrl-Q":          elif key == "Ctrl-Q":
196              p("going to save");              p("going to save");
197    
# Line 205  class Scene: Line 201  class Scene:
201              java.lang.System.exit(43)              java.lang.System.exit(43)
202          elif key == "Ctrl-R":          elif key == "Ctrl-R":
203              vob.putil.demo.loadScenes()              vob.putil.demo.loadScenes()
204            elif key == "Return":
205                if self.mm.getAccursed() == None:
206                    vob.AbstractUpdateManager.setNoAnimation()
207                self.mm.insertText("\n")
208          elif len(key) == 1:          elif len(key) == 1:
209              if self.mm.getAccursed() == None:              if self.mm.getAccursed() == None:
210                  vob.AbstractUpdateManager.setNoAnimation()                  vob.AbstractUpdateManager.setNoAnimation()
211              self.mm.insertText(key)              self.mm.insertText(key)
212                            
               
               
213      def scene(self, vs):      def scene(self, vs):
214          self.vs = vs          self.vs = vs
215          vs.put(background((1, 1, 1)))          vs.put(background((1, 1, 1)))
# Line 373  class MindNet: Line 371  class MindNet:
371          self.n.get(node).put(with, '1')          self.n.get(node).put(with, '1')
372    
373  currentScene = Scene()  currentScene = Scene()
374    vob.putil.demo.usingNormalBindings = 0
   
   
   
   
   
   
   
   
   
   

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26