Package org.joget.apps.form.model

Source Code of org.joget.apps.form.model.Form

package org.joget.apps.form.model;

import java.util.HashMap;
import java.util.Map;
import org.joget.apps.app.model.AppDefinition;
import org.joget.apps.app.service.AppUtil;
import org.joget.apps.form.service.FormUtil;

public class Form extends Element implements FormBuilderEditable, FormContainer {

    private Map<String, String[]> formMetas = new HashMap<String, String[]>();

    @Override
    public String getName() {
        return "Form";
    }

    @Override
    public String getVersion() {
        return "3.0.0";
    }

    @Override
    public String getDescription() {
        return "Form Element";
    }

    @Override
    public String renderTemplate(FormData formData, Map dataModel) {
        String template = "form.ftl";

        // get current app
        AppDefinition appDef = AppUtil.getCurrentAppDefinition();
        if (appDef != null) {
            dataModel.put("appId", appDef.getAppId());
            dataModel.put("appVersion", appDef.getVersion());
        }
       
        // check whether in form builder
        boolean formBuilderActive = FormUtil.isFormBuilderActive();
      
        // check for quick edit mode
        boolean isQuickEditEnabled = (!formBuilderActive && AppUtil.isQuickEditEnabled()) || (formBuilderActive && getParent() != null);
        dataModel.put("quickEditEnabled", isQuickEditEnabled);
        if (((Boolean) dataModel.get("includeMetaData") == true) || isAuthorize(formData)) {
            dataModel.put("isAuthorize", true);
           
            String paramName = FormUtil.getElementParameterName(this);
            setFormMeta(paramName+"_SUBMITTED", new String[]{"true"});

            if (getParent() == null) {
                if (formData.getRequestParameter("_FORM_META_ORIGINAL_ID") != null) {
                    setFormMeta("_FORM_META_ORIGINAL_ID", new String[]{formData.getRequestParameter(FormUtil.FORM_META_ORIGINAL_ID)});
                } else if (formData.getPrimaryKeyValue() != null) {
                    setFormMeta("_FORM_META_ORIGINAL_ID", new String[]{formData.getPrimaryKeyValue()});
                } else {
                    setFormMeta("_FORM_META_ORIGINAL_ID", new String[]{""});
                }
            } else {
                String uniqueId = getCustomParameterName();
                if (formData.getRequestParameter(uniqueId + "_FORM_META_ORIGINAL_ID") != null) {
                    setFormMeta(uniqueId + "_FORM_META_ORIGINAL_ID", new String[]{formData.getRequestParameter(uniqueId + FormUtil.FORM_META_ORIGINAL_ID)});
                } else if (formData.getPrimaryKeyValue() != null) {
                    setFormMeta(uniqueId + "_FORM_META_ORIGINAL_ID", new String[]{getPrimaryKeyValue(formData)});
                } else {
                    setFormMeta(uniqueId + "_FORM_META_ORIGINAL_ID", new String[]{""});
                }
            }

            dataModel.put("formMeta", formMetas);
        } else {
            dataModel.put("isAuthorize", false);
        }

        String html = FormUtil.generateElementHtml(this, formData, template, dataModel);
        return html;
    }

    @Override
    public String getClassName() {
        return getClass().getName();
    }

    @Override
    public String getLabel() {
        return getName();
    }

    @Override
    public String getPropertyOptions() {
        return AppUtil.readPluginResource(getClass().getName(), "/properties/form/form.json", null, true, "message/form/Form");
    }

    @Override
    public String getFormBuilderTemplate() {
        return "";
    }

    public void setFormMeta(String name, String[] values) {
        formMetas.put(name, values);
    }

    public String[] getFormMeta(String name) {
        return formMetas.get(name);
    }

    public Map getFormMetas() {
        return formMetas;
    }
   
    @Override
    public FormRowSet formatData(FormData formData) {
        return null;
    }
}
TOP

Related Classes of org.joget.apps.form.model.Form

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.