dabo Commit
Revision 6533
Date: 2011-04-05 11:34:06 -0700 (Tue, 05 Apr 2011)
Author: Paul
Trac: http://trac.dabodev.com/changeset/6533
Changed:
U trunk/dabo/lib/reportWriter.py
Log:
Implemented default properties that can be set by the appdev to determine what
displays and where, when the property doesn't evaluate, most likely at design-
time in the designer.
Diff:
Modified: trunk/dabo/lib/reportWriter.py
===================================================================
--- trunk/dabo/lib/reportWriter.py 2011-04-04 23:51:55 UTC (rev 6532)
+++ trunk/dabo/lib/reportWriter.py 2011-04-05 18:34:06 UTC (rev 6533)
@@ -206,7 +206,9 @@
def insertRequiredElements(self):
"""Insert any missing required elements into the object."""
- pass
+ for k, v in self.AvailableProps.items():
+ defProp = self.AvailableProps["%s_def" % k] = v.copy()
+ defProp["doc"] = "This is the DEFAULT value of the
property, for design-time evaluation."
def addElement(self, cls):
"""Add a new element, replacing existing one of same name."""
@@ -252,6 +254,14 @@
set up to have the passed prop.
"""
def getDefault():
+ if prop[-4:] != "_def":
+ # First try the default (<prop>_def) value:
+ try:
+ return eval(self["%s_def" % prop])
+ except StandardError:
+ pass
+
+ # Fall back to defaults for base prop:
if prop in self.AvailableProps:
val = self.AvailableProps[prop]["default"]
if not evaluate:
@@ -280,6 +290,13 @@
"""Update the value of the property."""
if prop not in self.AvailableProps:
raise ValueError("Property '%s' doesn't exist." % prop)
+ defProp = "%s_def" % prop
+ if defProp[-8:] == "_def_def":
+ defProp = None
+ if defProp and self.getProp(prop, evaluate=False) ==
self.getProp(defProp, evaluate=False):
+ # Okay to change the _def prop since it looks
like the appdev
+ # hasn't explicitly set it.
+ self[defProp] = val
if logUndo:
self.Report.reportWriter.storeUndo(self, prop,
self.getProp(prop, evaluate=False), val)
self[prop] = val
@@ -1360,7 +1377,7 @@
if "expr_pagecount" in obj:
s = obj.getProp("expr_pagecount",
returnException=True)
else:
- s = obj.getProp("expr", returnException=True)
+ s = obj.getProp("expr")
if s is None:
s = self.NoneDisplay
@@ -1615,7 +1632,7 @@
t = fobject.__class__.__name__
s = styles_[fobject.getProp("style")]
- expr = fobject.getProp("expr", returnException=True)
+ expr = fobject.getProp("expr")
if isinstance(s, basestring):
expr = expr.encode(self.Encoding)
@@ -1896,7 +1913,7 @@
endPage()
beginPage()
- if bandDict.getProp("show", returnException=True) ==
False:
+ if bandDict.getProp("show") == False:
return y
self.ReportForm.Bands[band] = CaselessDict()
@@ -2017,8 +2034,7 @@
else:
obj_deferred = None
neededHeight = 0
- show = obj.getProp("show", returnException=True)
- if show == False:
+ if not obj.getProp("show"):
continue
x1 = self.getPt(obj.getProp("x"))
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message:
http://leafe.com/archives/byMID/[email protected]