From 6637aaae9a670abcfd120d001103abc47b2f7518 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bartek=20G=C3=B3rny?= <bartek@gorny.edu.pl>
Date: Wed, 11 Oct 2006 11:09:06 +0000
Subject: [PATCH] InputButtonField for Formulator

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@10659 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Form/InputButtonField.py | 81 ++++++++++++++++++++++++++++
 product/ERP5Form/__init__.py         |  4 +-
 2 files changed, 84 insertions(+), 1 deletion(-)
 create mode 100644 product/ERP5Form/InputButtonField.py

diff --git a/product/ERP5Form/InputButtonField.py b/product/ERP5Form/InputButtonField.py
new file mode 100644
index 0000000000..db7ae0a75a
--- /dev/null
+++ b/product/ERP5Form/InputButtonField.py
@@ -0,0 +1,81 @@
+##############################################################################
+#
+# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.
+#                    Jean-Paul Smets-Solanes <jp@nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+from Products.Formulator import Widget, Validator
+from Products.Formulator.Field import ZMIField
+from Products.Formulator.DummyField import fields
+
+class InputButtonWidget(Widget.Widget):
+    """
+    InputButton widget
+    
+    Displays an input button.
+
+    To hide the button label, apply
+    """
+    property_names = Widget.Widget.property_names + ['name', 'extra']
+
+    default = fields.StringField('default',
+                                 title='Button text',
+                                 description=(
+        "You can place text here that will be used as the value (button text)"),
+                                 default="Submit",
+                                 required=1)
+                                 
+    name = fields.StringField('name',
+                          title='Name',
+                          description=(
+        "The Name of the submit button."),
+                          default='',
+                          required=0)
+    
+    css_class = fields.StringField('css_class',
+                                   title='CSS class',
+                                   description=(
+        "The CSS class of the field. This can be used to style your "
+        "formulator fields using cascading style sheets. Not required."),
+                                   default="hiddenLabel",
+                                   required=0)
+
+    def render(self, field, key, value, REQUEST):
+        """Render input button.
+        """
+        return Widget.render_element("input",
+                              type="submit",
+                              name=field.get_value('name'),
+                              css_class=field.get_value('css_class'),
+                              value=field.get_value('default'),
+                              extra=field.get_value('extra'))
+                                                
+InputButtonWidgetInstance = InputButtonWidget()
+
+class InputButtonField(ZMIField):
+    meta_type = "InputButtonField"
+
+    widget = InputButtonWidgetInstance
+    validator = Validator.SuppressValidatorInstance
diff --git a/product/ERP5Form/__init__.py b/product/ERP5Form/__init__.py
index 7f355f2455..addae998c1 100644
--- a/product/ERP5Form/__init__.py
+++ b/product/ERP5Form/__init__.py
@@ -43,7 +43,7 @@ document_classes = updateGlobals( this_module, globals(),
 import Form, FSForm, ListBox, MatrixBox, SelectionTool
 import ZGDChart, PDFTemplate, Report, PDFForm, ParallelListField
 import PlanningBox, POSBox, FormBox, EditorField, ProxyField
-import RelationField, ImageField, MultiRelationField, MultiLinkField
+import RelationField, ImageField, MultiRelationField, MultiLinkField, InputButtonField
 import ZPyChart
 import PreferenceTool
 
@@ -140,6 +140,8 @@ def initialize( context ):
                                 'www/LinkField.gif')
     FieldRegistry.registerField(MultiLinkField.MultiLinkField,
                                 'www/LinkField.gif')
+    FieldRegistry.registerField(InputButtonField.InputButtonField,
+                                'www/StringField.gif')
  
     # some helper fields
     FieldRegistry.registerField(HelperFields.ListTextAreaField)
-- 
2.30.9