HSAdmin Backend Domains, E-Mail, Datenbanken
Purodha Blissenbach
2012-11-27 da4bee436177b981a03705c166555fe0f78ddc59
Abstractproperty introduced for domainproperties 
16 files modified
104 ■■■■■ changed files
hsarweb/src/de/hsadmin/web/AbstractModule.java 2 ●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/DatabaseModule.java 2 ●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/DeleteAble.java 2 ●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/GenericModule.java 16 ●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/HomeModule.java 12 ●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/InsertAble.java 2 ●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/Remote.java 13 ●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/UpdateAble.java 2 ●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/config/PropertyFieldFactory.java 3 ●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/DatePropertyFieldFactory.java 6 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/DefaultPropertyFieldFactory.java 6 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java 6 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java 10 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/PasswordPropertyFieldFactory.java 6 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/SelectPropertyFieldFactory.java 6 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java 10 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/AbstractModule.java
@@ -70,7 +70,7 @@
                            public void buttonClick(ClickEvent event) {
                                application.getMainWindow().removeWindow(childWindow);
                                try {
                                    Map<String, String> map = new HashMap<String, String>();
                                    Map<String, AbstractProperty> map = new HashMap<String, AbstractProperty>();
                                    genericForm.transferToHash(map, form);
                                    ((InsertAble) thisModule).insertRow(map);
                                    componentFactory.loadData();
hsarweb/src/de/hsadmin/web/DatabaseModule.java
@@ -142,7 +142,7 @@
    public List<String> getDatabaseUsers() {
        ArrayList<String> list = new ArrayList<String>();
        try {
            Object callSearch = getApplication().getRemote().callSearch(getUserModuleIdent(), new HashMap<String, String>());
            Object callSearch = getApplication().getRemote().callSearch(getUserModuleIdent(), new HashMap<String, AbstractProperty>());
            if (callSearch instanceof Object[]) {
                for (Object row : ((Object[])callSearch)) {
                    if (row instanceof Map<?, ?>) {
hsarweb/src/de/hsadmin/web/DeleteAble.java
@@ -4,6 +4,6 @@
public interface DeleteAble {
    public void deleteRow(Map<String, String> paramHash) throws HsarwebException;
    public void deleteRow(Map<String, AbstractProperty> paramHash) throws HsarwebException;
    
}
hsarweb/src/de/hsadmin/web/GenericModule.java
@@ -12,16 +12,16 @@
    private static final long serialVersionUID = 1L;
    public void insertRow(Map<String, String> paramHash) throws HsarwebException {
    public void insertRow(Map<String, AbstractProperty> paramHash) throws HsarwebException {
        getApplication().getRemote().callAdd(getModuleConfig().getRemoteName(), paramHash);
    }
    public void deleteRow(Map<String, String> paramHash) throws HsarwebException {
    public void deleteRow(Map<String, AbstractProperty> paramHash) throws HsarwebException {
        getApplication().getRemote().callDelete(getModuleConfig().getRemoteName(), paramHash);
    }
    
    public void updateRow(Map<String, String> paramHash) throws HsarwebException {
        Map<String, String> whereHash = new HashMap<String, String>();
    public void updateRow(Map<String, AbstractProperty> paramHash) throws HsarwebException {
        Map<String, AbstractProperty> whereHash = new HashMap<String, AbstractProperty>();
        String idKey = findIdKey();
        whereHash.put(idKey, paramHash.get(idKey));
        getApplication().getRemote().callUpdate(getModuleConfig().getRemoteName(), paramHash, whereHash);
@@ -43,7 +43,7 @@
    public List<String> getUsers() {
        ArrayList<String> list = new ArrayList<String>();
        try {
            Object callSearch = getApplication().getRemote().callSearch("user", new HashMap<String, String>());
            Object callSearch = getApplication().getRemote().callSearch("user", new HashMap<String, AbstractProperty>());
            if (callSearch instanceof Object[]) {
                for (Object row : ((Object[])callSearch)) {
                    if (row instanceof Map<?, ?>) {
@@ -64,7 +64,7 @@
    public List<String> getEMailAliases() {
        ArrayList<String> list = new ArrayList<String>();
        try {
            Object callSearch = getApplication().getRemote().callSearch("emailalias", new HashMap<String, String>());
            Object callSearch = getApplication().getRemote().callSearch("emailalias", new HashMap<String, AbstractProperty>());
            if (callSearch instanceof Object[]) {
                for (Object row : ((Object[])callSearch)) {
                    if (row instanceof Map<?, ?>) {
@@ -85,7 +85,7 @@
    public List<String> getDomains() {
        ArrayList<String> list = new ArrayList<String>();
        try {
            Object callSearch = getApplication().getRemote().callSearch("domain", new HashMap<String, String>());
            Object callSearch = getApplication().getRemote().callSearch("domain", new HashMap<String, AbstractProperty>());
            if (callSearch instanceof Object[]) {
                for (Object row : ((Object[])callSearch)) {
                    if (row instanceof Map<?, ?>) {
@@ -106,7 +106,7 @@
    public List<String> getPackets() {
        ArrayList<String> list = new ArrayList<String>();
        try {
            Object callSearch = getApplication().getRemote().callSearch("pac", new HashMap<String, String>());
            Object callSearch = getApplication().getRemote().callSearch("pac", new HashMap<String, AbstractProperty>());
            if (callSearch instanceof Object[]) {
                for (Object row : ((Object[])callSearch)) {
                    if (row instanceof Map<?, ?>) {
hsarweb/src/de/hsadmin/web/HomeModule.java
@@ -35,8 +35,8 @@
        setComponentFactory(this);
    }
    
    public void updateRow(Map<String, String> paramHash) throws HsarwebException {
        Map<String, String> whereHash = new HashMap<String, String>();
    public void updateRow(Map<String, AbstractProperty> paramHash) throws HsarwebException {
        Map<String, AbstractProperty> whereHash = new HashMap<String, AbstractProperty>();
        String idKey = findIdKey();
        whereHash.put(idKey, paramHash.get(idKey));
        paramHash.remove(idKey);
@@ -94,8 +94,8 @@
        Button button = new Button(moduleConfig.getLabel("change_password"));
        ThemeResource icon = new ThemeResource(moduleConfig.getLabel("change_password_icon"));
        button.setIcon(icon);
        Map<String, String> whereHash = new HashMap<String, String>();
        whereHash.put("name", application.getLogin());
        Map<String, AbstractProperty> whereHash = new HashMap<String, AbstractProperty>();
        whereHash.put("name", new StringProperty (application.getLogin()));
        Long key = -1L;
        try {
            Object object = application.getRemote().callSearch(moduleConfig.getRemoteName(), whereHash);
@@ -130,8 +130,8 @@
                    public void buttonClick(ClickEvent event) {
                        application.getMainWindow().removeWindow(childWindow);
                        try {
                            Map<String, String> map = new HashMap<String, String>();
                            map.put("id", ((Long) event.getButton().getData()).toString());
                            Map<String, AbstractProperty> map = new HashMap<String, AbstractProperty>();
                            map.put("id", new StringProperty(((Long) event.getButton().getData()).toString()));
                            Iterator<Component> componentIterator = form.getLayout().getComponentIterator();
                            while (componentIterator.hasNext()) {
                                Component component = (Component) componentIterator.next();
hsarweb/src/de/hsadmin/web/InsertAble.java
@@ -4,6 +4,6 @@
public interface InsertAble {
    public void insertRow(Map<String, String> paramHash) throws HsarwebException;
    public void insertRow(Map<String, AbstractProperty> paramHash) throws HsarwebException;
    
}
hsarweb/src/de/hsadmin/web/Remote.java
@@ -18,23 +18,23 @@
        this.app = application;
    }
    public Object callSearch(String module, Map<String, String> where) throws HsarwebException {
    public Object callSearch(String module, Map<String, AbstractProperty> where) throws HsarwebException {
        return xmlrpcCall(module, "search", where); 
    }
    public void callAdd(String module, Map<String, String> set) throws HsarwebException {
    public void callAdd(String module, Map<String, AbstractProperty> set) throws HsarwebException {
        xmlrpcCall(module, "add", set); 
    }
    public void callUpdate(String module, Map<String, String> set, Map<String, String> where) throws HsarwebException {
    public void callUpdate(String module, Map<String, AbstractProperty> set, Map<String, AbstractProperty> where) throws HsarwebException {
        xmlrpcCall(module, "update", set, where); 
    }
    public void callDelete(String module, Map<String, String> where) throws HsarwebException {
    public void callDelete(String module, Map<String, AbstractProperty> where) throws HsarwebException {
        xmlrpcCall(module, "delete", where); 
    }
    private Object xmlrpcCall(String module, String operation, Map<String, String> param1) throws HsarwebException {
    private Object xmlrpcCall(String module, String operation, Map<String, AbstractProperty> param1) throws HsarwebException {
        Object[] params = new Object[3];
        params[0] = app.getLogin();
        params[1] = app.getProxyTicket();
@@ -42,7 +42,7 @@
        return xmlrpcCall(module + "." + operation, params);
    }
    private Object xmlrpcCall(String module, String operation, Map<String, String> param1, Map<String, String> param2) throws HsarwebException {
    private Object xmlrpcCall(String module, String operation, Map<String, AbstractProperty> param1, Map<String, AbstractProperty> param2) throws HsarwebException {
        Object[] params = new Object[4];
        params[0] = app.getLogin();
        params[1] = app.getProxyTicket();
@@ -76,6 +76,5 @@
        }
        return client;
    }
}
hsarweb/src/de/hsadmin/web/UpdateAble.java
@@ -4,6 +4,6 @@
public interface UpdateAble {
    public void updateRow(Map<String, String> paramHash) throws HsarwebException;
    public void updateRow(Map<String, AbstractProperty> paramHash) throws HsarwebException;
    
}
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);
hsarweb/src/de/hsadmin/web/vaadin/DatePropertyFieldFactory.java
@@ -10,6 +10,8 @@
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 @@
    }
    @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;
    }
hsarweb/src/de/hsadmin/web/vaadin/DefaultPropertyFieldFactory.java
@@ -3,6 +3,8 @@
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 @@
    }
    @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;
    }
hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java
@@ -15,9 +15,11 @@
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 @@
    }
    @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 @@
                insertKomma = true;
            }
        }
        return target.toString();
        return new StringProperty(target.toString());
    }
    @Override
hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java
@@ -10,9 +10,11 @@
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 @@
        try {
            MainApplication application = module.getApplication();
            ModuleConfig config = module.getModuleConfig();
            Map<String, String> where = new HashMap<String, String>();
            where.put(findIdKey(), entityId.toString());
            Map<String, AbstractProperty> where = new HashMap<String, AbstractProperty>();
            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]);
@@ -88,11 +90,11 @@
        return idKey;
    }
    public void transferToHash(Map<String, String> map, Form form) throws HsarwebException {
    public void transferToHash(Map<String, AbstractProperty> map, Form form) throws HsarwebException {
        Iterator<Component> 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();
hsarweb/src/de/hsadmin/web/vaadin/PasswordPropertyFieldFactory.java
@@ -4,8 +4,10 @@
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;
@@ -42,13 +44,13 @@
    }
    @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");
            }
hsarweb/src/de/hsadmin/web/vaadin/SelectPropertyFieldFactory.java
@@ -5,7 +5,9 @@
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 @@
    }
    @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;
    }
hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java
@@ -22,10 +22,12 @@
import com.vaadin.ui.Button.ClickEvent;
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;
@@ -107,7 +109,7 @@
        table.removeAllItems();
        try {
            ModuleConfig moduleConfig = module.getModuleConfig();
            Object callSearch = module.getApplication().getRemote().callSearch(moduleConfig.getRemoteName(), new HashMap<String, String>());
            Object callSearch = module.getApplication().getRemote().callSearch(moduleConfig.getRemoteName(), new HashMap<String, AbstractProperty>());
            List<PropertyConfig> propertyList = moduleConfig.getPropertyList();
            if (callSearch instanceof Object[]) {
                for (Object row : ((Object[])callSearch)) {
@@ -229,7 +231,7 @@
                    public void buttonClick(ClickEvent event) {
                        application.getMainWindow().removeWindow(childWindow);
                        try {
                            Map<String, String> map = new HashMap<String, String>();
                            Map<String, AbstractProperty> map = new HashMap<String, AbstractProperty>();
                            genericForm.transferToHash(map, form);
                            ((UpdateAble) module).updateRow(map);
                            loadData();
@@ -285,8 +287,8 @@
                    public void buttonClick(ClickEvent event) {
                        application.getMainWindow().removeWindow(childWindow);
                        try {
                            Map<String, String> map = new HashMap<String, String>();
                            map.put(findIdKey(), ((Long) button.getData()).toString());
                            Map<String, AbstractProperty> map = new HashMap<String, AbstractProperty>();
                            map.put(findIdKey(), new StringProperty(((Long) button.getData()).toString()));
                            ((DeleteAble) module).deleteRow(map);
                            loadData();
                        } catch (HsarwebException e) {