[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