[Top][All Lists]
[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire demo/mm.py view/TextNodeVie...,
Asko Soukka <=