/src/main/java/com/googlecode/struts2yuiplugin/components/ClosingYUIBean.java

http://struts2yuiplugin.googlecode.com/ · Java · 46 lines · 31 code · 11 blank · 4 comment · 0 complexity · 826b5bf4c678063b1d0cd3d9a03932aa MD5 · raw file

  1. package com.googlecode.struts2yuiplugin.components;
  2. import org.apache.struts2.views.annotations.StrutsTagAttribute;
  3. import org.apache.commons.logging.Log;
  4. import org.apache.commons.logging.LogFactory;
  5. import com.opensymphony.xwork2.util.ValueStack;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import java.io.Writer;
  9. /**
  10. * A specialization of the YUI Bean that handles open and closing tag templates
  11. *
  12. */
  13. public abstract class ClosingYUIBean extends YUIBean {
  14. private static final Log LOG = LogFactory.getLog(ClosingYUIBean.class);
  15. public ClosingYUIBean(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
  16. super(stack, request, response);
  17. }
  18. private String openTemplate;
  19. public abstract String getDefaultOpenTemplate();
  20. @StrutsTagAttribute(description="Set template to use for opening the rendered html.")
  21. public void setOpenTemplate(String openTemplate) {
  22. this.openTemplate = openTemplate;
  23. }
  24. public boolean start(Writer writer) {
  25. boolean result = super.start(writer);
  26. try {
  27. evaluateParams();
  28. mergeTemplate(writer, buildTemplateName(openTemplate, getDefaultOpenTemplate()));
  29. } catch (Exception e) {
  30. LOG.error("Could not open template", e);
  31. e.printStackTrace();
  32. }
  33. return result;
  34. }
  35. }