[Top][All Lists]
[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