gzz-commits
[Top][All Lists]
Advanced

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

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


From: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire bin/fenpdf10.py demo/buoyoi...
Date: Sat, 09 Aug 2003 13:29:24 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Matti Katila <address@hidden>   03/08/09 13:29:23

Modified files:
        org/fenfire/bin: fenpdf10.py 
        org/fenfire/demo: buoyoing.py 
        org/fenfire/view/buoy: actions.py 
        org/fenfire/view/buoy/lava: MindMapConnector.java 
        org/fenfire/view/lava: mindMapView2D.py 

Log message:
        just coding..

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/bin/fenpdf10.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.106&tr2=1.107&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/actions.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/bin/fenpdf10.py
diff -u fenfire/org/fenfire/bin/fenpdf10.py:1.9 
fenfire/org/fenfire/bin/fenpdf10.py:1.10
--- fenfire/org/fenfire/bin/fenpdf10.py:1.9     Sat Aug  9 09:31:16 2003
+++ fenfire/org/fenfire/bin/fenpdf10.py Sat Aug  9 13:29:23 2003
@@ -96,8 +96,6 @@
 
 ### debugs
 #ff.view.AreaSelectingView2D.dbg = 1
-#ff.view.buoy.TransclusionConnector.dbg = 1
-#ff.impl.SimpleNodeContent.dbg = 1
 
 
 DIR = 'myFenfire/'
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.106 
fenfire/org/fenfire/demo/buoyoing.py:1.107
--- fenfire/org/fenfire/demo/buoyoing.py:1.106  Wed Aug  6 12:25:20 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Sat Aug  9 13:29:23 2003
@@ -51,7 +51,8 @@
      AbstractAction, ZoomPan, ChangeSize, \
      CanvasNodePressListener, \
      NodeMover, PanMover, \
-     SelectArea, BrowseClick, IfSelectNodeOnPlane
+     SelectArea, BrowseClick, IfSelectNodeOnPlane, \
+     LinkClick
      
 
 from org.fenfire.demo.fenpdfcontext import Context
@@ -198,6 +199,9 @@
                       SelectArea(context))
 mainMouse.setListener(1, 0, 'Browse to clicked point in the main view',
                       BrowseClick(context))
+mainMouse.setListener(1, vob.VobMouseEvent.CONTROL_MASK,
+                      'linking',
+                      LinkClick(context))
 mainMouse.setListener(3, 0, 'Select a node by click or unselect.',
                       IfSelectNodeOnPlane(context))
 
@@ -235,7 +239,7 @@
 
 ### Connectors
 # MindMap
-mmconnector = ff.view.buoy.lava.MindMapConnector(fen)
+mmconnector = ff.view.buoy.lava.MindMapConnector(fen, nodeview)
 mmconnector.normalNodeNodeType = ff.view.buoy.NodeType2D(irregu, \
     ff.view.buoy.MainNode2D.MainNode2DFactory(1, mainMouse))
 mmconnector.mindMapNodeType =  ff.view.buoy.NodeType2DFull(mmview, \
@@ -357,36 +361,40 @@
 
     def mouse(self, ev, oldvs):
         if dbg: p(ev)
-
+        
         if ev.getType() == ev.MOUSE_RELEASED:
-            p('mainMouse released?')
-            # mainMouse XXX
-            #ctrl.removePressState()
-            self.context.states.clean()
+            p('mainMouse released? - there\'s a bug in here!')
+            #mousePrint(self.lastEvent, 'lastEvent')
+            
+            # release event must go to mainMouse MouseMultiplexer to work 
correctly!
+            # mainMouse.deliverEvent(ev)
+            # flush implemented...
+            mainMouse.flush()
+            
+            self.context.clean()
             w.setCursor('default')
+            
+            # workaround..
+            if self.lastEvent.getType() == ev.MOUSE_PRESSED:
+                p('workaround for a bug')
+                return 1
+            
             # There is a bug in AbstractUpdateManager code(?) and that's why 
now is must to return.
-            # return 1
+            #return 1
             return 0
-       #return 0
-
+        self.lastEvent = ev
+        
         # ...then see context
         if ev.getType() != ev.MOUSE_CLICKED:
             return 0
-        planes = []
-        for single in self.mgr.singles:
-            planes.append(single.getMainNode())
-        newPlanes = self.context.doMouse(ev, oldvs, planes, self.nv)
-        if newPlanes != None and planes != newPlanes:
-            p('going to change the singles with new ones')
-            for i in range(0, len(newPlanes)):
-                self.mgr.singles[i] = vob.buoy.buoymanager.SingleFocusManager(
-                    newPlanes[i],
-                    self.mgr.connectors)
-                vob.AbstractUpdateManager.chg()
+        
+        if self.context.doMouse(ev, oldvs):
+            mainMouse.flush()
+            vob.AbstractUpdateManager.chg()
             return 1
+        
         return 0
-
-
+    
 
 
     def buoyMouse(self, mgr, ev, single, link):
Index: fenfire/org/fenfire/view/buoy/actions.py
diff -u fenfire/org/fenfire/view/buoy/actions.py:1.5 
fenfire/org/fenfire/view/buoy/actions.py:1.6
--- fenfire/org/fenfire/view/buoy/actions.py:1.5        Fri Aug  8 07:45:58 2003
+++ fenfire/org/fenfire/view/buoy/actions.py    Sat Aug  9 13:29:23 2003
@@ -111,6 +111,13 @@
         self.pp.moveNote(self.node, ox+x/f.zoom, oy+y/f.zoom )
         self.main.chgFast(self.oldVS, -1)
 
+class LinkClick(AbstractAction, vob.mouse.MouseClickListener):
+    def clicked(self, x,y):
+        self.super()
+        obj = self.main.getNodeOnPlane(self.oldVS, x,y)
+        pp = self.context.states.pp
+        pp.assocNotes(obj, 1, self.context.states.cursor.getAccursed())
+
 
 ####### Actions to control selection (Ctrl pressed)
 
Index: fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java
diff -u fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java:1.2 
fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java:1.3
--- fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java:1.2        Wed Aug 
 6 11:55:54 2003
+++ fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java    Sat Aug  9 
13:29:23 2003
@@ -20,7 +20,7 @@
  * First only canvas perhaps (later more).
  */
 public class MindMapConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: MindMapConnector.java,v 1.2 
2003/08/06 15:55:54 mudyc Exp $";
+public static final String rcsid = "$Id: MindMapConnector.java,v 1.3 
2003/08/09 17:29:23 mudyc Exp $";
     public static boolean dbg = false;
     private static void p(String s) { System.out.println("MindMapConnector:: 
"+s); }
 
@@ -30,8 +30,9 @@
     public AbstractNodeType2D mindMapNodeType;
     public AbstractNodeType2D normalNodeNodeType;
 
-    public MindMapConnector(Fen fen) {
+    public MindMapConnector(Fen fen, NodeFunction nodef) {
        this.fen = fen;
+       this.nodeView = nodef;
     }
     
     private NodeFunction mindMapForNode = 
@@ -83,33 +84,27 @@
 
        } else if(mn2d.getView2D() == mindMapNodeType.getView2D()) {
            if (dbg) p("mindmap -> outside");
-
+           
+           // see mindmapView2D for correct nodes..
            for(Iterator i=m.getKeys(parentCs).iterator(); i.hasNext();) {
-               Object key = i.next();
-               p("key: "+key);
-
-               if(!(key instanceof PageImageSpan)) continue;
-               PageImageSpan span = (PageImageSpan)key;
-
-               if(dbg) p("TRC: span "+key);
-               int cs =m.getCS(parentCs, key);
-
-               Enfilade1D tmpEnf = fen.enfMaker.makeEnfilade(span);
-               for(Iterator nodes = 
fen.enfiladeOverlap.getMatches(tmpEnf).iterator(); nodes.hasNext(); ) {
-                   Object node = nodes.next();
-                   if(dbg) p("TRC: overlap "+node);
-                   Object plane = fen.constgraph.find1_X11(
-                           CANVAS2D.contains, node);
-                   if(plane == null) {
-                       if(dbg) p("No plane!");
-                       continue;
-                   }
-                   Object anchor = getAnchor(plane, node);
-                   l.link(-1, cs, normalNodeNodeType,
-                           new Pair(node, span.getScrollBlock()),
-                           anchor);
-
+               Object node = i.next();
+               p("key: "+node);
+               
+               if (!RDFUtil.isNodeType(fen.graph, node, MINDSTRUCT.Data)) 
continue;
+               
+               int cs =m.getCS(parentCs, node);
+               p("cs: "+cs);
+               Object plane = fen.
+                   constgraph.find1_X11(CANVAS2D.contains, node);
+               if(plane == null) {
+                   if(dbg) p("No plane!");
+                   continue;
                }
+               Object anchor = getAnchor(plane, node);
+               l.link(-1, cs, normalNodeNodeType,
+                      new Pair(node, ((View2D.Anchor)anchor).plane),
+                      anchor);
+               
            }
        } else if(dbg) p("Unknown view2d type");
     }
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.2 
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.3
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.2  Wed Aug  6 12:02:31 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py      Sat Aug  9 13:29:23 2003
@@ -91,7 +91,9 @@
 
     def getDistance(self, deepnes):
         """ good size  *  80% of every deepnes """
-        return (self.box[0] * 1./4.0) * (0.9 ** deepnes)
+        d = (self.box[0] * 1./4.0) * (0.9 ** deepnes)
+        if dbg: p('dist: ', d)
+        return d
 
     def render(self, vs, node,
                matchingParent, box2screen, box2plane):
@@ -178,7 +180,7 @@
 
         linkCount = len(links)
         if deepnes > 1: linkCount += 1
-        angle = 2 * Math.PI/linkCount
+        angle = 2 * Math.PI/float(linkCount)
 
 
         for i in range(len(links)):
@@ -190,14 +192,19 @@
             if self.nodes.get(n) == None:
                 pl = self.getPlace(vs, into, x, y, n, dirAngle, angle*i, 
deepnes)
                 if dbg: p('new node', pl)
-                ### XXX place the text in the cs.
-                #MindData().place(self.mm, n, vs, pl[0])
                 self.nodes.put(n, pl)
                 self.doLink.put(n, '1')
             else:
                 pl = self.nodes.get(n)
                 if dbg: p('old node', pl)
 
+        # debugging..
+        if 1:
+            p('main node:',self.alphContent.getText(node))
+            for n in links:
+                p('    ',self.alphContent.getText(n),self.nodes.get(n))
+
+
         for link in links:
             if self.doLink.get(link) != None:
                 self.doLink.put(link, None)
@@ -206,12 +213,14 @@
                                place[3], deepnes + 1)
 
     def getPlace(self, vs, into, x0,y0, key, dirAngle, angle, deepnes):
-        xy = self.getXY(x0,y0, 0.2*dirAngle + angle, deepnes)
+        xy = self.getXY(x0,y0, angle, deepnes)
         x,y = xy[0], xy[1]
 
         s = self.getNodeSize(deepnes)
         cs = vs.coords.orthoBox(into,0, x-s/2.0,y-s/2.0, 1,1, s,s)
-        if dbg: p(cs, xy, angle, s)
+        if 1 or dbg:
+            p('come:',x0,y0, angle, dirAngle)
+            p(cs, xy, angle, s)
         return [cs, x, y, angle]
 
     def getXY(self, x0, y0, angle, deepnes):




reply via email to

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