gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire demo/actions.py demo/buoyoi...


From: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire demo/actions.py demo/buoyoi...
Date: Sat, 19 Jul 2003 05:04:37 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Matti Katila <address@hidden>   03/07/19 05:04:37

Modified files:
        org/fenfire/demo: actions.py buoyoing.py fenpdfcontext.py 
        org/fenfire/util: RDFUtil.java 
        org/fenfire/view: AreaSelectingView2D.java PageScrollView2D.java 
                          PageSpanLayout.java 
Added files:
        org/fenfire/util/lava: __init__.py view.py 

Log message:
        added functionality for annotating pdf. use selection and then Ctrl-A 
when pdf is in main node.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/actions.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.95&tr2=1.96&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/fenpdfcontext.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/RDFUtil.java.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/lava/__init__.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/lava/view.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/AreaSelectingView2D.java.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageScrollView2D.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageSpanLayout.java.diff?tr1=1.16&tr2=1.17&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/actions.py
diff -u fenfire/org/fenfire/demo/actions.py:1.11 
fenfire/org/fenfire/demo/actions.py:1.12
--- fenfire/org/fenfire/demo/actions.py:1.11    Thu Jul 17 12:28:18 2003
+++ fenfire/org/fenfire/demo/actions.py Sat Jul 19 05:04:36 2003
@@ -111,6 +111,8 @@
         xy = self.obj[0].getXYHit(self.oldVS, x,y)
         oldXY = self.context.states.getPressPans()
         self.obj[1].setArea(oldXY[0], oldXY[1], xy[0], xy[1])
+        p(self.context.states.selection.area)
+        self.context.states.selection.area = [oldXY[0], oldXY[1], xy[0], xy[1]]
         self.obj[0].chgFast(self.oldVS, None)
 
 
@@ -143,13 +145,9 @@
 
 
         ### Set selection plane
-        v = main.getView2D()
-        while v != None:
-            if isinstance(v, ff.view.AreaSelectingView2D):
-                v.setCurrentPlane(main.getPlane())
-                self.selection = v
-                break
-            v = v.getChildView2D()
+        v = ff.util.lava.view.getView(main, ff.view.AreaSelectingView2D)
+        v.setCurrentPlane(main.getPlane())
+        self.selection = v
 
         #### Special case if user has pressed 'Ctrl'
         if self.context.states.hasCtrl():
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.95 
fenfire/org/fenfire/demo/buoyoing.py:1.96
--- fenfire/org/fenfire/demo/buoyoing.py:1.95   Thu Jul 17 12:28:18 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Sat Jul 19 05:04:36 2003
@@ -58,6 +58,7 @@
 ### debugs
 #ff.util.lava.CoordsysCache.dbg = 1
 #ff.view.AreaSelectingView2D.dbg = 1
+ff.view.buoy.TransclusionConnector.dbg = 1
 
 
 vob.putil.demo.usingNormalBindings = 0
Index: fenfire/org/fenfire/demo/fenpdfcontext.py
diff -u fenfire/org/fenfire/demo/fenpdfcontext.py:1.9 
fenfire/org/fenfire/demo/fenpdfcontext.py:1.10
--- fenfire/org/fenfire/demo/fenpdfcontext.py:1.9       Tue Jul 15 03:18:11 2003
+++ fenfire/org/fenfire/demo/fenpdfcontext.py   Sat Jul 19 05:04:36 2003
@@ -91,6 +91,20 @@
             self.makerTypes.append(self.makerTypes.pop(0))
             self.states.nodeview.reinit(fen.graph, 100)
             self.states.pageview.flush()
+
+        if stroke == 'Ctrl-A':
+            p('Make an annotate.')
+            if self.states.selection.hasSelection():
+                s = self.states.selection.area
+                if isinstance(main, ff.view.buoy.FisheyeMainNode2D):
+                    v = ff.util.lava.view.getView(main, 
ff.view.PageScrollView2D)
+                    layout = v.getLayout(main.getPlane())
+                    enf = layout.getSelection( int(s[0]), int(s[1]),
+                                               int(s[2]), int(s[3]))
+                    paper = pp.newPaper()
+                    note = Nodes.get(pp.newNote(paper, 0,0, ''))
+                    p('enfilade:', enf)
+                    fen.txt.set(note, enf)
                 
         if acc == None: return
 
@@ -131,6 +145,18 @@
         self.spanImageFactory = spanImageFactory
         self.nodeview = nodeview
         self.pageview = None
+
+        class Selection:
+            def __init__(self):
+                self.area = [0,0,0,0]
+                self.view = None
+            def getArea(self): return self.area
+            def setArea(self, area): self.area = area
+            def hasSelection(self):
+                a = self.area
+                return (a[0]-a[2]) != 0 and (a[1]-a[3]) != 0
+        self.selection = Selection()
+
     def chgCtrl(self):
         self.ctrl = not self.ctrl
         if self.ctrl:
Index: fenfire/org/fenfire/util/RDFUtil.java
diff -u fenfire/org/fenfire/util/RDFUtil.java:1.15 
fenfire/org/fenfire/util/RDFUtil.java:1.16
--- fenfire/org/fenfire/util/RDFUtil.java:1.15  Thu Jul 17 12:28:19 2003
+++ fenfire/org/fenfire/util/RDFUtil.java       Sat Jul 19 05:04:36 2003
@@ -99,7 +99,7 @@
     /** Special call for structure linked vocabulary to test if node is linked.
      * @see STRUCTLINK
      */
-    public boolean isLinked(Graph graph, Object node) {
+    static public boolean isLinked(Graph graph, Object node) {
         Iterator it = graph.findN_11X_Iter(node, STRUCTLINK.linkedTo);
         if (it.hasNext()) return true;
         it = graph.findN_X11_Iter(STRUCTLINK.linkedTo, node);
@@ -107,61 +107,5 @@
         return false;
     }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    /** Split node to two nodes. Enfilade is splitted in ind,
-     * i.e. (node, [foobar]) will be with ind 2 be splitted to
-     * (node, [foo]) and (split, [bar]). All properties will 
-     * be copied to split.
-     *
-     * @return the new node
-     * @deprecated
-     */
-    static public Object splitNode(Fen fen, Object node, int ind) {
-       Object split = Nodes.N();
-
-       Enfilade1D enf = (Enfilade1D)fen.txtfunc.f(fen.constgraph, node);
-       if (ind < 0 || ind >= enf.length())
-           throw new Error("Ind is too short or long! "+ind);
-
-       Enfilade1D toEnf = enf.sub(ind, enf.length());
-       Enfilade1D fromEnf = enf.sub(0, ind);
-       fen.txt.set(node, fromEnf);
-       fen.txt.set(split, toEnf);
-
-       Iterator iter = fen.graph.findN_1XA_Iter(node); 
-       while (iter.hasNext()) {
-           Object predicate = iter.next();
-           if (predicate != FF.content) {
-               Iterator it = fen.graph.findN_11X_Iter(node, predicate);
-               while (it.hasNext()) {
-                   Object object = it.next();
-                   if (dbg) p("Pred: " + predicate);
-                   if (dbg) p("   Obj: "+object);
-                   fen.graph.add(split, predicate, object);
-               }
-           }
-       }
-       return split;
-    }
 }
 
Index: fenfire/org/fenfire/view/AreaSelectingView2D.java
diff -u fenfire/org/fenfire/view/AreaSelectingView2D.java:1.9 
fenfire/org/fenfire/view/AreaSelectingView2D.java:1.10
--- fenfire/org/fenfire/view/AreaSelectingView2D.java:1.9       Thu Jul 17 
12:28:19 2003
+++ fenfire/org/fenfire/view/AreaSelectingView2D.java   Sat Jul 19 05:04:36 2003
@@ -29,10 +29,6 @@
     private Paper paper;
     private GLRen.FixedPaperQuad pq;
 
-    public boolean hasSelection() {
-       return x0!=0 || y0!=0 || x1!=0 || y1!=0;
-    }
-
     public AreaSelectingView2D(View2D child) {
         this(child, null);
     }
@@ -63,10 +59,9 @@
         Object key = vs.matcher.getKey(box2screen);
         if (dbg) p("key b2s: "+vs.matcher.getKey(box2screen));
         coords.set(key, cs);
-       chgFast(vs, key);
 
-       if (current != plane) return;
-        if (dbg) p("ok, draw the selection!"+x0+","+y0+","+x1+","+y1);
+       if (current != plane) setArea(0,0,0,0);
+       chgFast(vs, key);
         vs.put(pq, cs);
     }
 
Index: fenfire/org/fenfire/view/PageScrollView2D.java
diff -u fenfire/org/fenfire/view/PageScrollView2D.java:1.8 
fenfire/org/fenfire/view/PageScrollView2D.java:1.9
--- fenfire/org/fenfire/view/PageScrollView2D.java:1.8  Tue Jul 15 03:18:11 2003
+++ fenfire/org/fenfire/view/PageScrollView2D.java      Sat Jul 19 05:04:36 2003
@@ -59,7 +59,11 @@
            );
     }
 
-    
+    public PageSpanLayout getLayout(Object plane) { 
+       PageScrollBlock block = (PageScrollBlock)plane;
+       return  (PageSpanLayout)scroll2layout.f(null, block);
+    }
+
 
     public void getSize(Object plane, float[] wh) {
        PageScrollBlock block = (PageScrollBlock)plane;
Index: fenfire/org/fenfire/view/PageSpanLayout.java
diff -u fenfire/org/fenfire/view/PageSpanLayout.java:1.16 
fenfire/org/fenfire/view/PageSpanLayout.java:1.17
--- fenfire/org/fenfire/view/PageSpanLayout.java:1.16   Mon Jul  7 03:07:55 2003
+++ fenfire/org/fenfire/view/PageSpanLayout.java        Sat Jul 19 05:04:36 2003
@@ -222,12 +222,11 @@
 
     /** Get selected area of pagespanlayout in enfilade
      */
-    Enfilade1D getSelection(int x, int y, int width, int height) {
+    public Enfilade1D getSelection(int x, int y, int width, int height) {
        if (x<0 || y<0) throw new Error ("X or Y smaller than zero, x:"+x+", 
y:"+y);
 
        int w=0,  wLeft = width, p=0;
-       Enfilade1D enf = new Enfilade1DImpl(null);
-       Enfilade1D.Maker m = enf.getMaker();
+       Enfilade1D enf = null;
 
        // Go into page where selection starts
        for (; p<pages.length; p++)
@@ -240,18 +239,18 @@
            if (height > xywh[4*p + 3]) throw new Error("Selection out of 
page,"+p+", h:"+height);
 
            // everything ok, so get a clip from page for returning enfilade.
-           if (enf.length() == 0) {
+           if (enf == null) {
                w = (int)Math.min(wLeft, xywh[4*p + 2] - x);
-               enf.plus(m.makeEnfilade(pages[p].subArea(x,y, w, height)));
+               enf = new Enfilade1DImpl(pages[p].subArea(x,y, w, height));
            } else {
                w = (int)Math.min(wLeft, xywh[4*p + 2]);
+               Enfilade1D.Maker m = enf.getMaker();
                enf.plus(m.makeEnfilade(pages[p].subArea(0,y, w, height)));
            }
            wLeft -= w;
        }
        return enf;
     }
-
 }
 
 




reply via email to

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