[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ff-cvs] fenfire/org/fenfire Fen.java bin/fenpdf10.py fe...
From: |
Tuomas J. Lukka |
Subject: |
[ff-cvs] fenfire/org/fenfire Fen.java bin/fenpdf10.py fe... |
Date: |
Wed, 10 Sep 2003 09:00:50 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Tuomas J. Lukka <address@hidden> 03/09/10 09:00:49
Modified files:
org/fenfire : Fen.java
org/fenfire/bin: fenpdf10.py
org/fenfire/fenmm: WhiteNodeView.java
org/fenfire/fenpdf: demospace.py fenpdf.py fenpdfcontext.py
org/fenfire/fenpdf/appearance: views.py
org/fenfire/index/impl: SpaceXuIndexer.java
org/fenfire/modules/pp: PPActionsImpl.java
org/fenfire/modules/pp/lava: RSTActions.java RSTActionsImpl.java
RSTUtil.java RSTUtilImpl.java
org/fenfire/swamp: MultiplexerNodeFunction.java Nodes.java
observablegraphtest.py
org/fenfire/util: AlphContent.java SuperLazyBase.java
org/fenfire/view: CanvasView2D.java DispatchingNodeView.java
PageNodeView.java
PageScroll2LayoutPureFunction.java
PageScrollView2D.java TextNodeView.java
VobWrapperFunction.java
org/fenfire/view/buoy: PPConnector.java
TransclusionConnector.java
org/fenfire/view/buoy/lava: MindMapConnector.java
org/fenfire/view/lava: Cursor.java
Added files:
org/fenfire/functional: CachedNodeFunction.java
CachedPureNodeFunction.java
DirectFunctional.java
FunctionInstance.java Functional.java
FunctionalTest.java NodeFunction.java
PureNodeFunction.java
SuperFunctional1.java
SuperLazyPureNodeFunction.java
__init__.py directfunctional.test
functionaltest.py superfunctional1.test
superlazy.test
org/fenfire/structure: Ff.java ff.test
org/fenfire/util: PaperMillFunction.java
Removed files:
org/fenfire : NodeContent.java
org/fenfire/impl: SimpleNodeContent.java simplenodecontent.test
org/fenfire/lava: DirectFunctional.java Functional.java
FunctionalTest.java __init__.py
directfunctional.test functionaltest.py
org/fenfire/swamp: CachedNodeFunction.java
CachedPureNodeFunction.java NodeFunction.java
PureNodeFunction.java
SuperLazyPureNodeFunction.java superlazy.test
org/fenfire/util: Function.java FunctionCacheEntry.java
SuperLazyPureFunction.java
Log message:
Merge functional branch. See arch for detailed changelogs
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/Fen.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/bin/fenpdf10.py.diff?tr1=1.80&tr2=1.81&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenmm/WhiteNodeView.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/demospace.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/fenpdf.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/fenpdfcontext.py.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/fenpdf/appearance/views.py.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/CachedNodeFunction.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/CachedPureNodeFunction.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/DirectFunctional.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/FunctionInstance.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/Functional.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/FunctionalTest.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/NodeFunction.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/PureNodeFunction.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/SuperFunctional1.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/SuperLazyPureNodeFunction.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/__init__.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/directfunctional.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/functionaltest.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/superfunctional1.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/functional/superlazy.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/index/impl/SpaceXuIndexer.java.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/PPActionsImpl.java.diff?tr1=1.37&tr2=1.38&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/lava/RSTActions.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/lava/RSTActionsImpl.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/lava/RSTUtil.java.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/modules/pp/lava/RSTUtilImpl.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/structure/Ff.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/structure/ff.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/MultiplexerNodeFunction.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/Nodes.java.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/swamp/observablegraphtest.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/PaperMillFunction.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/AlphContent.java.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/SuperLazyBase.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/CanvasView2D.java.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/DispatchingNodeView.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageNodeView.java.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageScroll2LayoutPureFunction.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageScrollView2D.java.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/TextNodeView.java.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/VobWrapperFunction.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/PPConnector.java.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/TransclusionConnector.java.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/lava/Cursor.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/Fen.java
diff -u fenfire/org/fenfire/Fen.java:1.11 fenfire/org/fenfire/Fen.java:1.12
--- fenfire/org/fenfire/Fen.java:1.11 Mon Aug 11 08:09:54 2003
+++ fenfire/org/fenfire/Fen.java Wed Sep 10 09:00:45 2003
@@ -37,14 +37,6 @@
*/
public org.fenfire.swamp.ConstGraph constgraph;
- /** The NodeFunction implementation by the NodeContent.
- */
- public org.fenfire.swamp.NodeFunction txtfunc;
-
- /** The object managing the enfilade content for nodes.
- */
- public NodeContent txt;
-
/** The transclusion index.
*/
public org.fenfire.index.Index enfiladeOverlap;
Index: fenfire/org/fenfire/bin/fenpdf10.py
diff -u fenfire/org/fenfire/bin/fenpdf10.py:1.80
fenfire/org/fenfire/bin/fenpdf10.py:1.81
--- fenfire/org/fenfire/bin/fenpdf10.py:1.80 Thu Aug 28 04:20:45 2003
+++ fenfire/org/fenfire/bin/fenpdf10.py Wed Sep 10 09:00:45 2003
@@ -142,12 +142,12 @@
else:
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()
+structure_ff = ff.structure.Ff.create(fen.graph, myalph)
+
+fen.enfiladeOverlap = structure_ff.getTransclusionIndex()
fen.alph = myalph
-ppActions = ff.modules.pp.PPActionsImpl(fen)
+ppActions = ff.modules.pp.PPActionsImpl(fen, structure_ff)
treetime = ff.structure.TreeTime(TREETIME.follows)
ppActions.treeTime = treetime
@@ -164,9 +164,11 @@
if not do_load_graph:
val = java.lang.System.getProperty("fenpdf.demo")
if val != None and java.lang.Integer.parseInt(val) != 0:
- ff.fenpdf.demospace.createDemoSpace(fen, myalph, treetime, ppActions)
+ ff.fenpdf.demospace.createDemoSpace(fen, myalph, treetime, ppActions,
+ structure_ff)
else:
- ff.fenpdf.demospace.createEmptySpace(fen, myalph, treetime, ppActions)
+ ff.fenpdf.demospace.createEmptySpace(fen, myalph, treetime, ppActions,
+ structure_ff)
# Default controls for main view
## see
http://himalia.it.jyu.fi/ffdoc/fenfire/pegboard/fenpdf_v1_spec_1--tjl/peg.gen.html
and 'Bindings'
@@ -195,7 +197,7 @@
-fenPDF = ff.fenpdf.fenpdf.FenPDF(fen, treetime)
+fenPDF = ff.fenpdf.fenpdf.FenPDF(fen, treetime, structure_ff)
fenPDF.window = w
fenPDF.events.buttons = ff.fenpdf.events.buttons.ActionButtons()
fenPDF.events.buttons.fenPDF = fenPDF
@@ -225,7 +227,8 @@
fenPDF.views = views
fenPDF.views.background =
ff.fenpdf.appearance.background.FancyBlueBackground1()
-context.states.cursor = ff.fenpdf.fenpdfcontext.Cursor(fen,
views.getMultiplexerNodeContentFunction())
+context.states.cursor =
ff.fenpdf.fenpdfcontext.Cursor(fenPDF.structure.alphContent,
+ views.getMultiplexerNodeContentFunction())
context.states.fenPDF = fenPDF
fenPDF.uistate.cursor = context.states.cursor
@@ -247,6 +250,7 @@
fenPDF.events.key.fenPDF = fenPDF
fenPDF.actions.key.fenPDF = fenPDF
+
Index: fenfire/org/fenfire/fenmm/WhiteNodeView.java
diff -u fenfire/org/fenfire/fenmm/WhiteNodeView.java:1.3
fenfire/org/fenfire/fenmm/WhiteNodeView.java:1.4
--- fenfire/org/fenfire/fenmm/WhiteNodeView.java:1.3 Tue Aug 19 05:34:24 2003
+++ fenfire/org/fenfire/fenmm/WhiteNodeView.java Wed Sep 10 09:00:46 2003
@@ -2,7 +2,7 @@
package org.fenfire.fenmm;
-import org.fenfire.swamp.PureNodeFunction;
+import org.fenfire.functional.PureNodeFunction;
import org.fenfire.swamp.ConstGraph;
import org.nongnu.libvob.lava.placeable.TextPlaceable;
import org.nongnu.libvob.VobScene;
Index: fenfire/org/fenfire/fenpdf/appearance/views.py
diff -u fenfire/org/fenfire/fenpdf/appearance/views.py:1.22
fenfire/org/fenfire/fenpdf/appearance/views.py:1.23
--- fenfire/org/fenfire/fenpdf/appearance/views.py:1.22 Mon Sep 1 06:20:57 2003
+++ fenfire/org/fenfire/fenpdf/appearance/views.py Wed Sep 10 09:00:46 2003
@@ -11,7 +11,7 @@
def p(*s):
print 'appearance.views.py:: ',s
-class Views(ff.ObjObs):
+class Views(ff.Obs):
"""Encapsulate the creation of the immutable views and connectors used in
FenPDF.
STRICT ENCAPSULATION: NO MEMBERS SHOULD BE ACCESSED
@@ -39,6 +39,31 @@
self.update()
def update(self):
+
+ self.functional = ff.functional.SuperFunctional1(
+ self.fenPDF.fen.constgraph,
+ vob.AbstractUpdateManager.getInstance()
+ )
+ self.functional.addSuperLazyObs(self)
+
+ self.functional.cache(
+ "node2scrollBlockAnchor", 1000);
+ self.functional.cache(
+ "AccursedDispatching", 10);
+ self.functional.cache(
+ "NormalDispatching", 500);
+ self.functional.cache(
+ "PageNodeView", 200, 1, 10); # superlazy cache as it *is* slow.
+ self.functional.cache(
+ "PageScroll2Layout", 200, 10); # superlazy cache as it *is* slow.
+
+
+ self.textFunction = self.functional.createFunctionInstance(
+ "ContentFunction",
+ ff.structure.Ff.ContentFunction,
+ [ self.fenPDF.structure.ff ])
+
+
self.papers.update()
# XXX Figure out get & create stuffs
# We are essentially creating a DAG of objects and want to allow
@@ -80,6 +105,8 @@
self.transclusionConnector = ff.view.buoy.TransclusionConnector(
self.fen,
+ self.functional,
+ self.textFunction,
self.multiplexerNodeFunction)
self.transclusionConnector.normalNodeNodeType = \
@@ -201,31 +228,67 @@
def createAccursedNodeContentFunction(self):
# accursed text
- accursed_text = ff.view.TextNodeView(
- self.fen.txtfunc,
- self.getTextStyle(), java.awt.Color.red)
- accursed_dispatcher = ff.view.DispatchingNodeView(
- self.fen.txtfunc, accursed_text,
- self.createPageNodeView(java.awt.Color.red))
- return ff.swamp.CachedNodeFunction(
- 10, self.fen.constgraph, accursed_dispatcher)
+ accursed_text = self.functional.createFunctionInstance(
+ "AccursedTextNodeView",
+ ff.view.TextNodeView,
+ [
+ self.textFunction,
+ self.getTextStyle(), java.awt.Color.red
+ ])
+
+ accursed_page = self.functional.createFunctionInstance(
+ "AccursedPage",
+ ff.view.VobWrapperFunction,
+ [
+ self.pageFunc,
+ vob.vobs.ContinuousLineVob(2,
+ [0,0,0 , 1,0,0 , 1,1,0 , 0,1,0], 1, 100, java.awt.Color.red)
+ ])
+
+ accursed_dispatcher = self.functional.createFunctionInstance(
+ "AccursedDispatching",
+ ff.view.DispatchingNodeView,
+ [
+ self.textFunction, accursed_text,
+ accursed_page
+ ])
+ return accursed_dispatcher
def createNormalNodeContentFunction(self):
# normal text
- normal_text = ff.view.TextNodeView(
- self.fen.txtfunc, self.getTextStyle(),
- java.awt.Color.black)
- normal_dispatcher = ff.view.DispatchingNodeView(
- self.fen.txtfunc, normal_text,
- self.createPageNodeView(java.awt.Color.black))
- return ff.swamp.CachedNodeFunction(
- 5000, self.fen.constgraph, normal_dispatcher)
+ normal_text = self.functional.createFunctionInstance(
+ "NormalTextNodeView",
+ ff.view.TextNodeView,
+ [
+ self.textFunction,
+ self.getTextStyle(), java.awt.Color.black
+ ])
+
+ normal_page = self.functional.createFunctionInstance(
+ "AccursedPage",
+ ff.view.VobWrapperFunction,
+ [
+ self.pageFunc,
+ vob.vobs.ContinuousLineVob(2,
+ [0,0,0 , 1,0,0 , 1,1,0 , 0,1,0], 1, 100,
java.awt.Color.black)
+ ])
+
+
+ normal_dispatcher = self.functional.createFunctionInstance(
+ "NormalDispatching",
+ ff.view.DispatchingNodeView,
+ [
+ self.textFunction, normal_text,
+ normal_page
+ ])
+
+ return normal_dispatcher
def createMultiplexerNodeContentFunction(self):
return ff.swamp.MultiplexerNodeFunction(
- self.normalNodeContentFunction,
- self.accursedNodeContentFunction)
+ self.normalNodeContentFunction.getCallableFunction(),
+ self.accursedNodeContentFunction.getCallableFunction())
def createCanvasView2D(self):
canvasview2d = ff.view.CanvasView2D(
@@ -241,19 +304,12 @@
irregu.debugFlags ^= ff.view.IrregularViewportView2D.DEBUG_CHILD
return irregu
- def createPageNodeView(self, color):
-
- return ff.view.VobWrapperFunction(self.pageFunc,
- vob.vobs.ContinuousLineVob(2,
- [0,0,0 , 1,0,0 , 1,1,0 , 0,1,0], 1, 100, color))
- def chg(self, object):
+ def chg(self):
"""Implement ObjObs for PageNodeFunction.
We clear Accursed and NodeContent caches for the given entry.
"""
- self.normalNodeContentFunction.flush(object)
- self.accursedNodeContentFunction.flush(object)
self.fenPDF.animation.regenerateVS(0)
vob.AbstractUpdateManager.chgAfter(400)
vob.AbstractUpdateManager.setNoAnimation()
@@ -265,34 +321,27 @@
vob.vobs.RectBgVob(java.awt.Color.red), 200, 200)
priorityOffset = 10
- pview = ff.view.PageNodeView.Pure(self.fen.txtfunc,
- self.papers.getSpanImageFactory())
- pview = ff.swamp.SuperLazyPureNodeFunction(
- 400, self.fen.constgraph, pview,
- placeholder,
- vob.util.PrioritizeBackground(
- vob.AbstractUpdateManager.getInstance(),
- priorityOffset),
- self)
+ pview = self.functional.createFunctionInstance(
+ "PageNodeView",
+ ff.view.PageNodeView,
+ [
+ self.textFunction,
+ self.papers.getSpanImageFactory()
+ ])
- # XXX super-lazy cache
return pview
def createPageScrollView2D(self):
priorityOffset = 11
- function = ff.view.PageScroll2LayoutPureFunction(
- self.papers.getSpanImageFactory())
- # super-lazy cache
- function = ff.util.SuperLazyPureFunction(
- 200, function,
- None,
- vob.util.PrioritizeBackground(
- vob.AbstractUpdateManager.getInstance(),
- priorityOffset),
- self) # Wrong obj but doesn't matter
+ function = self.functional.createFunctionInstance(
+ "PageScroll2Layout",
+ ff.view.PageScroll2LayoutPureFunction,
+ [
+ self.papers.getSpanImageFactory()
+ ])
- pagescrollview2d = ff.view.PageScrollView2D(function)
+ pagescrollview2d =
ff.view.PageScrollView2D(function.getCallableFunction())
return ff.view.AreaSelectingView2D(pagescrollview2d)
Index: fenfire/org/fenfire/fenpdf/demospace.py
diff -u fenfire/org/fenfire/fenpdf/demospace.py:1.2
fenfire/org/fenfire/fenpdf/demospace.py:1.3
--- fenfire/org/fenfire/fenpdf/demospace.py:1.2 Thu Aug 14 06:55:38 2003
+++ fenfire/org/fenfire/fenpdf/demospace.py Wed Sep 10 09:00:46 2003
@@ -4,7 +4,7 @@
from org.fenfire.vocab import RDF, CANVAS2D
-def createDemoSpace(fen, myAlph, treetime, ppActions):
+def createDemoSpace(fen, myAlph, treetime, ppActions, structure_ff):
"""Create a small space using a transclusion and structlinks.
"""
paperA = "urn:urn-5:P7OMBN+yp3-m-AkulZN-NeaJV9Sl:_1"
@@ -36,7 +36,7 @@
ppActions.assocNotes(noteA1, 1, noteA2);
span = sc.getCurrent().getPage(0).subArea(100, 100, 300, 200);
- fen.txt.set(noteA3, fen.enfMaker.makeEnfilade(span))
+ structure_ff.setContent(noteA3, fen.enfMaker.makeEnfilade(span))
noteB1 = Nodes.get(ppActions.newNote(paperB, 1000,500, 'This is an another
test!'))
@@ -61,6 +61,6 @@
ppActions.assocNotes(noteA4, 1, noteC2)
-def createEmptySpace(fen, myAlph, treetime, ppActions):
+def createEmptySpace(fen, myAlph, treetime, ppActions, structure_ff):
paper = ppActions.newPaper()
ppActions.newNote(paper, 0, 0, "HOME")
Index: fenfire/org/fenfire/fenpdf/fenpdf.py
diff -u fenfire/org/fenfire/fenpdf/fenpdf.py:1.12
fenfire/org/fenfire/fenpdf/fenpdf.py:1.13
--- fenfire/org/fenfire/fenpdf/fenpdf.py:1.12 Mon Sep 1 06:20:57 2003
+++ fenfire/org/fenfire/fenpdf/fenpdf.py Wed Sep 10 09:00:46 2003
@@ -113,6 +113,7 @@
alphContent
canvas2d
treeTime
+ ff -- org.fenfire.structure.Ff
window -- the GraphicsAPI.window object
@@ -137,7 +138,7 @@
not be used by anyone else.
"""
- def __init__(self, fen, treeTime):
+ def __init__(self, fen, treeTime, structure_ff):
self.fen = fen
self.events = _Empty()
@@ -148,8 +149,9 @@
self.uistate.menu = UIState_Menu()
+ self.structure.ff = structure_ff
self.structure.structLink = ff.structure.StructLink.create(fen.graph)
- self.structure.alphContent = ff.util.AlphContent(fen)
+ self.structure.alphContent = ff.util.AlphContent(fen, structure_ff)
self.structure.canvas2d = ff.structure.Canvas2D.create(fen.graph)
self.structure.treeTime = treeTime
Index: fenfire/org/fenfire/fenpdf/fenpdfcontext.py
diff -u fenfire/org/fenfire/fenpdf/fenpdfcontext.py:1.32
fenfire/org/fenfire/fenpdf/fenpdfcontext.py:1.33
--- fenfire/org/fenfire/fenpdf/fenpdfcontext.py:1.32 Fri Sep 5 06:13:32 2003
+++ fenfire/org/fenfire/fenpdf/fenpdfcontext.py Wed Sep 10 09:00:46 2003
@@ -32,8 +32,8 @@
global w
class Cursor(ff.view.lava.Cursor):
- def __init__(self, fen, multiplexer):
- ff.view.lava.Cursor.__init__(self, fen)
+ def __init__(self, alphContent, multiplexer):
+ ff.view.lava.Cursor.__init__(self, alphContent)
self.multiplexer = multiplexer
def setAccursed(self, node):
ff.view.lava.Cursor.setAccursed(self, node)
Index: fenfire/org/fenfire/index/impl/SpaceXuIndexer.java
diff -u fenfire/org/fenfire/index/impl/SpaceXuIndexer.java:1.9
fenfire/org/fenfire/index/impl/SpaceXuIndexer.java:1.10
--- fenfire/org/fenfire/index/impl/SpaceXuIndexer.java:1.9 Wed Jun 11
13:00:24 2003
+++ fenfire/org/fenfire/index/impl/SpaceXuIndexer.java Wed Sep 10 09:00:46 2003
@@ -26,9 +26,9 @@
package org.fenfire.index.impl;
import org.fenfire.*;
-import org.fenfire.impl.*;
import org.fenfire.swamp.*;
import org.fenfire.vocab.*;
+import org.fenfire.structure.Ff;
import org.fenfire.util.*;
import org.fenfire.index.*;
import org.nongnu.alph.*;
@@ -38,18 +38,20 @@
/** An index of xanadu links stored in a space.
*/
public class SpaceXuIndexer implements XuIndexer {
-public static final String rcsid = "$Id: SpaceXuIndexer.java,v 1.9 2003/06/11
17:00:24 tjl Exp $";
+public static final String rcsid = "$Id: SpaceXuIndexer.java,v 1.10 2003/09/10
13:00:46 tjl Exp $";
public static final boolean dbg = true;
protected static void pa(String s) { System.out.println(s); }
protected Fen fen;
+ protected Ff ff;
protected MyIndex forwardIndex = new MyIndex(1),
backwardIndex = new MyIndex(2);
- public SpaceXuIndexer(Fen fen) {
+ public SpaceXuIndexer(Fen fen, Ff ff) {
this.fen = fen;
+ this.ff = ff;
}
protected class MyIndex implements Index {
@@ -108,17 +110,17 @@
}
*/
- /** ,--ALPH:xuLinkFrom -> enfilade
- * ALPH.xuType <--RDF:type --- id--<
+ /**
+ * ,--ALPH:xuLinkFrom -> enfilade
+ * ALPH.xuType <--RDF:type --- id--.
* '--ALPH:xuLinkTo-> enfilade
+ *
*/
public void add(XuLink l) {
Object idnode = RDFUtil.N(fen.graph, CONTENTLINK.Link);
- Literal from = ((org.fenfire.impl.SimpleNodeContent)fen.txt)
- .literalFromEnfilade(l.from);
- Literal to = ((org.fenfire.impl.SimpleNodeContent)fen.txt)
- .literalFromEnfilade(l.to);
+ Literal from = ff.literalFromEnfilade(l.from);
+ Literal to = ff.literalFromEnfilade(l.to);
fen.graph.add(idnode, CONTENTLINK.from, from);
fen.graph.add(idnode, CONTENTLINK.to, to);
Index: fenfire/org/fenfire/modules/pp/PPActionsImpl.java
diff -u fenfire/org/fenfire/modules/pp/PPActionsImpl.java:1.37
fenfire/org/fenfire/modules/pp/PPActionsImpl.java:1.38
--- fenfire/org/fenfire/modules/pp/PPActionsImpl.java:1.37 Thu Aug 21
14:08:31 2003
+++ fenfire/org/fenfire/modules/pp/PPActionsImpl.java Wed Sep 10 09:00:47 2003
@@ -29,6 +29,7 @@
import org.fenfire.vocab.*;
import org.fenfire.util.*;
import org.fenfire.swamp.*;
+import org.fenfire.structure.Ff;
import java.io.IOException;
import java.rmi.*;
import java.rmi.server.*;
@@ -36,7 +37,6 @@
import java.util.ArrayList;
import org.nongnu.alph.impl.*;
-import org.fenfire.impl.*;
/** The implementation of PPActions.
* XXX Apparently there is a bug in UnicastRemoteObject
@@ -47,15 +47,15 @@
* @deprecated See org.fenfire.structure.StructLink and others
*/
public class PPActionsImpl /*extends UnicastRemoteObject*/ implements
PPActions {
-public static final String rcsid = "$Id: PPActionsImpl.java,v 1.37 2003/08/21
18:08:31 tjl Exp $";
+public static final String rcsid = "$Id: PPActionsImpl.java,v 1.38 2003/09/10
13:00:47 tjl Exp $";
public static boolean dbg = false;
protected static void p(String s) { System.out.println("PPActionsImpl:
"+s); }
private Fen fen = null;
private AlphContent alphContent;
- public void setFen(Fen fen) {
+ public void setFen(Fen fen, Ff ff) {
this.fen = fen;
- this.alphContent = new AlphContent(fen);
+ this.alphContent = new AlphContent(fen, ff);
}
public org.fenfire.structure.TreeTime treeTime;
@@ -63,10 +63,10 @@
return treeTime;
}
- public PPActionsImpl(Fen fen) throws RemoteException {
+ public PPActionsImpl(Fen fen, Ff ff) throws RemoteException {
super();
if(dbg) p("UnicastRemoteObject created");
- setFen(fen);
+ setFen(fen, ff);
}
// --- Utilities
Index: fenfire/org/fenfire/modules/pp/lava/RSTActions.java
diff -u fenfire/org/fenfire/modules/pp/lava/RSTActions.java:1.2
fenfire/org/fenfire/modules/pp/lava/RSTActions.java:1.3
--- fenfire/org/fenfire/modules/pp/lava/RSTActions.java:1.2 Wed Jun 11
13:00:24 2003
+++ fenfire/org/fenfire/modules/pp/lava/RSTActions.java Wed Sep 10 09:00:47 2003
@@ -25,7 +25,7 @@
*/
package org.fenfire.modules.pp.lava;
-import org.fenfire.swamp.NodeFunction;
+import org.fenfire.functional.NodeFunction;
import java.io.IOException;
import java.rmi.RemoteException;
Index: fenfire/org/fenfire/modules/pp/lava/RSTActionsImpl.java
diff -u fenfire/org/fenfire/modules/pp/lava/RSTActionsImpl.java:1.3
fenfire/org/fenfire/modules/pp/lava/RSTActionsImpl.java:1.4
--- fenfire/org/fenfire/modules/pp/lava/RSTActionsImpl.java:1.3 Wed Jun 11
13:00:24 2003
+++ fenfire/org/fenfire/modules/pp/lava/RSTActionsImpl.java Wed Sep 10
09:00:47 2003
@@ -36,12 +36,11 @@
import java.util.Iterator;
import org.nongnu.libvob.lava.placeable.Placeable;
-import org.fenfire.impl.*;
/** The implementation of RSTActions.
*/
public class RSTActionsImpl extends UnicastRemoteObject implements RSTActions {
-public static final String rcsid = "$Id: RSTActionsImpl.java,v 1.3 2003/06/11
17:00:24 tjl Exp $";
+public static final String rcsid = "$Id: RSTActionsImpl.java,v 1.4 2003/09/10
13:00:47 tjl Exp $";
public static final boolean dbg = false;
protected static void p(String s) { System.out.println("RSTActionsImpl:
"+s); }
Index: fenfire/org/fenfire/modules/pp/lava/RSTUtil.java
diff -u fenfire/org/fenfire/modules/pp/lava/RSTUtil.java:1.2
fenfire/org/fenfire/modules/pp/lava/RSTUtil.java:1.3
--- fenfire/org/fenfire/modules/pp/lava/RSTUtil.java:1.2 Wed Jun 11
13:00:24 2003
+++ fenfire/org/fenfire/modules/pp/lava/RSTUtil.java Wed Sep 10 09:00:47 2003
@@ -25,7 +25,7 @@
*/
package org.fenfire.modules.pp.lava;
-import org.fenfire.swamp.NodeFunction;
+import org.fenfire.functional.NodeFunction;
import java.io.IOException;
import java.rmi.RemoteException;
Index: fenfire/org/fenfire/modules/pp/lava/RSTUtilImpl.java
diff -u fenfire/org/fenfire/modules/pp/lava/RSTUtilImpl.java:1.3
fenfire/org/fenfire/modules/pp/lava/RSTUtilImpl.java:1.4
--- fenfire/org/fenfire/modules/pp/lava/RSTUtilImpl.java:1.3 Wed Jun 11
13:00:24 2003
+++ fenfire/org/fenfire/modules/pp/lava/RSTUtilImpl.java Wed Sep 10
09:00:47 2003
@@ -29,6 +29,7 @@
import org.fenfire.vocab.*;
import org.fenfire.vocab.lava.RST;
import org.fenfire.util.*;
+import org.fenfire.functional.*;
import org.fenfire.swamp.*;
import java.io.IOException;
import java.rmi.*;
@@ -39,12 +40,10 @@
import org.nongnu.alph.*;
-import org.fenfire.impl.*;
-
/** The implementation of RSTActions.
*/
public class RSTUtilImpl extends UnicastRemoteObject implements RSTUtil {
-public static final String rcsid = "$Id: RSTUtilImpl.java,v 1.3 2003/06/11
17:00:24 tjl Exp $";
+public static final String rcsid = "$Id: RSTUtilImpl.java,v 1.4 2003/09/10
13:00:47 tjl Exp $";
public static boolean dbg = false;
protected static void p(String s) { System.out.println("RSTUtilImpl: "+s);
}
@@ -141,7 +140,8 @@
x += p.getWidth();
p("x: "+x+", w: "+p.getWidth()+" x+w: "+(x+p.getWidth()));
- p("content: `"+((Enfilade1D)fen.txtfunc.f(fen.constgraph,
node)).makeString()+"`");
+ // XXX Needs to be adjusted for new APIs
+ // p("content:
`"+((Enfilade1D)fen.txtfunc.f(fen.constgraph, node)).makeString()+"`");
node = fen.graph.find1_11X(node, RST.nextNode);
}
Index: fenfire/org/fenfire/swamp/MultiplexerNodeFunction.java
diff -u fenfire/org/fenfire/swamp/MultiplexerNodeFunction.java:1.3
fenfire/org/fenfire/swamp/MultiplexerNodeFunction.java:1.4
--- fenfire/org/fenfire/swamp/MultiplexerNodeFunction.java:1.3 Mon Sep 1
06:20:58 2003
+++ fenfire/org/fenfire/swamp/MultiplexerNodeFunction.java Wed Sep 10
09:00:48 2003
@@ -26,6 +26,7 @@
package org.fenfire.swamp;
+import org.fenfire.functional.*;
import org.nongnu.libvob.*;
import java.util.*;
Index: fenfire/org/fenfire/swamp/Nodes.java
diff -u fenfire/org/fenfire/swamp/Nodes.java:1.7
fenfire/org/fenfire/swamp/Nodes.java:1.8
--- fenfire/org/fenfire/swamp/Nodes.java:1.7 Sat Sep 6 08:40:49 2003
+++ fenfire/org/fenfire/swamp/Nodes.java Wed Sep 10 09:00:48 2003
@@ -27,6 +27,22 @@
package org.fenfire.swamp;
import org.fenfire.util.URN5Namespace;
+/** Mapping between URI strings and RDF nodes.
+ * One of swamp's main goals is efficiency, both in time and space.
+ * Space efficiency is not possible if we fix the node representation
+ * to be strings, as there may be a lot of nodes with long URIs.
+ * Therefore, nodes are currently opaque Objects (for best extensibility).
+ * <p>
+ * The implementation may change in the future without changing the Nodes API.
+ * <p>
+ * The following guarantees are given about RDF Nodes returned from
+ * the get() or N() methods of this class:
+ * <ul>
+ * <li> They can be compared using the == operator.
+ * <li> Their hash code will be the same as of the URI string and is therefore
+ * stable between invocations.
+ * </ul>
+ */
public class Nodes {
public static Object get(String res) {
return res.intern();
Index: fenfire/org/fenfire/swamp/observablegraphtest.py
diff -u fenfire/org/fenfire/swamp/observablegraphtest.py:1.9
fenfire/org/fenfire/swamp/observablegraphtest.py:1.10
--- fenfire/org/fenfire/swamp/observablegraphtest.py:1.9 Mon Sep 1
06:20:58 2003
+++ fenfire/org/fenfire/swamp/observablegraphtest.py Wed Sep 10 09:00:48 2003
@@ -24,7 +24,8 @@
from __future__ import nested_scopes
import org
-from org.fenfire.swamp import Nodes, NodeFunction, CachedNodeFunction
+from org.fenfire.swamp import Nodes
+from org.fenfire.functional import NodeFunction, CachedNodeFunction
_uriMaker = org.fenfire.util.URN5Namespace()
_node = [Nodes.get(_uriMaker.generateId()) for i in range(0,20)]
Index: fenfire/org/fenfire/util/AlphContent.java
diff -u fenfire/org/fenfire/util/AlphContent.java:1.14
fenfire/org/fenfire/util/AlphContent.java:1.15
--- fenfire/org/fenfire/util/AlphContent.java:1.14 Mon Jul 7 18:56:06 2003
+++ fenfire/org/fenfire/util/AlphContent.java Wed Sep 10 09:00:48 2003
@@ -26,42 +26,41 @@
package org.fenfire.util;
import org.fenfire.*;
+import org.fenfire.structure.Ff;
import org.nongnu.alph.*;
import org.nongnu.alph.xml.*;
import java.util.*;
import java.io.*;
-
/** Help class to work with Alph
*/
public class AlphContent {
-public static final String rcsid = "$Id: AlphContent.java,v 1.14 2003/07/07
22:56:06 mudyc Exp $";
+public static final String rcsid = "$Id: AlphContent.java,v 1.15 2003/09/10
13:00:48 tjl Exp $";
public static boolean dbg = false;
private static void pa(String s) { System.out.println("AlphContent:: "+s);
}
private Fen fen;
- public AlphContent( Fen fen) {
+ private Ff ff;
+ public AlphContent( Fen fen, Ff ff ) {
this.fen = fen;
+ this.ff = ff;
}
public String getText(Object node) {
- return this.getText(fen.graph, node);
- }
- public String getText(org.fenfire.swamp.ConstGraph graph, Object node) {
- Enfilade1D enf = (Enfilade1D)fen.txtfunc.f(graph, node);
+ Enfilade1D enf = (Enfilade1D)ff.getContent(node);
return enf.makeString();
}
public void setText(Object node, String s, boolean user) {
- fen.txt.set(node, fen.enfMaker.makeEnfilade(
+ ff.setContent(node, fen.enfMaker.makeEnfilade(
(user ? fen.userSpanMaker : fen.fakeSpanMaker)
.makeTextSpan(s)));
}
public void insertText(Object node, int ind, String s, boolean user) {
- Enfilade1D old = (Enfilade1D)fen.txtfunc.f(fen.constgraph, node);
+ Enfilade1D old = (Enfilade1D)ff.getContent(node);
Enfilade1D enf = old.sub(0, ind);
enf = enf.plus(
@@ -69,15 +68,15 @@
.makeTextSpan(s));
enf = enf.plus(old.sub(ind));
- fen.txt.set(node, enf);
+ ff.setContent(node, enf);
}
public void deleteText(Object node, int begin, int end) {
- Enfilade1D old = (Enfilade1D)fen.txtfunc.f(fen.constgraph, node);
+ Enfilade1D old = (Enfilade1D)ff.getContent(node);
Enfilade1D enf = old.sub(0, begin);
enf = enf.plus(old.sub(end));
- fen.txt.set(node, enf);
+ ff.setContent(node, enf);
}
}
Index: fenfire/org/fenfire/util/SuperLazyBase.java
diff -u fenfire/org/fenfire/util/SuperLazyBase.java:1.1
fenfire/org/fenfire/util/SuperLazyBase.java:1.2
--- fenfire/org/fenfire/util/SuperLazyBase.java:1.1 Sun Sep 7 08:55:46 2003
+++ fenfire/org/fenfire/util/SuperLazyBase.java Wed Sep 10 09:00:48 2003
@@ -1,11 +1,12 @@
// (c) Tuomas J. Lukka
-package org.fenfire.util;
+package org.fenfire.functional;
import java.util.*;
import org.nongnu.navidoc.util.CachingMap;
import org.nongnu.libvob.util.Background;
import org.fenfire.*;
import org.fenfire.util.*;
+import org.fenfire.functional.*;
/** A base class for superlazy caches.
*/
Index: fenfire/org/fenfire/view/CanvasView2D.java
diff -u fenfire/org/fenfire/view/CanvasView2D.java:1.29
fenfire/org/fenfire/view/CanvasView2D.java:1.30
--- fenfire/org/fenfire/view/CanvasView2D.java:1.29 Mon Sep 1 06:20:58 2003
+++ fenfire/org/fenfire/view/CanvasView2D.java Wed Sep 10 09:00:48 2003
@@ -31,6 +31,7 @@
import org.fenfire.view.buoy.*;
import org.fenfire.vocab.*;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.fenfire.util.*;
import org.nongnu.libvob.*;
import org.nongnu.libvob.gl.*;
@@ -45,7 +46,7 @@
/** A View2D of a CANVAS2D, with a given node function.
*/
public class CanvasView2D extends View2D implements NodedView2D,
org.fenfire.view.lava.FastView {
-public static final String rcsid = "$Id: CanvasView2D.java,v 1.29 2003/09/01
10:20:58 tjl Exp $";
+public static final String rcsid = "$Id: CanvasView2D.java,v 1.30 2003/09/10
13:00:48 tjl Exp $";
public static boolean dbg = false;
private static void p(String s) { System.out.println("CanvasView2D:: "+s);
}
Index: fenfire/org/fenfire/view/DispatchingNodeView.java
diff -u fenfire/org/fenfire/view/DispatchingNodeView.java:1.3
fenfire/org/fenfire/view/DispatchingNodeView.java:1.4
--- fenfire/org/fenfire/view/DispatchingNodeView.java:1.3 Mon Sep 1
06:20:58 2003
+++ fenfire/org/fenfire/view/DispatchingNodeView.java Wed Sep 10 09:00:48 2003
@@ -27,6 +27,7 @@
*/
package org.fenfire.view;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.nongnu.alph.*;
import org.nongnu.libvob.*;
import org.nongnu.libvob.vobs.*;
@@ -34,7 +35,7 @@
/** A node view dispatching to different other
* node views depending on a node content's type.
*/
-public class DispatchingNodeView implements NodeFunction {
+public class DispatchingNodeView implements PureNodeFunction {
final NodeFunction nodeContent;
final NodeFunction textView, pageView;
Index: fenfire/org/fenfire/view/PageNodeView.java
diff -u fenfire/org/fenfire/view/PageNodeView.java:1.6
fenfire/org/fenfire/view/PageNodeView.java:1.7
--- fenfire/org/fenfire/view/PageNodeView.java:1.6 Mon Sep 1 06:20:58 2003
+++ fenfire/org/fenfire/view/PageNodeView.java Wed Sep 10 09:00:48 2003
@@ -28,6 +28,7 @@
package org.fenfire.view;
import org.fenfire.spanimages.*;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.nongnu.alph.*;
import org.nongnu.libvob.*;
import org.nongnu.libvob.vobs.*;
@@ -36,17 +37,10 @@
/** A node function returning a vob that shows
* the given node as a pageimage or sequence of pages.
*/
-public class PageNodeView implements NodeFunction {
+public class PageNodeView implements PureNodeFunction {
final NodeFunction nodeContent;
final SpanImageFactory spanImageFactory;
-
- public static class Pure extends PageNodeView implements PureNodeFunction {
- public Pure(PureNodeFunction nodeContent,
- SpanImageFactory spanImageFactory) {
- super(nodeContent, spanImageFactory);
- }
- }
public PageNodeView(NodeFunction nodeContent,
SpanImageFactory spanImageFactory) {
Index: fenfire/org/fenfire/view/PageScroll2LayoutPureFunction.java
diff -u fenfire/org/fenfire/view/PageScroll2LayoutPureFunction.java:1.1
fenfire/org/fenfire/view/PageScroll2LayoutPureFunction.java:1.2
--- fenfire/org/fenfire/view/PageScroll2LayoutPureFunction.java:1.1 Mon Sep
1 06:20:58 2003
+++ fenfire/org/fenfire/view/PageScroll2LayoutPureFunction.java Wed Sep 10
09:00:48 2003
@@ -3,7 +3,7 @@
package org.fenfire.view;
import org.nongnu.alph.*;
import org.fenfire.spanimages.*;
-import org.fenfire.util.PureFunction;
+import org.fenfire.functional.PureFunction;
/** A (non-node)function which takes a PageScrollBlock and returns
* a PageSpanLayout.
Index: fenfire/org/fenfire/view/PageScrollView2D.java
diff -u fenfire/org/fenfire/view/PageScrollView2D.java:1.11
fenfire/org/fenfire/view/PageScrollView2D.java:1.12
--- fenfire/org/fenfire/view/PageScrollView2D.java:1.11 Mon Sep 1 06:20:58 2003
+++ fenfire/org/fenfire/view/PageScrollView2D.java Wed Sep 10 09:00:48 2003
@@ -26,7 +26,7 @@
*/
package org.fenfire.view;
import org.fenfire.spanimages.*;
-import org.fenfire.util.Function;
+import org.fenfire.functional.Function;
import org.nongnu.libvob.VobScene;
import org.nongnu.alph.*;
import org.fenfire.swamp.*;
Index: fenfire/org/fenfire/view/TextNodeView.java
diff -u fenfire/org/fenfire/view/TextNodeView.java:1.21
fenfire/org/fenfire/view/TextNodeView.java:1.22
--- fenfire/org/fenfire/view/TextNodeView.java:1.21 Mon Aug 18 09:05:11 2003
+++ fenfire/org/fenfire/view/TextNodeView.java Wed Sep 10 09:00:48 2003
@@ -27,6 +27,7 @@
*/
package org.fenfire.view;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.nongnu.alph.*;
import org.nongnu.libvob.*;
import org.nongnu.libvob.linebreaking.*;
@@ -40,7 +41,7 @@
* The maximum size of a single line is determined by <pre>width</pre>.
*/
public class TextNodeView implements PureNodeFunction {
- public static final String rcsid = "$Id: TextNodeView.java,v 1.21
2003/08/18 13:05:11 humppake Exp $";
+ public static final String rcsid = "$Id: TextNodeView.java,v 1.22
2003/09/10 13:00:48 tjl Exp $";
public static boolean dbg = false;
private static void pa(String s) { System.out.println("TextNodeView::"+s);
}
Index: fenfire/org/fenfire/view/VobWrapperFunction.java
diff -u fenfire/org/fenfire/view/VobWrapperFunction.java:1.5
fenfire/org/fenfire/view/VobWrapperFunction.java:1.6
--- fenfire/org/fenfire/view/VobWrapperFunction.java:1.5 Mon Sep 1
06:20:58 2003
+++ fenfire/org/fenfire/view/VobWrapperFunction.java Wed Sep 10 09:00:48 2003
@@ -2,6 +2,7 @@
package org.fenfire.view;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.nongnu.libvob.*;
import org.nongnu.libvob.vobs.*;
Index: fenfire/org/fenfire/view/buoy/PPConnector.java
diff -u fenfire/org/fenfire/view/buoy/PPConnector.java:1.21
fenfire/org/fenfire/view/buoy/PPConnector.java:1.22
--- fenfire/org/fenfire/view/buoy/PPConnector.java:1.21 Wed Aug 20 12:34:33 2003
+++ fenfire/org/fenfire/view/buoy/PPConnector.java Wed Sep 10 09:00:48 2003
@@ -27,6 +27,7 @@
package org.fenfire.view.buoy;
import org.fenfire.*;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.fenfire.view.*;
import org.fenfire.view.buoy.*;
import org.fenfire.util.*;
@@ -40,7 +41,7 @@
/** Make the kinds of links familiar from PP structure.
*/
public class PPConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: PPConnector.java,v 1.21 2003/08/20
16:34:33 tjl Exp $";
+public static final String rcsid = "$Id: PPConnector.java,v 1.22 2003/09/10
13:00:48 tjl Exp $";
public static boolean dbg = false;
private static void p(String s) { System.out.println("PPConnector:: "+s); }
Index: fenfire/org/fenfire/view/buoy/TransclusionConnector.java
diff -u fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.25
fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.26
--- fenfire/org/fenfire/view/buoy/TransclusionConnector.java:1.25 Mon Sep
1 06:20:58 2003
+++ fenfire/org/fenfire/view/buoy/TransclusionConnector.java Wed Sep 10
09:00:48 2003
@@ -32,6 +32,7 @@
import org.nongnu.alph.*;
import org.fenfire.*;
import org.fenfire.swamp.*;
+import org.fenfire.functional.*;
import org.fenfire.view.*;
import org.fenfire.view.buoy.*;
import org.fenfire.util.*;
@@ -44,7 +45,7 @@
/** Hang transclusion buoys.
*/
public class TransclusionConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: TransclusionConnector.java,v 1.25
2003/09/01 10:20:58 tjl Exp $";
+public static final String rcsid = "$Id: TransclusionConnector.java,v 1.26
2003/09/10 13:00:48 tjl Exp $";
public static boolean dbg = false;
private static void p(String s) {
System.out.println("TransclusionConnector:: "+s); }
@@ -55,11 +56,16 @@
public AbstractNodeType2D normalNodeNodeType;
protected NodeFunction nodeView;
+ protected Function textFunction;
- // Function: node -> pair(scrollblock, View2D.Anchor)
- private class SB4Node implements PureNodeFunction {
+ // Function: node -> View2D.Anchor on the scrollblock node
+ public static class SB4Node implements PureNodeFunction {
+ NodeFunction txtfunc;
+ public SB4Node(NodeFunction txtfunc) {
+ this.txtfunc = txtfunc;
+ }
public Object f(ConstGraph g, Object node) {
- Enfilade1D enf = (Enfilade1D)fen.txtfunc.f(g, node);
+ Enfilade1D enf = (Enfilade1D)txtfunc.f(g, node);
List l = enf.getList();
if(l.size() < 1) return null;
@@ -112,13 +118,31 @@
}
- NodeFunction scrollBlockForNode ;
+ Function scrollBlockForNode ;
- public TransclusionConnector(Fen fen, NodeFunction nodeView) {
+ /** Create a new TransclusionConnector.
+ * @param functional The Functional instance to use for
+ * creating functions needed inside this class
+ * @param textFunction The node function: node to enfilade
+ * for getting the contents of nodes.
+ * @param nodeView A NodeFunction: node to placeable, for getting
+ * the real sizes of nodes.
+ */
+ public TransclusionConnector(Fen fen, Functional functional,
+ FunctionInstance textFunction,
+ NodeFunction nodeView) {
this.fen = fen;
- this.scrollBlockForNode = new CachedPureNodeFunction(1000,
- fen.constgraph, new SB4Node());
+ this.textFunction = textFunction.getCallableFunction();
+
+ this.scrollBlockForNode =
+ functional.createFunctionInstance(
+ "node2scrollBlockAnchor",
+ SB4Node.class,
+ new Object[] {
+ textFunction
+ }).getCallableFunction();
+
this.nodeView = nodeView;
}
@@ -138,7 +162,7 @@
for(Iterator i=m.getKeys(containerCS).iterator(); i.hasNext();) {
Object node = i.next();
- View2D.Anchor anchor =
(View2D.Anchor)this.scrollBlockForNode.f(fen.constgraph, node);
+ View2D.Anchor anchor =
(View2D.Anchor)this.scrollBlockForNode.f(node);
if(dbg) p("node: "+node+", anchor: "+anchor);
if(anchor == null) continue;
@@ -170,7 +194,7 @@
// get all pageimage spans and make anchor cs for them.
// dumb version first
- Enfilade1D enf = (Enfilade1D)fen.txtfunc.f(fen.graph, node);
+ Enfilade1D enf = (Enfilade1D)textFunction.f(node);
PageImageSpan img = (PageImageSpan)enf.getList().get(0);
if (dbg) p("point: "+img.getLocation()+ ", size:
"+img.getSize());
Point p = img.getLocation();
@@ -206,7 +230,8 @@
float x = RDFUtil.getFloat(fen.graph, node, CANVAS2D.x);
float y = RDFUtil.getFloat(fen.graph, node, CANVAS2D.y);
org.nongnu.libvob.lava.placeable.Placeable p =
-
(org.nongnu.libvob.lava.placeable.Placeable)nodeView.f(fen.constgraph, node);
+ (org.nongnu.libvob.lava.placeable.Placeable)nodeView.f(
+ fen.constgraph, node);
float w,h;
if(p != null) {
w = p.getWidth();
Index: fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java
diff -u fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java:1.5
fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java:1.6
--- fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java:1.5 Thu Aug
21 14:31:02 2003
+++ fenfire/org/fenfire/view/buoy/lava/MindMapConnector.java Wed Sep 10
09:00:49 2003
@@ -36,6 +36,7 @@
import org.fenfire.view.buoy.*;
import org.fenfire.util.*;
import org.fenfire.vocab.*;
+import org.fenfire.functional.*;
import org.fenfire.vocab.lava.*;
import java.util.Iterator;
@@ -45,7 +46,7 @@
* First only canvas perhaps (later more).
*/
public class MindMapConnector implements BuoyViewConnector {
-public static final String rcsid = "$Id: MindMapConnector.java,v 1.5
2003/08/21 18:31:02 tjl Exp $";
+public static final String rcsid = "$Id: MindMapConnector.java,v 1.6
2003/09/10 13:00:49 tjl Exp $";
public static boolean dbg = false;
private static void p(String s) { System.out.println("MindMapConnector::
"+s); }
Index: fenfire/org/fenfire/view/lava/Cursor.java
diff -u fenfire/org/fenfire/view/lava/Cursor.java:1.3
fenfire/org/fenfire/view/lava/Cursor.java:1.4
--- fenfire/org/fenfire/view/lava/Cursor.java:1.3 Sun Aug 17 15:55:02 2003
+++ fenfire/org/fenfire/view/lava/Cursor.java Wed Sep 10 09:00:49 2003
@@ -38,15 +38,10 @@
*/
public class Cursor {
- public Cursor(Fen fen) {
- setFen(fen);
+ private AlphContent alph;
+ public Cursor(AlphContent alph) {
+ this.alph = alph;
}
-
- private AlphContent alph = null;
- public void setFen(Fen fen) {
- alph = new AlphContent(fen);
- }
-
private int cursorOffset = 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [ff-cvs] fenfire/org/fenfire Fen.java bin/fenpdf10.py fe...,
Tuomas J. Lukka <=