28 |
def p(*s): |
def p(*s): |
29 |
print 'ff.fenpdf.appearance.papers::', s |
print 'ff.fenpdf.appearance.papers::', s |
30 |
|
|
|
class ConstantPaperMill(vob.gl.PaperMill): |
|
|
def __init__(self, paper): |
|
|
self.paper = paper |
|
|
def getPaper(self, seed): |
|
|
return self.paper |
|
|
|
|
31 |
class Papers: |
class Papers: |
32 |
"""Encapsulate the selection of background drawing methods. |
"""Encapsulate the selection of background drawing methods. |
33 |
""" |
""" |
102 |
For functioninstances, use the given functional |
For functioninstances, use the given functional |
103 |
object. |
object. |
104 |
""" |
""" |
105 |
|
|
106 |
|
# The function to create papers. |
107 |
|
if self.useBg: |
108 |
|
self.paperFunc = functional.createFunctionInstance( |
109 |
|
"PaperMill", |
110 |
|
ff.util.PaperMillFunction, |
111 |
|
[ vob.paper.papermill.ThePaperMill(), |
112 |
|
java.lang.Boolean(1) |
113 |
|
]) |
114 |
|
else: |
115 |
|
self.paperFunc = functional.createFunctionInstance( |
116 |
|
"ConstantPaper", |
117 |
|
ff.functional.ConstantFunction, |
118 |
|
[ vob.gl.SpecialPapers.solidPaper(java.awt.Color.white)]) |
119 |
|
|
120 |
# self.spanImageFactory.poolManager.DICELENGTH = 10 |
# self.spanImageFactory.poolManager.DICELENGTH = 10 |
121 |
makerEntry = None |
makerEntry = None |
122 |
if self.useBg: |
if self.useBg: |
129 |
self.whitePaperMakerIndex] |
self.whitePaperMakerIndex] |
130 |
p("Set paper maker: ", makerEntry) |
p("Set paper maker: ", makerEntry) |
131 |
|
|
132 |
if makerEntry != None: |
assert makerEntry != None |
133 |
if makerEntry[0] != None: |
|
134 |
paperMaker = makerEntry[0]() |
if makerEntry[0] != None: |
135 |
if dbg: print "Maker:", paperMaker |
args = makerEntry[0]() |
136 |
|
# |
137 |
|
# Kludgeish: currently Functional can't |
138 |
|
# create both Java and Jython function instances |
139 |
|
# with the same method; we hope we can later |
140 |
|
# improve that. |
141 |
|
# |
142 |
|
if args[0].__class__ == java.lang.Class: |
143 |
|
paperMaker = functional.createFunctionInstance( |
144 |
|
"PaperMaker", *args) |
145 |
else: |
else: |
146 |
raise 'FIX ME! Got None makeEntry.' |
paperMaker = functional.createFunctionInstance_Jython( |
147 |
|
"PaperMaker", *args) |
148 |
|
if dbg: print "Maker:", paperMaker |
149 |
|
else: |
150 |
|
raise 'FIX ME! Got None makeEntry.' |
151 |
|
|
152 |
self.spanImageFactory = \ |
self.spanImageFactory = \ |
153 |
functional.createFunctionInstance( |
functional.createFunctionInstance( |
154 |
"SpanImageFactory", |
"SpanImageFactory", |
156 |
[self.scrollBlockImager, |
[self.scrollBlockImager, |
157 |
paperMaker]) |
paperMaker]) |
158 |
|
|
|
# # Then, make it cache stuff |
|
|
# self.spanImageFactory = \ |
|
|
# ff.spanimages.gl.CachingSpanImageFactory( |
|
|
# self.spanImageFactory) |
|
|
|
|
159 |
def getSpanImageFactory(self): |
def getSpanImageFactory(self): |
160 |
return self.spanImageFactory |
return self.spanImageFactory |
161 |
|
|
162 |
def decorateWithPaperView(self, view2d): |
def decorateWithPaperView(self, view2d): |
163 |
paperView = ff.view.PaperView2D(view2d) |
paperView = ff.view.PaperView2D( |
164 |
|
self.paperFunc.getCallableFunction(), view2d) |
165 |
paperView.paperScaling = .1 |
paperView.paperScaling = .1 |
166 |
p("decorateWithPaperView", self.useBg) |
p("decorateWithPaperView", self.useBg) |
|
if not self.useBg: |
|
|
paperView.paperMill = \ |
|
|
ConstantPaperMill(vob.gl.SpecialPapers.solidPaper( |
|
|
java.awt.Color.white)) |
|
167 |
return paperView |
return paperView |
168 |
|
|
169 |
|
|