Index: quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/browser/seo_configlet.py
===================================================================
--- quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/browser/seo_configlet.py	(revision 1788)
+++ quintagroup.seoptimizer/branches/refactoring2.3.0/quintagroup/seoptimizer/browser/seo_configlet.py	(revision 1822)
@@ -1,2 +1,3 @@
+import re
 from zope.interface import Interface
 from zope.interface import implements
@@ -4,5 +5,5 @@
 from zope.schema.vocabulary import SimpleTerm
 from zope.schema.vocabulary import SimpleVocabulary
-from zope.schema import Bool, Text, Choice, Tuple
+from zope.schema import Bool, Text, Choice, Tuple, List
 from zope.app.form.browser import RadioWidget
 
@@ -58,5 +59,5 @@
         required=False)
 
-    default_custom_metatags = Text(
+    default_custom_metatags = List(
         title=_("label_default_custom_metatags", default='Default custom metatags.'),
         description=_("help_default_custom_metatags",
@@ -66,5 +67,5 @@
         required=False)
 
-    metatags_order = Text(
+    metatags_order = List(
         title=_("label_metatags_order",
                 default='Meta tags order in the page.'),
@@ -75,5 +76,5 @@
         required=False)
 
-    additional_keywords = Text(
+    additional_keywords = List(
         title=_("label_additional_keywords",
                 default='Additional keywords that should be added to the '
@@ -136,25 +137,4 @@
         return self.siteprops._updateProperty('exposeDCMetaTags', bool(value))
 
-    def getDefaultCustomMetatags(self):
-        return '\n'.join(self.context.getProperty('default_custom_metatags'))
-    
-    def setDefaultCustomMetatags(self, value):
-        value = value and value.strip().split('\n') or []
-        self.context._updateProperty('default_custom_metatags', value)
-
-    def getMetatagsOrder(self):
-        return '\n'.join(self.context.getProperty('metatags_order'))
-    
-    def setMetatagsOrder(self, value):
-        value = value and value.strip().split('\n') or []
-        self.context._updateProperty('metatags_order', value)
-
-    def getAdditionalKeywords(self):
-        return '\n'.join(self.context.getProperty('additional_keywords'))
-    
-    def setAdditionalKeywords(self, value):
-        value = value and value.strip().split('\n') or []
-        self.context._updateProperty('additional_keywords', value)
-
     def getTypesSEOEnabled(self):
         ct_with_seo = self.context.content_types_with_seoproperties
@@ -167,9 +147,9 @@
 
     exposeDCMetaTags = property(getExposeDC, setExposeDC)
-    metatags_order = property(getMetatagsOrder, setMetatagsOrder)
-    default_custom_metatags = property(getDefaultCustomMetatags, setDefaultCustomMetatags)
-    additional_keywords = property(getAdditionalKeywords, setAdditionalKeywords)
     types_seo_enabled = property(getTypesSEOEnabled, setTypesSEOEnabled)
-
+    metatags_order = ProxyFieldProperty(ISEOConfigletSchema['metatags_order'])
+    default_custom_metatags = ProxyFieldProperty(ISEOConfigletSchema['default_custom_metatags'])
+    additional_keywords = ProxyFieldProperty(ISEOConfigletSchema['additional_keywords'])
+    
     settings_use_keywords_sg = ProxyFieldProperty(ISEOConfigletSchema['settings_use_keywords_sg'])
     settings_use_keywords_lg = ProxyFieldProperty(ISEOConfigletSchema['settings_use_keywords_lg'])
@@ -178,4 +158,11 @@
 class SmallTextAreaWidget(TextAreaWidget):
     height = 5
+    splitter = re.compile(u'\\r?\\n', re.S|re.U)
+
+    def _toFieldValue(self, value):
+        return filter(None, self.splitter.split(value))
+
+    def _toFormValue(self, value):
+        return u'\r\n'.join(list(value))
 
 
@@ -185,4 +172,5 @@
     form_fields['default_custom_metatags'].custom_widget = SmallTextAreaWidget
     form_fields['additional_keywords'].custom_widget = SmallTextAreaWidget
+    form_fields['metatags_order'].custom_widget = SmallTextAreaWidget
     form_fields['settings_use_keywords_sg'].custom_widget = SEORadioWidget
     form_fields['settings_use_keywords_lg'].custom_widget = SEORadioWidget
