[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py impl/Simpl...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] fenfire/org/fenfire demo/buoyoing.py impl/Simpl... |
Date: |
Sun, 27 Apr 2003 16:19:25 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Changes by: Tuomas J. Lukka <address@hidden> 03/04/27 16:19:25
Modified files:
org/fenfire/demo: buoyoing.py
org/fenfire/impl: SimpleNodeContent.java simplenodecontent.test
org/fenfire/index/impl: EnfiladeOverlapIndex.java
TransientXuIndexer.java
org/fenfire/modules/pp: PPActionsImpl.test
org/fenfire/swamp: ConstGraph.java makeswamp.py
observablegraphtest.py
org/fenfire/swamp/impl: AbstractConstGraph.java HashGraph.java
StdObservedConstGraph.java
StdObserver.java stdobserver.test
org/fenfire/util: ObsDoubler.java RDFUtil.test
org/fenfire/view: PageScrollView2D.java PageSpanLayout.java
org/fenfire/view/buoy: PPLinker.test TransclusionConnector.java
Added files:
org/fenfire/swamp: TripleSetObs.java
org/fenfire/util: TripleObsDoubler.java
org/fenfire/view: irregularviewport.test
Log message:
Getting the enfilade index running
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/SimpleNodeContent.java.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/impl/simplenodecontent.test.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/index/impl/TransientXuIndexer.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/PPActionsImpl.test.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/TripleSetObs.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/ConstGraph.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/makeswamp.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/observablegraphtest.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/HashGraph.java.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/StdObserver.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/impl/stdobserver.test.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/TripleObsDoubler.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/ObsDoubler.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/RDFUtil.test.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/irregularviewport.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageScrollView2D.java.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageSpanLayout.java.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/PPLinker.test.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/TransclusionConnector.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.30
fenfire/org/fenfire/demo/buoyoing.py:1.31
--- fenfire/org/fenfire/demo/buoyoing.py:1.30 Sun Apr 27 04:05:32 2003
+++ fenfire/org/fenfire/demo/buoyoing.py Sun Apr 27 16:19:24 2003
@@ -64,6 +64,7 @@
fen.graph = fen.constgraph = ff.swamp.impl.HashGraph()
fen.txt = ff.impl.SimpleNodeContent(fen, myalph);
fen.txtfunc = fen.txt.getNodeFunction()
+fen.enfiladeOverlap = fen.txt.getTransclusionIndex()
# Create the buoy view elements
scrollblockLinker = ff.view.buoy.ScrollBlockNodeLinker(fen)
Index: fenfire/org/fenfire/impl/SimpleNodeContent.java
diff -u fenfire/org/fenfire/impl/SimpleNodeContent.java:1.7
fenfire/org/fenfire/impl/SimpleNodeContent.java:1.8
--- fenfire/org/fenfire/impl/SimpleNodeContent.java:1.7 Fri Apr 25 11:40:31 2003
+++ fenfire/org/fenfire/impl/SimpleNodeContent.java Sun Apr 27 16:19:24 2003
@@ -9,10 +9,14 @@
import org.nongnu.alph.xml.SpanSerializer;
import org.fenfire.*;
+import org.fenfire.util.*;
+import org.fenfire.swamp.*;
import org.fenfire.vocab.FF;
import org.fenfire.swamp.Nodes;
import org.fenfire.swamp.Literal;
+import java.util.*;
+
/** A trivial, NON-CACHING node content using FF.content.
* If you want performance using caching, you need to wrap
@@ -21,7 +25,7 @@
public class SimpleNodeContent implements NodeContent {
public static boolean dbg = true;
-public static final String rcsid = "$Id: SimpleNodeContent.java,v 1.7
2003/04/25 15:40:31 benja Exp $";
+public static final String rcsid = "$Id: SimpleNodeContent.java,v 1.8
2003/04/27 20:19:24 tjl Exp $";
private static void pa(String s) { System.out.println("AlphContent: "+s); }
SpanReader spanReader;
@@ -62,9 +66,36 @@
}
}
+
Func func = new Func();
public org.fenfire.swamp.NodeFunction getNodeFunction() {
return func;
+ }
+
+ org.fenfire.index.impl.EnfiladeOverlapIndex trIndex;
+ private void rereadIndex() {
+ if(dbg) pa("SNC TRINDEX: Rereading whole index!!!!");
+ TripleSetObs obs = new TripleSetObs() {
+ public void chg() { rereadIndex(); }
+ public void chgTriple(int dir, Object o1, Object o2, Object o3) {
+ if(dbg) pa("SNC TRINDEX: Single triple chgd!!!!");
+ trIndex.set(dir, o1, o3);
+ }
+ };
+ trIndex.clear();
+ for(Iterator i = fen.constgraph.findN_X1A_Iter(FF.content, obs);
i.hasNext();) {
+ Object node = i.next();
+ Object content = fen.constgraph.find1_11X(node, FF.content);
+ trIndex.set(1, node, content);
+ }
+ }
+
+ public org.fenfire.index.Index getTransclusionIndex() {
+ if(trIndex == null) {
+ trIndex = new org.fenfire.index.impl.EnfiladeOverlapIndex();
+ rereadIndex();
+ }
+ return trIndex;
}
Index: fenfire/org/fenfire/impl/simplenodecontent.test
diff -u fenfire/org/fenfire/impl/simplenodecontent.test:1.3
fenfire/org/fenfire/impl/simplenodecontent.test:1.4
--- fenfire/org/fenfire/impl/simplenodecontent.test:1.3 Thu Apr 24 09:29:12 2003
+++ fenfire/org/fenfire/impl/simplenodecontent.test Sun Apr 27 16:19:24 2003
@@ -2,6 +2,7 @@
from com.hp.hpl.mesa.rdf import jena
+import org
from org import fenfire
from org.nongnu import alph, storm
@@ -14,7 +15,10 @@
fen = fenfire.Fen()
fen.graph = fen.constgraph = fenfire.swamp.impl.HashGraph()
- snc = fenfire.impl.SimpleNodeContent(fen)
+ snc = fenfire.impl.SimpleNodeContent(fen,
+ alph.impl.StormAlph(
+ storm.impl.TransientPool(
+ java.util.HashSet())))
fen.txt = snc
fen.txtfunc = snc.getNodeFunction()
Index: fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java
diff -u fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java:1.1
fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java:1.2
--- fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java:1.1 Wed Mar
26 18:48:14 2003
+++ fenfire/org/fenfire/index/impl/EnfiladeOverlapIndex.java Sun Apr 27
16:19:24 2003
@@ -35,10 +35,21 @@
* overlaps with the given one.
* VERY INEFFICIENT.
*/
-public class EnfiladeOverlapIndex implements Indexer, Index {
+public class EnfiladeOverlapIndex implements Index {
- private HashMap map = new HashMap();
- public void set(Object entryName, Object value) {
+ private HashMap map;
+ public Map getContents() {
+ return Collections.con
+ }
+
+ public EnfiladeOverlapIndex() {
+ clear();
+ }
+ public void clear() {
+ map = new HashMap();
+ }
+
+ public void set(int dir, Object entryName, Object value) {
if(value == null) {
map.remove(entryName);
return;
@@ -46,6 +57,7 @@
if(!(value instanceof Enfilade1DImpl)) return;
map.put(entryName, value);
}
+
public Collection getMatches(Object o) {
Set s = map.entrySet();
List ret = new ArrayList();
Index: fenfire/org/fenfire/index/impl/TransientXuIndexer.java
diff -u fenfire/org/fenfire/index/impl/TransientXuIndexer.java:1.1
fenfire/org/fenfire/index/impl/TransientXuIndexer.java:1.2
--- fenfire/org/fenfire/index/impl/TransientXuIndexer.java:1.1 Wed Mar 26
18:48:14 2003
+++ fenfire/org/fenfire/index/impl/TransientXuIndexer.java Sun Apr 27
16:19:24 2003
@@ -40,12 +40,12 @@
public Index getBackwardIndex() { return b; }
public void add(XuLink link) {
- f.set(link, link.from);
- b.set(link, link.to);
+ f.set(1, link, link.from);
+ b.set(1, link, link.to);
}
public void remove(XuLink link) {
- f.set(link, null);
- b.set(link, null);
+ f.set(-1,link, link.from);
+ b.set(-1,link, link.to);
}
}
Index: fenfire/org/fenfire/modules/pp/PPActionsImpl.test
diff -u fenfire/org/fenfire/modules/pp/PPActionsImpl.test:1.6
fenfire/org/fenfire/modules/pp/PPActionsImpl.test:1.7
--- fenfire/org/fenfire/modules/pp/PPActionsImpl.test:1.6 Tue Apr 15
13:27:26 2003
+++ fenfire/org/fenfire/modules/pp/PPActionsImpl.test Sun Apr 27 16:19:24 2003
@@ -10,6 +10,8 @@
from org.nongnu.alph import impl
from org.fenfire.test.gfx import getvs
+from org.nongnu import alph, storm
+import java
# from java.util import Iterator
@@ -19,7 +21,10 @@
global fen, act
fen = fenfire.Fen()
fen.constgraph = fen.graph = fenfire.swamp.impl.HashGraph()
- fen.txt = fenfire.impl.SimpleNodeContent(fen)
+ fen.txt = fenfire.impl.SimpleNodeContent(fen,
+ alph.impl.StormAlph(
+ storm.impl.TransientPool(
+ java.util.HashSet())))
act = PPActionsImpl(fen)
def testNewPaper():
Index: fenfire/org/fenfire/swamp/ConstGraph.java
diff -u fenfire/org/fenfire/swamp/ConstGraph.java:1.5
fenfire/org/fenfire/swamp/ConstGraph.java:1.6
--- fenfire/org/fenfire/swamp/ConstGraph.java:1.5 Thu Apr 24 08:59:07 2003
+++ fenfire/org/fenfire/swamp/ConstGraph.java Sun Apr 27 16:19:24 2003
@@ -27,22 +27,26 @@
Object find1_X11(Object e1,Object e2) ;
Object find1_1XA(Object e0) ;
Object find1_XAA() ;
+Object find1_X1A(Object e1) ;
Iterator findN_11X_Iter(Object e0,Object e1) ;
Iterator findN_1X1_Iter(Object e0,Object e2) ;
Iterator findN_X11_Iter(Object e1,Object e2) ;
Iterator findN_1XA_Iter(Object e0) ;
Iterator findN_XAA_Iter() ;
+Iterator findN_X1A_Iter(Object e1) ;
Object find1_11X(Object e0,Object e1,Obs obs) ;
Object find1_1X1(Object e0,Object e2,Obs obs) ;
Object find1_X11(Object e1,Object e2,Obs obs) ;
Object find1_1XA(Object e0,Obs obs) ;
Object find1_XAA(Obs obs) ;
+Object find1_X1A(Object e1,Obs obs) ;
Iterator findN_11X_Iter(Object e0,Object e1,Obs obs) ;
Iterator findN_1X1_Iter(Object e0,Object e2,Obs obs) ;
Iterator findN_X11_Iter(Object e1,Object e2,Obs obs) ;
Iterator findN_1XA_Iter(Object e0,Obs obs) ;
Iterator findN_XAA_Iter(Obs obs) ;
+Iterator findN_X1A_Iter(Object e1,Obs obs) ;
}
Index: fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java
diff -u fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java:1.4
fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java:1.5
--- fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java:1.4 Thu Apr 24
08:59:07 2003
+++ fenfire/org/fenfire/swamp/impl/AbstractConstGraph.java Sun Apr 27
16:19:25 2003
@@ -32,6 +32,9 @@
public Object find1_XAA() {
return this.find1_XAA(null);
}
+public Object find1_X1A(Object e1) {
+ return this.find1_X1A(e1,null);
+}
public Iterator findN_11X_Iter(Object e0,Object e1) {
return this.findN_11X_Iter(e0,e1,null);
}
@@ -46,6 +49,9 @@
}
public Iterator findN_XAA_Iter() {
return this.findN_XAA_Iter(null);
+}
+public Iterator findN_X1A_Iter(Object e1) {
+ return this.findN_X1A_Iter(e1,null);
}
Index: fenfire/org/fenfire/swamp/impl/HashGraph.java
diff -u fenfire/org/fenfire/swamp/impl/HashGraph.java:1.6
fenfire/org/fenfire/swamp/impl/HashGraph.java:1.7
--- fenfire/org/fenfire/swamp/impl/HashGraph.java:1.6 Tue Apr 15 07:51:08 2003
+++ fenfire/org/fenfire/swamp/impl/HashGraph.java Sun Apr 27 16:19:25 2003
@@ -19,6 +19,7 @@
private HashMap ind_012 = new HashMap();
private HashMap ind_021 = new HashMap();
private HashMap ind_120 = new HashMap();
+private HashMap ind_102 = new HashMap();
private HashSet emptySet = new HashSet();
@@ -140,6 +141,19 @@
throw new NotUniqueError(null,null,null);
}
+public Object find1_X1A(Object e1,Obs obs) {
+if(obs != null) observer.addObs(observer.WILDCARD, e1, observer.WILDCARD, obs);
+
+ HashMap hash1 = (HashMap) ind_102.get(e1);
+ if(hash1 == null) return null;
+
+ Set resSet = hash1.keySet();
+
+ if(resSet.size() == 0) return null;
+ if(resSet.size() == 1) return resSet.iterator().next();
+ throw new NotUniqueError(null,e1,null);
+ }
+
public Iterator findN_11X_Iter(Object e0,Object e1,Obs obs) {
if(obs != null) observer.addObs(e0, e1, observer.WILDCARD, obs);
@@ -196,6 +210,16 @@
return resSet.iterator();
}
+public Iterator findN_X1A_Iter(Object e1,Obs obs) {
+if(obs != null) observer.addObs(observer.WILDCARD, e1, observer.WILDCARD, obs);
+
+ HashMap hash1 = (HashMap) ind_102.get(e1);
+ if(hash1 == null) return emptySet.iterator();
+
+ Set resSet = hash1.keySet();
+ return resSet.iterator();
+}
+
@@ -217,8 +241,10 @@
rm_ind(ind_120, e1, e2, e0);
+ rm_ind(ind_102, e1, e0, e2);
+
- observer.triggerObs(e0, e1, e2);
+ observer.triggerObs(-1, e0, e1, e2);
}
public void add(Object e0, Object e1, Object e2) {
@@ -229,8 +255,10 @@
add_ind(ind_120, e1, e2, e0);
+ add_ind(ind_102, e1, e0, e2);
+
- observer.triggerObs(e0, e1, e2);
+ observer.triggerObs(1, e0, e1, e2);
}
}
Index: fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java
diff -u fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java:1.4
fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java:1.5
--- fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java:1.4 Thu Apr
24 08:59:07 2003
+++ fenfire/org/fenfire/swamp/impl/StdObservedConstGraph.java Sun Apr 27
16:19:25 2003
@@ -50,6 +50,9 @@
public Object find1_XAA() {
return constgraph.find1_XAA(obs);
}
+public Object find1_X1A(Object e1) {
+ return constgraph.find1_X1A(e1,obs);
+}
public Iterator findN_11X_Iter(Object e0,Object e1) {
return constgraph.findN_11X_Iter(e0,e1,obs);
}
@@ -65,6 +68,9 @@
public Iterator findN_XAA_Iter() {
return constgraph.findN_XAA_Iter(obs);
}
+public Iterator findN_X1A_Iter(Object e1) {
+ return constgraph.findN_X1A_Iter(e1,obs);
+}
public Object find1_11X(Object e0,Object e1,Obs obs) {
throw new Error("DoubleObs");
@@ -81,6 +87,9 @@
public Object find1_XAA(Obs obs) {
throw new Error("DoubleObs");
}
+public Object find1_X1A(Object e1,Obs obs) {
+ throw new Error("DoubleObs");
+ }
public Iterator findN_11X_Iter(Object e0,Object e1,Obs obs) {
throw new Error("DoubleObs");
}
@@ -94,6 +103,9 @@
throw new Error("DoubleObs");
}
public Iterator findN_XAA_Iter(Obs obs) {
+ throw new Error("DoubleObs");
+ }
+public Iterator findN_X1A_Iter(Object e1,Obs obs) {
throw new Error("DoubleObs");
}
Index: fenfire/org/fenfire/swamp/impl/StdObserver.java
diff -u fenfire/org/fenfire/swamp/impl/StdObserver.java:1.1
fenfire/org/fenfire/swamp/impl/StdObserver.java:1.2
--- fenfire/org/fenfire/swamp/impl/StdObserver.java:1.1 Sat Apr 12 06:39:12 2003
+++ fenfire/org/fenfire/swamp/impl/StdObserver.java Sun Apr 27 16:19:25 2003
@@ -2,6 +2,7 @@
package org.fenfire.swamp.impl;
import org.fenfire.Obs;
+import org.fenfire.util.*;
import org.fenfire.swamp.*;
import java.util.HashMap;
@@ -29,35 +30,45 @@
m2.put(p, m3);
}
Obs os = (Obs)m3.get(o);
- if(os != null)
- os = new org.fenfire.util.ObsDoubler(os, obs);
- else
+ if(os != null) {
+ if((os instanceof TripleSetObs) ||
+ (obs instanceof TripleSetObs))
+ os = new org.fenfire.util.TripleObsDoubler(os, obs);
+ else
+ os = new org.fenfire.util.ObsDoubler(os, obs);
+ } else
os = obs;
m3.put(o, os);
}
- private void triggerObs_single(Object s, Object p, Object o) {
+
+ private void triggerObs_single(int dir, Object o1, Object o2, Object o3,
+ Object s, Object p, Object o) {
HashMap m2 = (HashMap)obs_spo.get(s);
if(m2 == null) return;
HashMap m3 = (HashMap)m2.get(p);
if(m3 == null) return;
Obs os = (Obs)m3.get(o);
if(os != null) {
- os.chg();
- m3.remove(o);
+ if(os instanceof TripleSetObs) {
+ ((TripleSetObs)os).chgTriple(dir, o1, o2, o3);
+ } else {
+ os.chg();
+ m3.remove(o);
+ }
}
}
/** The parameters must not be wildcard!
*/
- public void triggerObs(Object s, Object p, Object o) {
- triggerObs_single(s, p, o);
- triggerObs_single(s, p, WILDCARD);
- triggerObs_single(s, WILDCARD, o);
- triggerObs_single(s, WILDCARD, WILDCARD);
- triggerObs_single(WILDCARD, p, o);
- triggerObs_single(WILDCARD, p, WILDCARD);
- triggerObs_single(WILDCARD, WILDCARD, o);
- triggerObs_single(WILDCARD, WILDCARD, WILDCARD);
+ public void triggerObs(int dir, Object s, Object p, Object o) {
+ triggerObs_single(dir, s, p, o, s, p, o);
+ triggerObs_single(dir, s, p, o, s, p, WILDCARD);
+ triggerObs_single(dir, s, p, o, s, WILDCARD, o);
+ triggerObs_single(dir, s, p, o, s, WILDCARD, WILDCARD);
+ triggerObs_single(dir, s, p, o, WILDCARD, p, o);
+ triggerObs_single(dir, s, p, o, WILDCARD, p, WILDCARD);
+ triggerObs_single(dir, s, p, o, WILDCARD, WILDCARD, o);
+ triggerObs_single(dir, s, p, o, WILDCARD, WILDCARD, WILDCARD);
}
}
Index: fenfire/org/fenfire/swamp/impl/stdobserver.test
diff -u fenfire/org/fenfire/swamp/impl/stdobserver.test:1.1
fenfire/org/fenfire/swamp/impl/stdobserver.test:1.2
--- fenfire/org/fenfire/swamp/impl/stdobserver.test:1.1 Sat Apr 12 06:39:12 2003
+++ fenfire/org/fenfire/swamp/impl/stdobserver.test Sun Apr 27 16:19:25 2003
@@ -20,8 +20,9 @@
o1 = _Obs()
o.addObs(1, 2, 3, o1)
assert o1.t == 0
- o.triggerObs(1, 2, 3)
+ o.triggerObs(1, 1, 2, 3)
assert o1.t == 1
- o.triggerObs(1, 2, 3)
+ o.triggerObs(-1, 1, 2, 3)
assert o1.t == 1
+# XXX Triple!
Index: fenfire/org/fenfire/swamp/makeswamp.py
diff -u fenfire/org/fenfire/swamp/makeswamp.py:1.6
fenfire/org/fenfire/swamp/makeswamp.py:1.7
--- fenfire/org/fenfire/swamp/makeswamp.py:1.6 Thu Apr 24 08:59:07 2003
+++ fenfire/org/fenfire/swamp/makeswamp.py Sun Apr 27 16:19:25 2003
@@ -8,7 +8,7 @@
for n in (1,"N"):
for pattern in (
"11X","1X1","X11",
- "1XA", "XAA"):
+ "1XA", "XAA", "X1A"):
constgraph.append({
"Type": "find",
"NVal": n,
@@ -273,7 +273,7 @@
# Indices: 123, 132, 231
def makeHashGraph():
- hashIndices = [(0,1,2),(0,2,1),(1,2,0)]
+ hashIndices = [(0,1,2),(0,2,1),(1,2,0),(1,0,2)]
hashNames = ["ind_"+"".join([str(i) for i in codes])
for codes in hashIndices]
@@ -461,13 +461,13 @@
public void rm_111(Object e0, Object e1, Object e2) {
%(rm_triple)s
- observer.triggerObs(e0, e1, e2);
+ observer.triggerObs(-1, e0, e1, e2);
}
public void add(Object e0, Object e1, Object e2) {
%(add_triple)s
- observer.triggerObs(e0, e1, e2);
+ observer.triggerObs(1, e0, e1, e2);
}
}
Index: fenfire/org/fenfire/swamp/observablegraphtest.py
diff -u fenfire/org/fenfire/swamp/observablegraphtest.py:1.4
fenfire/org/fenfire/swamp/observablegraphtest.py:1.5
--- fenfire/org/fenfire/swamp/observablegraphtest.py:1.4 Thu Apr 24
09:06:48 2003
+++ fenfire/org/fenfire/swamp/observablegraphtest.py Sun Apr 27 16:19:25 2003
@@ -14,6 +14,15 @@
def chg(self):
self.t += 1
+class _TripleObs(org.fenfire.swamp.TripleSetObs):
+ def __init__(self):
+ self.t = 0
+ self.c = []
+ def chg(self):
+ self.t += 1
+ def chgTriple(self, *args):
+ self.c.append(args)
+
def setUpObservableGraphTest(thegraph):
global graph
graph = thegraph
@@ -54,6 +63,24 @@
assert o1.t == 2
assert o2.t == 2
+
+def test_ObservableGraph_TripleObs():
+ node = _node
+ to1 = _TripleObs()
+ graph.set1_11X(node[0], node[1], node[2])
+ assert graph.find1_11X(node[0], node[1], to1) == node[2]
+ graph.set1_11X(node[0], node[1], node[3])
+
+ assert to1.t == 0
+ print "CHANGES: ", to1.c
+ assert len(to1.c) == 2
+ assert to1.c[0][0] == -1
+ assert to1.c[0][3] == node[2]
+
+ assert to1.c[1][0] == 1
+ assert to1.c[1][3] == node[3]
+
+
def test_ObservableGraph_Func():
node = _node
Index: fenfire/org/fenfire/util/ObsDoubler.java
diff -u fenfire/org/fenfire/util/ObsDoubler.java:1.1
fenfire/org/fenfire/util/ObsDoubler.java:1.2
--- fenfire/org/fenfire/util/ObsDoubler.java:1.1 Sat Apr 12 06:39:12 2003
+++ fenfire/org/fenfire/util/ObsDoubler.java Sun Apr 27 16:19:25 2003
@@ -13,8 +13,8 @@
}
public void chg() {
- o1.chg();
- o2.chg();
+ if(o1 != null) o1.chg();
+ if(o2 != null) o2.chg();
}
}
Index: fenfire/org/fenfire/util/RDFUtil.test
diff -u fenfire/org/fenfire/util/RDFUtil.test:1.2
fenfire/org/fenfire/util/RDFUtil.test:1.3
--- fenfire/org/fenfire/util/RDFUtil.test:1.2 Tue Apr 15 13:41:57 2003
+++ fenfire/org/fenfire/util/RDFUtil.test Sun Apr 27 16:19:25 2003
@@ -10,6 +10,9 @@
from org.fenfire.test.gfx import getvs
+from org.nongnu import alph, storm
+import java
+
# from java.util import Iterator
@@ -18,7 +21,10 @@
global fen, act
fen = fenfire.Fen()
fen.constgraph = fen.graph = fenfire.swamp.impl.HashGraph()
- fen.txt = fenfire.impl.SimpleNodeContent(fen)
+ fen.txt = fenfire.impl.SimpleNodeContent(fen,
+ alph.impl.StormAlph(
+ storm.impl.TransientPool(
+ java.util.HashSet())))
def testNewObjWithType():
type = Nodes.get('This is a test type')
Index: fenfire/org/fenfire/view/PageScrollView2D.java
diff -u fenfire/org/fenfire/view/PageScrollView2D.java:1.4
fenfire/org/fenfire/view/PageScrollView2D.java:1.5
--- fenfire/org/fenfire/view/PageScrollView2D.java:1.4 Sun Apr 27 07:40:27 2003
+++ fenfire/org/fenfire/view/PageScrollView2D.java Sun Apr 27 16:19:25 2003
@@ -64,7 +64,7 @@
PageSpanLayout layout = (PageSpanLayout)scroll2layout.f(null, block);
int paper2box = vs.invertCS(box2paper, "PGSVinv");
int paper2screen = vs.concatCS(box2screen, "PGSVconc", paper2box);
- layout.place(vs, paper2screen, 1, 1, box2screen);
+ layout.place(vs, paper2screen, 1, 1, box2screen, matchingParent);
}
Index: fenfire/org/fenfire/view/PageSpanLayout.java
diff -u fenfire/org/fenfire/view/PageSpanLayout.java:1.6
fenfire/org/fenfire/view/PageSpanLayout.java:1.7
--- fenfire/org/fenfire/view/PageSpanLayout.java:1.6 Sun Apr 27 07:40:27 2003
+++ fenfire/org/fenfire/view/PageSpanLayout.java Sun Apr 27 16:19:25 2003
@@ -172,14 +172,19 @@
* all objects should be culled.
*/
public void place(VobScene vs, int into, float importance, float
pixelscale, int cullCS) {
+ this.place(vs, into, importance, pixelscale, cullCS, into);
+ }
+ public void place(VobScene vs, int into, float importance, float
pixelscale, int cullCS,
+ int matchCs) {
float curx = 0;
// Now we can draw the pages.
for(int p = 0; p < npages; p++) {
// We want a coordinate system
// whose box is exactly the span
- int around = vs.orthoBoxCS(into, pages[p], 0,
+ int around = vs.coords.orthoBox(into, 0,
curx, 0, scale, scale,
xywh[4*p+2], xywh[4*p+3]);
+ vs.matcher.add(matchCs, around, pages[p]);
if(cullCS >= 0)
around = vs.cullCS(around, "CULL", cullCS);
// and then translate to the whole page.
@@ -187,6 +192,7 @@
curx += scale * xywh[4*p + 2];
psps[p].request(importance, scale * pixelscale);
+
vs.map.put(GLRen.createFixedPaperQuad(psps[p].getPaper(useBg,
useText),
xywh[4*p + 0],
xywh[4*p + 1],
Index: fenfire/org/fenfire/view/buoy/PPLinker.test
diff -u fenfire/org/fenfire/view/buoy/PPLinker.test:1.7
fenfire/org/fenfire/view/buoy/PPLinker.test:1.8
--- fenfire/org/fenfire/view/buoy/PPLinker.test:1.7 Wed Apr 16 05:32:08 2003
+++ fenfire/org/fenfire/view/buoy/PPLinker.test Sun Apr 27 16:19:25 2003
@@ -13,12 +13,17 @@
from org.fenfire.test.gfx import getvs
+from org.nongnu import alph, storm
+import java
def setUp():
global fen
fen = fenfire.Fen()
fen.constgraph = fen.graph = fenfire.swamp.impl.HashGraph()
- fen.txt = fenfire.impl.SimpleNodeContent(fen)
+ fen.txt = fenfire.impl.SimpleNodeContent(fen,
+ alph.impl.StormAlph(
+ storm.impl.TransientPool(
+ java.util.HashSet())))
global uriA, uriB
global nodeA, nodeB
Index: fenfire/org/fenfire/view/buoy/TransclusionConnector.java
diff -u fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.2
fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.3
--- fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.2 Sun Apr
27 07:40:27 2003
+++ fenfire/org/fenfire/view/buoy/TransclusionConnector.java Sun Apr 27
16:19:25 2003
@@ -20,7 +20,7 @@
/** Hang transclusion buoys.
*/
public class TransclusionConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: TransclusionConnector.java,v 1.2
2003/04/27 11:40:27 tjl Exp $";
+public static final String rcsid = "$Id: TransclusionConnector.java,v 1.3
2003/04/27 20:19:25 tjl Exp $";
public static boolean dbg = true;
private static void pa(String s) { System.out.println("PPLinker:"+s); }
@@ -52,7 +52,6 @@
this.fen = fen;
this.scrollBlockForNode = new CachedNodeFunction(1000,
fen.constgraph, new SB4Node());
-
}
public void addBuoys(VobScene vs, int parentCs,
@@ -60,8 +59,8 @@
BuoyLinkListener l) {
if(!(mainNode instanceof MainNode2D)) return;
MainNode2D mn2d = (MainNode2D)mainNode;
+ DefaultVobMatcher m = (DefaultVobMatcher)vs.matcher;
if(mn2d.getView2D() == normalNodeNodeType.getView2D()) {
- DefaultVobMatcher m = (DefaultVobMatcher)vs.matcher;
// Loop over the placed nodes' keys
for(Iterator i=m.getKeys(parentCs).iterator(); i.hasNext();) {
Object key = i.next();
@@ -85,11 +84,41 @@
}
} else if(mn2d.getView2D() == pageImageScrollNodeType.getView2D()) {
- pa("TransclusionConnector: Pagescroll -> outside not impl");
- } else {}
+ pa("TransclusionConnector: Pagescroll -> outside");
+ for(Iterator i=m.getKeys(parentCs).iterator(); i.hasNext();) {
+ Object key = i.next();
+ if(!(key instanceof PageImageSpan)) continue;
+ PageImageSpan span = (PageImageSpan)key;
+
+ if(dbg) pa("TRC: span "+key);
+ int cs =m.getCS(parentCs, key);
+
+ Enfilade1D tmpEnf = fen.enfMaker.makeEnfilade(span);
+ for(Iterator nodes =
fen.enfiladeOverlap.getMatches(tmpEnf).iterator(); nodes.hasNext(); ) {
+ Object node = nodes.next();
+ if(dbg) pa("TRC: overlap "+node);
+ Object plane = fen.constgraph.find1_X11(PP.contains, node);
+ if(plane == null) {
+ if(dbg) pa("No plane!");
+ continue;
+ }
+ Object anchor = new Pair(plane, getRect(node));
+ l.link(-1, cs, normalNodeNodeType,
+ new Pair(node, span.getScrollBlock()),
+ anchor);
+
+ }
+ }
+ } else {
pa("TransclusionConnector: Unknown view2d type");
}
+ }
+ protected java.awt.Rectangle getRect(Object node) {
+ int x = RDFUtil.getInt(fen, node, SPATIAL.coordX);
+ int y = RDFUtil.getInt(fen, node, SPATIAL.coordY);
+ return new java.awt.Rectangle(x-20, y-20, 240, 140);
+ }
}