gzz-commits
[Top][All Lists]
Advanced

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

[Gzz-commits] fenfire/org/fenfire/loom Cursor.java Cursor.tes...


From: Benja Fallenstein
Subject: [Gzz-commits] fenfire/org/fenfire/loom Cursor.java Cursor.tes...
Date: Tue, 04 Mar 2003 07:28:39 -0500

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Benja Fallenstein <address@hidden>      03/03/04 07:28:39

Modified files:
        org/fenfire/loom: Cursor.java Cursor.test Loom.java 
                          SimpleView.test WheelView.test 

Log message:
        Order connections first by property, then by subject/object

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/Cursor.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/Cursor.test.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/Loom.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/SimpleView.test.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/WheelView.test.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: fenfire/org/fenfire/loom/Cursor.java
diff -u fenfire/org/fenfire/loom/Cursor.java:1.3 
fenfire/org/fenfire/loom/Cursor.java:1.4
--- fenfire/org/fenfire/loom/Cursor.java:1.3    Tue Mar  4 06:17:19 2003
+++ fenfire/org/fenfire/loom/Cursor.java        Tue Mar  4 07:28:39 2003
@@ -45,44 +45,31 @@
      */
     public int rotation;
 
-    /** The comparator used to order the nodes in the graph.
-     *  The vertical order of nodes is determined by this Comparator.
+    /** The comparator used to order statements by subject.
+     *  The vertical order of object nodes 
+     *  is determined by this Comparator.
      */
-    public Comparator order;
+    protected Comparator subjOrder;
 
-    /** Compare statements by their subjects.
-     *  <code>subjOrder</code> orders statements by applying
-     *  <code>order</code> to their subjects. 
+    /** The comparator used to order statements by object.
+     *  The vertical order of subject nodes 
+     *  is determined by this Comparator.
      */
-    protected Comparator subjOrder = new Comparator() {
-           public int compare(Object o1, Object o2) {
-               Statement s1 = (Statement)o1, s2 = (Statement)o2;
-               return order.compare(s1.getSubject(), s2.getSubject());
-           }
-       };
-
-    /** Compare statements by their objects.
-     *  <code>objOrder</code> orders statements by applying
-     *  <code>order</code> to their objects. 
-     */
-    protected Comparator objOrder = new Comparator() {
-           public int compare(Object o1, Object o2) {
-               Statement s1 = (Statement)o1, s2 = (Statement)o2;
-               return order.compare(s1.getObject(), s2.getObject());
-           }
-       };
+    protected Comparator objOrder;
 
     /** Create a new cursor without giving it a position yet.
      */
-    public Cursor(Comparator order) {
-       this.order = order;
+    public Cursor(Comparator subjOrder, Comparator objOrder) {
+       this.subjOrder = subjOrder;
+       this.objOrder = objOrder;
     }
 
     /** Create a new cursor and give it a position.
      */
-    public Cursor(Comparator order, Resource focus, int dir,
+    public Cursor(Comparator subjOrder, Comparator objOrder,
+                 Resource focus, int dir,
                  RDFNode rotation) {
-       this(order);
+       this(subjOrder, objOrder);
        set(focus, dir, rotation);
     }
 
Index: fenfire/org/fenfire/loom/Cursor.test
diff -u fenfire/org/fenfire/loom/Cursor.test:1.4 
fenfire/org/fenfire/loom/Cursor.test:1.5
--- fenfire/org/fenfire/loom/Cursor.test:1.4    Tue Mar  4 06:17:19 2003
+++ fenfire/org/fenfire/loom/Cursor.test        Tue Mar  4 07:28:39 2003
@@ -25,13 +25,19 @@
 from com.hp.hpl.mesa.rdf import jena
 
 class Cmp(java.util.Comparator):
+    def __init__(self, get):
+        self.get = get
+
     def compare(self, r1, r2):
         if (not r1) or (not r2):
             raise java.lang.NullPointerException("r1=%r, r2=%r" % (r1, r2))
 
-        # Nodes are compared by order of index:
-        # n[4] > n[2], n[7]  > n[4] etc.
-        return n.index(r1) - n.index(r2)
+        # Nodes are compared by order of subject's index:
+        # n[4] > n[2], n[7] > n[4] etc.
+        return n.index(self.get(r1)) - n.index(self.get(r2))
+
+subjectCmp = Cmp(lambda stmt: stmt.getSubject())
+objectCmp = Cmp(lambda stmt: stmt.getObject())
 
 def list(set):
     l = []; i = set.iterator()
@@ -56,7 +62,7 @@
     for i in range(3,10):
         n[2].addProperty(p, n[i])
 
-    c = gzz.loom.Cursor(Cmp())
+    c = gzz.loom.Cursor(subjectCmp, objectCmp)
 
 
 def testGetConnections():
Index: fenfire/org/fenfire/loom/Loom.java
diff -u fenfire/org/fenfire/loom/Loom.java:1.4 
fenfire/org/fenfire/loom/Loom.java:1.5
--- fenfire/org/fenfire/loom/Loom.java:1.4      Tue Mar  4 06:17:19 2003
+++ fenfire/org/fenfire/loom/Loom.java  Tue Mar  4 07:28:39 2003
@@ -79,13 +79,32 @@
        final Statement stmt = model.listStatements().next();
        final GraphicsAPI api = GraphicsAPI.getInstance();
 
-       final Comparator order = new Comparator() {
+       final Comparator subjOrder = new Comparator() {
                public int compare(Object o1, Object o2) {
-                   return o1.toString().compareTo(o2.toString());
+                   Statement s1 = (Statement)o1, s2 = (Statement)o2;
+                   int cmp = s1.getPredicate().toString()
+                       .compareTo(s2.getPredicate().toString());
+                   if(cmp == 0)
+                       cmp = s1.getSubject().toString()
+                           .compareTo(s2.getSubject().toString());
+                   return cmp;
                }
            };
+       final Comparator objOrder = new Comparator() {
+               public int compare(Object o1, Object o2) {
+                   Statement s1 = (Statement)o1, s2 = (Statement)o2;
+                   int cmp = s1.getPredicate().toString()
+                       .compareTo(s2.getPredicate().toString());
+                   if(cmp == 0)
+                       cmp = s1.getObject().toString()
+                           .compareTo(s2.getObject().toString());
+                   return cmp;
+               }
+           };
+
        final Cursor cursor = 
-           new Cursor(order, stmt.getSubject(), 1, stmt.getObject());
+           new Cursor(subjOrder, objOrder, 
+                      stmt.getSubject(), 1, stmt.getObject());
 
        final TextStyle style = api.getTextStyle("Serif", 0, 12);
        final NodeView nodeView = new NodeView() {
Index: fenfire/org/fenfire/loom/SimpleView.test
diff -u fenfire/org/fenfire/loom/SimpleView.test:1.4 
fenfire/org/fenfire/loom/SimpleView.test:1.5
--- fenfire/org/fenfire/loom/SimpleView.test:1.4        Tue Mar  4 07:02:50 2003
+++ fenfire/org/fenfire/loom/SimpleView.test    Tue Mar  4 07:28:39 2003
@@ -49,15 +49,19 @@
         props[node] = prop
 
 class Cmp(java.util.Comparator):
+    def __init__(self, get): self.get = get
+    
     def compare(self, r1, r2):
-        return [t,r,s,v,u,w].index(r1) - [t,r,s,v,u,w].index(r2)
+        return [t,r,s,v,u,w].index(self.get(r1)) \
+               - [t,r,s,v,u,w].index(self.get(r2))
 
 def testNullRotation():
     r.addProperty(p, s)
     r.addProperty(p, t)
 
     vs = getvs()
-    cursor = gzz.loom.Cursor(Cmp())
+    cursor = gzz.loom.Cursor(Cmp(lambda stmt: stmt.getSubject()),
+                             Cmp(lambda stmt: stmt.getObject()))
     cursor.set(r)
     view.render(vs, 0, cursor)
 
@@ -82,7 +86,9 @@
     w.addProperty(p, r)
 
     vs = getvs()
-    cursor = gzz.loom.Cursor(Cmp(), r, 1, s)
+    cursor = gzz.loom.Cursor(Cmp(lambda stmt: stmt.getSubject()),
+                             Cmp(lambda stmt: stmt.getObject()),
+                             r, 1, s)
     assert cursor.rotation == 0
     view.render(vs, 0, cursor)
 
Index: fenfire/org/fenfire/loom/WheelView.test
diff -u fenfire/org/fenfire/loom/WheelView.test:1.4 
fenfire/org/fenfire/loom/WheelView.test:1.5
--- fenfire/org/fenfire/loom/WheelView.test:1.4 Tue Mar  4 07:02:50 2003
+++ fenfire/org/fenfire/loom/WheelView.test     Tue Mar  4 07:28:39 2003
@@ -50,8 +50,11 @@
         props[node] = prop
 
 class Cmp(java.util.Comparator):
+    def __init__(self, get): self.get = get
+    
     def compare(self, r1, r2):
-        return [t,r,s,v,u,w].index(r1) - [t,r,s,v,u,w].index(r2)
+        return [t,r,s,v,u,w].index(self.get(r1)) \
+               - [t,r,s,v,u,w].index(self.get(r2))
 
 
 def distance(p1, p2):
@@ -94,7 +97,9 @@
     w.addProperty(p, r)
 
     vs = getvs()
-    cursor = gzz.loom.Cursor(Cmp(), r, 1, s)
+    cursor = gzz.loom.Cursor(Cmp(lambda stmt: stmt.getSubject()),
+                             Cmp(lambda stmt: stmt.getObject()),
+                             r, 1, s)
     assert cursor.rotation == 0
     view.render(vs, 0, cursor)
 




reply via email to

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