daboide Commit
Revision 322
Date: 2006-01-11 10:51:06 -0800 (Wed, 11 Jan 2006)
Author: paul

Changed:
U   trunk/ReportDesigner.py

Log:
This follows the changes in report writer.


Diff:
Modified: trunk/ReportDesigner.py
===================================================================
--- trunk/ReportDesigner.py     2006-01-11 16:23:00 UTC (rev 321)
+++ trunk/ReportDesigner.py     2006-01-11 18:51:06 UTC (rev 322)
@@ -26,22 +26,22 @@
 
        def _getDesProps(self):
                strType = {"type" : str, "readonly" : False}
-               props = self.AvailableProps
+               props = self.Props.PropDefaults.keys()
                desProps = {}
                for prop in props:
                        desProps[prop] = strType
                return desProps
 
-       def _getAvailableProps(self):
-               if hasattr(self, "_availableProps"):
-                       val = self._availableProps
-               else:
-                       val = self._availableProps = {}
-               return val
 
-       AvailableProps = property(_getAvailableProps, None, None,
-               _("""Returns a list of properties available for this 
object."""))
+       def _getProps(self):
+               return self._props
 
+       def _setProps(self, val):
+               self._props = val
+
+
+       Props = property(_getProps, _setProps)
+
        DesignerProps = property(_getDesProps, None, None,
                _("""Returns a dict of editable properties for the control, 
with the 
                prop names as the keys, and the value for each another dict, 
@@ -267,7 +267,7 @@
 
                for name in elements:
                        item = frm[name]
-                       if type(item) == dict:
+                       if isinstance(item, dict):
                                node = parentNode.appendChild(name)
                                node._obj = rd.findBandByName(name)
                                if item.has_key("objects"):
@@ -342,8 +342,6 @@
                self._mousePosition = (0,0)
                self._mouseDragMode = ""
 
-               self._availableProps = ["x", "y", "width", "height", "hAnchor", 
"vAnchor", "rotation", "name"]
-
                self._dragging = False
                self._dragStart = (0,0)
                self._dragImage = None
@@ -379,17 +377,16 @@
 
 
        def getProp(self, prop, evaluate=True, fillDefault=True):
+               if evaluate and fillDefault:
+                       # The report object can do it all:
+                       return self.Props.getProp(prop)
+
                try:
                        val = self.Props[prop]
                except KeyError:
-                       val = None
+                       if fillDefault:
+                               val = self.Props.PropDefaults[prop]
 
-               if val is None and fillDefault:
-                       try:
-                               val = 
repr(self._rw.__getattribute__("default_%s" % prop))
-                       except AttributeError:
-                               pass
-
                if val is not None and evaluate and prop not in ("type",):
                        try:
                                vale = eval(val)
@@ -793,13 +790,6 @@
                                        break
                self.Refresh()
                        
-       def _getProps(self):
-               return self._props
-
-       def _setProps(self, val):
-               self._props = val
-
-       Props = property(_getProps, _setProps)
        Selected = property(_getSelected)
 
 #  End of ObjectPanel Class
@@ -807,12 +797,7 @@
 #------------------------------------------------------------------------------
 
 
-class StringObject(ObjectPanel):
-       def afterInit(self):
-               self.doDefault()
-               self._availableProps.append("expr")
-               self._availableProps.append("fontName")
-               self._availableProps.append("fontSize")
+class StringObject(ObjectPanel): pass
 
 class RectObject(ObjectPanel):
        def afterInit(self):
@@ -825,7 +810,6 @@
 class ImageObject(ObjectPanel):
        def afterInit(self):
                self.doDefault()
-               self._availableProps.append("expr")
 
 #------------------------------------------------------------------------------
 #  BandLabel Class
@@ -997,9 +981,7 @@
                                BackColor=(215,215,215), 
ForeColor=(128,128,128),
                                Height=self._bandLabelHeight)
 
-               self._availableProps = ["height", "name", "designerLock"]
 
-
        def initEvents(self):
                self.bindEvent(dEvents.MouseLeftClick, self.onLeftClick)
 
@@ -1072,41 +1054,20 @@
                rw = self.Parent._rw
                z = self.Parent.ZoomFactor
 
-               if obj.has_key("x"):
-                       x = rw.getPt(eval(obj["x"]))
-               else:
-                       x = rw.default_x
-
-               if obj.has_key("y"):
-                       y = rw.getPt(eval(obj["y"]))
-               else:
-                       y = rw.default_y
+               x = rw.getPt(obj.getProp("x"))
+               y = rw.getPt(obj.getProp("y"))
                y = ((self.Height - self._bandLabelHeight)/z) - y
 
-               if obj.has_key("width"):
-                       width = rw.getPt(eval(obj["width"]))
-               else:
-                       width = rw.default_width
+               width = rw.getPt(obj.getProp("width"))
+               height = obj.getProp("height")
+               if height is None:
+                       # dynamic height. Fake it here for now:
+                       height = 23
+               height = rw.getPt(height)
 
-               if obj.has_key("height"):
-                       height = eval(obj["height"])
-                       if height is None:
-                               # dynamic height. Fake it here for now:
-                               height = 23
-                       height = rw.getPt(height)
-               else:
-                       height = rw.default_height
+               hAnchor = obj.getProp("hAnchor")
+               vAnchor = obj.getProp("vAnchor")
 
-               if obj.has_key("hAnchor"):
-                       hAnchor = eval(obj["hAnchor"])
-               else:
-                       hAnchor = rw.default_hAnchor
-
-               if obj.has_key("vAnchor"):
-                       vAnchor = eval(obj["vAnchor"])
-               else:
-                       vAnchor = rw.default_vAnchor
-
                if hAnchor == "right":
                        x = x - width
                elif hAnchor == "center":
@@ -1122,17 +1083,16 @@
                return o
 
        def getProp(self, prop, evaluate=True, fillDefault=True):
+               if evaluate and fillDefault:
+                       # The report object can do it all:
+                       return self.Props.getProp(prop)
+
                try:
                        val = self.Props[prop]
                except KeyError:
-                       val = None
+                       if fillDefault:
+                               val = self.Props.PropDefaults.get(prop)
 
-               if val is None and fillDefault:
-                       try:
-                               val = 
repr(self._rw.__getattribute__("default_%s" % prop))
-                       except AttributeError:
-                               pass
-
                if val is not None and evaluate and prop not in ("type",):
                        try:
                                vale = eval(val)
@@ -1311,8 +1271,6 @@
                                        
                                        for o in self.SelectedObjects:
                                                val = o.getProp(propName)
-                                               if val is None:
-                                                       val = 
eval("self._rw.default_%s" % propName)
                                                val = self._rw.getPt(val)
                                                newval = val+adj
                                                if propName in ("width", 
"height") and newval < 0:
@@ -1542,10 +1500,10 @@
                        return
 
                pageWidth = rw.getPageSize()[0] * z
-               ml = rw.getPt(eval(rf["page"]["marginLeft"])) * z
-               mr = rw.getPt(eval(rf["page"]["marginRight"])) * z
-               mt = rw.getPt(eval(rf["page"]["marginTop"])) * z
-               mb = rw.getPt(eval(rf["page"]["marginBottom"])) * z
+               ml = rw.getPt(rf["page"].getProp("marginLeft")) * z
+               mr = rw.getPt(rf["page"].getProp("marginRight")) * z
+               mt = rw.getPt(rf["page"].getProp("marginTop")) * z
+               mb = rw.getPt(rf["page"].getProp("marginBottom")) * z
                bandWidth = pageWidth - ml - mr
 
                tr = self._rulers["top"]
@@ -1557,7 +1515,7 @@
                        b = band.bandLabel
                        b.Width = band.Width
 
-                       bandHeight = eval(band.Props["height"])
+                       bandHeight = band.Props.getProp("height")
                        if bandHeight is None:
                                # dynamic band height: size of band determined 
at runtime. For now, fake it.
                                bandHeight = 75         




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to