[Checkins] SVN: z3c.rml/trunk/ - Implemented ``linePlot3D`` directive. Patch by Faisal Puthuparackat.

Stephan Richter srichter at gmail.com
Wed Jul 21 22:23:19 EDT 2010


Log message for revision 114908:
  - Implemented ``linePlot3D`` directive. Patch by Faisal Puthuparackat.
  

Changed:
  U   z3c.rml/trunk/CHANGES.txt
  U   z3c.rml/trunk/src/z3c/rml/canvas.py
  U   z3c.rml/trunk/src/z3c/rml/chart.py
  U   z3c.rml/trunk/src/z3c/rml/rml.dtd

-=-
Modified: z3c.rml/trunk/CHANGES.txt
===================================================================
--- z3c.rml/trunk/CHANGES.txt	2010-07-22 01:59:57 UTC (rev 114907)
+++ z3c.rml/trunk/CHANGES.txt	2010-07-22 02:23:18 UTC (rev 114908)
@@ -11,6 +11,8 @@
 - Upgraded to latest lxml. This only required a trivial change. Patch by Felix
   Schwarz.
 
+- Implemented ``linePlot3D`` directive. Patch by Faisal Puthuparackat.
+
 - Bug: Fixed version number in reference.pt. Patch by Felix Schwarz.
 
 - Bug: Write PDF documents in binary mode. Patch by Felix Schwarz.

Modified: z3c.rml/trunk/src/z3c/rml/canvas.py
===================================================================
--- z3c.rml/trunk/src/z3c/rml/canvas.py	2010-07-22 01:59:57 UTC (rev 114907)
+++ z3c.rml/trunk/src/z3c/rml/canvas.py	2010-07-22 02:23:18 UTC (rev 114908)
@@ -759,6 +759,7 @@
         occurence.ZeroOrMore('barChart', chart.IBarChart),
         occurence.ZeroOrMore('barChart3D', chart.IBarChart3D),
         occurence.ZeroOrMore('linePlot', chart.ILinePlot),
+        occurence.ZeroOrMore('linePlot3D', chart.ILinePlot3D),
         occurence.ZeroOrMore('pieChart', chart.IPieChart),
         occurence.ZeroOrMore('pieChart3D', chart.IPieChart3D),
         occurence.ZeroOrMore('spiderChart', chart.ISpiderChart),
@@ -803,6 +804,7 @@
         'barChart': chart.BarChart,
         'barChart3D': chart.BarChart3D,
         'linePlot': chart.LinePlot,
+        'linePlot3D': chart.LinePlot3D,
         'pieChart': chart.PieChart,
         'pieChart3D': chart.PieChart3D,
         'spiderChart': chart.SpiderChart

Modified: z3c.rml/trunk/src/z3c/rml/chart.py
===================================================================
--- z3c.rml/trunk/src/z3c/rml/chart.py	2010-07-22 01:59:57 UTC (rev 114907)
+++ z3c.rml/trunk/src/z3c/rml/chart.py	2010-07-22 02:23:18 UTC (rev 114908)
@@ -389,7 +389,18 @@
 class Label(PropertyItem):
     signature = ILabel
 
+class IBarLabels(ILabelBase):
+    """A set of labels for a bar chart"""
+    occurence.containing(
+        occurence.ZeroOrMore('label', ILabel)
+        )
 
+class BarLabels(PropertyCollection):
+    signature = IBarLabels
+    propertyName = 'barLabels'
+    factories = {'label': Label}
+    name = 'barLabels'
+
 class ILabels(IPositionLabelBase):
     """A set of labels of an axis."""
     occurence.containing(
@@ -668,9 +679,10 @@
         description=u'The step size between ticks',
         required=False)
 
-    valueSteps = attr.Measurement(
+    valueSteps = attr.Sequence(
         title=u'Step Sizes',
         description=u'List of step sizes between ticks.',
+        value_type = attr.Float(),
         required=False)
 
     rangeRound = attr.Choice(
@@ -1311,6 +1323,7 @@
         occurence.ZeroOrOne('bars', IBars),
         occurence.ZeroOrOne('categoryAxis', ICategoryAxis),
         occurence.ZeroOrOne('valueAxis', IValueAxis),
+        occurence.ZeroOrOne('barLabels', IBarLabels),
         *IChart.queryTaggedValue('directives', ())
         )
 
@@ -1345,6 +1358,12 @@
         default=0,
         required=False)
 
+    barLabelFormat = attr.String(
+        title=u'Bar Label Text Format',
+        description=u'Formatting string for bar labels.',
+        required=False)
+
+
 class BarChart(Chart):
     signature = IBarChart
     nameBase = 'BarChart'
@@ -1352,6 +1371,7 @@
     factories.update({
         'data': Data1D,
         'bars': Bars,
+	'barLabels': BarLabels,
         })
 
     def createChart(self, attrs):
@@ -1453,7 +1473,46 @@
             setattr(chart, name, value)
         return chart
 
+class ILinePlot3D(ILinePlot):
+    """Creates a three-dimensional line plot."""
+    occurence.containing(
+        *ILinePlot.queryTaggedValue('directives', ())
+        )
 
+    thetaX = attr.Float(
+        title=u'Theta-X',
+        description=u'Fraction of dx/dz.',
+        required=False)
+
+    thetaY = attr.Float(
+        title=u'Theta-Y',
+        description=u'Fraction of dy/dz.',
+        required=False)
+
+    zDepth = attr.Measurement(
+        title=u'Z-Depth',
+        description=u'Depth of an individual series/bar.',
+        required=False)
+
+    zSpace = attr.Measurement(
+        title=u'Z-Space',
+        description=u'Z-Gap around a series/bar.',
+        required=False)
+
+class LinePlot3D(LinePlot):
+    signature = ILinePlot3D
+    nameBase = 'LinePlot3D'
+    attrMapping = {'thetaX': 'theta_x', 'thetaY': 'theta_y'}
+
+    def createChart(self, attrs):
+        # Generate the chart
+        chart = lineplots.LinePlot3D()
+        for name, value in attrs.items():
+            setattr(chart,name, value)
+        return chart
+
+
+
 class IPieChart(IChart):
     """A pie chart."""
     occurence.containing(

Modified: z3c.rml/trunk/src/z3c/rml/rml.dtd
===================================================================
--- z3c.rml/trunk/src/z3c/rml/rml.dtd	2010-07-22 01:59:57 UTC (rev 114907)
+++ z3c.rml/trunk/src/z3c/rml/rml.dtd	2010-07-22 02:23:18 UTC (rev 114908)
@@ -560,7 +560,7 @@
 <!ELEMENT pageInfo>
 <!ATTLIST pageInfo pageSize CDATA #REQUIRED>
 
-<!ELEMENT pageDrawing (drawString*,drawRightString*,drawCenteredString*,drawCentredString*,drawAlignedString*,ellipse*,circle*,rect*,grid*,lines*,curves*,image*,place*,textAnnotation*,path*,fill*,stroke*,setFont*,scale*,translate*,rotate*,skew*,transform*,lineMode*,barCode*,textField*,buttonField*,selectField*,barChart*,barChart3D*,linePlot*,pieChart*,pieChart3D*,spiderChart*)>
+<!ELEMENT pageDrawing (drawString*,drawRightString*,drawCenteredString*,drawCentredString*,drawAlignedString*,ellipse*,circle*,rect*,grid*,lines*,curves*,image*,place*,textAnnotation*,path*,fill*,stroke*,setFont*,scale*,translate*,rotate*,skew*,transform*,lineMode*,barCode*,textField*,buttonField*,selectField*,barChart*,barChart3D*,linePlot*,linePlot3D*,pieChart*,pieChart3D*,spiderChart*)>
 
 <!ELEMENT drawString>
 <!ATTLIST drawString x CDATA #REQUIRED>
@@ -754,7 +754,7 @@
 <!ELEMENT option>
 <!ATTLIST option value CDATA #REQUIRED>
 
-<!ELEMENT barChart (data,bars?,categoryAxis?,valueAxis?,texts?)>
+<!ELEMENT barChart (data,bars?,categoryAxis?,valueAxis?,texts?,barLabels?)>
 <!ATTLIST barChart dx CDATA #IMPLIED>
 <!ATTLIST barChart dy CDATA #IMPLIED>
 <!ATTLIST barChart dwidth CDATA #IMPLIED>
@@ -773,6 +773,7 @@
 <!ATTLIST barChart barWidth CDATA #IMPLIED>
 <!ATTLIST barChart groupSpacing CDATA #IMPLIED>
 <!ATTLIST barChart barSpacing CDATA #IMPLIED>
+<!ATTLIST barChart barLabelFormat CDATA #IMPLIED>
 
 <!ELEMENT data (series+)>
 
@@ -911,7 +912,15 @@
 <!ATTLIST text fillColor CDATA #IMPLIED>
 <!ATTLIST text textAnchor (start|boxauto|end|middle) #IMPLIED>
 
-<!ELEMENT barChart3D (data,bars?,categoryAxis?,valueAxis?,texts?)>
+<!ELEMENT barLabels>
+<!ATTLIST barLabels dx CDATA #REQUIRED>
+<!ATTLIST barLabels dy CDATA #REQUIRED>
+<!ATTLIST barLabels boxAnchor CDATA #REQUIRED>
+<!ATTLIST barLabels fontName CDATA #REQUIRED>
+<!ATTLIST barLabels fontSize CDATA #REQUIRED>
+<!ATTLIST barLabels nudge CDATA #REQUIRED>
+
+<!ELEMENT barChart3D (data,bars?,categoryAxis?,valueAxis?,texts?,barLabels?)>
 <!ATTLIST barChart3D dx CDATA #IMPLIED>
 <!ATTLIST barChart3D dy CDATA #IMPLIED>
 <!ATTLIST barChart3D dwidth CDATA #IMPLIED>
@@ -930,6 +939,7 @@
 <!ATTLIST barChart3D barWidth CDATA #IMPLIED>
 <!ATTLIST barChart3D groupSpacing CDATA #IMPLIED>
 <!ATTLIST barChart3D barSpacing CDATA #IMPLIED>
+<!ATTLIST barChart3D barLabelFormat CDATA #IMPLIED>
 <!ATTLIST barChart3D thetaX CDATA #IMPLIED>
 <!ATTLIST barChart3D thetaY CDATA #IMPLIED>
 <!ATTLIST barChart3D zDepth CDATA #IMPLIED>
@@ -1091,6 +1101,29 @@
 <!ATTLIST linePlot lineLabelFormat CDATA #IMPLIED>
 <!ATTLIST linePlot joinedLines CDATA #IMPLIED>
 
+<!ELEMENT linePlot3D (data,lines?,xValueAxis?,yValueAxis?,lineLabels?,texts?)>
+<!ATTLIST linePlot3D dx CDATA #IMPLIED>
+<!ATTLIST linePlot3D dy CDATA #IMPLIED>
+<!ATTLIST linePlot3D dwidth CDATA #IMPLIED>
+<!ATTLIST linePlot3D dheight CDATA #IMPLIED>
+<!ATTLIST linePlot3D angle CDATA #IMPLIED>
+<!ATTLIST linePlot3D x CDATA #IMPLIED>
+<!ATTLIST linePlot3D y CDATA #IMPLIED>
+<!ATTLIST linePlot3D width CDATA #IMPLIED>
+<!ATTLIST linePlot3D height CDATA #IMPLIED>
+<!ATTLIST linePlot3D strokeColor CDATA #IMPLIED>
+<!ATTLIST linePlot3D strokeWidth CDATA #IMPLIED>
+<!ATTLIST linePlot3D fillColor CDATA #IMPLIED>
+<!ATTLIST linePlot3D debug CDATA #IMPLIED>
+<!ATTLIST linePlot3D reversePlotOrder CDATA #IMPLIED>
+<!ATTLIST linePlot3D lineLabelNudge CDATA #IMPLIED>
+<!ATTLIST linePlot3D lineLabelFormat CDATA #IMPLIED>
+<!ATTLIST linePlot3D joinedLines CDATA #IMPLIED>
+<!ATTLIST linePlot3D thetaX CDATA #IMPLIED>
+<!ATTLIST linePlot3D thetaY CDATA #IMPLIED>
+<!ATTLIST linePlot3D zDepth CDATA #IMPLIED>
+<!ATTLIST linePlot3D zSpace CDATA #IMPLIED>
+
 <!ELEMENT data (series+)>
 
 <!ELEMENT series>
@@ -1109,7 +1142,7 @@
 <!ATTLIST line symbol CDATA #IMPLIED>
 <!ATTLIST line name CDATA #IMPLIED>
 
-<!ELEMENT xValueAxis>
+<!ELEMENT xValueAxis (valueSteps?)>
 <!ATTLIST xValueAxis visible CDATA #IMPLIED>
 <!ATTLIST xValueAxis visibleAxis CDATA #IMPLIED>
 <!ATTLIST xValueAxis visibleTicks CDATA #IMPLIED>
@@ -1133,7 +1166,6 @@
 <!ATTLIST xValueAxis valueMin CDATA #IMPLIED>
 <!ATTLIST xValueAxis valueMax CDATA #IMPLIED>
 <!ATTLIST xValueAxis valueStep CDATA #IMPLIED>
-<!ATTLIST xValueAxis valueSteps CDATA #IMPLIED>
 <!ATTLIST xValueAxis rangeRound (both|none|ceiling|floor) #IMPLIED>
 <!ATTLIST xValueAxis zrangePref CDATA #IMPLIED>
 <!ATTLIST xValueAxis tickUp CDATA #IMPLIED>
@@ -1142,7 +1174,7 @@
 <!ATTLIST xValueAxis joinAxisMode (top|points|none|value|bottom) #IMPLIED>
 <!ATTLIST xValueAxis joinAxisPos CDATA #IMPLIED>
 
-<!ELEMENT yValueAxis>
+<!ELEMENT yValueAxis (valueSteps?)>
 <!ATTLIST yValueAxis visible CDATA #IMPLIED>
 <!ATTLIST yValueAxis visibleAxis CDATA #IMPLIED>
 <!ATTLIST yValueAxis visibleTicks CDATA #IMPLIED>
@@ -1166,7 +1198,6 @@
 <!ATTLIST yValueAxis valueMin CDATA #IMPLIED>
 <!ATTLIST yValueAxis valueMax CDATA #IMPLIED>
 <!ATTLIST yValueAxis valueStep CDATA #IMPLIED>
-<!ATTLIST yValueAxis valueSteps CDATA #IMPLIED>
 <!ATTLIST yValueAxis rangeRound (both|none|ceiling|floor) #IMPLIED>
 <!ATTLIST yValueAxis zrangePref CDATA #IMPLIED>
 <!ATTLIST yValueAxis tickLeft CDATA #IMPLIED>
@@ -1175,6 +1206,10 @@
 <!ATTLIST yValueAxis joinAxisMode (top|points|none|value|bottom) #IMPLIED>
 <!ATTLIST yValueAxis joinAxisPos CDATA #IMPLIED>
 
+<!ELEMENT valueSteps (valueStep*)>
+
+<!ELEMENT valueStep>
+
 <!ELEMENT lineLabels (label*)>
 <!ATTLIST lineLabels dx CDATA #IMPLIED>
 <!ATTLIST lineLabels dy CDATA #IMPLIED>



More information about the checkins mailing list