[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire demo/mm.py util/RDFUtil.jav...
From: |
Matti Katila |
Subject: |
[Gzz-commits] fenfire/org/fenfire demo/mm.py util/RDFUtil.jav... |
Date: |
Wed, 13 Aug 2003 06:17:51 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Matti Katila <address@hidden> 03/08/13 06:17:51
Modified files:
org/fenfire/demo: mm.py
org/fenfire/util: RDFUtil.java
org/fenfire/view/lava: mindMapView2D.py
Log message:
mind map demo works better than nothing.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/mm.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/RDFUtil.java.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/mindMapView2D.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/mm.py
diff -u fenfire/org/fenfire/demo/mm.py:1.2 fenfire/org/fenfire/demo/mm.py:1.3
--- fenfire/org/fenfire/demo/mm.py:1.2 Wed Aug 13 04:59:48 2003
+++ fenfire/org/fenfire/demo/mm.py Wed Aug 13 06:17:51 2003
@@ -11,7 +11,6 @@
import vob
import org.fenfire as ff
-import org.fenfire.vocab.STRUCTLINK as LINK
from org.fenfire.vocab import *
from org.fenfire.vocab.lava import *
from org.fenfire.swamp import Nodes
@@ -76,10 +75,12 @@
mindView = ff.view.lava.mindMapView2D.MindMapView2D(fen, nodeview)
-class Context:
+class Context(ff.view.buoy.AbstractMainNode2D.Context):
def __init__(self):
self.rmb_switch = [ 'go', 'link', 'unlink' ]
self.oldVS = None
+ self.main = None # MainNode2D
+ self.fastMouseChg = 0 # callback from abstractmainnode2d when called
mouse
self._accursed = None
self.offset = 0
def nextRmb(self):
@@ -122,6 +123,24 @@
self.offset = 0
def getAccursed(self):
return self._accursed
+
+
+ def rmLinkTo(self, obj, with):
+ iter = fen.graph.findN_11X_Iter(obj, STRUCTLINK.linkedTo)
+ try:
+ while (iter.hasNext()):
+ if with == iter.next():
+ fen.graph.rm_111(obj, STRUCTLINK.linkedTo, with)
+ iter = fen.graph.findN_11X_Iter(with, STRUCTLINK.linkedTo)
+ while (iter.hasNext()):
+ if obj == iter.next():
+ fen.graph.rm_111(with, STRUCTLINK.linkedTo, obj)
+ except: pass
+
+ def mainNodeToBeRender(self, vs,into, main): pass
+ def changeFastAfterMouseEvent(self): return self.fastMouseChg
+
+
context = Context()
class Action:
@@ -130,21 +149,67 @@
class RMB(Action, vob.mouse.MouseClickListener):
def clicked(self, x,y):
- p('foo')
self.context.nextRmb()
+ self.context.fastMouseChg = 0
class Click(Action, vob.mouse.MouseClickListener):
def clicked(self, x,y):
- p('bar')
- pass
+ vs = context.oldVS
+ node = vs.getKeyAt(0, x,y, None)
+ p('key', node)
+
+ if node == None: return
+
+ rmb = context.rmb_switch[0]
+ if rmb == 'go':
+ if node == self.context.main.getPlane():
+ pass
+ elif ff.util.RDFUtil.isLinked(fen.graph, node):
+ self.context.main.setNewPlane(node, 0,0,1)
+ self.context.setAccursed(node)
+ elif rmb == 'link':
+ if node == self.context.main.getPlane():
+ pass
+ elif ff.util.RDFUtil.isLinkedWith(fen.graph, node,
self.context.main.getPlane()):
+ pass
+ else:
+ fen.graph.add(self.context.main.getPlane(),
STRUCTLINK.linkedTo, node)
+ elif rmb == 'unlink':
+ if node == self.context.main.getPlane():
+ pass
+ else:
+ if ff.util.RDFUtil.isLinkedWith(fen.graph, node,
self.context.main.getPlane()):
+ self.context.rmLinkTo(node, self.context.main.getPlane())
+ self.context.fastMouseChg = 0
+
+
+class ZoomPan(vob.input.RelativeAxisListener, Action,
vob.mouse.MousePressListener):
+ def pressed(self, x,y):
+ return self
+ def changedRelative(self, x):
+ self.context.main.changeZoom(x)
+ self.context.main.chgFast(self.context.oldVS, -1)
+ self.context.fastMouseChg = 1
+
+class PanMover(Action, vob.mouse.RelativeAdapter,
vob.mouse.MousePressListener):
+ def pressed(self, x,y):
+ return self
+ def changedRelative(self, x,y='foo'):
+ f = self.context.main.getFocus()
+ fX, fY = f.getPanX(), f.getPanY()
+ f.setPan(fX-x/f.zoom,
+ fY-y/f.zoom)
+ self.context.main.chgFast(self.context.oldVS, -1)
+ self.context.fastMouseChg = 1
+
mindMouse = vob.mouse.MouseMultiplexer()
-mindMouse.setListener(3, 0,
- 'Right mouse button switching.',
- RMB(context))
-mindMouse.setListener(1, 0,
- 'Foo', Click(context))
-
+mindMouse.setListener(3, 0, 'Right mouse button switching.', RMB(context))
+mindMouse.setListener(3, 0, mindMouse.VERTICAL, 1.0, \
+ 'Zooming the main view.', ZoomPan(context))
+mindMouse.setListener(1, 0, 'Foo', Click(context))
+mindMouse.setListener(1, 0,'Moving the pan around or the node if accursed.', \
+ PanMover(context))
class VeryStupidBuoyManager:
@@ -152,7 +217,9 @@
self.main = ff.view.lava.mindMapView2D.MindMapMainNode2D(noteA2,
mindView,
ff.view.buoy.AbstractMainNode2D.SimpleFocus(0,0), mindMouse)
self.main.init(fen, nodeview)
-
+ context.main = self.main
+ self.main.context = context
+
def scene(self, vs):
context.oldVS = vs
vs.put(background((.36, .74, 1.0)))
@@ -160,8 +227,13 @@
self.main.renderMain(vs, cs)
def mouse(self, ev):
- self.main.mouse(ev, context.oldVS)
-
+ if self.main.mouse(ev, context.oldVS):
+ # replace scene..
+ p('fast')
+ # vob.AbstractUpdateManager.setNoAnimation()
+ else: p('slow')
+ vob.AbstractUpdateManager.chg()
+
def key(self, key):
p("key: ", key)
if key == 'Tab':
Index: fenfire/org/fenfire/util/RDFUtil.java
diff -u fenfire/org/fenfire/util/RDFUtil.java:1.16
fenfire/org/fenfire/util/RDFUtil.java:1.17
--- fenfire/org/fenfire/util/RDFUtil.java:1.16 Sat Jul 19 05:04:36 2003
+++ fenfire/org/fenfire/util/RDFUtil.java Wed Aug 13 06:17:51 2003
@@ -107,5 +107,16 @@
return false;
}
+ /** Special call for structure linked vocabulary to test if node is linked
with node2.
+ * @see STRUCTLINK
+ */
+ static public boolean isLinkedWith(Graph graph, Object node, Object node2)
{
+ Iterator it = graph.findN_11X_Iter(node, STRUCTLINK.linkedTo);
+ if (it.hasNext() && node2 == it.next()) return true;
+ it = graph.findN_X11_Iter(STRUCTLINK.linkedTo, node);
+ if (it.hasNext() && node2 == it.next()) return true;
+ return false;
+ }
+
}
Index: fenfire/org/fenfire/view/lava/mindMapView2D.py
diff -u fenfire/org/fenfire/view/lava/mindMapView2D.py:1.6
fenfire/org/fenfire/view/lava/mindMapView2D.py:1.7
--- fenfire/org/fenfire/view/lava/mindMapView2D.py:1.6 Wed Aug 13 04:59:48 2003
+++ fenfire/org/fenfire/view/lava/mindMapView2D.py Wed Aug 13 06:17:51 2003
@@ -19,14 +19,10 @@
dbg = 0
-
-
paper = vob.gl.SpecialPapers.selectionPaper(None);
whiteground = vob.gl.GLRen.createFixedPaperQuad(paper, 0, 0, 1, 1, 0, 10, 10,
10);
-
-
class MindMapMainNode2D(ff.view.buoy.MainNode2D):
def __init__(self, plane, view2d, focus, controller):
ff.view.buoy.MainNode2D.__init__(self, plane, view2d, controller);
@@ -76,9 +72,9 @@
cs_background = vs.orthoCS(cs,'WHITE_GROUND',0, 0,0, p.getWidth(),
p.getHeight())
vs.put(whiteground, cs_background)
- cs = vs.orthoBoxCS(cs,'CONTENT',0, 0,0, 1,1, p.getWidth(),
p.getHeight())
+ cs = vs.orthoBoxCS(cs,node,0, 0,0, 1,1, p.getWidth(), p.getHeight())
p.place(vs, cs)
-
+ vs.coords.activate(cs)
class MindNet:
""" Keeps up nodes in hashmap of 'linked to' nodes in hashmap.
@@ -135,7 +131,7 @@
self.whiteground = vob.gl.GLRen.createFixedPaperQuad(paper, 0, 0, 1,
1, 0, 10, 10, 10);
def getSize(self, node, wh):
- s = 240
+ s = -1 # s = 240
wh[0], wh[1] = s, s
@@ -161,7 +157,6 @@
paper2box = vs.invertCS(box2plane, "minMap_INv")
paper2screen = vs.concatCS(box2screen, 'mindMap_CONCAT',
paper2box)
-
# nodes which has been handled
self.nodes = java.util.HashMap()
@@ -253,7 +248,7 @@
if dbg: p('old node', pl)
# debugging..
- if 1:
+ if dbg:
p('main node:',self.alphContent.getText(node))
for n in links:
p(' ',self.alphContent.getText(n),self.nodes.get(n))
@@ -271,8 +266,8 @@
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 1 or dbg:
+ cs = vs.orthoBoxCS(into,'foo'+str(key),0, x-s/2.0,y-s/2.0, 1,1, s,s)
+ if dbg:
p('come:',x0,y0, angle, dirAngle)
p(cs, xy, angle, s)
return [cs, x, y, angle]
@@ -292,9 +287,9 @@
cs_background = vs.orthoCS(cs,'background',0, 0,0, p.getWidth(),
p.getHeight())
vs.put(whiteground, cs_background)
- cs = vs.orthoBoxCS(cs,'content',0, 0,0, 1,1, p.getWidth(),
p.getHeight())
+ cs = vs.orthoBoxCS(cs, node,0, 0,0, 1,1, p.getWidth(), p.getHeight())
p.place(vs, cs)
-
+ vs.coords.activate(cs)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] fenfire/org/fenfire demo/mm.py util/RDFUtil.jav...,
Matti Katila <=