gzz-commits
[Top][All Lists]
Advanced

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

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


From: Matti Katila
Subject: [Gzz-commits] fenfire ./Makefile org/fenfire/demo/actions.py ...
Date: Mon, 07 Jul 2003 18:56:07 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Branch:         
Changes by:     Matti Katila <address@hidden>   03/07/07 18:56:06

Modified files:
        .              : Makefile 
        org/fenfire/demo: actions.py buoyoing.py fenpdfcontext.py 
        org/fenfire/util: AlphContent.java RDFUtil.java 
        org/fenfire/view/lava: Cursor.java FenPDFContext.java 

Log message:
        small twids

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/Makefile.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/actions.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.88&tr2=1.89&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/fenpdfcontext.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/AlphContent.java.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/RDFUtil.java.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/Cursor.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/FenPDFContext.java.diff?tr1=1.35&tr2=1.36&r1=text&r2=text

Patches:
Index: fenfire/Makefile
diff -u fenfire/Makefile:1.24 fenfire/Makefile:1.25
--- fenfire/Makefile:1.24       Fri Jun 27 06:33:25 2003
+++ fenfire/Makefile    Mon Jul  7 18:56:06 2003
@@ -34,7 +34,7 @@
        $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
$(DBG)
 
 rundemo:
-       $(LDLIB) java -cp $(CLASSPATH) $(PYTHONPATH) org.python.util.jython 
../libvob/rundemo.py $(DBG) $(DEMO)
+       $(LDLIB) java -mx480M -cp $(CLASSPATH) $(PYTHONPATH) 
org.python.util.jython ../libvob/rundemo.py $(DBG) $(DEMO)
 
 BENCH=org.fenfire.swamp.bench.graph
 
Index: fenfire/org/fenfire/demo/actions.py
diff -u fenfire/org/fenfire/demo/actions.py:1.9 
fenfire/org/fenfire/demo/actions.py:1.10
--- fenfire/org/fenfire/demo/actions.py:1.9     Mon Jul  7 03:07:55 2003
+++ fenfire/org/fenfire/demo/actions.py Mon Jul  7 18:56:06 2003
@@ -22,6 +22,7 @@
 
 from org import fenfire as ff
 from org.fenfire.vocab import CANVAS2D, RDF
+import org.nongnu.libvob as vob
 
 dbg = 0
 
@@ -35,14 +36,14 @@
 
 ######## Actions to control pan of main nodes etc.
 
-class MovePanFast(ff.util.ControlBinding.AbstractController):
+class MovePanFast(AbstractContextController):
     def isChangeable(self): return 1
     def change(self, x, y):
         if dbg: p('move pan fast')
         f = self.obj.getFocus()
         fX, fY = f.getPanX(), f.getPanY()
         f.setPan( fX-x/f.zoom, fY-y/f.zoom)
-        self.obj.chgFast(self.oldVS)
+        self.context.chgFast(self.oldVS)
 
 class MovePanSlow(ff.util.ControlBinding.AbstractController):
     def isChangeable(self): return 0
@@ -57,17 +58,22 @@
         ### because of PanSize() - do not call
         #self.obj.chgFast(self.oldVS)
 
-class PanSize(ff.util.ControlBinding.AbstractController):
+class PanSize(AbstractContextController):
     def isChangeable(self): return 1
     def change(self, x, y):
         self.obj.changeSize(x+y)
-        self.obj.chgFast(self.oldVS)
+        self.context.chgFast(self.oldVS)
 
 class UnSelectNodeOnPlane(AbstractContextController):
     def isChangeable(self): return 0
     def controlPoint(self, x, y, scale):
         self.context.setAccursed(None)
-        
+
+class ShowMouseMenu(AbstractContextController):
+    def isChangeable(self): return 0
+    def controlPoint(self, x, y, scale):
+        self.context.mousemenu.showList(x,y)
+        vob.AbstractUpdateManager.setNoAnimation()
 
 ####### Actions to control nodes on main node plane
 
@@ -90,6 +96,7 @@
         ox = ff.util.RDFUtil.getInt(g, node, CANVAS2D.x)
         oy = ff.util.RDFUtil.getInt(g, node, CANVAS2D.y)
         self.obj[3].moveNote(node, int(ox+x/f.zoom), int(oy+y/f.zoom) )
+        self.context.chgFast(self.oldVS)
 
 
 ####### Actions to control selection (Ctrl pressed)
@@ -102,7 +109,7 @@
         xy = self.obj.getXYHit(self.oldVS, x,y)
         oldXY = self.context.states.getPressPans()
         self.context.selection.setArea(oldXY[0], oldXY[1], xy[0], xy[1])
-        self.obj.chgFast(self.oldVS)
+        self.context.chgFast(self.oldVS)
 
 
 ####### Dispatcher for plane events etc.
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.88 
fenfire/org/fenfire/demo/buoyoing.py:1.89
--- fenfire/org/fenfire/demo/buoyoing.py:1.88   Mon Jul  7 02:00:51 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Mon Jul  7 18:56:06 2003
@@ -152,12 +152,13 @@
 # Default controls
 
 ctrl.setContext(context)
-main_ctrl.add(MovePanFast(), -1, ctrl.WHEEL, 13,1, ctrl.VERTICAL)
-main_ctrl.add(MovePanFast(), 1, ctrl.DRAG, 1, 0, ctrl.ALL)
+main_ctrl.add(MovePanFast(context), -1, ctrl.WHEEL, 13,1, ctrl.VERTICAL)
+main_ctrl.add(MovePanFast(context), 1, ctrl.DRAG, 1, 0, ctrl.ALL)
 main_ctrl.add(MovePanSlow(), 1, ctrl.CLICK)
 main_ctrl.add(ZoomPan(), 3, ctrl.DRAG, 1, 0, ctrl.VERTICAL)
-main_ctrl.add(PanSize(), 3, ctrl.DRAG, 1, 0, ctrl.HORIZONTAL)
+main_ctrl.add(PanSize(context), 3, ctrl.DRAG, 1, 0, ctrl.HORIZONTAL)
 main_ctrl.add(UnSelectNodeOnPlane(context), 3, ctrl.CLICK)
+main_ctrl.add(ShowMouseMenu(context), 2, ctrl.CLICK)
 
 node_ctrl.add(SelectNodeOnPlane(context), 3, ctrl.CLICK)
 node_ctrl.add(MoveNodeOnPlane(context), 1, ctrl.DRAG)
Index: fenfire/org/fenfire/demo/fenpdfcontext.py
diff -u fenfire/org/fenfire/demo/fenpdfcontext.py:1.6 
fenfire/org/fenfire/demo/fenpdfcontext.py:1.7
--- fenfire/org/fenfire/demo/fenpdfcontext.py:1.6       Mon Jul  7 02:00:51 2003
+++ fenfire/org/fenfire/demo/fenpdfcontext.py   Mon Jul  7 18:56:06 2003
@@ -1,6 +1,8 @@
 # (c): Matti J. Katila
 
 from org import fenfire as ff
+from org.fenfire.swamp import Nodes
+import org.nongnu.libvob as vob
 
 dbg = 0
 
@@ -42,17 +44,69 @@
 class KeyHandler:
     def __init__(self, states):
         self.states = states
-    def key(self, key):
-        p('KEY', key)
+    def key(self, stroke, main):
+        p('KEY', stroke,', v:',main)
 
-        if key == 'Control_L':
+        if stroke == 'Control_L':
             self.states.chgCtrl()
-            return 1
-        else: return 0
+            return
+
+        fen = self.states.fen
+        pp = self.states.pp
+        cur = self.states.cursor
+        acc = cur.getAccursed()
+        offs = cur.getCursorOffset()
+        alph = ff.util.AlphContent(self.states.fen)
+
+        ### normal alphabets etc.
+        if len(stroke) == 1:
+           if acc == None:
+               paper = Nodes.toString(main.getPlane())
+               note = pp.newNote(paper, int(main.getFocus().getPanX()),
+                                  int(main.getFocus().getPanY()), "")
+               cur.setAccursed(Nodes.get(note))
+           
+            acc = Nodes.toString(cur.getAccursed())
+           pp.insertText(acc, offs, stroke)
+           cur.setCursorOffset(offs + 1)
+            return
+
+        if acc == None: return
+        
+        if stroke == 'Return':
+            if dbg: p('Insert \\n')
+           
+           acc = Nodes.toString(acc)
+           pp.insertText(acc, offs, "\n")
+            cur.setCursorOffset(offs + 1)
+       elif stroke == 'Backspace':
+            note = Nodes.toString(acc)
+            if offs >= 1:
+                p('delete:', offs)
+                pp.deleteText(note, offs - 1, offs)
+                offs = cur.setCursorOffset(offs - 1)
+                text = alph.getText(fen.constgraph, acc)
+                if offs == 0 and len(text) == 0:
+                    if RDFUtil.isLinked(fen.graph, acc):
+                        pp.insertText(note, 0, "#")
+                    else:
+                        pp.deleteNote(note)
+                        cur.setAccursed(None)
+       elif stroke == 'Left':
+            if offs > 0: cur.setCursorOffset(offs - 1)
+        elif stroke == 'Right':
+            text = alph.getText(acc)
+            if offs < text.length():
+                cur.setCursorOffset( offs + 1)
+       
+
 
 class ContextStates:
-    def __init__(self):
+    def __init__(self, fen, pp):
         self.clean()
+        self.cursor = ff.view.lava.Cursor(fen)
+        self.pp = pp
+        self.fen = fen
     def chgCtrl(self):
         self.ctrl = not self.ctrl
         if self.ctrl:
@@ -70,20 +124,44 @@
     def clean(self):
         self.ctrl = 0
         
+class MouseMenu:
+    def __init__(self):
+        style = vob.GraphicsAPI.getInstance().getTextStyle('sans', 0, 12)
+        self.list = vob.vobs.SelectListVob(style)
+        self.list.add('Test', 'test')
+        self.list.add('2. Test', 'test2')
+        self.hideList()
+
+    def render(self, vs):
+        cs = vs.orthoBoxCS(0, "MENU",0, self.x, self.y-self.h/2,
+                           1,1, self.w, self.h)
+        vs.put(self.list, cs)
+
+    def showList(self, x, y):
+        self.w, self.h = self.list.width, self.list.height
+        self.x, self.y = x, y
+
+    def hideList(self):
+        self.x, self.y = 0,0
+        self.w, self.h = .0, .0
+
 
 class Context(ff.view.lava.FenPDFContext, SuperCaller):
     def __init__(self, win, fen, pp, nv, ctrl):
         self.super = self.superproxy(ff.view.lava.FenPDFContext)
         ff.view.lava.FenPDFContext.__init__(self, fen, pp, nv, ctrl)
-        self.states = ContextStates()
+        self.states = ContextStates(fen, pp)
         self.keys = KeyHandler(self.states)
+        self.mousemenu = MouseMenu()
         global w
         w = win
+        
+        
     def setMngr(self, mngr):
         self.mgr = mngr
+        
     def key(self, key):
-        if self.keys.key(key): return
-        else: self.super.handleKeyStroke(key, self.mgr.getLastMain())
+        self.keys.key(key, self.mgr.getLastMain())
 
     def mainNodeToBeRender(self, vs, into, main):
         v = main.getView2D()
@@ -93,5 +171,12 @@
                 break
             v = v.getChildView2D()
 
+        self.mousemenu.render(vs)
         self.super.mainNodeToBeRender(vs, into, main)
+
+    def chgFast(self, oldVS):
+        s = self.mgr.getSingles()
+        for i in s:
+            i.getMainNode().chgFast(oldVS)
+
 
Index: fenfire/org/fenfire/util/AlphContent.java
diff -u fenfire/org/fenfire/util/AlphContent.java:1.13 
fenfire/org/fenfire/util/AlphContent.java:1.14
--- fenfire/org/fenfire/util/AlphContent.java:1.13      Mon Jul  7 14:38:25 2003
+++ fenfire/org/fenfire/util/AlphContent.java   Mon Jul  7 18:56:06 2003
@@ -36,14 +36,12 @@
 /** Help class to work with Alph
  */
 public class AlphContent {
-public static final String rcsid = "$Id: AlphContent.java,v 1.13 2003/07/07 
18:38:25 mudyc Exp $";
+public static final String rcsid = "$Id: AlphContent.java,v 1.14 2003/07/07 
22:56:06 mudyc Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { System.out.println("AlphContent:: "+s); 
}
 
 
-    //private XuIndexer xuIndex;
     private Fen fen;
-
     public AlphContent( Fen fen) {
        this.fen = fen;
     }
Index: fenfire/org/fenfire/util/RDFUtil.java
diff -u fenfire/org/fenfire/util/RDFUtil.java:1.13 
fenfire/org/fenfire/util/RDFUtil.java:1.14
--- fenfire/org/fenfire/util/RDFUtil.java:1.13  Wed Jun 11 13:00:24 2003
+++ fenfire/org/fenfire/util/RDFUtil.java       Mon Jul  7 18:56:06 2003
@@ -81,6 +81,37 @@
                    Integer.toString(val)));
     }
 
+    /** Special call for structure linked vocabulary to test if node is linked.
+     * @see STRUCTLINK
+     */
+    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);
+        if (it.hasNext()) return true;
+        return false;
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
     /** Split node to two nodes. Enfilade is splitted in ind,
      * i.e. (node, [foobar]) will be with ind 2 be splitted to
@@ -88,6 +119,7 @@
      * be copied to split.
      *
      * @return the new node
+     * @deprecated
      */
     static public Object splitNode(Fen fen, Object node, int ind) {
        Object split = Nodes.N();
Index: fenfire/org/fenfire/view/lava/Cursor.java
diff -u fenfire/org/fenfire/view/lava/Cursor.java:1.1 
fenfire/org/fenfire/view/lava/Cursor.java:1.2
--- fenfire/org/fenfire/view/lava/Cursor.java:1.1       Mon Jul  7 14:38:25 2003
+++ fenfire/org/fenfire/view/lava/Cursor.java   Mon Jul  7 18:56:06 2003
@@ -25,19 +25,33 @@
 
 
     private int cursorOffset = 0;
-    public void setCursorOffset(int offset) { 
-       cursorOffset = (int) Math.min(offset, length() );
+
+    /** @return current and correct offset for cursor 
+     */
+    public int setCursorOffset(int offset) { 
+       cursorOffset = offset;
+       checkOffset();
+       return cursorOffset;
     }
+    public int getCursorOffset() { return cursorOffset; }
 
     private Object accursed = null;
     public void setAccursed(Object node) {
        accursed = node;
        setCursorOffset(0);
     }
+    public Object getAccursed() { return accursed; }
     public boolean isAccursed(Object node) {
        return node == accursed; 
     }
+    public boolean hasAccursed() {
+       return accursed != null; 
+    }
 
+    private void checkOffset() {
+       if (cursorOffset < 0) cursorOffset = 0;
+       cursorOffset = (int) Math.min(cursorOffset, length() );
+    }
     private int length() {
        String s = alph.getText(accursed);
        return s.length();
Index: fenfire/org/fenfire/view/lava/FenPDFContext.java
diff -u fenfire/org/fenfire/view/lava/FenPDFContext.java:1.35 
fenfire/org/fenfire/view/lava/FenPDFContext.java:1.36
--- fenfire/org/fenfire/view/lava/FenPDFContext.java:1.35       Tue Jul  1 
12:33:33 2003
+++ fenfire/org/fenfire/view/lava/FenPDFContext.java    Mon Jul  7 18:56:06 2003
@@ -357,81 +357,9 @@
         }}
     }
 
-    
-    public void handleKeyStroke(String stroke, AbstractMainNode2D main)
-    { try {
-       // synchronized(fen) XXX
-       if(dbg) p("s: "+stroke+", v: "+main);
-
-       if (stroke.equals("Return")) {
-           if(dbg) p("Insert \\n");
-           if (accursed[CURR]==null) return;
-           
-           String acc = Nodes.toString(accursed[CURR]);
-           ppAct.insertText(acc, cursorOffset[CURR], "\n");
-           cursorOffset[CURR]++;
-       }
-       else if (stroke.equals("Backspace")) {
-            if (accursed[CURR]==null) return;
-
-            String note = Nodes.toString(accursed[CURR]);
-            if (cursorOffset[CURR] >= 1) {
-                ppAct.deleteText(note,
-                                 cursorOffset[CURR] - 1,
-                                 cursorOffset[CURR]);
-                cursorOffset[CURR]--;
-                String text = alphContent.getText(fen.constgraph, 
-                                                 accursed[CURR]);
-                if (cursorOffset[CURR] == 0 &&
-                    text.length() == 0) {
-                    if (isLinked(accursed[CURR])){
-                        ppAct.insertText(note, 0, "#");
-                    } else {
-                        ppAct.deleteNote(note);
-                        accursed[CURR] = null;
-                        cursorOffset[CURR] = -1;
-                    }
-                }
-            }
-       }
-       else if (stroke.equals("Left")) {
-            if (accursed[CURR]==null) return;
-            if (cursorOffset[CURR] > 0) cursorOffset[CURR]--;
-        }
-        else if (stroke.equals("Right")) {
-            if (accursed[CURR]==null) return;
-            String text = alphContent.getText(fen.constgraph, accursed[CURR]);
-            if ( cursorOffset[CURR] < text.length())
-                cursorOffset[CURR]++;
-       }
-        // normal alphabets etc.
-       else if (stroke.length() == 1) {
-            char c = stroke.toCharArray()[0];
-            p("Pressed: '"+ stroke +"', ch: '"+c+"' and int: "+ (int)c);
 
-           if (accursed[CURR]==null) {
-               String paper = Nodes.toString(main.getPlane());
-               String note = ppAct.newNote(paper, 
(int)main.getFocus().getPanX(),
-                                         (int)main.getFocus().getPanY(), "");
-               cursorOffset[CURR] = 0;
-               accursed[CURR] = Nodes.get(note);
-           }
-           String acc = Nodes.toString(accursed[CURR]);
-           ppAct.insertText(acc, cursorOffset[CURR], stroke);
-           cursorOffset[CURR]++;
-           return;
-       } else  p("No keystroke defined!");
-    } catch (RemoteException e) {
-       p("RemoteException ocurred! "+e);
-       return;
-    }} 
-
-    private boolean isLinked(Object node) {
-        Object test = fen.graph.find1_11X(node, STRUCTLINK.linkedTo);
-        if (test != null) return true;
-        test = fen.graph.find1_X11(STRUCTLINK.linkedTo, node);
-        if (test != null) return true;
-        return false;
+    public void handleKeyStroke(String s, AbstractMainNode2D main) {
+       throw new Error("method removed");
     }
-
+    
 }




reply via email to

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