[Checkins] SVN: plone.z3cform/trunk/ copied the textlines widget from z3c.form trunk so that dexterity doesn't have to depend on yet another development package
David Glick
davidglick at onenw.org
Sat Dec 13 02:35:24 EST 2008
Log message for revision 94012:
copied the textlines widget from z3c.form trunk so that dexterity doesn't have to depend on yet another development package
Changed:
U plone.z3cform/trunk/docs/HISTORY.txt
U plone.z3cform/trunk/plone/z3cform/configure.zcml
D plone.z3cform/trunk/plone/z3cform/locales/de/LC_MESSAGES/plone.z3cform.mo
A plone.z3cform/trunk/plone/z3cform/textlines/
A plone.z3cform/trunk/plone/z3cform/textlines/__init__.py
A plone.z3cform/trunk/plone/z3cform/textlines/textlines.py
A plone.z3cform/trunk/plone/z3cform/textlines/textlines.txt
A plone.z3cform/trunk/plone/z3cform/textlines/textlines.zcml
A plone.z3cform/trunk/plone/z3cform/textlines/textlines_display.pt
A plone.z3cform/trunk/plone/z3cform/textlines/textlines_input.pt
-=-
Modified: plone.z3cform/trunk/docs/HISTORY.txt
===================================================================
--- plone.z3cform/trunk/docs/HISTORY.txt 2008-12-13 02:20:01 UTC (rev 94011)
+++ plone.z3cform/trunk/docs/HISTORY.txt 2008-12-13 07:35:24 UTC (rev 94012)
@@ -4,7 +4,9 @@
0.5.4 - unreleased
------------------
-* ...
+* Copied the basic textlines widget from z3c.form trunk for use until
+ it is released.
+ [davisagli]
0.5.3 - 2008-12-09
------------------
Modified: plone.z3cform/trunk/plone/z3cform/configure.zcml
===================================================================
--- plone.z3cform/trunk/plone/z3cform/configure.zcml 2008-12-13 02:20:01 UTC (rev 94011)
+++ plone.z3cform/trunk/plone/z3cform/configure.zcml 2008-12-13 07:35:24 UTC (rev 94012)
@@ -1,5 +1,6 @@
<configure
xmlns="http://namespaces.zope.org/zope"
+ xmlns:zcml="http://namespaces.zope.org/zcml"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:i18n="http://namespaces.zope.org/i18n"
i18n_domain="plone.z3cform">
@@ -7,6 +8,9 @@
<include package="z3c.form" file="meta.zcml" />
<include package="z3c.form" />
+ <include package=".textlines" file="textlines.zcml"
+ zcml:condition="not-installed z3c.form.browser.textlines"/>
+
<includeOverrides file="overrides.zcml" />
<include file="templates.zcml" />
Deleted: plone.z3cform/trunk/plone/z3cform/locales/de/LC_MESSAGES/plone.z3cform.mo
===================================================================
(Binary files differ)
Property changes on: plone.z3cform/trunk/plone/z3cform/textlines/__init__.py
___________________________________________________________________
Added: svn:eol-style
+ native
Added: plone.z3cform/trunk/plone/z3cform/textlines/textlines.py
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/textlines.py (rev 0)
+++ plone.z3cform/trunk/plone/z3cform/textlines/textlines.py 2008-12-13 07:35:24 UTC (rev 94012)
@@ -0,0 +1,67 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id: __init__.py 97 2007-03-29 22:58:27Z rineichen $
+"""
+__docformat__ = "reStructuredText"
+
+import zope.component
+import zope.interface
+import zope.schema.interfaces
+
+from z3c.form import interfaces
+from z3c.form import widget
+from z3c.form import converter
+from z3c.form.browser import textarea
+
+class ITextLinesWidget(interfaces.IWidget):
+ """Text lines widget."""
+
+class TextLinesWidget(textarea.TextAreaWidget):
+ """Input type sequence widget implementation."""
+ zope.interface.implementsOnly(ITextLinesWidget)
+
+
+def TextLinesFieldWidget(field, request):
+ """IFieldWidget factory for TextLinesWidget."""
+ return widget.FieldWidget(field, TextLinesWidget(request))
+
+
+ at zope.interface.implementer(interfaces.IFieldWidget)
+def TextLinesFieldWidgetFactory(field, value_type, request):
+ """IFieldWidget factory for TextLinesWidget."""
+ return TextLinesFieldWidget(field, request)
+
+class TextLinesConverter(converter.BaseDataConverter):
+ """Data converter for ITextLinesWidget."""
+
+ zope.component.adapts(
+ zope.schema.interfaces.ISequence, ITextLinesWidget)
+
+ def toWidgetValue(self, value):
+ """Convert from text lines to HTML representation."""
+ # if the value is the missing value, then an empty list is produced.
+ if value is self.field.missing_value:
+ return u''
+ return "\n".join(value)
+
+ def toFieldValue(self, value):
+ """See interfaces.IDataConverter"""
+ widget = self.widget
+ collectionType = self.field._type
+ if not len(value):
+ return self.field.missing_value
+ valueType = self.field.value_type._type
+ values = [valueType(v) for v in value.split()]
+ return collectionType(values)
\ No newline at end of file
Property changes on: plone.z3cform/trunk/plone/z3cform/textlines/textlines.py
___________________________________________________________________
Added: svn:eol-style
+ native
Added: plone.z3cform/trunk/plone/z3cform/textlines/textlines.txt
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/textlines.txt (rev 0)
+++ plone.z3cform/trunk/plone/z3cform/textlines/textlines.txt 2008-12-13 07:35:24 UTC (rev 94012)
@@ -0,0 +1,56 @@
+================
+TextLines Widget
+================
+
+The text lines widget allows you to store a sequence of textline. This sequence
+is stored as a list or tuple. This depends on what you are using as sequence
+type.
+
+As for all widgets, the text lines widget must provide the new ``IWidget``
+interface:
+
+ >>> from zope.interface.verify import verifyClass
+ >>> from z3c.form import interfaces
+ >>> from plone.z3cform.textlines import textlines
+
+ >>> verifyClass(interfaces.IWidget, textlines.TextLinesWidget)
+ True
+
+The widget can be instantiated only using the request:
+
+ >>> from z3c.form.testing import TestRequest
+ >>> request = TestRequest()
+
+ >>> widget = textlines.TextLinesWidget(request)
+
+Before rendering the widget, one has to set the name and id of the widget:
+
+ >>> widget.id = 'id'
+ >>> widget.name = 'name'
+
+We also need to register the template for at least the widget and request:
+
+ >>> import zope.component
+ >>> from zope.pagetemplate.interfaces import IPageTemplate
+ >>> from z3c.form.testing import getPath
+ >>> from z3c.form.widget import WidgetTemplateFactory
+
+ >>> zope.component.provideAdapter(
+ ... WidgetTemplateFactory(getPath('textlines_input.pt'), 'text/html'),
+ ... (None, None, None, None, textlines.ITextLinesWidget),
+ ... IPageTemplate, name=interfaces.INPUT_MODE)
+
+If we render the widget we get an empty textarea widget:
+
+ >>> print widget.render()
+ <textarea id="id" name="name" class="textarea-widget"></textarea>
+
+Adding some more attributes to the widget will make it display more:
+
+ >>> widget.id = 'id'
+ >>> widget.name = 'name'
+ >>> widget.value = u'foo\nbar'
+
+ >>> print widget.render()
+ <textarea id="id" name="name" class="textarea-widget">foo
+ bar</textarea>
Property changes on: plone.z3cform/trunk/plone/z3cform/textlines/textlines.txt
___________________________________________________________________
Added: svn:eol-style
+ native
Added: plone.z3cform/trunk/plone/z3cform/textlines/textlines.zcml
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/textlines.zcml (rev 0)
+++ plone.z3cform/trunk/plone/z3cform/textlines/textlines.zcml 2008-12-13 07:35:24 UTC (rev 94012)
@@ -0,0 +1,33 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:z3c="http://namespaces.zope.org/z3c"
+ i18n_domain="z3c.form">
+
+ <class class=".textlines.TextLinesWidget">
+ <require
+ permission="zope.Public"
+ interface="plone.z3cform.textlines.textlines.ITextLinesWidget"
+ />
+ </class>
+
+ <!-- this widget is not configured for any field by default -->
+
+ <z3c:widgetTemplate
+ mode="display"
+ widget="plone.z3cform.textlines.textlines.ITextLinesWidget"
+ layer="z3c.form.interfaces.IFormLayer"
+ template="textlines_display.pt"
+ />
+
+ <z3c:widgetTemplate
+ mode="input"
+ widget="plone.z3cform.textlines.textlines.ITextLinesWidget"
+ layer="z3c.form.interfaces.IFormLayer"
+ template="textlines_input.pt"
+ />
+
+ <adapter
+ factory=".textlines.TextLinesConverter"
+ />
+
+</configure>
Property changes on: plone.z3cform/trunk/plone/z3cform/textlines/textlines.zcml
___________________________________________________________________
Added: svn:eol-style
+ native
Added: plone.z3cform/trunk/plone/z3cform/textlines/textlines_display.pt
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/textlines_display.pt (rev 0)
+++ plone.z3cform/trunk/plone/z3cform/textlines/textlines_display.pt 2008-12-13 07:35:24 UTC (rev 94012)
@@ -0,0 +1,22 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ tal:omit-tag="">
+<span id="" class=""
+ tal:attributes="id view/id;
+ class view/klass;
+ style view/style;
+ title view/title;
+ lang view/lang;
+ onclick view/onclick;
+ ondblclick view/ondblclick;
+ onmousedown view/onmousedown;
+ onmouseup view/onmouseup;
+ onmouseover view/onmouseover;
+ onmousemove view/onmousemove;
+ onmouseout view/onmouseout;
+ onkeypress view/onkeypress;
+ onkeydown view/onkeydown;
+ onkeyup view/onkeyup"><tal:block
+ condition="view/value" content="view/value"
+/></span>
+</html>
Added: plone.z3cform/trunk/plone/z3cform/textlines/textlines_input.pt
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/textlines_input.pt (rev 0)
+++ plone.z3cform/trunk/plone/z3cform/textlines/textlines_input.pt 2008-12-13 07:35:24 UTC (rev 94012)
@@ -0,0 +1,34 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ tal:omit-tag="">
+<textarea
+ id="" name="" class="" cols="" rows=""
+ tabindex="" disabled="" readonly="" accesskey=""
+ tal:attributes="id view/id;
+ name view/name;
+ class view/klass;
+ style view/style;
+ title view/title;
+ lang view/lang;
+ onclick view/onclick;
+ ondblclick view/ondblclick;
+ onmousedown view/onmousedown;
+ onmouseup view/onmouseup;
+ onmouseover view/onmouseover;
+ onmousemove view/onmousemove;
+ onmouseout view/onmouseout;
+ onkeypress view/onkeypress;
+ onkeydown view/onkeydown;
+ onkeyup view/onkeyup;
+ disabled view/disabled;
+ tabindex view/tabindex;
+ onfocus view/onfocus;
+ onblur view/onblur;
+ onchange view/onchange;
+ cols view/cols;
+ rows view/rows;
+ readonly view/readonly;
+ accesskey view/accesskey;
+ onselect view/onselect"
+ tal:content="structure view/value" />
+</html>
More information about the Checkins
mailing list