gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] gzz/lava gzz/loom/SimpleView.java test/gzz/loom...


From: Benja Fallenstein
Subject: [Gzz-commits] gzz/lava gzz/loom/SimpleView.java test/gzz/loom...
Date: Sat, 22 Feb 2003 11:48:59 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Benja Fallenstein <address@hidden>      03/02/22 11:48:59

Modified files:
        lava/gzz/loom  : SimpleView.java 
        lava/test/gzz/loom: SimpleView.test 

Log message:
        order nodes

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/lava/gzz/loom/SimpleView.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/lava/test/gzz/loom/SimpleView.test.diff?tr1=1.8&tr2=1.9&r1=text&r2=text

Patches:
Index: gzz/lava/gzz/loom/SimpleView.java
diff -u gzz/lava/gzz/loom/SimpleView.java:1.11 
gzz/lava/gzz/loom/SimpleView.java:1.12
--- gzz/lava/gzz/loom/SimpleView.java:1.11      Sat Feb 22 11:07:08 2003
+++ gzz/lava/gzz/loom/SimpleView.java   Sat Feb 22 11:48:59 2003
@@ -31,6 +31,8 @@
 
 import java.awt.event.MouseEvent;
 import java.io.*;
+import java.util.*;
+
 import com.hp.hpl.mesa.rdf.jena.model.*;
 import com.hp.hpl.mesa.rdf.jena.mem.*;
 
@@ -47,26 +49,36 @@
 public class SimpleView implements View {
 
     final RectBgVob bg = new RectBgVob();
+    
+    /** The comparator used to order the nodes in the graph.
+     */
+    protected Comparator cmp;
+
+    public SimpleView(Comparator cmp) {
+       this.cmp = cmp;
+    }
 
     public void render(VobScene sc, int into, Resource focus, 
                       RDFNode rotation) {
        try {
            int midx = sc.size.width/2, midy = sc.size.height/2;
-
            int cs = sc.boxCS(into, focus, midx-25, midy-10, 50, 20);
-           int x = midx + 75, y = midy-10;
-           sc.map.put(bg, cs);
-           cs = sc.boxCS(into, rotation, x, y, 50, 20);
            sc.map.put(bg, cs);
+
+           SortedSet nodes = new TreeSet(cmp);
            StmtIterator i=focus.listProperties();
-           for(; i.hasNext();) {
-               y += 50;
-               Statement s = i.next();
-               if(s.getObject().equals(rotation)) continue;
-               cs = sc.boxCS(into, s.getObject(), x, y, 50, 20);
+           for(; i.hasNext();) nodes.add(i.next().getObject());
+           i.close();
+
+           int before = nodes.headSet(rotation).size();
+
+           int x = midx + 75, y = midy-10-before*50;
+
+           for(Iterator j=nodes.iterator(); j.hasNext();) {
+               cs = sc.boxCS(into, j.next(), x, y, 50, 20);
                sc.map.put(bg, cs);
+               y += 50;
            }
-           i.close();
        } catch(RDFException e) {
            throw new Error("RDFException: "+e);
        }
@@ -84,6 +96,11 @@
        final Model model = load(args[0]);
        final Statement stmt = model.listStatements().next();
 
+       final Comparator cmp = new Comparator() {
+               public int compare(Object o1, Object o2) {
+                   return o1.hashCode() - o2.hashCode();
+               }
+           };
        final Shower s = new Shower() {
                Screen screen;
                public void setScreen(Screen s) {
@@ -91,7 +108,7 @@
                }
                public VobScene generate() {
                    VobScene sc = this.screen.window.createVobScene();
-                   SimpleView sv = new SimpleView();
+                   SimpleView sv = new SimpleView(cmp);
                    sv.render(sc, 0, stmt.getSubject(), stmt.getObject());
                    return sc;
                }
Index: gzz/lava/test/gzz/loom/SimpleView.test
diff -u gzz/lava/test/gzz/loom/SimpleView.test:1.8 
gzz/lava/test/gzz/loom/SimpleView.test:1.9
--- gzz/lava/test/gzz/loom/SimpleView.test:1.8  Sat Feb 22 11:07:09 2003
+++ gzz/lava/test/gzz/loom/SimpleView.test      Sat Feb 22 11:48:59 2003
@@ -29,20 +29,29 @@
 r = model.createResource()
 s = model.createResource()
 t = model.createResource()
+u = model.createResource()
+v = model.createResource()
 
-view = gzz.loom.SimpleView()
+class Cmp(java.util.Comparator):
+    def compare(self, r1, r2):
+        return [t,r,s,v,u].index(r1) - [t,r,s,v,u].index(r2)
+
+view = gzz.loom.SimpleView(Cmp())
 
 def testSimple():
     r.addProperty(p, s)
     r.addProperty(p, t)
+    r.addProperty(p, u)
+    r.addProperty(p, v)
 
     vs = getvs()
     view.render(vs, 0, r, s)
 
-    cs_r, cs_s, cs_t = [vs.matcher.getCS(0, x) for x in (r,s,t)]
-    
-    pr, ps, pt = [vs.coords.transformPoint(cs, 0, 0, None)
-                  for cs in [cs_r, cs_s, cs_t]]
+    cs_r, cs_s, cs_t, cs_u, cs_v = [vs.matcher.getCS(0, x)
+                                    for x in (r,s,t,u,v)]
+
+    pr, ps, pt, pu, pv = [vs.coords.transformPoint(cs, 0, 0, None)
+                          for cs in [cs_r, cs_s, cs_t, cs_u, cs_v]]
 
     arr = jarray.zeros(2, 'f')
     vs.coords.getSqSize(cs_r, arr)
@@ -50,19 +59,19 @@
 
     middle_x, middle_y = vs.size.width/2, vs.size.height/2
 
-    assert ps.x > pr.x
-    assert pt.x > pr.x
-
     assert abs(pr.x+w_r/2-middle_x) < 3
     assert abs(pr.y+h_r/2-middle_y) < 3
 
-    # s and t should be same size and on a single vertical line
-    assert ps.x == pt.x
+    # s,t,u,v should be same size and on a single vertical line
+    assert ps.x == pt.x == pu.x == pv.x > pr.x
 
     # s should be approx. the same height as r,
-    # while t is above or below
-    assert abs(ps.y-pr.y) < abs(pt.y-pr.y)
+    # while t is above and v,u are below
+    assert pt.y < ps.y < pv.y < pu.y
+    assert abs(ps.y-pr.y) < 5
 
     assert vs.map.getVobByCS(cs_r) != None
     assert vs.map.getVobByCS(cs_s) != None
     assert vs.map.getVobByCS(cs_t) != None
+    assert vs.map.getVobByCS(cs_u) != None
+    assert vs.map.getVobByCS(cs_v) != None




reply via email to

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