summaryrefslogtreecommitdiff
path: root/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2019-04-23 15:00:40 +0200
committerThomas Lenz <thomas.lenz@egiz.gv.at>2019-04-23 15:00:40 +0200
commit02851082661a924adc68230615f61a308705ce2b (patch)
treebd09998365191ddb065c3c61a0af60d0ec684bda /eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui
parent5c1b5b863fe8d6c08cfe0749fed7ce9594827f8a (diff)
downloadEAAF-Components-02851082661a924adc68230615f61a308705ce2b.tar.gz
EAAF-Components-02851082661a924adc68230615f61a308705ce2b.tar.bz2
EAAF-Components-02851082661a924adc68230615f61a308705ce2b.zip
integrate Spring ModelAndView into EAAF GUI framework
Diffstat (limited to 'eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui')
-rw-r--r--eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractVelocityGUIFormBuilderImpl.java (renamed from eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderImpl.java)68
1 files changed, 47 insertions, 21 deletions
diff --git a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderImpl.java b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractVelocityGUIFormBuilderImpl.java
index 7273ccc8..65e13b5a 100644
--- a/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractGUIFormBuilderImpl.java
+++ b/eaaf_core/src/main/java/at/gv/egiz/eaaf/core/impl/gui/AbstractVelocityGUIFormBuilderImpl.java
@@ -35,6 +35,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
@@ -45,7 +46,8 @@ import org.slf4j.LoggerFactory;
import at.gv.egiz.eaaf.core.api.data.EAAFConstants;
import at.gv.egiz.eaaf.core.api.gui.IGUIBuilderConfiguration;
-import at.gv.egiz.eaaf.core.api.gui.IGUIFormBuilder;
+import at.gv.egiz.eaaf.core.api.gui.IVelocityGUIBuilderConfiguration;
+import at.gv.egiz.eaaf.core.api.gui.IVelocityGuiFormBuilder;
import at.gv.egiz.eaaf.core.exceptions.GUIBuildException;
import at.gv.egiz.eaaf.core.impl.gui.velocity.VelocityProvider;
@@ -53,43 +55,65 @@ import at.gv.egiz.eaaf.core.impl.gui.velocity.VelocityProvider;
* @author tlenz
*
*/
-public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
- private static final Logger log = LoggerFactory.getLogger(AbstractGUIFormBuilderImpl.class);
+public abstract class AbstractVelocityGUIFormBuilderImpl implements IVelocityGuiFormBuilder {
+ private static final Logger log = LoggerFactory.getLogger(AbstractVelocityGUIFormBuilderImpl.class);
private static final String DEFAULT_CONTENT_TYPE = EAAFConstants.CONTENTTYPE_HTML_UTF8;
private VelocityEngine engine;
- public AbstractGUIFormBuilderImpl() throws GUIBuildException {
+ public AbstractVelocityGUIFormBuilderImpl() throws GUIBuildException {
try {
engine = VelocityProvider.getClassPathVelocityEngine();
- } catch (Exception e) {
+ } catch (final Exception e) {
log.error("Initialization of Velocity-Engine to render GUI components FAILED.", e);
throw new GUIBuildException("Initialization of Velocity-Engine to render GUI components FAILED.", e);
}
}
+
+ @Override
+ public final void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGUIBuilderConfiguration config,
+ String loggerName) throws GUIBuildException {
+ if (config instanceof IVelocityGUIBuilderConfiguration)
+ build(httpReq, httpResp, config, loggerName);
+ else
+ throw new IllegalStateException(this.getClass().getName() + " needs a " + IVelocityGUIBuilderConfiguration.class.getName());
- public void build(HttpServletResponse httpResp, IGUIBuilderConfiguration config, String loggerName) throws GUIBuildException {
- build(httpResp, config, getInternalContentType(config), loggerName);
}
+
+ @Override
+ public final void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IGUIBuilderConfiguration config,
+ String contentType, String loggerName) throws GUIBuildException {
+ if (config instanceof IVelocityGUIBuilderConfiguration)
+ build(httpReq, httpResp, config, loggerName);
+ else
+ throw new IllegalStateException(this.getClass().getName() + " needs a " + IVelocityGUIBuilderConfiguration.class.getName());
+ }
+
@Override
- public void build(HttpServletResponse httpResp, IGUIBuilderConfiguration config,
+ public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IVelocityGUIBuilderConfiguration config, String loggerName) throws GUIBuildException {
+ build(httpReq, httpResp, config, getInternalContentType(config), loggerName);
+
+ }
+
+ @Override
+ public void build(HttpServletRequest httpReq, HttpServletResponse httpResp, IVelocityGUIBuilderConfiguration config,
String contentType, String loggerName) throws GUIBuildException {
InputStream is = null;
try {
- String viewName = config.getViewName();
+ final String viewName = config.getViewName();
is = getTemplateInputStream(config);
//build Velocity Context from input paramters
- VelocityContext context = buildContextFromViewParams(config.getViewParameters());
+ final VelocityContext context = buildContextFromViewParams(config.getViewParameters());
//evaluate template
- StringWriter writer = new StringWriter();
+ final StringWriter writer = new StringWriter();
engine.evaluate(context, writer, loggerName, new BufferedReader(new InputStreamReader(is)));
//write template to response
@@ -104,12 +128,12 @@ public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
+ ". Contentsize:" + String.valueOf(content.length)
+ " BufferSize:" + httpResp.getBufferSize()
+ " ContentType:" + contentType);
- for (String el : httpResp.getHeaderNames())
+ for (final String el : httpResp.getHeaderNames())
log.trace(" * Headername:" + el + " Value:" + httpResp.getHeader(el));
}
- } catch (IOException e) {
+ } catch (final IOException e) {
log.error("GUI form-builder has an internal error.", e);
throw new GUIBuildException("GUI form-builder has an internal error.", e);
@@ -118,7 +142,7 @@ public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
try {
is.close();
- } catch (IOException e) {
+ } catch (final IOException e) {
log.error("Can NOT close GUI-Template InputStream.", e);
}
@@ -132,7 +156,8 @@ public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
* @param config
* @return
*/
- public VelocityContext generateVelocityContextFromConfiguration(IGUIBuilderConfiguration config) {
+ @Override
+ public VelocityContext generateVelocityContextFromConfiguration(IVelocityGUIBuilderConfiguration config) {
return buildContextFromViewParams(config.getViewParameters());
}
@@ -144,7 +169,8 @@ public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
* @return An {@link InputStream} but never null. The {@link InputStream} had to be closed be the invoking method
* @throws GUIBuildException
*/
- public InputStream getTemplateInputStream(IGUIBuilderConfiguration config) throws GUIBuildException {
+ @Override
+ public InputStream getTemplateInputStream(IVelocityGUIBuilderConfiguration config) throws GUIBuildException {
InputStream is = config.getTemplate(config.getViewName());
if (is == null) {
log.trace("Loading GUI template:" + config.getViewName() + " from default resources ... ");
@@ -167,13 +193,13 @@ public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
* @return
* @throws GUIBuildException
*/
- abstract protected InputStream getInternalTemplate(IGUIBuilderConfiguration config) throws GUIBuildException;
+ abstract protected InputStream getInternalTemplate(IVelocityGUIBuilderConfiguration config) throws GUIBuildException;
/**
* @return
*/
- protected String getInternalClasspathTemplateDir(IGUIBuilderConfiguration config, String defaultClassPathDir) {
+ protected String getInternalClasspathTemplateDir(IVelocityGUIBuilderConfiguration config, String defaultClassPathDir) {
String dir = config.getClasspathTemplateDir();
if (dir != null) {
if (!dir.endsWith("/"))
@@ -190,12 +216,12 @@ public abstract class AbstractGUIFormBuilderImpl implements IGUIFormBuilder {
* @return
*/
private VelocityContext buildContextFromViewParams(Map<String, Object> viewParams) {
- VelocityContext context = new VelocityContext();
+ final VelocityContext context = new VelocityContext();
if (viewParams != null) {
- Iterator<Entry<String, Object>> interator = viewParams.entrySet().iterator();
+ final Iterator<Entry<String, Object>> interator = viewParams.entrySet().iterator();
while (interator.hasNext()) {
- Entry<String, Object> el = interator.next();
+ final Entry<String, Object> el = interator.next();
context.put(el.getKey(), el.getValue());
}