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: Matti Katila
Subject: [Gzz-commits] fenfire/org/fenfire demo/buoyoing.py view/buoy/...
Date: Mon, 19 May 2003 03:20:08 -0400

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Matti Katila <address@hidden>   03/05/19 03:20:08

Modified files:
        org/fenfire/demo: buoyoing.py 
        org/fenfire/view/buoy: AbstractMainNode2D.java 
        org/fenfire/view/lava: FenPDFContext.java 

Log message:
        context

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.51&tr2=1.52&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/FenPDFContext.java.diff?tr1=1.13&tr2=1.14&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.51 
fenfire/org/fenfire/demo/buoyoing.py:1.52
--- fenfire/org/fenfire/demo/buoyoing.py:1.51   Fri May 16 11:13:16 2003
+++ fenfire/org/fenfire/demo/buoyoing.py        Mon May 19 03:20:08 2003
@@ -117,6 +117,7 @@
 ff.view.buoy.NodeType2DFull.effigy = 0
 
 context = ff.view.lava.FenPDFContext(fen, ppAct, nodeview)
+context.initMainNodes(2)
 nodeview.setContext(context)
 textnodeview.setContext(context)
 context.setAccursed(noteA1)
@@ -235,7 +236,7 @@
     def __init__(self):
        vob.buoy.buoymanager.MultiBuoyManager.__init__(self, 
                [mainNode, mainNode2], [ppconnector, tconnector],
-               DoubleGeometer())
+               DoubleGeometer(), context)
 
 currentScene = Scene()
 
Index: fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java
diff -u fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.14 
fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.15
--- fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java:1.14  Fri May 16 
07:12:11 2003
+++ fenfire/org/fenfire/view/buoy/AbstractMainNode2D.java       Mon May 19 
03:20:08 2003
@@ -72,10 +72,6 @@
        void mainNodeToBeRender(VobScene vs, int into,
                                 AbstractMainNode2D main);
     }
-    public interface DoMouse {
-       boolean doMouse(MouseEvent e, VobScene oldVobScene,
-                        AbstractMainNode2D main);
-    }
 
     /** Cause the changes to the zooming and panning variables
      * to be shown in the given vobscene.
@@ -159,8 +155,6 @@
     }
     
     protected boolean doMouse(MouseEvent e, VobScene oldVobScene) {
-        if (context.doMouse(e, oldVobScene, this)) return false;
-
        // Move by dragging with button 1
        if(m_state[2] == e.BUTTON1_MASK && 
           e.getID() == MouseEvent.MOUSE_DRAGGED) {
Index: fenfire/org/fenfire/view/lava/FenPDFContext.java
diff -u fenfire/org/fenfire/view/lava/FenPDFContext.java:1.13 
fenfire/org/fenfire/view/lava/FenPDFContext.java:1.14
--- fenfire/org/fenfire/view/lava/FenPDFContext.java:1.13       Fri May 16 
08:14:34 2003
+++ fenfire/org/fenfire/view/lava/FenPDFContext.java    Mon May 19 03:20:08 2003
@@ -19,14 +19,14 @@
 import org.nongnu.libvob.*;
 import org.nongnu.libvob.vobs.*;
 import java.awt.event.MouseEvent;
+import java.awt.Color;
 
 /** FenPDF context what handles keystrokes and 
  * accursed node at least. 
  */
 public class FenPDFContext implements 
      ContextNodeView.Context,
-     AbstractMainNode2D.Render,
-     AbstractMainNode2D.DoMouse
+     AbstractMainNode2D.Render
 {
     public static boolean dbg = false;
     private static void p(String s) { System.out.println("FenPDFContext:: 
"+s); }
@@ -43,19 +43,48 @@
     }
 
 
-    private int cursorOffset = -1;
-    public void setCursorOffset(int offset) { cursorOffset = offset; }
 
-    private Object accursed = null, toBeLinked = null;
+    // current main node nro.
+    private int CURR = 0;
+    public void initMainNodes(int count) {
+       if (cursorOffset != null &&
+           cursorOffset.length == count) return;
+       cursorOffset = new int[count];
+       accursedColor = new Color[]{ Color.red, Color.blue,
+                                    Color.yellow, Color.white};
+       accursed = new Object[count];
+       for (int i=0; i<count; i++) {
+           cursorOffset[i] = 0;
+       }
+    }
+    public void setMainNodeIndex(int index) { 
+       CURR = index; 
+       if (dbg) p("set current: "+index);
+    }
+
+
+    private Color accursedColor[] = null;
+
+    private int cursorOffset[] = null;
+    public void setCursorOffset(int offset) { cursorOffset[CURR] = offset; }
+
+    private Object[] accursed = null;
     public void setAccursed(Object node) { 
-       accursed=node; 
-        cursorOffset = 0;
+       accursed[CURR] = node; 
+        cursorOffset[CURR] = 0;
     }
 
+    private boolean isAccursed(Object node) {
+       for (int i=0; i<accursed.length; i++) {
+           if (accursed[i] == node) return true;
+       }
+       return false;
+    }
+    
 
     /** call back from ContextNodeView */
     public void isCurrent(Object node, ContextNodeView nv) {
-       if (node==accursed) {
+       if (isAccursed(node)) {
             nv.setUnCached();
         } else {
             nv.setCached();
@@ -64,10 +93,25 @@
 
     /** call back from RSTText */
     public void isToBePlaced(Object node, TextHandler text) {
-       if (dbg) p("n"+node+" == "+accursed);
-       if (node==accursed) {
-           text.setColor(java.awt.Color.red);
-           text.setCursorOffset(cursorOffset);
+       if (dbg) p("n"+node+" == "+accursed[CURR]);
+
+       if (isAccursed(node)) {
+           float count=0; 
+           float r = 0, g = 0, b = 0;
+           for (int i=0; i<accursed.length; i++) {
+               if (accursed[i]==node) {
+                   r += accursedColor[i].getRed();
+                   g += accursedColor[i].getGreen();
+                   b += accursedColor[i].getBlue();
+                   count++;
+               }
+           }
+           r /= count;
+           g /= count;
+           b /= count;
+           //p("colo: " +r+" "+g+" "+b);
+           text.setColor(new Color(r/255,g/255,b/255));
+           text.setCursorOffset(cursorOffset[CURR]);
        } else {
            text.setColor(java.awt.Color.black);
            text.setCursorOffset(-1);
@@ -76,10 +120,7 @@
 
 
     private boolean cursor = false;
-    private boolean leftLink = false;
-    private boolean rigthLink = false;
-    private boolean setOrigin = false;
-    private boolean unSetOrigin = false;
+    private boolean link = false;
 
     /** call back from AbstractMainNodeView2D */
     public void mainNodeToBeRender(VobScene vs, int into, 
@@ -87,44 +128,30 @@
     {
         // first set everything to false
         cursor = false;
-        leftLink = false;
-        rigthLink = false;
-        setOrigin = false;
-        unSetOrigin = false;
+       link = false;
 
         // if in canvas
         if (main instanceof MainNode2D) {
             // what to do if accursed is NULL?
-            if (accursed==null) {
+            if (accursed[CURR]==null) {
                 if (main instanceof MainNode2D)
                     cursor = true;
                 // fishey doesn't need cursor (currently)
             }
-            // and what to do if accursed is choosed?
-            else {
-                if (toBeLinked == null) setOrigin = true;
-                if (toBeLinked != null) unSetOrigin = true;
-                
-                if (toBeLinked != accursed) {
-                    setOrigin = true;
-                    
-                    // and if link from has been choosed?
-                    if (toBeLinked != null) {
-                        leftLink = true;
-                        rigthLink = true;
-                    }
-                }
-            }
+           if (accursed.length >= 2) {
+               if (accursed[0] != accursed[1] &&
+                   accursed[0] != null &&
+                   accursed[1] != null) link = true;
+           }
         }
         
         //render!
-        renderContext(vs, into, main);
+        renderMain(vs, into, main);
     }
 
-    private void renderContext(VobScene vs, int into,
+    private void renderMain(VobScene vs, int into,
                                AbstractMainNode2D main) 
-        {
-
+    {
        if (cursor) {
             float tmp[] = new float[2];
             vs.coords.getSqSize(into, tmp);
@@ -132,73 +159,57 @@
                                       tmp[0]/2, tmp[1]/2, 1,1, tmp[0]/12, 
tmp[1]/12);
            vs.put(new LineVob(0,0,0,1, java.awt.Color.darkGray), cursor);
        }
+    }
 
-        Button b_always = new Button(vs, 0, GraphicsAPI.getInstance().
+    public void renderContext(VobScene vs, int into)
+    {
+       Button b = new Button(vs, 0, GraphicsAPI.getInstance().
                                      getTextStyle("sans", 0, 24),
                                      30, 0, 50);
-        b_always.add("[Import PS/PDF]", "IMPORT");
+        b.add("[Import PS/PDF]", "IMPORT");
+        b.add("[New paper]",     "NEW_PAPER");
 
-        Button b = new Button(vs, 0, GraphicsAPI.getInstance().
-                              getTextStyle("sans", 0, 24),
-                              40, 25, 50);
-        if (leftLink)   b.add("[<--]",              "LINK_LEFT");
-        if (setOrigin)  b.add("[Set link origin]",  "SET_ORIG");
-        if (unSetOrigin)b.add("[Unset link origin]","UNSET_ORIG");
-        if (rigthLink)  b.add("[-->]",              "LINK_RIGTH");
+        if (link) b.add("[Link!]", "LINK");
     } 
 
 
-    public boolean doMouse(MouseEvent e, VobScene oldVS,
-                           AbstractMainNode2D main) {
-        if (e.getID() != MouseEvent.MOUSE_CLICKED) return false;
+    /** @return object of new plane for mainnode view 2d
+     */
+    public Object doMouse(MouseEvent e, VobScene oldVS) throws RemoteException 
{
+        if (e.getID() != MouseEvent.MOUSE_CLICKED) return null;
         int cs = oldVS.coords.getCSAt(0, e.getX(), e.getY(), null);
-       if(cs < 0) return false;
+       if(cs < 0) return null;
         Object obKey = oldVS.matcher.getKey(cs); 
-        if (obKey == null) return false;
+        if (obKey == null) return null;
         if (obKey instanceof String) {
             String key = (String)obKey;
             if (dbg) p("found something! "+key);
-            if (key.equals("SET_ORIG"))        actionSetLinkOrigin();
-            else if (key.equals("UNSET_ORIG")) actionUnSetLinkOrigin();
-            else if (key.equals("LINK_LEFT"))  actionLinkRigth();
-            else if (key.equals("LINK_RIGTH")) actionLinkLeft();
-
-            else if (key.equals("IMPORT")) p("NOT IMPLEMENTED");
-            else return false;
+            if (key.equals("IMPORT")) p("NOT IMPLEMENTED");
+           else if (key.equals("LINK")) {
+               if (CURR >0) actionLink(1); else actionLink(-1);
+           }
+           else if (key.equals("NEW_PAPER")) {
+               String paper = ppAct.newPaper();
+               return new MainNode2D(Nodes.get(paper), null, 0,0,1);
+           }
+            else return null;
 
             AbstractUpdateManager.chg();
-            return true;
+            return null;
         }
-        return false;
-    }
-
-    private void actionUnSetLinkOrigin() {
-        toBeLinked = null;
-    }
-    private void actionSetLinkOrigin() {
-        p("set origin");
-        if (toBeLinked==accursed)
-            toBeLinked = null;
-        else toBeLinked = accursed;
+        return null;
     }
 
     private void actionLinkLeft() { actionLink(-1); }
     private void actionLinkRigth() { actionLink(1); }
     private void actionLink(int side) {
-        if (toBeLinked==null) {
-            p("to be linked is null?!");
-            return;
-        }
-        else if (accursed==toBeLinked) {
-            p("to be linked to itself??!");
-            return;
-        } else { try {
+        { try {
             if (side < 0) {
-                ppAct.assocNotes(Nodes.toString(toBeLinked), -1,
-                                 Nodes.toString(accursed));
+                ppAct.assocNotes(Nodes.toString(accursed[0]), -1,
+                                 Nodes.toString(accursed[1]));
             } else {
-                ppAct.assocNotes(Nodes.toString(toBeLinked), 1,
-                                 Nodes.toString(accursed));
+                ppAct.assocNotes(Nodes.toString(accursed[0]), 1,
+                                 Nodes.toString(accursed[1]));
             }
         } catch (Exception e) {
             p("exception - do nothing.."+e);
@@ -212,62 +223,56 @@
        p("s: "+stroke+", v: "+main);
 
        if (stroke.equals("Return")) {
-           if (accursed==null) return;
+           if (accursed[CURR]==null) return;
 
-           String acc = Nodes.toString(accursed);
-           ppAct.insertText(acc, cursorOffset, "\n");
-           cursorOffset++;
-       }
-       else if (stroke.equals("Ctrl-C")) {
-            actionSetLinkOrigin();
-       }
-       else if (stroke.equals("Ctrl-X")) actionLinkLeft();
-        else if (stroke.equals("Ctrl-V")) {
-            actionLinkRigth();
+           String acc = Nodes.toString(accursed[CURR]);
+           ppAct.insertText(acc, cursorOffset[CURR], "\n");
+           cursorOffset[CURR]++;
        }
        else if (stroke.equals("Backspace")) {
-            if (accursed==null) return;
+            if (accursed[CURR]==null) return;
 
-            String note = Nodes.toString(accursed);
-            if (cursorOffset >= 1) {
+            String note = Nodes.toString(accursed[CURR]);
+            if (cursorOffset[CURR] >= 1) {
                 ppAct.deleteText(note,
-                                 cursorOffset - 1,
-                                 cursorOffset);
-                cursorOffset--;
-                String text = alphContent.getText(fen.constgraph, accursed);
-                if (cursorOffset == 0 &&
+                                 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)){
+                    if (isLinked(accursed[CURR])){
                         ppAct.insertText(note, 0, "#");
                     } else {
                         ppAct.deleteNote(note);
-                        accursed = null;
-                        cursorOffset = -1;
+                        accursed[CURR] = null;
+                        cursorOffset[CURR] = -1;
                     }
                 }
             }
        }
        else if (stroke.equals("Left")) {
-            if (accursed==null) return;
-            if (cursorOffset > 0) cursorOffset--;
+            if (accursed[CURR]==null) return;
+            if (cursorOffset[CURR] > 0) cursorOffset[CURR]--;
         }
         else if (stroke.equals("Right")) {
-            if (accursed==null) return;
-            String text = alphContent.getText(fen.constgraph, accursed);
-            if ( cursorOffset < text.length())
-                cursorOffset++;
+            if (accursed[CURR]==null) return;
+            String text = alphContent.getText(fen.constgraph, accursed[CURR]);
+            if ( cursorOffset[CURR] < text.length())
+                cursorOffset[CURR]++;
        }
        else if (stroke.length() == 1) {
-           if (accursed==null) {
+           if (accursed[CURR]==null) {
                String paper = Nodes.toString(main.getPlane());
                String note = ppAct.newNote(paper, (int)main.getPanX(),
                                          (int)main.getPanY(), "");
-               cursorOffset = 0;
-               accursed = Nodes.get(note);
+               cursorOffset[CURR] = 0;
+               accursed[CURR] = Nodes.get(note);
            }
-           String acc = Nodes.toString(accursed);
-           ppAct.insertText(acc, cursorOffset, stroke);
-           cursorOffset++;
+           String acc = Nodes.toString(accursed[CURR]);
+           ppAct.insertText(acc, cursorOffset[CURR], stroke);
+           cursorOffset[CURR]++;
            return;
        } else  p("No keystroke defined!");
     } catch (RemoteException e) {




reply via email to

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