org.asqatasun.webapp.form.parameterization.helper.FormFieldHelper.java Source code

Java tutorial

Introduction

Here is the source code for org.asqatasun.webapp.form.parameterization.helper.FormFieldHelper.java

Source

/*
 * Asqatasun - Automated webpage assessment
 * Copyright (C) 2008-2015  Asqatasun.org
 *
 * This file is part of Asqatasun.
 *
 * Asqatasun is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Contact us by mail: asqatasun AT asqatasun DOT org
 */
package org.asqatasun.webapp.form.parameterization.helper;

import java.util.*;
import org.apache.commons.collections.CollectionUtils;
import org.asqatasun.webapp.form.*;
import org.asqatasun.webapp.form.builder.FormFieldBuilder;

/**
 * 
 * 
 * @author jkowalczyk
 */
public final class FormFieldHelper {

    private FormFieldHelper() {
    }

    /**
     * 
     * @param formFieldList
     * @param formValueMap 
     */
    public static void setValueToFormField(List<FormField> formFieldList, Map<String, Object> formValueMap) {
        for (FormField ff : formFieldList) {
            if (ff instanceof SelectFormField) {
                for (Map.Entry<String, List<SelectElement>> entry : ((SelectFormField) ff).getSelectElementMap()
                        .entrySet()) {
                    for (SelectElement se : entry.getValue()) {
                        se.setDefault(false);
                        if (formValueMap.get(entry.getKey()).equals(se.getValue())) {
                            se.setDefault(true);
                        }
                    }
                }
            } else if (ff instanceof CheckboxFormField) {
                // retrieve the user selection and select the UI elements
                CheckboxFormField cff = ((CheckboxFormField) ff);
                Collection<String> selectedValues = new HashSet<String>();
                if ((formValueMap.get(cff.getCode()) instanceof String[])) {
                    CollectionUtils.addAll(selectedValues, ((String[]) formValueMap.get(cff.getCode())));
                } else if ((formValueMap.get(cff.getCode()) instanceof String)) {
                    selectedValues.add(((String) formValueMap.get(cff.getCode())));
                }
                for (CheckboxElement ce : cff.getCheckboxElementList()) {
                    if (selectedValues.add(ce.getValue())) {
                        ce.setSelected(true);
                    } else {
                        ce.setSelected(false);
                    }
                }
            } else {
                ff.setValue(formValueMap.get(ff.getI18nKey()).toString());
            }
        }
    }

    /**
     *
     * @param formFieldBuilderList
     * @return
     */
    public static List<FormField> getFormFieldBuilderCopy(List<FormFieldBuilder> formFieldBuilderList) {
        List<FormField> initialisedFormFielList = new LinkedList<FormField>();
        for (FormFieldBuilder formFieldBuilder : formFieldBuilderList) {
            initialisedFormFielList.add(formFieldBuilder.build());
        }
        return initialisedFormFielList;
    }

    /**
     * 
     * @param formFieldBuilderList
     * @param formValueMap
     * @return
     */
    public static List<FormField> getFormFieldBuilderCopy(List<FormFieldBuilder> formFieldBuilderList,
            Map<String, Object> formValueMap) {
        List<FormField> initialisedFormFieldList = new LinkedList<FormField>();
        for (FormFieldBuilder formFieldBuilder : formFieldBuilderList) {
            initialisedFormFieldList.add(formFieldBuilder.build());
        }
        FormFieldHelper.setValueToFormField(initialisedFormFieldList, formValueMap);
        return initialisedFormFieldList;
    }

}