aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/xmpp/forms/Data.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/xmpp/forms/Data.java')
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/forms/Data.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/xmpp/forms/Data.java b/src/main/java/de/pixart/messenger/xmpp/forms/Data.java
index c2653a5e9..ed426f397 100644
--- a/src/main/java/de/pixart/messenger/xmpp/forms/Data.java
+++ b/src/main/java/de/pixart/messenger/xmpp/forms/Data.java
@@ -39,13 +39,14 @@ public class Data extends Element {
return null;
}
- public void put(String name, String value) {
+ public Field put(String name, String value) {
Field field = getFieldByName(name);
if (field == null) {
field = new Field(name);
this.addChild(field);
}
field.setValue(value);
+ return field;
}
public void put(String name, Collection<String> values) {
@@ -91,7 +92,8 @@ public class Data extends Element {
}
public void setFormType(String formType) {
- this.put(FORM_TYPE, formType);
+ Field field = this.put(FORM_TYPE, formType);
+ field.setAttribute("type", "hidden");
}
public String getFormType() {
@@ -107,4 +109,14 @@ public class Data extends Element {
public String getTitle() {
return findChildContent("title");
}
+
+ public static Data create(String type, Bundle bundle) {
+ Data data = new Data();
+ data.setFormType(type);
+ data.setAttribute("type", "submit");
+ for (String key : bundle.keySet()) {
+ data.put(key, bundle.getString(key));
+ }
+ return data;
+ }
}