gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py view/buoy/...


From: Benja Fallenstein
Subject: [Gzz-commits] fenfire/org/fenfire demo/buoyoing.py view/buoy/...
Date: Sat, 03 May 2003 09:35:15 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Benja Fallenstein <address@hidden>      03/05/03 09:35:15

Modified files:
        org/fenfire/demo: buoyoing.py 
        org/fenfire/view/buoy: TransclusionConnector.java 

Log message:
        center transclusion on the correct place after clicking

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.40&tr2=1.41&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/TransclusionConnector.java.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.40 
fenfire/org/fenfire/demo/buoyoing.py:1.41
--- fenfire/org/fenfire/demo/buoyoing.py:1.40   Sat May  3 09:19:57 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Sat May  3 09:35:14 2003
@@ -140,7 +140,7 @@
 ppconnector = ff.view.buoy.PPConnector(fen, irregu, 
                        ff.view.buoy.MainNode2D.MainNode2DFactory(1),
                                        nodeview)
-tconnector = ff.view.buoy.TransclusionConnector(fen)
+tconnector = ff.view.buoy.TransclusionConnector(fen, nodeview)
 
 #pagescroll2d = ff.view.IrregularViewportView2D(
 #          ff.view.PaperView2D(vob.putil.demowindow.w, 
Index: fenfire/org/fenfire/view/buoy/TransclusionConnector.java
diff -u fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.7 
fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.8
--- fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.7        Fri May 
 2 20:57:00 2003
+++ fenfire/org/fenfire/view/buoy/TransclusionConnector.java    Sat May  3 
09:35:14 2003
@@ -5,6 +5,7 @@
 import org.nongnu.libvob.*;
 import org.nongnu.libvob.buoy.*;
 import org.nongnu.libvob.impl.DefaultVobMatcher;
+import org.nongnu.libvob.lava.placeable.Placeable;
 import org.nongnu.alph.*;
 import org.fenfire.*;
 import org.fenfire.swamp.*;
@@ -20,7 +21,7 @@
 /** Hang transclusion buoys.
  */
 public class TransclusionConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: TransclusionConnector.java,v 1.7 
2003/05/03 00:57:00 mudyc Exp $";
+public static final String rcsid = "$Id: TransclusionConnector.java,v 1.8 
2003/05/03 13:35:14 benja Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { 
System.out.println("TransclusionConnector:: "+s); }
 
@@ -30,28 +31,43 @@
     public AbstractNodeType2D pageImageScrollNodeType;
     public AbstractNodeType2D normalNodeNodeType;
 
+    protected NodeFunction nodeView;
+
     // Function: node -> pair(scrollblock, rect)
     private class SB4Node implements NodeFunction {
        public Object f(ConstGraph g, Object node) {
            Enfilade1D enf = (Enfilade1D)fen.txtfunc.f(g, node);
            List l = enf.getList();
            if(l.size() < 1) return null;
-           Span sp = (Span)l.get(0);
-           if (sp instanceof PageImageSpan) {
-               return new Pair(sp.getScrollBlock(), new 
Rectangle(0,0,300,300));
-           } else {
+
+           PageImageSpan sp;
+           try {
+               sp = (PageImageSpan)l.get(0);
+           } catch(ClassCastException _) {
                return null;
            }
+
+           int x = sp.getLocation().x, 
+               y = sp.getLocation().y, 
+               w = sp.getSize().width, 
+               h = sp.getSize().height;
+
+           PageScrollBlock b = (PageScrollBlock)sp.getScrollBlock();
+           for(int i=0; i<sp.getPageIndex(); i++)
+               x += b.getPage(i).getSize().width;
+
+           return new Pair(b, new Rectangle(x,y,w,h));
        }
     }
 
     NodeFunction scrollBlockForNode ;
 
 
-    public TransclusionConnector(Fen fen) {
+    public TransclusionConnector(Fen fen, NodeFunction nodeView) {
        this.fen = fen;
        this.scrollBlockForNode = new CachedNodeFunction(1000,
                    fen.constgraph, new SB4Node());
+       this.nodeView = nodeView;
     }
 
     public void addBuoys(VobScene vs, int parentCs,
@@ -120,11 +136,14 @@
        }
     }
 
+    public int dx = 30, dy = 30;
     protected java.awt.Rectangle getRect(Object node) {
+       if (node == null) throw new Error("Impossible!");
        int x = RDFUtil.getInt(fen, node, SPATIAL.coordX);
        int y = RDFUtil.getInt(fen, node, SPATIAL.coordY);
-       return new java.awt.Rectangle(x-20, y-20, 240, 140);
+       Placeable p = (Placeable)nodeView.f(fen.constgraph, node);
+       return new java.awt.Rectangle(x-dx, y-dy, 
+                                     (int)p.getWidth()+dx+dx, 
+                                     (int)p.getHeight()+dy+dy);
     }
-
-
 }




reply via email to

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