gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire demo/mm.py view/TextNodeVie...


From: Asko Soukka
Subject: [Gzz-commits] fenfire/org/fenfire demo/mm.py view/TextNodeVie...
Date: Wed, 13 Aug 2003 19:41:11 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Asko Soukka <address@hidden>    03/08/13 19:41:11

Modified files:
        org/fenfire/demo: mm.py 
        org/fenfire/view: TextNodeView.java 

Log message:
        tuning

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

Patches:
Index: fenfire/org/fenfire/demo/mm.py
diff -u fenfire/org/fenfire/demo/mm.py:1.5 fenfire/org/fenfire/demo/mm.py:1.6
--- fenfire/org/fenfire/demo/mm.py:1.5  Wed Aug 13 18:58:29 2003
+++ fenfire/org/fenfire/demo/mm.py      Wed Aug 13 19:41:11 2003
@@ -1,22 +1,22 @@
-# (c): Matti J. Katila
-
-
+# (c): Matti J. Katila, Asko Soukka
 
 # This demo is a for mindmap
 
-
-from __future__ import nested_scopes
 import java, jarray
 from java.lang import Math
 
 import vob
 import org.fenfire as ff
+
 from org.fenfire.vocab import *
 from org.fenfire.vocab.lava import *
 from org.fenfire.swamp import Nodes
+import org.nongnu.alph as alph
+import org.nongnu.storm as storm
 
-# coloredquad
-from vob.putil.misc import *
+# save and load
+from com.hp.hpl.mesa.rdf.jena.mem import ModelMem
+import os.path
 
 def p(*s):
     print 'mindMapView2D', s
@@ -26,6 +26,23 @@
 w.setCursor("wait")
 vob.putil.demo.usingNormalBindings = 1
 
+# storm pool directory and mindmap file
+DIR = 'myFenfire/'
+FILE = DIR+'mindmap.rdf'
+
+os.system('mkdir -p '+DIR)
+pool = storm.impl.DirPool(java.io.File(DIR), 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
+
 # Now, before reading the xu stuff, render something 
 # to try to prevent NV driver
 # fallback to software rendering.
@@ -36,7 +53,16 @@
 w.renderStill(vs, 0)
 
     
-fen = ff.test.fen.newFen()
+fen = ff.Fen()
+if do_load_graph:
+    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()
+fen.txt = ff.impl.SimpleNodeContent(fen, myalph);
+fen.txtfunc = fen.txt.getNodeFunction()
+fen.enfiladeOverlap = fen.txt.getTransclusionIndex()
 alphContent = ff.util.AlphContent(fen)
 ppAct = ff.modules.pp.PPActionsImpl(fen)
 
@@ -258,13 +284,14 @@
         context.main = self.main
         self.main.context = context
         mindView.context = context
-        w.setCursor('default')
+        self.startup = 1
 
     def scene(self, vs):
         context.oldVS = vs
         vs.put(background(context.bgcolor))
         cs = vs.orthoBoxCS(0, "foo",0, 50,50, 1,1, 750,650)
         self.main.renderMain(vs, cs)
+        if self.startup: w.setCursor('default'); self.startup = 0
 
     def mouse(self, ev):
         if self.main.mouse(ev, context.oldVS):
@@ -274,7 +301,7 @@
         vob.AbstractUpdateManager.chg()
         
     def key(self, key):
-        p("key: ", key)
+        if (dbg): p("key: ", key)
         if key == 'Tab':
             context.setAccursed(None)
         elif key == 'Backspace':
@@ -302,13 +329,13 @@
             xy = jarray.zeros(2, 'f')
             nodeview.getXY(fen.graph, context.getAccursed(),
                                context.offset, xy)
-            xy[1] -= textstyle.getHeight(context.scale) * 1.5
+            xy[1] -= textstyle.getHeight(1) * 1.5
             context.offset = nodeview.getPos(fen.graph, context.getAccursed(), 
xy[0], xy[1])
        elif key == 'Down':
             xy = jarray.zeros(2, 'f')
             nodeview.getXY(fen.graph, context.getAccursed(),
                                context.offset, xy)
-            xy[1] += textstyle.getHeight(context.scale) * 0.5
+            xy[1] += textstyle.getHeight(1) * 0.5
             context.offset = nodeview.getPos(fen.graph, context.getAccursed(), 
xy[0], xy[1])
        elif key == 'Left':
             if context.offset > 0: context.offset -= 1
@@ -327,7 +354,7 @@
                                context.offset, xy)
             xy[0] = 0
             # we must return a half of the line height back to stay on the 
same line
-            xy[1] -= textstyle.getHeight(context.scale) * 0.5 # XXX scaling!
+            xy[1] -= textstyle.getHeight(1) * 0.5 # XXX scaling!
             context.offset = nodeview.getPos(fen.graph, context.getAccursed(), 
xy[0], xy[1])            
         if key == "End" or key == "Ctrl-E":
             # the end of line is reached by going to home of the line below
@@ -336,7 +363,7 @@
             nodeview.getXY(fen.graph, context.getAccursed(),
                                context.offset, xy)
             xy[0] = 0
-            xy[1] += textstyle.getHeight(context.scale) * 0.5 # XXX scaling!
+            xy[1] += textstyle.getHeight(1) * 0.5 # XXX scaling!
             context.offset = nodeview.getPos(fen.graph, context.getAccursed(), 
xy[0], xy[1])
             text = alphContent.getText(fen.graph, context.getAccursed())
             if context.offset < len(text): context.offset -= 1
Index: fenfire/org/fenfire/view/TextNodeView.java
diff -u fenfire/org/fenfire/view/TextNodeView.java:1.12 
fenfire/org/fenfire/view/TextNodeView.java:1.13
--- fenfire/org/fenfire/view/TextNodeView.java:1.12     Wed Aug 13 18:58:10 2003
+++ fenfire/org/fenfire/view/TextNodeView.java  Wed Aug 13 19:41:11 2003
@@ -32,6 +32,8 @@
 import org.nongnu.libvob.linebreaking.*;
 import org.nongnu.libvob.vobs.*;
 
+import java.lang.Math;
+
 /** A node function returning a vob that shows
  *  the given node as text.
  *  <em>Should</em> take a width and do linebreaking;
@@ -39,7 +41,7 @@
  */
 public class TextNodeView extends org.fenfire.view.lava.TextHandler 
        implements NodeFunction {
-public static final String rcsid = "$Id: TextNodeView.java,v 1.12 2003/08/13 
22:58:10 humppake Exp $";
+public static final String rcsid = "$Id: TextNodeView.java,v 1.13 2003/08/13 
23:41:11 humppake Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { System.out.println("TextNodeView::"+s); 
}
 
@@ -93,14 +95,27 @@
                    pos += ch.getBox(i).getLength();
                    xoffs += ch.getBox(i).getWidth(scale);
                } else {
-                   for (int j=0; j<ch.getBox(i).getLength(); j++)
+                   for (int j=0; j<ch.getBox(i).getLength(); j++) {
                        if (xoffs + ch.getBox(i).getX(j, scale) < x) pos++;
-                       else break;
+                       else {
+                           xoffs += ch.getBox(i).getX(j, scale);
+                           break;
+                       }
+                   }
                    break;
                }
            } else break;
        }
        while (br.getLine(pos, null) > line) pos--;
+
+       // more tuning
+       if (xoffs > 0) {
+           float xy[] = new float[1];
+           br.getLine(pos-1, xy);
+           if (dbg) pa("x: "+x+" xoffs: "+xoffs+" xy: "+xy[0]);
+           if (Math.abs(x - xy[0]) < Math.abs(x - xoffs)) pos--;
+       }
+       
        return pos;
     }
 




reply via email to

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