diff --git a/hsarweb/src/de/hsadmin/web/AbstractModule.java b/hsarweb/src/de/hsadmin/web/AbstractModule.java index 8726124..6e9d4f3 100644 --- a/hsarweb/src/de/hsadmin/web/AbstractModule.java +++ b/hsarweb/src/de/hsadmin/web/AbstractModule.java @@ -82,7 +82,7 @@ public abstract class AbstractModule implements Module, Serializable { public void buttonClick(ClickEvent event) { application.getMainWindow().removeWindow(childWindow); try { - Map map = new HashMap(); + Map map = new HashMap(); genericForm.transferToHash(map, form); ((InsertAble) thisModule).insertRow(map); componentFactory.loadData(); diff --git a/hsarweb/src/de/hsadmin/web/AbstractProperty.java b/hsarweb/src/de/hsadmin/web/AbstractProperty.java new file mode 100644 index 0000000..1527a0f --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/AbstractProperty.java @@ -0,0 +1,5 @@ +package de.hsadmin.web; + +public class AbstractProperty { + +} diff --git a/hsarweb/src/de/hsadmin/web/DatabaseModule.java b/hsarweb/src/de/hsadmin/web/DatabaseModule.java index 8a70b38..6b722ef 100644 --- a/hsarweb/src/de/hsadmin/web/DatabaseModule.java +++ b/hsarweb/src/de/hsadmin/web/DatabaseModule.java @@ -142,7 +142,7 @@ public abstract class DatabaseModule extends GenericModule { public List getDatabaseUsers() { ArrayList list = new ArrayList(); try { - Object callSearch = getApplication().getRemote().callSearch(getUserModuleIdent(), new HashMap()); + Object callSearch = getApplication().getRemote().callSearch(getUserModuleIdent(), new HashMap()); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { if (row instanceof Map) { diff --git a/hsarweb/src/de/hsadmin/web/DeleteAble.java b/hsarweb/src/de/hsadmin/web/DeleteAble.java index 650e102..938c12f 100644 --- a/hsarweb/src/de/hsadmin/web/DeleteAble.java +++ b/hsarweb/src/de/hsadmin/web/DeleteAble.java @@ -4,6 +4,6 @@ import java.util.Map; public interface DeleteAble { - public void deleteRow(Map paramHash) throws HsarwebException; + public void deleteRow(Map paramHash) throws HsarwebException; } diff --git a/hsarweb/src/de/hsadmin/web/GenericModule.java b/hsarweb/src/de/hsadmin/web/GenericModule.java index 4e1bcb1..f754624 100644 --- a/hsarweb/src/de/hsadmin/web/GenericModule.java +++ b/hsarweb/src/de/hsadmin/web/GenericModule.java @@ -12,16 +12,16 @@ public abstract class GenericModule extends AbstractModule implements InsertAble private static final long serialVersionUID = 1L; - public void insertRow(Map paramHash) throws HsarwebException { + public void insertRow(Map paramHash) throws HsarwebException { getApplication().getRemote().callAdd(getModuleConfig().getRemoteName(), paramHash); } - public void deleteRow(Map paramHash) throws HsarwebException { + public void deleteRow(Map paramHash) throws HsarwebException { getApplication().getRemote().callDelete(getModuleConfig().getRemoteName(), paramHash); } - public void updateRow(Map paramHash) throws HsarwebException { - Map whereHash = new HashMap(); + public void updateRow(Map paramHash) throws HsarwebException { + Map whereHash = new HashMap(); String idKey = findIdKey(); whereHash.put(idKey, paramHash.get(idKey)); getApplication().getRemote().callUpdate(getModuleConfig().getRemoteName(), paramHash, whereHash); @@ -43,7 +43,7 @@ public abstract class GenericModule extends AbstractModule implements InsertAble public List getUsers() { ArrayList list = new ArrayList(); try { - Object callSearch = getApplication().getRemote().callSearch("user", new HashMap()); + Object callSearch = getApplication().getRemote().callSearch("user", new HashMap()); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { if (row instanceof Map) { @@ -64,7 +64,7 @@ public abstract class GenericModule extends AbstractModule implements InsertAble public List getEMailAliases() { ArrayList list = new ArrayList(); try { - Object callSearch = getApplication().getRemote().callSearch("emailalias", new HashMap()); + Object callSearch = getApplication().getRemote().callSearch("emailalias", new HashMap()); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { if (row instanceof Map) { @@ -85,7 +85,7 @@ public abstract class GenericModule extends AbstractModule implements InsertAble public List getDomains() { ArrayList list = new ArrayList(); try { - Object callSearch = getApplication().getRemote().callSearch("domain", new HashMap()); + Object callSearch = getApplication().getRemote().callSearch("domain", new HashMap()); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { if (row instanceof Map) { @@ -106,7 +106,7 @@ public abstract class GenericModule extends AbstractModule implements InsertAble public List getPackets() { ArrayList list = new ArrayList(); try { - Object callSearch = getApplication().getRemote().callSearch("pac", new HashMap()); + Object callSearch = getApplication().getRemote().callSearch("pac", new HashMap()); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { if (row instanceof Map) { diff --git a/hsarweb/src/de/hsadmin/web/InsertAble.java b/hsarweb/src/de/hsadmin/web/InsertAble.java index 3c49771..c7af5a0 100644 --- a/hsarweb/src/de/hsadmin/web/InsertAble.java +++ b/hsarweb/src/de/hsadmin/web/InsertAble.java @@ -4,6 +4,6 @@ import java.util.Map; public interface InsertAble { - public void insertRow(Map paramHash) throws HsarwebException; + public void insertRow(Map paramHash) throws HsarwebException; } diff --git a/hsarweb/src/de/hsadmin/web/ListOfStringsProperty.java b/hsarweb/src/de/hsadmin/web/ListOfStringsProperty.java new file mode 100644 index 0000000..92f111f --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/ListOfStringsProperty.java @@ -0,0 +1,15 @@ +package de.hsadmin.web; + +import java.util.List; + +public class ListOfStringsProperty extends AbstractProperty { + public List properties; + + public ListOfStringsProperty(){ +// ?? this.properties = new List(); + } + + public boolean Add(String string){ + return properties.add(string); + } +} diff --git a/hsarweb/src/de/hsadmin/web/Remote.java b/hsarweb/src/de/hsadmin/web/Remote.java index b9771a6..ddb03f8 100644 --- a/hsarweb/src/de/hsadmin/web/Remote.java +++ b/hsarweb/src/de/hsadmin/web/Remote.java @@ -18,23 +18,23 @@ public class Remote { this.app = application; } - public Object callSearch(String module, Map where) throws HsarwebException { + public Object callSearch(String module, Map where) throws HsarwebException { return xmlrpcCall(module, "search", where); } - public void callAdd(String module, Map set) throws HsarwebException { + public void callAdd(String module, Map set) throws HsarwebException { xmlrpcCall(module, "add", set); } - public void callUpdate(String module, Map set, Map where) throws HsarwebException { + public void callUpdate(String module, Map set, Map where) throws HsarwebException { xmlrpcCall(module, "update", set, where); } - public void callDelete(String module, Map where) throws HsarwebException { + public void callDelete(String module, Map where) throws HsarwebException { xmlrpcCall(module, "delete", where); } - private Object xmlrpcCall(String module, String operation, Map param1) throws HsarwebException { + private Object xmlrpcCall(String module, String operation, Map param1) throws HsarwebException { Object[] params = new Object[3]; params[0] = app.getRunAs(); params[1] = app.getProxyTicket(); @@ -42,7 +42,7 @@ public class Remote { return xmlrpcCall(module + "." + operation, params); } - private Object xmlrpcCall(String module, String operation, Map param1, Map param2) throws HsarwebException { + private Object xmlrpcCall(String module, String operation, Map param1, Map param2) throws HsarwebException { Object[] params = new Object[4]; params[0] = app.getRunAs(); params[1] = app.getProxyTicket(); @@ -77,5 +77,4 @@ public class Remote { return client; } - } diff --git a/hsarweb/src/de/hsadmin/web/StringProperty.java b/hsarweb/src/de/hsadmin/web/StringProperty.java new file mode 100644 index 0000000..4c3e9e2 --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/StringProperty.java @@ -0,0 +1,10 @@ +package de.hsadmin.web; + +public class StringProperty extends AbstractProperty { + public String property ; + + public StringProperty(String property) { + this.property = property; + } + +} diff --git a/hsarweb/src/de/hsadmin/web/UpdateAble.java b/hsarweb/src/de/hsadmin/web/UpdateAble.java index e9aaaae..1753c09 100644 --- a/hsarweb/src/de/hsadmin/web/UpdateAble.java +++ b/hsarweb/src/de/hsadmin/web/UpdateAble.java @@ -4,6 +4,6 @@ import java.util.Map; public interface UpdateAble { - public void updateRow(Map paramHash) throws HsarwebException; + public void updateRow(Map paramHash) throws HsarwebException; } diff --git a/hsarweb/src/de/hsadmin/web/config/PropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/config/PropertyFieldFactory.java index 90fc176..95d7cd0 100644 --- a/hsarweb/src/de/hsadmin/web/config/PropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/config/PropertyFieldFactory.java @@ -1,12 +1,13 @@ package de.hsadmin.web.config; +import de.hsadmin.web.AbstractProperty; import de.hsadmin.web.HsarwebException; public interface PropertyFieldFactory { public Object createFieldComponent(PropertyConfig prop, Object value); - public String getValue(PropertyConfig prop, Object component) throws HsarwebException; + public AbstractProperty getValue(PropertyConfig prop, Object component) throws HsarwebException; public void setReadOnly(boolean readOnly); diff --git a/hsarweb/src/de/hsadmin/web/vaadin/DatePropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/DatePropertyFieldFactory.java index 626f1d8..c973d70 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/DatePropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/DatePropertyFieldFactory.java @@ -10,6 +10,8 @@ import com.vaadin.terminal.Sizeable; import com.vaadin.ui.DateField; import com.vaadin.ui.PopupDateField; +import de.hsadmin.web.AbstractProperty; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.config.PropertyConfig; import de.hsadmin.web.config.PropertyFieldFactory; @@ -41,9 +43,9 @@ public class DatePropertyFieldFactory implements PropertyFieldFactory { } @Override - public String getValue(PropertyConfig prop, Object component) { + public AbstractProperty getValue(PropertyConfig prop, Object component) { if (component instanceof DateField) { - return serverDf.format((Date) ((DateField) component).getValue()); + return (new StringProperty(serverDf.format((Date) ((DateField) component).getValue()))); // TODO: besser DateProperty ? } return null; } diff --git a/hsarweb/src/de/hsadmin/web/vaadin/DefaultPropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/DefaultPropertyFieldFactory.java index 02d1c45..1089fe3 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/DefaultPropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/DefaultPropertyFieldFactory.java @@ -3,6 +3,8 @@ package de.hsadmin.web.vaadin; import com.vaadin.terminal.Sizeable; import com.vaadin.ui.TextField; +import de.hsadmin.web.AbstractProperty; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.config.PropertyConfig; import de.hsadmin.web.config.PropertyFieldFactory; @@ -22,9 +24,9 @@ public class DefaultPropertyFieldFactory implements PropertyFieldFactory { } @Override - public String getValue(PropertyConfig prop, Object component) { + public AbstractProperty getValue(PropertyConfig prop, Object component) { if (component instanceof TextField) { - return (String) ((TextField) component).getValue(); + return new StringProperty((String) ((TextField) component).getValue()); } return null; } diff --git a/hsarweb/src/de/hsadmin/web/vaadin/DomainOptionsPropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/DomainOptionsPropertyFieldFactory.java new file mode 100644 index 0000000..cd0d3d5 --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/vaadin/DomainOptionsPropertyFieldFactory.java @@ -0,0 +1,117 @@ +/** + * + */ +package de.hsadmin.web.vaadin; + +import java.util.HashMap; +import java.util.Map; + +import com.vaadin.data.Property; +import com.vaadin.data.Property.ValueChangeEvent; +import com.vaadin.terminal.Sizeable; +import com.vaadin.ui.AbstractField; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Select; +import com.vaadin.ui.VerticalLayout; + +import de.hsadmin.web.AbstractProperty; +import de.hsadmin.web.HsarwebException; +import de.hsadmin.web.ListOfStringsProperty; +import de.hsadmin.web.config.PropertyConfig; +import de.hsadmin.web.config.PropertyFieldFactory; + +/** + * @author pblissenbach + * + */ +public class DomainOptionsPropertyFieldFactory implements PropertyFieldFactory { + private Map optionTypes ; // TODO: auf Vorrat hier + private ListOfStringsProperty setOptions ; + private boolean readOnly = false; + private boolean writeOnce = false; + private VerticalLayout layout; + + public DomainOptionsPropertyFieldFactory() { + // TODO: besorge Options und ihre Typen aus der DB + optionTypes = new HashMap() ; + optionTypes.put("backupmxforexternalmx", null); + optionTypes.put("greylisting", null); + optionTypes.put("htdocsfallback", null); + optionTypes.put("includes", null); + optionTypes.put("indexes", null); + optionTypes.put("multiviews", null); + optionTypes.put("nonexistiondomainoptionfortesting", null); // TESTCASE + optionTypes.put("php", null); + // TODO: besorge Options .... Ende +// setOptions = null ; + setOptions = new ListOfStringsProperty() ; + // TODO Auto-generated constructor stub + } + + @Override + public Object createFieldComponent(PropertyConfig prop, Object value) { + // TODO Auto-generated method stub + return null; + } + + @Override + public AbstractProperty getValue(PropertyConfig prop, Object component) + throws HsarwebException { + return setOptions; + } + + @Override + public void setReadOnly(boolean readOnly) { + this.readOnly = readOnly; + } + + @Override + public boolean isReadOnly() { + return readOnly; + } + + @Override + public void setWriteOnce(boolean writeOnce) { + this.writeOnce = writeOnce; + } + + @Override + public boolean isWriteOnce() { + return writeOnce; + } + + class SingleDomainOption { + private HorizontalLayout targetLine; + private HorizontalLayout leftPart; + private HorizontalLayout rightPart; + private int index; + private String optionName; + private String testunusedoptionName; + private DomainOptionsPropertyFieldFactory owner; + + protected SingleDomainOption(DomainOptionsPropertyFieldFactory owner, int key, String optionName, Object optionValue) { + this.owner = owner; + this.index = key; + this.optionName = optionName; + targetLine = new HorizontalLayout(); + targetLine.setWidth(480.0f, Sizeable.UNITS_PIXELS); + leftPart = new HorizontalLayout(); + leftPart.setWidth(100.0f, Sizeable.UNITS_PIXELS); + leftPart.setCaption(optionName); + rightPart = new HorizontalLayout(); + rightPart.setWidth(380.0f, Sizeable.UNITS_PIXELS); + // ToDO: Fallunterscheidungen nach Optionsart. Z.Z. nur Boolean. + } + + public String getValue() { + String value = null; + if (rightPart.getComponentCount() > 0) { + Object object = ((AbstractField) rightPart.getComponent(0)).getValue(); + if (object != null && object instanceof String) { + value = ((String) object).trim(); + } + } + return value; + } + } +} \ No newline at end of file diff --git a/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java index 94c3c91..b6a4d98 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java @@ -15,9 +15,11 @@ import com.vaadin.ui.Select; import com.vaadin.ui.TextField; import com.vaadin.ui.VerticalLayout; +import de.hsadmin.web.AbstractProperty; import de.hsadmin.web.GenericModule; import de.hsadmin.web.HsarwebException; import de.hsadmin.web.Module; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.config.PropertyConfig; import de.hsadmin.web.config.PropertyFieldFactory; @@ -92,7 +94,7 @@ public class EMailTargetPropertyFieldFactory implements PropertyFieldFactory { } @Override - public String getValue(PropertyConfig prop, Object component) throws HsarwebException { + public AbstractProperty getValue(PropertyConfig prop, Object component) throws HsarwebException { StringBuffer target = new StringBuffer(); boolean insertKomma = false; for (Integer key : targets.keySet()) { @@ -106,7 +108,7 @@ public class EMailTargetPropertyFieldFactory implements PropertyFieldFactory { insertKomma = true; } } - return target.toString(); + return new StringProperty(target.toString()); } @Override diff --git a/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java b/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java index 2124996..78b9958 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java @@ -10,9 +10,11 @@ import com.vaadin.ui.Component; import com.vaadin.ui.Form; import com.vaadin.ui.Layout; +import de.hsadmin.web.AbstractProperty; import de.hsadmin.web.HsarwebException; import de.hsadmin.web.MainApplication; import de.hsadmin.web.Module; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.config.ModuleConfig; import de.hsadmin.web.config.PropertyConfig; import de.hsadmin.web.config.PropertyFieldFactory; @@ -46,8 +48,8 @@ public class GenericForm { try { MainApplication application = module.getApplication(); ModuleConfig config = module.getModuleConfig(); - Map where = new HashMap(); - where.put(findIdKey(), entityId.toString()); + Map where = new HashMap(); + where.put(findIdKey(), new StringProperty(entityId.toString())); Object searchResult = application.getRemote().callSearch(config.getRemoteName(), where); if (searchResult instanceof Object[]) { Map row = (Map) (((Object[]) searchResult)[0]); @@ -121,11 +123,11 @@ public class GenericForm { return idKey; } - public void transferToHash(Map map, Form form) throws HsarwebException { + public void transferToHash(Map map, Form form) throws HsarwebException { Iterator iterator = form.getLayout().getComponentIterator(); Object formData = form.getData(); if (formData != null && formData instanceof Long) { - map.put(findIdKey(), ((Long) formData).toString()); + map.put(findIdKey(), new StringProperty(((Long) formData).toString())); } while (iterator.hasNext()) { Component component = (Component) iterator.next(); diff --git a/hsarweb/src/de/hsadmin/web/vaadin/PasswordPropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/PasswordPropertyFieldFactory.java index f9c32a7..6367152 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/PasswordPropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/PasswordPropertyFieldFactory.java @@ -4,8 +4,10 @@ import com.vaadin.terminal.Sizeable; import com.vaadin.ui.PasswordField; import com.vaadin.ui.VerticalLayout; +import de.hsadmin.web.AbstractProperty; import de.hsadmin.web.HsarwebException; import de.hsadmin.web.Module; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.config.ModuleConfig; import de.hsadmin.web.config.PropertyConfig; import de.hsadmin.web.config.PropertyFieldFactory; @@ -43,13 +45,13 @@ public class PasswordPropertyFieldFactory implements PropertyFieldFactory { } @Override - public String getValue(PropertyConfig prop, Object component) throws HsarwebException { + public AbstractProperty getValue(PropertyConfig prop, Object component) throws HsarwebException { if (component instanceof VerticalLayout) { VerticalLayout layout = (VerticalLayout) component; PasswordField pw1 = (PasswordField) layout.getComponent(0); PasswordField pw2 = (PasswordField) layout.getComponent(1); if (pw1.getValue().equals(pw2.getValue())) { - return (String) pw1.getValue(); + return new StringProperty((String) pw1.getValue()); } else { throw new HsarwebException("password mismatch"); } diff --git a/hsarweb/src/de/hsadmin/web/vaadin/SelectPropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/SelectPropertyFieldFactory.java index 446b61f..6850a1d 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/SelectPropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/SelectPropertyFieldFactory.java @@ -5,7 +5,9 @@ import java.util.Map; import com.vaadin.terminal.Sizeable; import com.vaadin.ui.Select; +import de.hsadmin.web.AbstractProperty; import de.hsadmin.web.HsarwebException; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.config.PropertyConfig; import de.hsadmin.web.config.PropertyFieldFactory; @@ -33,10 +35,10 @@ public class SelectPropertyFieldFactory implements PropertyFieldFactory { } @Override - public String getValue(PropertyConfig prop, Object component) + public AbstractProperty getValue(PropertyConfig prop, Object component) throws HsarwebException { if (component instanceof Select) { - return (String) ((Select) component).getValue(); + return new StringProperty((String) ((Select) component).getValue()); } return null; } diff --git a/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java index 83951af..0eaf71d 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java @@ -21,10 +21,12 @@ import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; import com.vaadin.ui.themes.BaseTheme; +import de.hsadmin.web.AbstractProperty; import de.hsadmin.web.DeleteAble; import de.hsadmin.web.HsarwebException; import de.hsadmin.web.MainApplication; import de.hsadmin.web.Module; +import de.hsadmin.web.StringProperty; import de.hsadmin.web.UpdateAble; import de.hsadmin.web.config.ComponentFactory; import de.hsadmin.web.config.LocaleConfig; @@ -106,7 +108,7 @@ public class TableComponentFactory implements ComponentFactory, Serializable { table.removeAllItems(); try { ModuleConfig moduleConfig = module.getModuleConfig(); - Object callSearch = module.getApplication().getRemote().callSearch(moduleConfig.getRemoteName(), new HashMap()); + Object callSearch = module.getApplication().getRemote().callSearch(moduleConfig.getRemoteName(), new HashMap()); List propertyList = moduleConfig.getPropertyList(); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { @@ -228,7 +230,7 @@ public class TableComponentFactory implements ComponentFactory, Serializable { public void buttonClick(ClickEvent event) { application.getMainWindow().removeWindow(childWindow); try { - Map map = new HashMap(); + Map map = new HashMap(); genericForm.transferToHash(map, form); ((UpdateAble) module).updateRow(map); loadData(); @@ -287,8 +289,8 @@ public class TableComponentFactory implements ComponentFactory, Serializable { public void buttonClick(ClickEvent event) { application.getMainWindow().removeWindow(childWindow); try { - Map map = new HashMap(); - map.put(findIdKey(), ((Long) button.getData()).toString()); + Map map = new HashMap(); + map.put(findIdKey(), new StringProperty(((Long) button.getData()).toString())); ((DeleteAble) module).deleteRow(map); loadData(); } catch (HsarwebException e) {