From scm-commit at wald.intevation.org Tue May 3 15:28:43 2011 From: scm-commit at wald.intevation.org (scm-commit@wald.intevation.org) Date: Tue, 3 May 2011 15:28:43 +0200 (CEST) Subject: [Formed-commits] r445 - in trunk: . formed/formed/io formed/formed/model Message-ID: <20110503132843.3AB1386612ED@pyrosoma.intevation.org> Author: bricks Date: 2011-05-03 15:28:39 +0200 (Tue, 03 May 2011) New Revision: 445 Modified: trunk/ChangeLog trunk/formed/formed/io/document.py trunk/formed/formed/model/data.py Log: Add ReferenceNode to be able to create and save references Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2011-03-15 08:05:37 UTC (rev 444) +++ trunk/ChangeLog 2011-05-03 13:28:39 UTC (rev 445) @@ -1,3 +1,13 @@ +2011-04-29 Bj?rn Ricks + + Add ReferenceNode to be able to create references + + * formed/formed/model/data.py: Add ReferenceNode class derived + from NodeComponent + * formed/formed/io/document.py: Add creator for parsing ReferenceNodes + (_toXml): Handle ReferenceNodes like Leafs for saving to an xml + structure + 2011-03-15 Roland Geider * formed/formed/plugins/export/xls.py: Generate correct XLS if there Modified: trunk/formed/formed/io/document.py =================================================================== --- trunk/formed/formed/io/document.py 2011-03-15 08:05:37 UTC (rev 444) +++ trunk/formed/formed/io/document.py 2011-05-03 13:28:39 UTC (rev 445) @@ -39,6 +39,7 @@ RULE_TAG = u"rule" REPEAT_TAG = u"repeat" CONDITIONAL_TAG = u"conditional" +REFERENCE_TAG = u"reference" namesToClasses = { DOCUMENT_TAG: RootNode, @@ -59,7 +60,8 @@ RULE_TAG: RuleLeaf, REPEAT_TAG: RepeatNode, DATE_TAG: DateLeaf, - CONDITIONAL_TAG: ConditionalNode + CONDITIONAL_TAG: ConditionalNode, + REFERENCE_TAG: ReferenceNode } factoryCreators = { @@ -81,7 +83,8 @@ TEXT_AREA_TAG: SimpleCreator(NodeComponentFactory, TextAreaLeaf), TEXT_TAG: SimpleCreator(NodeComponentFactory, TextLeaf), RULE_TAG: SimpleCreator(NodeComponentFactory, RuleLeaf), - DATE_TAG: SimpleCreator(NodeComponentFactory, DateLeaf)} + DATE_TAG: SimpleCreator(NodeComponentFactory, DateLeaf), + REFERENCE_TAG: SimpleCreator(NodeComponentFactory, ReferenceNode)} classesToTagNames = dict([(v, k) for k, v in namesToClasses.iteritems()]) @@ -118,7 +121,7 @@ out.append(_toXML(child, next_depth)) out.append(u"%s" % (indent, tagName)) return "\n".join(out) - if isinstance(nc, Leaf): + if isinstance(nc, (Leaf, ReferenceNode)): tagName = classesToTagNames.get(nc.__class__, "leaf") return u"%s<%s%s/>" % (indent, tagName, _attributesToXML(nc)) if isinstance(nc, Document): Modified: trunk/formed/formed/model/data.py =================================================================== --- trunk/formed/formed/model/data.py 2011-03-15 08:05:37 UTC (rev 444) +++ trunk/formed/formed/model/data.py 2011-05-03 13:28:39 UTC (rev 445) @@ -326,5 +326,16 @@ def getTag(self): return self.getAttribute("tag") +class ReferenceNode(NodeComponent): + def __init__(self): + NodeComponent.__init__(self) + self.attributes["ref"] = "" + + def setReference(self, ref): + self.setAttribute("ref", ref) + + def getReference(self): + return self.getAttribute("ref") + # vim:set ts=4 sw=4 si et sta sts=4: