r1257 - xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes
Marta Girdea
marta_girdea at users.forge.objectweb.org
Sat Sep 2 13:56:10 CEST 2006
Author: marta_girdea
Date: 2006-09-02 13:56:09 +0200 (Sat, 02 Sep 2006)
New Revision: 1257
Modified:
xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/BooleanClass.java
xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java
Log:
Add i18n support for ListClass
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/BooleanClass.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/BooleanClass.java 2006-09-01 09:08:31 UTC (rev 1256)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/BooleanClass.java 2006-09-02 11:56:09 UTC (rev 1257)
@@ -36,152 +36,147 @@
public class BooleanClass extends PropertyClass {
- public BooleanClass(PropertyMetaClass wclass) {
- super("boolean", "Boolean", wclass);
- }
+ public BooleanClass(PropertyMetaClass wclass) {
+ super("boolean", "Boolean", wclass);
+ }
- public BooleanClass() {
- this(null);
- }
+ public BooleanClass() {
+ this(null);
+ }
- public String getDisplayType() {
- String dtype = getStringValue("displayType");
- if ((dtype==null)||(dtype.equals(""))) {
- return "yesno";
- }
- return dtype;
- }
+ public String getDisplayType() {
+ String dtype = getStringValue("displayType");
+ if ((dtype == null) || (dtype.equals(""))) {
+ return "yesno";
+ }
+ return dtype;
+ }
- public void setDefaultValue(int dvalue) {
- setIntValue("defaultValue", dvalue);
- }
+ public void setDefaultValue(int dvalue) {
+ setIntValue("defaultValue", dvalue);
+ }
- public int getDefaultValue() {
- return getIntValue("defaultValue", -1);
- }
+ public int getDefaultValue() {
+ return getIntValue("defaultValue", -1);
+ }
- public void setDisplayType(String type) {
- setStringValue("displayType", type);
- }
+ public void setDisplayType(String type) {
+ setStringValue("displayType", type);
+ }
+ public BaseProperty fromString(String value) {
+ BaseProperty property = newProperty();
+ Number nvalue = null;
+ if ((value != null) && (!value.equals("")))
+ nvalue = new Integer(value);
+ property.setValue(nvalue);
+ return property;
+ }
- public BaseProperty fromString(String value) {
- BaseProperty property = newProperty();
- Number nvalue = null;
- if ((value!=null)&&(!value.equals("")))
- nvalue = new Integer(value);
- property.setValue(nvalue);
- return property;
- }
+ public BaseProperty newProperty() {
+ BaseProperty property = new IntegerProperty();
+ property.setName(getName());
+ return property;
+ }
- public BaseProperty newProperty() {
- BaseProperty property = new IntegerProperty();
- property.setName(getName());
- return property;
- }
+ public void displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ IntegerProperty prop = (IntegerProperty) object.safeget(name);
+ if (prop == null)
+ return;
- public void displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- IntegerProperty prop = (IntegerProperty) object.safeget(name);
- if (prop==null)
- return;
+ Integer iValue = (Integer) prop.getValue();
+ if (iValue != null) {
+ int value = iValue.intValue();
+ buffer.append(getDisplayValue(context, value));
+ }
+ }
- Integer iValue = (Integer)prop.getValue();
- if (iValue!=null) {
- int value = iValue.intValue();
- buffer.append(getDisplayValue(context, value));
- }
- }
+ public void displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ if (getDisplayType().equals("checkbox")) {
+ displayCheckboxEdit(buffer, name, prefix, object, context);
+ } else {
+ displaySelectEdit(buffer, name, prefix, object, context);
+ }
+ }
+ public void displaySelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ select select = new select(prefix + name, 1);
+ String String0 = getDisplayValue(context, 0);
+ String String1 = getDisplayValue(context, 1);
- public void displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- if(getDisplayType().equals("checkbox")){
- displayCheckboxEdit(buffer, name, prefix, object, context);
- }
- else {
- displaySelectEdit(buffer, name, prefix, object, context);
- }
- }
- public void displaySelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- select select = new select(prefix + name, 1);
- String String0 = getDisplayValue(context, 0);
- String String1 = getDisplayValue(context, 1);
+ option[] options = { new option("---", ""), new option(String1, "1"), new option(String0, "0") };
+ options[0].addElement("---");
+ options[1].addElement(String1);
+ options[2].addElement(String0);
- option[] options = { new option("---", "" ), new option(String1, "1" ), new option(String0, "0")};
- options[0].addElement("---");
- options[1].addElement(String1);
- options[2].addElement(String0);
+ try {
+ IntegerProperty prop = (IntegerProperty) object.safeget(name);
+ if (prop != null) {
+ Integer ivalue = (Integer) prop.getValue();
+ if (ivalue != null) {
+ int value = ivalue.intValue();
+ if (value == 1)
+ options[1].setSelected(true);
+ else if (value == 0)
+ options[2].setSelected(true);
+ } else {
+ int value = getDefaultValue();
+ if (value == 1)
+ options[1].setSelected(true);
+ else if (value == 0)
+ options[2].setSelected(true);
+ }
+ }
+ } catch (Exception e) {
+ // This should not happen
+ e.printStackTrace();
+ }
+ select.addElement(options);
+ buffer.append(select.toString());
+ }
- try {
- IntegerProperty prop = (IntegerProperty) object.safeget(name);
- if (prop!=null) {
- Integer ivalue = (Integer)prop.getValue();
- if (ivalue!=null) {
- int value = ivalue.intValue();
- if (value==1)
- options[1].setSelected(true);
- else if (value==0)
- options[2].setSelected(true);
- } else {
- int value = getDefaultValue();
- if (value==1)
- options[1].setSelected(true);
- else if (value==0)
- options[2].setSelected(true);
- }
- }
- } catch (Exception e) {
- // This should not happen
- e.printStackTrace();
- }
- select.addElement(options);
- buffer.append(select.toString());
- }
+ public void displayCheckboxEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ org.apache.ecs.xhtml.input check = new input(input.checkbox, prefix + name, 1);
+ org.apache.ecs.xhtml.input checkNo = new input(input.hidden, prefix + name, 0);
- public void displayCheckboxEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- org.apache.ecs.xhtml.input check = new input(input.checkbox, prefix + name, 1);
- org.apache.ecs.xhtml.input checkNo = new input(input.hidden, prefix + name, 0);
+ try {
+ IntegerProperty prop = (IntegerProperty) object.safeget(name);
+ if (prop != null) {
+ Integer ivalue = (Integer) prop.getValue();
+ if (ivalue != null) {
+ int value = ivalue.intValue();
+ if (value == 1)
+ check.setChecked(true);
+ else if (value == 0)
+ check.setChecked(false);
+ } else {
+ int value = getDefaultValue();
+ if (value == 1)
+ check.setChecked(true);
+ else
+ check.setChecked(false);
+ }
+ }
+ } catch (Exception e) {
+ // This should not happen
+ e.printStackTrace();
+ }
+ buffer.append(check.toString());
+ buffer.append(checkNo.toString());
+ }
- try {
- IntegerProperty prop = (IntegerProperty) object.safeget(name);
- if (prop!=null) {
- Integer ivalue = (Integer)prop.getValue();
- if (ivalue!=null) {
- int value = ivalue.intValue();
- if (value==1)
- check.setChecked(true);
- else if (value==0)
- check.setChecked(false);
- }
- else {
- int value = getDefaultValue();
- if (value==1)
- check.setChecked(true);
- else
- check.setChecked(false);
- }
- }} catch (Exception e) {
- // This should not happen
- e.printStackTrace();
- }
- buffer.append(check.toString());
- buffer.append(checkNo.toString());
- }
+ private String getDisplayValue(XWikiContext context, int value) {
+ try {
+ XWikiMessageTool msg = (XWikiMessageTool) context.get("msg");
+ String strname = getDisplayType() + "_" + value;
+ String result = msg.get(strname);
+ if (result.equals(strname)) {
+ return "" + value;
+ }
+ return result;
+ } catch (Exception e) {
+ return "" + value;
+ }
+ }
-
- private String getDisplayValue(XWikiContext context, int value) {
- try {
- XWikiMessageTool msg = (XWikiMessageTool) context.get("msg");
- String strname = getDisplayType() + "_" + value;
- String result = msg.get(strname);
- if (result.equals(strname)){
- return "" + value;
- }
- else{
- return result;
- }
- } catch (Exception e) {
- return "" + value;
- }
- }
-
}
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java 2006-09-01 09:08:31 UTC (rev 1256)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/objects/classes/ListClass.java 2006-09-02 11:56:09 UTC (rev 1257)
@@ -25,9 +25,9 @@
package com.xpn.xwiki.objects.classes;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
-import java.util.Arrays;
import org.apache.commons.lang.StringUtils;
import org.apache.ecs.xhtml.input;
@@ -43,243 +43,250 @@
import com.xpn.xwiki.objects.StringListProperty;
import com.xpn.xwiki.objects.StringProperty;
import com.xpn.xwiki.objects.meta.PropertyMetaClass;
+import com.xpn.xwiki.web.XWikiMessageTool;
public abstract class ListClass extends PropertyClass {
- public ListClass(String name, String prettyname, PropertyMetaClass wclass) {
- super(name, prettyname, wclass);
- setRelationalStorage(false);
- setDisplayType("select");
- setMultiSelect(false);
- setSize(1);
- }
+ public ListClass(String name, String prettyname, PropertyMetaClass wclass) {
+ super(name, prettyname, wclass);
+ setRelationalStorage(false);
+ setDisplayType("select");
+ setMultiSelect(false);
+ setSize(1);
+ }
+ public ListClass(PropertyMetaClass wclass) {
+ this("list", "List", wclass);
+ }
- public ListClass(PropertyMetaClass wclass) {
- this("list", "List", wclass);
- }
+ public ListClass() {
+ this(null);
+ }
- public ListClass() {
- this(null);
- }
+ public String getDisplayType() {
+ return getStringValue("displayType");
+ }
- public String getDisplayType() {
- return getStringValue("displayType");
- }
+ public void setDisplayType(String type) {
+ setStringValue("displayType", type);
+ }
- public void setDisplayType(String type) {
- setStringValue("displayType", type);
- }
+ public int getSize() {
+ return getIntValue("size");
+ }
+ public void setSize(int size) {
+ setIntValue("size", size);
+ }
+ public boolean isMultiSelect() {
+ return (getIntValue("multiSelect") == 1);
+ }
- public int getSize() {
- return getIntValue("size");
- }
+ public void setMultiSelect(boolean multiSelect) {
+ setIntValue("multiSelect", multiSelect ? 1 : 0);
+ }
- public void setSize(int size) {
- setIntValue("size", size);
- }
+ public boolean isRelationalStorage() {
+ return (getIntValue("relationalStorage") == 1);
+ }
- public boolean isMultiSelect() {
- return (getIntValue("multiSelect")==1);
- }
+ public void setRelationalStorage(boolean storage) {
+ setIntValue("relationalStorage", storage ? 1 : 0);
+ }
- public void setMultiSelect(boolean multiSelect) {
- setIntValue("multiSelect", multiSelect ? 1 : 0);
- }
+ public static List getListFromString(String value) {
+ List list = new ArrayList();
+ if (value == null)
+ return list;
- public boolean isRelationalStorage() {
- return (getIntValue("relationalStorage")==1);
- }
+ String val = StringUtils.replace(value, "\\|", "%PIPE%");
+ String[] result = StringUtils.split(val, "|");
+ for (int i = 0; i < result.length; i++)
+ list.add(StringUtils.replace(result[i], "%PIPE%", "|"));
+ return list;
+ }
- public void setRelationalStorage(boolean storage) {
- setIntValue("relationalStorage", storage ? 1 : 0);
- }
+ public BaseProperty newProperty() {
+ BaseProperty lprop;
- public static List getListFromString(String value) {
- List list = new ArrayList();
- if (value==null)
- return list;
+ if (isRelationalStorage() && isMultiSelect())
+ lprop = new DBStringListProperty();
+ else if (isMultiSelect())
+ lprop = new StringListProperty();
+ else
+ lprop = new StringProperty();
- String val = StringUtils.replace(value, "\\|", "%PIPE%");
- String[] result = StringUtils.split(value,"|");
- for (int i=0;i<result.length;i++)
- list.add(StringUtils.replace(result[i],"%PIPE%", "|"));
- return list;
- }
+ if (isMultiSelect() && getDisplayType().equals("input")) {
+ ((ListProperty) lprop).setFormStringSeparator("|");
+ }
- public BaseProperty newProperty() {
- BaseProperty lprop;
+ return lprop;
+ }
- if (isRelationalStorage()&&isMultiSelect())
- lprop = new DBStringListProperty();
- else if (isMultiSelect())
- lprop = new StringListProperty();
- else
- lprop = new StringProperty();
+ public BaseProperty fromString(String value) {
+ BaseProperty prop = newProperty();
+ if (isMultiSelect()) {
+ if (!getDisplayType().equals("input")) {
+ ((ListProperty) prop).setList(getListFromString(value));
+ } else {
+ ((ListProperty) prop).setList(Arrays.asList(StringUtils.split(value, " ,|")));
+ }
+ } else
+ prop.setValue(value);
+ return prop;
+ }
- if (isMultiSelect() && getDisplayType().equals("input")) {
- ((ListProperty)lprop).setFormStringSeparator("|");
- }
+ public BaseProperty fromStringArray(String[] strings) {
+ if ((!isMultiSelect()) || (strings.length == 1))
+ return fromString(strings[0]);
+ List list = new ArrayList();
+ for (int i = 0; i < strings.length; i++)
+ list.add(strings[i]);
+ BaseProperty prop = newProperty();
+ ((ListProperty) prop).setList(list);
+ return prop;
+ }
+ public BaseProperty newPropertyfromXML(Element ppcel) {
+ if ((!isRelationalStorage()) && (!isMultiSelect()))
+ return super.newPropertyfromXML(ppcel);
- return lprop;
- }
+ List elist = ppcel.elements("value");
+ BaseProperty lprop = newProperty();
- public BaseProperty fromString(String value) {
- BaseProperty prop = newProperty();
- if (isMultiSelect()) {
- if (!getDisplayType().equals("input")) {
- ((ListProperty)prop).setList(getListFromString(value));
- } else {
- ((ListProperty)prop).setList(Arrays.asList(StringUtils.split(value," ,|")));
- }
- } else
- prop.setValue(value);
- return prop;
- }
+ if (lprop instanceof ListProperty) {
+ List llist = ((ListProperty) lprop).getList();
+ for (int i = 0; i < elist.size(); i++) {
+ Element el = (Element) elist.get(i);
+ llist.add(el.getText());
+ }
+ } else {
+ for (int i = 0; i < elist.size(); i++) {
+ Element el = (Element) elist.get(i);
+ ((StringProperty) lprop).setValue(el.getText());
+ }
+ }
+ return lprop;
+ }
- public BaseProperty fromStringArray(String[] strings) {
- if ((!isMultiSelect())||(strings.length==1))
- return fromString(strings[0]);
- else {
- List list = new ArrayList();
- for (int i=0;i<strings.length;i++)
- list.add(strings[i]);
- BaseProperty prop = newProperty();
- ((ListProperty)prop).setList(list);
- return prop;
- }
- }
+ public void displayHidden(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ input input = new input();
+ BaseProperty prop = (BaseProperty) object.safeget(name);
+ if (prop != null)
+ input.setValue(prop.toFormString());
+ input.setType("hidden");
+ input.setName(prefix + name);
+ input.setID(prefix + name);
+ buffer.append(input.toString());
+ }
- public BaseProperty newPropertyfromXML(Element ppcel) {
- if ((!isRelationalStorage())&&(!isMultiSelect()))
- return super.newPropertyfromXML(ppcel);
+ public void displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ List selectlist;
+ BaseProperty prop = (BaseProperty) object.safeget(name);
+ if ((prop instanceof ListProperty) || (prop instanceof DBStringListProperty)) {
+ selectlist = (List) prop.getValue();
+ buffer.append(StringUtils.join(selectlist.toArray(), " "));
+ } else {
+ buffer.append(prop.getValue().toString());
+ }
+ }
- List elist = ppcel.elements("value");
- BaseProperty lprop = (BaseProperty)newProperty();
+ public void displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ if (getDisplayType().equals("input")) {
+ input input = new input();
+ BaseProperty prop = (BaseProperty) object.safeget(name);
+ if (prop != null)
+ input.setValue(prop.toFormString());
+ input.setType("text");
+ input.setSize(60);
+ input.setName(prefix + name);
+ input.setID(prefix + name);
+ buffer.append(input.toString());
+ } else if (getDisplayType().equals("radio")) {
+ displayRadioEdit(buffer, name, prefix, object, context);
+ } else {
+ displaySelectEdit(buffer, name, prefix, object, context);
+ }
+ }
+ protected void displayRadioEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ List list = getList(context);
+ List selectlist;
- if (lprop instanceof ListProperty) {
- List llist = ((ListProperty)lprop).getList();
- for (int i=0;i<elist.size();i++) {
- Element el = (Element) elist.get(i);
- llist.add(el.getText());
- }
- }
- else {
- for (int i=0;i<elist.size();i++) {
- Element el = (Element) elist.get(i);
- ((StringProperty)lprop).setValue(el.getText());
- }
- }
- return lprop;
- }
+ BaseProperty prop = (BaseProperty) object.safeget(name);
+ if (prop == null) {
+ selectlist = new ArrayList();
+ } else if ((prop instanceof ListProperty) || (prop instanceof DBStringListProperty)) {
+ selectlist = (List) prop.getValue();
+ } else {
+ selectlist = new ArrayList();
+ selectlist.add(prop.getValue());
+ }
+ // Add options from Set
+ for (Iterator it = list.iterator(); it.hasNext();) {
+ String value = it.next().toString();
+ input radio = new input(input.radio, prefix + name, value);
- public void displayHidden(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- input input = new input();
- BaseProperty prop = (BaseProperty) object.safeget(name);
- if (prop!=null) input.setValue(prop.toFormString());
+ if (selectlist.contains(value))
+ radio.setChecked(true);
+ radio.addElement(value);
+ buffer.append(radio.toString());
+ if (it.hasNext()) {
+ buffer.append("<br/>");
+ }
+ }
+ }
- input.setType("hidden");
- input.setName(prefix + name);
- input.setID(prefix + name);
- buffer.append(input.toString());
- }
+ protected void displaySelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
+ select select = new select(prefix + name, 1);
+ select.setMultiple(isMultiSelect());
+ select.setSize(getSize());
+ select.setName(prefix + name);
+ select.setID(prefix + name);
- public void displayView(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- List selectlist;
- BaseProperty prop = (BaseProperty)object.safeget(name);
- if ((prop instanceof ListProperty)||(prop instanceof DBStringListProperty)) {
- selectlist = (List) prop.getValue();
- buffer.append(StringUtils.join(selectlist.toArray(), " "));
- } else {
- buffer.append(prop.getValue().toString());
- }
- }
+ List list = getList(context);
+ List selectlist;
- public void displayEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context) {
- if (getDisplayType().equals("input")) {
- input input = new input();
- BaseProperty prop = (BaseProperty) object.safeget(name);
- if (prop!=null) input.setValue(prop.toFormString());
- input.setType("text");
- input.setSize(60);
- input.setName(prefix + name);
- input.setID(prefix + name);
- buffer.append(input.toString());
- } else if (getDisplayType().equals("radio")) {
- displayRadioEdit(buffer, name, prefix, object, context);
- }
- else {
- displaySelectEdit(buffer, name, prefix, object, context);
- }
- }
-
- protected void displayRadioEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context){
- List list = getList(context);
- List selectlist;
+ BaseProperty prop = (BaseProperty) object.safeget(name);
+ if (prop == null) {
+ selectlist = new ArrayList();
+ } else if ((prop instanceof ListProperty) || (prop instanceof DBStringListProperty)) {
+ selectlist = (List) prop.getValue();
+ } else {
+ selectlist = new ArrayList();
+ selectlist.add(prop.getValue());
+ }
- BaseProperty prop = (BaseProperty)object.safeget(name);
- if (prop==null) {
- selectlist = new ArrayList();
- } else if ((prop instanceof ListProperty)||(prop instanceof DBStringListProperty)) {
- selectlist = (List) prop.getValue();
- } else {
- selectlist = new ArrayList();
- selectlist.add(prop.getValue());
- }
+ // Add options from Set
+ for (Iterator it = list.iterator(); it.hasNext();) {
+ String value = it.next().toString();
+ String display = getDisplayValue(context, value);
+ option option = new option(value, display);
+ option.addElement(display);
+ if (selectlist.contains(value))
+ option.setSelected(true);
+ select.addElement(option);
+ }
- // Add options from Set
- for (Iterator it=list.iterator();it.hasNext();) {
- String value = it.next().toString();
- input radio = new input(input.radio, prefix + name, value);
+ buffer.append(select.toString());
+ }
- if (selectlist.contains(value))
- radio.setChecked(true);
- radio.addElement(value);
- buffer.append(radio.toString());
- if(it.hasNext()){
- buffer.append("<br/>");
- }
- }
- }
+ public abstract List getList(XWikiContext context);
- protected void displaySelectEdit(StringBuffer buffer, String name, String prefix, BaseCollection object, XWikiContext context){
- select select = new select(prefix + name, 1);
- select.setMultiple(isMultiSelect());
- select.setSize(getSize());
- select.setName(prefix + name);
- select.setID(prefix + name);
-
- List list = getList(context);
- List selectlist;
-
- BaseProperty prop = (BaseProperty)object.safeget(name);
- if (prop==null) {
- selectlist = new ArrayList();
- } else if ((prop instanceof ListProperty)||(prop instanceof DBStringListProperty)) {
- selectlist = (List) prop.getValue();
- } else {
- selectlist = new ArrayList();
- selectlist.add(prop.getValue());
- }
-
- // Add options from Set
- for (Iterator it=list.iterator();it.hasNext();) {
- String value = it.next().toString();
- option option = new option(value, value);
- option.addElement(value);
- if (selectlist.contains(value))
- option.setSelected(true);
- select.addElement(option);
- }
-
- buffer.append(select.toString());
- }
-
- public abstract List getList(XWikiContext context);
+ private String getDisplayValue(XWikiContext context, String value) {
+ try {
+ XWikiMessageTool msg = (XWikiMessageTool) context.get("msg");
+ String strname = "option_" + value;
+ String result = msg.get(strname);
+ if (result.equals(strname)) {
+ return value;
+ }
+ return result;
+ } catch (Exception e) {
+ return value;
+ }
+ }
}
More information about the Xwiki-notifications
mailing list