[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py util/Contr...
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py util/Contr... |
Date: |
Mon, 23 Jun 2003 14:16:19 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Benja Fallenstein <address@hidden> 03/06/23 14:16:19
Modified files:
org/fenfire/demo: buoyoing.py
org/fenfire/util: ControlBinding.java
org/fenfire/view/buoy: AbstractMainNode2D.java
FisheyeMainNode2D.java MainNode2D.java
org/fenfire/view/lava: FenPDFContext.java
Added files:
org/fenfire/demo: actions.py
Log message:
small steps in event handling
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/actions.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.78&tr2=1.79&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/ControlBinding.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/MainNode2D.java.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/FenPDFContext.java.diff?tr1=1.33&tr2=1.34&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.78
fenfire/org/fenfire/demo/buoyoing.py:1.79
--- fenfire/org/fenfire/demo/buoyoing.py:1.78 Mon Jun 23 08:37:04 2003
+++ fenfire/org/fenfire/demo/buoyoing.py Mon Jun 23 14:16:19 2003
@@ -47,6 +47,8 @@
from org.nongnu.alph.impl import PageImageScroll
+from org.fenfire.demo.actions import *
+
import vob
w.setCursor('wait')
@@ -112,6 +114,105 @@
ppAct.assocNotes(noteHome, 1, noteA1)
+
+
+
+
+
+ctrl = ff.util.ControlBinding()
+ctrl.add(MovePanFast(), -1, ctrl.WHEEL, 7,0, ctrl.VERTICAL)
+ctrl.add(MovePanFast(), 1, ctrl.DRAG, 1, 0, ctrl.ALL)
+ctrl.add(MovePanSlow(), 1, ctrl.CLICK)
+ctrl.add(ZoomPan(), 3, ctrl.DRAG, 1, 0, ctrl.VERTICAL)
+ctrl.add(PanSize(), 3, ctrl.DRAG, 1, 0, ctrl.HORIZONTAL)
+ctrl.add(UnSelectNodeOnPlane(), 3, ctrl.CLICK)
+
+node_ctrl = ff.util.ControlBinding()
+node_ctrl.add(SelectNodeOnPlane(), 3, node_ctrl.CLICK)
+node_ctrl.add(MoveNodeOnPlane(), 1, node_ctrl.DRAG)
+
+# pa(ev)
+
+# if hasattr(mngr.geometer, 'mouse') and \
+# mngr.geometer.mouse(ev, mngr.vs):
+# return
+# x, y = ev.getX(), ev.getY()
+# cs = mngr.vs.getCSAt(0, x, y, None)
+
+# if ev.getID() == ev.MOUSE_RELEASED:
+# w.setCursor('default')
+# for ctrl in self.controls:
+# ctrl.removePressState()
+# return
+# if ev.getID() == ev.MOUSE_DRAGGED:
+# for ctrl in self.controls:
+# if ctrl.hasPressState():
+# ctrl.handleEvent(None, ev, mngr.vs)
+# if ctrl.replaceVS:
+# mngr.replaceScene = mngr.vs
+# vob.AbstractUpdateManager.setNoAnimation()
+# vob.AbstractUpdateManager.chg()
+# return
+
+# ### If there exist a buoy jump over there
+# for single in mngr.singles:
+# link = single.cs.get(cs, None)
+# if link != None:
+# # pa("IN CS: ",cs, link)
+# if hasattr(mngr.geometer, 'buoyMouse') and \
+# mngr.geometer.buoyMouse(mngr, ev, single, link):
+# return
+
+# if ev.getID() != ev.MOUSE_CLICKED:
+# return
+# single.followLink(link)
+# vob.AbstractUpdateManager.chg()
+# return
+
+# ### Fall through if no link - need main node
+# for i in range(0, len(mngr.singles)):
+# if mngr.singles[i].mainNode.isHitInsidePlane(x,y,mngr.vs):
+# self.context.setMainNodeIndex(i)
+# self.lastIndex = i
+
+# ### See if there's somtehing on a plane.
+# obj = mngr.singles[i].mainNode.getNodeOnPlane(mngr.vs, x,y)
+# if obj != None and \
+# self.controlNodesOnMain.hasBinding(ev):
+# if self.controlNodesOnMain.handleEvent( \
+# Pair(mngr.singles[i].mainNode, obj), ev, mngr.vs):
+# # can't replace vobscene!!
+# # mngr.replaceScene = mngr.vs
+# vob.AbstractUpdateManager.setNoAnimation()
+# vob.AbstractUpdateManager.chg()
+# return
+
+# if self.controlMains.handleEvent(mngr.singles[i].mainNode,
ev, mngr.vs):
+# mngr.replaceScene = mngr.vs
+# vob.AbstractUpdateManager.setNoAnimation()
+# vob.AbstractUpdateManager.chg()
+# return
+
+# # ...then see context
+# if ev.getID() != ev.MOUSE_CLICKED:
+# return
+# self.context.setMainNodeIndex(self.lastIndex)
+# planes = []
+# for single in mngr.singles:
+# planes.append(single.getMainNode())
+# newPlanes = self.context.doMouse(ev, mngr.vs, planes)
+# if newPlanes != None and planes != newPlanes:
+# for i in range(0, len(newPlanes)):
+# mngr.singles[i] = vob.buoy.buoymanager.SingleFocusManager(
+# newPlanes[i],
+# mngr.connectors)
+# vob.AbstractUpdateManager.chg()
+
+
+
+
+
+
textstyle = vob.GraphicsAPI.getInstance().getTextStyle("sans", 0, 24)
textnodeview = ff.view.TextNodeView(fen.txtfunc, textstyle, 1)
pagenodeview = ff.view.PageNodeView(fen.txtfunc)
@@ -128,7 +229,7 @@
ff.view.buoy.NodeType2D.effigy = 0
ff.view.buoy.NodeType2DFull.effigy = 0
-context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview)
+context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview, ctrl)
context.initMainNodes(2)
nodeview.setContext(context)
textnodeview.setContext(context)
@@ -151,15 +252,15 @@
plane = Nodes.get(paperA)
planeHome = Nodes.get(paperHome)
-mainNode = ff.view.buoy.MainNode2D(plane, irregu)
-mainNode2 = ff.view.buoy.MainNode2D(planeHome, irregu)
-#mainNode = ff.view.buoy.MainNode2D(plane, paperview)
+mainNode = ff.view.buoy.MainNode2D(plane, irregu, ctrl)
+mainNode2 = ff.view.buoy.MainNode2D(planeHome, irregu, ctrl)
+#mainNode = ff.view.buoy.MainNode2D(plane, paperview, ctrl)
#connector = ff.view.buoy.PPConnector(fen, paperviewonly)
#connector.hackForTesting = 1
ppconnector = ff.view.buoy.PPConnector(fen, irregu,
- ff.view.buoy.MainNode2D.MainNode2DFactory(1),
+ ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl),
nodeview)
tconnector = ff.view.buoy.TransclusionConnector(fen, nodeview)
@@ -169,8 +270,8 @@
pagescroll2d = ff.view.PageScrollView2D()
tconnector.normalNodeNodeType = ff.view.buoy.NodeType2D(irregu,
- ff.view.buoy.MainNode2D.MainNode2DFactory(1))
-tconnector.pageImageScrollNodeType = ff.view.buoy.NodeType2DFull(pagescroll2d,
ff.view.buoy.FisheyeMainNode2D.FisheyeMainNode2DFactory())
+ ff.view.buoy.MainNode2D.MainNode2DFactory(1, ctrl))
+tconnector.pageImageScrollNodeType = ff.view.buoy.NodeType2DFull(pagescroll2d,
ff.view.buoy.FisheyeMainNode2D.FisheyeMainNode2DFactory(ctrl))
class DoubleGeometer:
@@ -322,178 +423,9 @@
vob.buoy.buoymanager.MultiBuoyManager.__init__(self,
[mainNode, mainNode2], [ppconnector, tconnector],
DoubleGeometer(self),
- FenPDFActions(context, 2), context)
+ context=context)
w.setCursor('default')
-
-######## Actions to control pan of main nodes etc.
-
-class MovePanFast(ff.util.ControlBinding.AbstractController):
- def isChangeable(self): return 1
- def change(self, x, y):
- f = self.obj.getFocus()
- fX, fY = f.getPanX(), f.getPanY()
- f.setPan( fX-x/f.getZoom(),fY-y/f.getZoom())
- self.obj.chgFast(self.oldVS)
-
-class MovePanSlow(ff.util.ControlBinding.AbstractController):
- def isChangeable(self): return 0
- def controlPoint(self, x, y, scale):
- self.obj.moveToPoint(int(x),int(y), self.oldVS)
-
-class ZoomPan(ff.util.ControlBinding.AbstractController):
- def isChangeable(self): return 1
- def change(self, x, y):
- self.obj.changeZoom(x+y)
- # because of PanSize() - do not call
- #self.obj.chgFast(self.oldVS)
-
-class PanSize(ff.util.ControlBinding.AbstractController):
- def isChangeable(self): return 1
- def change(self, x, y):
- self.obj.changeSize(x+y)
- self.obj.chgFast(self.oldVS)
-
-class AbstractContextController(ff.util.ControlBinding.AbstractController):
- def __init__(self, context):
- self.context = context
-
-class UnSelectNodeOnPlane(AbstractContextController):
- def isChangeable(self): return 0
- def controlPoint(self, x, y, scale):
- self.context.setAccursed(None)
-
-
-####### Actions to control nodes on main node plane
-
-class SelectNodeOnPlane(AbstractContextController):
- def isChangeable(self): return 0
- def controlPoint(self, x, y, scale):
- self.context.setAccursed(self.obj.second)
-
-class MoveNodeOnPlane(AbstractContextController):
- def isChangeable(self): return 1
- def change(self, x,y):
- f = self.obj.first.getFocus()
- node = self.obj.second
- if not self.context.isAccursed(node): return
-
- fX, fY = f.getPanX(), f.getPanY()
- f.setPan( fX+x*.5/f.zoom,fY+y*.5/f.zoom)
-
- g = fen.graph
- ox = ff.util.RDFUtil.getInt(g, node, CANVAS2D.x)
- oy = ff.util.RDFUtil.getInt(g, node, CANVAS2D.y)
- ppAct.moveNote(node, int(ox+x/f.zoom), int(oy+y/f.zoom) )
-
-
-class FenPDFActions:
- def __init__(self, context, mainNodes):
- self.context = context
- self.context.initMainNodes(mainNodes)
- self.lastIndex = 0
-
- c = self.controlMains = ff.util.ControlBinding()
- c.add(MovePanFast(), -1, c.WHEEL, 7,0, c.VERTICAL)
- c.add(MovePanFast(), 1, c.DRAG, 1.3, 0, c.ALL)
- c.add(MovePanSlow(), 1, c.CLICK)
- c.add(ZoomPan(), 3, c.DRAG, 1, 0, c.VERTICAL)
- c.add(PanSize(), 3, c.DRAG, 1, 0, c.HORIZONTAL)
- c.add(UnSelectNodeOnPlane(context), 3, c.CLICK)
-
- c = self.controlNodesOnMain = ff.util.ControlBinding()
- c.replaceVS = 0
- c.add(SelectNodeOnPlane(context), 3, c.CLICK)
- c.add(MoveNodeOnPlane(context), 1, c.DRAG)
-
-
- #c.dbg=1
- self.controls = [ self.controlMains, self.controlNodesOnMain ]
-
- def key(self, mngr, key):
- index = self.lastIndex
- self.context.setMainNodeIndex(index)
- mngr.singles[index].mainNode.keystroke(key)
- vob.AbstractUpdateManager.chg()
-
- def mouse(self, mngr, ev):
-# pa(ev)
-
- if hasattr(mngr.geometer, 'mouse') and \
- mngr.geometer.mouse(ev, mngr.vs):
- return
- x, y = ev.getX(), ev.getY()
- cs = mngr.vs.getCSAt(0, x, y, None)
-
- if ev.getID() == ev.MOUSE_RELEASED:
- w.setCursor('default')
- for ctrl in self.controls:
- ctrl.removePressState()
- return
- if ev.getID() == ev.MOUSE_DRAGGED:
- for ctrl in self.controls:
- if ctrl.hasPressState():
- ctrl.handleEvent(None, ev, mngr.vs)
- if ctrl.replaceVS:
- mngr.replaceScene = mngr.vs
- vob.AbstractUpdateManager.setNoAnimation()
- vob.AbstractUpdateManager.chg()
- return
-
- ### If there exist a buoy jump over there
- for single in mngr.singles:
- link = single.cs.get(cs, None)
- if link != None:
- # pa("IN CS: ",cs, link)
- if hasattr(mngr.geometer, 'buoyMouse') and \
- mngr.geometer.buoyMouse(mngr, ev, single, link):
- return
-
- if ev.getID() != ev.MOUSE_CLICKED:
- return
- single.followLink(link)
- vob.AbstractUpdateManager.chg()
- return
-
- ### Fall through if no link - need main node
- for i in range(0, len(mngr.singles)):
- if mngr.singles[i].mainNode.isHitInsidePlane(x,y,mngr.vs):
- self.context.setMainNodeIndex(i)
- self.lastIndex = i
-
- ### See if there's somtehing on a plane.
- obj = mngr.singles[i].mainNode.getNodeOnPlane(mngr.vs, x,y)
- if obj != None and \
- self.controlNodesOnMain.hasBinding(ev):
- if self.controlNodesOnMain.handleEvent( \
- Pair(mngr.singles[i].mainNode, obj), ev, mngr.vs):
- # can't replace vobscene!!
- # mngr.replaceScene = mngr.vs
- vob.AbstractUpdateManager.setNoAnimation()
- vob.AbstractUpdateManager.chg()
- return
-
- if self.controlMains.handleEvent(mngr.singles[i].mainNode, ev,
mngr.vs):
- mngr.replaceScene = mngr.vs
- vob.AbstractUpdateManager.setNoAnimation()
- vob.AbstractUpdateManager.chg()
- return
-
- # ...then see context
- if ev.getID() != ev.MOUSE_CLICKED:
- return
- self.context.setMainNodeIndex(self.lastIndex)
- planes = []
- for single in mngr.singles:
- planes.append(single.getMainNode())
- newPlanes = self.context.doMouse(ev, mngr.vs, planes)
- if newPlanes != None and planes != newPlanes:
- for i in range(0, len(newPlanes)):
- mngr.singles[i] = vob.buoy.buoymanager.SingleFocusManager(
- newPlanes[i],
- mngr.connectors)
- vob.AbstractUpdateManager.chg()
-
currentScene = Scene()
Index: fenfire/org/fenfire/util/ControlBinding.java
diff -u fenfire/org/fenfire/util/ControlBinding.java:1.5
fenfire/org/fenfire/util/ControlBinding.java:1.6
--- fenfire/org/fenfire/util/ControlBinding.java:1.5 Mon Jun 23 08:30:42 2003
+++ fenfire/org/fenfire/util/ControlBinding.java Mon Jun 23 14:16:19 2003
@@ -56,7 +56,6 @@
static private boolean FAST = true;
static private boolean ANIMATE = false;
- public boolean replaceVS = true;
// -- Methods to handle events wisely.
@@ -84,7 +83,10 @@
if (event.getID() == event.MOUSE_PRESSED) {
pressState = event;
return FAST;
- }
+ } else if(event.getID() == event.MOUSE_RELEASED) {
+ removePressState();
+ return FAST;
+ }
float x = event.getX();
float y = event.getY();
Index: fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.24
fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.25
--- fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.24 Mon Jun 23
08:25:52 2003
+++ fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java Mon Jun 23
14:16:19 2003
@@ -26,8 +26,9 @@
package org.fenfire.view.buoy;
import org.fenfire.view.*;
-
import org.fenfire.view.View2D;
+import org.fenfire.util.ControlBinding;
+
import org.nongnu.libvob.*;
import org.nongnu.libvob.impl.DefaultVobMatcher;
import org.nongnu.libvob.buoy.*;
@@ -47,6 +48,9 @@
protected Object plane;
public Object getPlane() { return plane; }
+ /** The controller associated with this main node. */
+ protected ControlBinding controller;
+
/** An object representing a focus on a 2D plane.
* The SimpleFocus implementation below just stores
* an X and Y coordinate, but other implementations
@@ -105,9 +109,9 @@
protected float boxw, boxh;
public AbstractMainNode2D(Object plane, View2D view2d,
- Focus focus) {
+ Focus focus, ControlBinding controller ) {
this.plane = plane; this.view2d = view2d;
- this.focus = focus;
+ this.focus = focus; this.controller = controller;
}
@@ -235,7 +239,7 @@
public boolean mouse(MouseEvent e, VobScene oldVobScene) {
- //return controller.mouse(e, oldVobScene);
+ /*return*/ controller.handleEvent(this, e, oldVobScene);
return false;
}
Index: fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.9
fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.10
--- fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java:1.9 Sun Jun 22
12:15:35 2003
+++ fenfire/org/fenfire/view/buoy/FisheyeMainNode2D.java Mon Jun 23
14:16:19 2003
@@ -26,6 +26,8 @@
package org.fenfire.view.buoy;
import org.fenfire.view.View2D;
+import org.fenfire.util.ControlBinding;
+
import org.nongnu.libvob.*;
import org.nongnu.libvob.view.FisheyeState;
import org.nongnu.libvob.impl.DefaultVobMatcher;
@@ -42,11 +44,15 @@
static public class FisheyeMainNode2DFactory implements Factory {
- public float zoom;
+ protected ControlBinding controller;
+ public FisheyeMainNode2DFactory(ControlBinding controller) {
+ this.controller = controller;
+ }
public AbstractMainNode2D create(Object plane, View2D view2d,
float panx, float pany) {
return new FisheyeMainNode2D(plane, view2d,
- new SimpleFocus(panx, pany));
+ new SimpleFocus(panx, pany),
+ controller);
}
}
@@ -55,8 +61,8 @@
/** Create a main node with a given plane, pan.
*/
public FisheyeMainNode2D(Object plane, View2D view2d,
- Focus focus) {
- super(plane, view2d, focus);
+ Focus focus, ControlBinding controller) {
+ super(plane, view2d, focus, controller);
focus.setZoom(1);
}
Index: fenfire/org/fenfire/view/buoy/MainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/MainNode2D.java:1.27
fenfire/org/fenfire/view/buoy/MainNode2D.java:1.28
--- fenfire/org/fenfire/view/buoy/MainNode2D.java:1.27 Mon Jun 23 08:25:52 2003
+++ fenfire/org/fenfire/view/buoy/MainNode2D.java Mon Jun 23 14:16:19 2003
@@ -27,6 +27,8 @@
*/
package org.fenfire.view.buoy;
import org.fenfire.view.View2D;
+import org.fenfire.util.ControlBinding;
+
import org.nongnu.libvob.*;
import org.nongnu.libvob.impl.DefaultVobMatcher;
import org.nongnu.libvob.buoy.*;
@@ -44,29 +46,36 @@
static public class MainNode2DFactory implements Factory {
public float zoom;
- public MainNode2DFactory(float zoom) {
+ protected ControlBinding controller;
+ public MainNode2DFactory(float zoom,
+ ControlBinding controller) {
this.zoom = zoom;
+ this.controller = controller;
}
public AbstractMainNode2D create(Object plane, View2D view2d,
float panx, float pany) {
return new MainNode2D(plane, view2d,
- new SimpleFocus(panx, pany), zoom);
+ new SimpleFocus(panx, pany), zoom,
+ controller);
}
}
/** Create a main node with a given plane, pan, and zoom.
*/
public MainNode2D(Object plane, View2D view2d,
- Focus focus, float zoom) {
- super(plane, view2d, focus);
+ Focus focus, float zoom,
+ ControlBinding controller) {
+ super(plane, view2d, focus, controller);
focus.setZoom(zoom);
this.zoom = zoom;
}
/** Create a main node focused the center of a given plane.
*/
- public MainNode2D(Object plane, View2D view2d) {
- this(plane, view2d, new SimpleFocus(0, 0), 1);
+ public MainNode2D(Object plane, View2D view2d,
+ ControlBinding controller) {
+ this(plane, view2d, new SimpleFocus(0, 0), 1,
+ controller);
view2d.getSize(plane, tmp);
if(tmp[0] >= 0) {
focus.setPan(tmp[0] / 2f, tmp[1] / 2f);
Index: fenfire/org/fenfire/view/lava/FenPDFContext.java
diff -u fenfire/org/fenfire/view/lava/FenPDFContext.java:1.33
fenfire/org/fenfire/view/lava/FenPDFContext.java:1.34
--- fenfire/org/fenfire/view/lava/FenPDFContext.java:1.33 Mon Jun 23
07:09:35 2003
+++ fenfire/org/fenfire/view/lava/FenPDFContext.java Mon Jun 23 14:16:19 2003
@@ -75,11 +75,14 @@
private AlphContent alphContent;
private PPActions ppAct;
private NodeFunction nodef;
- public FenPDFContext(Fen fen, PPActions act, NodeFunction nodef) {
+ private ControlBinding controller;
+ public FenPDFContext(Fen fen, PPActions act, NodeFunction nodef,
+ ControlBinding controller) {
this.fen = fen;
this.ppAct = act;
this.nodef = nodef;
this.alphContent = new AlphContent(fen);
+ this.controller = controller;
}
@@ -250,7 +253,8 @@
// mainNodes[1] can never hold articles, can't put there
mainNodes[0]= new
FisheyeMainNode2D(sc, new PageScrollView2D(),
- new AbstractMainNode2D.SimpleFocus(0,0));
+ new AbstractMainNode2D.SimpleFocus(0,0),
+ controller);
return mainNodes;
}
else if (key.equals("LINK")) {
@@ -259,7 +263,8 @@
else if (key.equals("NEW_PAPER")) {
String paper = ppAct.newPaper();
mainNodes[CURR] = new MainNode2D(Nodes.get(paper),
- ppView, new
MainNode2D.SimpleFocus(0,0),1);
+ ppView, new
MainNode2D.SimpleFocus(0,0),1,
+ controller);
return mainNodes;
}
else if (key.equals("SAVE")) {
@@ -306,13 +311,15 @@
if (fen.graph.find1_11X(plane, RDF.type) ==
CANVAS2D.Canvas) {
mainNodes[i] = new MainNode2D(plane,
- ppView, new
MainNode2D.SimpleFocus(0,0),1);
+ ppView, new
MainNode2D.SimpleFocus(0,0),1,
+ controller);
p("mainNode");
} else {
mainNodes[i] = new
FisheyeMainNode2D(plane,
new PageScrollView2D(),
- new AbstractMainNode2D.SimpleFocus(0,0));
+ new AbstractMainNode2D.SimpleFocus(0,0),
+ controller);
p("fishNode");
}
i++;