summaryrefslogtreecommitdiff
path: root/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java83
1 files changed, 63 insertions, 20 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java
index 9cee031d..51b4e0b4 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderConfiguration.java
@@ -30,6 +30,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
@@ -38,7 +40,16 @@ import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
*
*/
public abstract class AbstractGUIFormBuilderConfiguration implements IGUIBuilderConfiguration {
-
+ private static final Logger log = LoggerFactory.getLogger(AbstractGUIFormBuilderConfiguration.class);
+
+ public static final String PARAM_GROUP_FORM = "form";
+ public static final String PARAM_GROUP_ACTIONS = "actions";
+ public static final String PARAM_GROUP_PARAMS = "params";
+ public static final String PARAM_GROUP_UIOPTIONS = "uiOptions";
+ public static final String PARAM_GROUP_MSG = "msg";
+
+
+ public static final String PARAM_VIEWNAME = "viewName";
public static final String PARAM_AUTHCONTEXT = "contextPath";
public static final String PARAM_FORMSUBMITENDPOINT = "submitEndpoint";
@Deprecated public static final String PARAM_PENDINGREQUESTID_DEPRECATED = "pendingReqID";
@@ -48,6 +59,8 @@ public abstract class AbstractGUIFormBuilderConfiguration implements IGUIBuilder
private String viewName = null;
private String formSubmitEndpoint = null;
+ private final Map<String, Object> params = new HashMap<String, Object>();
+
/**
* @param authURL IDP PublicURL-Prefix which should be used, but never null
* @param viewName Name of the template (with suffix) but never null
@@ -73,16 +86,7 @@ public abstract class AbstractGUIFormBuilderConfiguration implements IGUIBuilder
this.formSubmitEndpoint = "/" + formSubmitEndpoint;
}
}
-
-
- /**
- * Define the parameters, which should be evaluated in the template <br>
- * <b>IMPORTANT:</b> external HTML escapetion is required, because it is NOT done internally during the building process
- *
- * @return Map of parameters, which should be added to template
- */
- abstract protected Map<String, Object> getSpecificViewParameters();
-
+
/* (non-Javadoc)
* @see at.gv.egovernment.moa.id.auth.frontend.builder.IGUIBuilderConfiguration#getViewName()
*/
@@ -97,19 +101,58 @@ public abstract class AbstractGUIFormBuilderConfiguration implements IGUIBuilder
* @see at.gv.egovernment.moa.id.auth.frontend.builder.IGUIBuilderConfiguration#getViewParameters()
*/
@Override
- public final Map<String, Object> getViewParameters() {
+ public final Map<String, Object> getViewParameters() {
+ //set generic parameters
+ setViewParameter(PARAM_GROUP_FORM, PARAM_AUTHCONTEXT, this.authURL);
+ setViewParameter(PARAM_GROUP_FORM, PARAM_FORMSUBMITENDPOINT, this.formSubmitEndpoint);
+ setViewParameter(PARAM_GROUP_FORM, PARAM_VIEWNAME, this.viewName);
+
//get parameters from detail implementation
- Map<String, Object> specParams = getSpecificViewParameters();
- if (specParams == null)
- specParams = new HashMap<String, Object>();
+ putSpecificViewParameters();
+
+ try {
+ log.trace("Full view parameters: {}", StringUtils.join(params, ","));
+ } catch (final Exception e) {
+ log.info("Can NOT trace view parameters. Reason: {}", e.getMessage() );
+ }
- //add generic parameters
- specParams.put(PARAM_AUTHCONTEXT, this.authURL);
- if (this.formSubmitEndpoint != null)
- specParams.put(PARAM_FORMSUBMITENDPOINT, this.formSubmitEndpoint);
+ return params;
- return specParams;
+ }
+
+ /**
+ * Define the parameters, which should be evaluated in the template <br>
+ * <b>IMPORTANT:</b> external HTML escapetion is required, because it is NOT done internally during the building process
+ *
+ */
+ abstract protected void putSpecificViewParameters();
+
+ @SuppressWarnings("unchecked")
+ protected void setViewParameter(String group, String key, Object value) {
+ if (StringUtils.isNotEmpty(group)) {
+ log.trace("Adding group object ... ");
+ Object groupMap = params.get(group);
+ if (groupMap == null) {
+ groupMap = new HashMap<String, Object>();;
+ log.trace("Build new group element");
+
+ }
+
+ if (groupMap instanceof Map<?,?>) {
+ ((Map<String, Object>) groupMap).put(key, value);
+ params.put(group, groupMap);
+
+ } else
+ log.warn("Can NOT add element: {} to group: {}, because group is of type: {}",
+ key, group, groupMap.getClass().getName());
+
+ } else {
+ log.trace("Add root object ... ");
+ params.put(key, value);
+
+ }
+
}
}