summaryrefslogtreecommitdiff
path: root/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/builder/SpringMvcGuiFormBuilderImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/builder/SpringMvcGuiFormBuilderImpl.java')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/builder/SpringMvcGuiFormBuilderImpl.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/builder/SpringMvcGuiFormBuilderImpl.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/builder/SpringMvcGuiFormBuilderImpl.java
new file mode 100644
index 00000000..9fae07e2
--- /dev/null
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/builder/SpringMvcGuiFormBuilderImpl.java
@@ -0,0 +1,57 @@
+package at.gv.egiz.eaaf.core.impl.gui.builder;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.servlet.LocaleResolver;
+import org.springframework.web.servlet.ViewResolver;
+
+import at.gv.egiz.eaaf.core.api.gui.IGuiBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.ISpringMvcGuiFormBuilder;
+import at.gv.egiz.eaaf.core.exceptions.GuiBuildException;
+import at.gv.egiz.eaaf.core.impl.gui.utils.MvcGuiRenderUtils;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class SpringMvcGuiFormBuilderImpl implements ISpringMvcGuiFormBuilder {
+
+ private @Autowired(required = false) ViewResolver[] viewResolvers;
+ private @Autowired(required = false) LocaleResolver localeResolver;
+
+ @Override
+ public void build(final HttpServletRequest httpReq, final HttpServletResponse httpResp,
+ final IGuiBuilderConfiguration config, final String loggerName) throws GuiBuildException {
+ build(httpReq, httpResp, config, null, loggerName);
+
+ }
+
+ @Override
+ public void build(final HttpServletRequest httpReq, final HttpServletResponse httpResp,
+ final IGuiBuilderConfiguration config, final String contentType, final String loggerName)
+ throws GuiBuildException {
+ try {
+ MvcGuiRenderUtils.render(MvcGuiRenderUtils.prepareSpringGuiModel(config),
+ httpReq, httpResp, viewResolvers, localeResolver);
+
+ } catch (final Exception e) {
+ log.info("Can NOT generate GUI for: {}", loggerName, e);
+ throw new GuiBuildException(e.getMessage(), e);
+
+ }
+ }
+
+ @Override
+ public String evaluateResponseContentType(HttpServletRequest httpReq, IGuiBuilderConfiguration config,
+ String loggerName) throws GuiBuildException {
+ try {
+ return MvcGuiRenderUtils.evaluateResponseContentType(httpReq, config, viewResolvers, localeResolver);
+
+ } catch (final Exception e) {
+ log.info("Can NOT evaluate contentType for response GUI: {}", loggerName, e);
+ throw new GuiBuildException(e.getMessage(), e);
+
+ }
+ }
+
+}