/src/main/java/com/googlecode/struts2yuiplugin/views/jsp/ui/SubmitTag.java

http://struts2yuiplugin.googlecode.com/ · Java · 83 lines · 63 code · 16 blank · 4 comment · 7 complexity · 1abc64d465d0bcdeedcfa834f3f537e2 MD5 · raw file

  1. package com.googlecode.struts2yuiplugin.views.jsp.ui;
  2. import com.googlecode.struts2yuiplugin.components.Submit;
  3. import com.googlecode.struts2yuiplugin.components.XHRComponent;
  4. import com.opensymphony.xwork2.util.ValueStack;
  5. import org.apache.struts2.components.Component;
  6. import org.apache.struts2.views.jsp.ui.FormTag;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.jsp.tagext.Tag;
  10. /**
  11. * Tag for a YUI button widget of type Submit
  12. */
  13. public class SubmitTag extends AbstractYUITag implements XHRComponent {
  14. private String formId;
  15. private String href;
  16. private String method;
  17. private String target;
  18. private String callback;
  19. private String clickListener;
  20. @Override
  21. protected void populateParams() {
  22. super.populateParams();
  23. Submit button = (Submit) this.component;
  24. if (formId == null) {
  25. formId = findParentFormId();
  26. }
  27. button.setFormId(formId);
  28. button.setHref(href);
  29. button.setMethod(method);
  30. button.setTarget(target);
  31. button.setCallback(callback);
  32. button.setClickListener(clickListener);
  33. }
  34. @Override
  35. public Component getBean(ValueStack valueStack, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
  36. return new Submit(valueStack, httpServletRequest, httpServletResponse);
  37. }
  38. /** Lookup the form that contains this submit button. It will only be found it it's a JSP tag */
  39. private String findParentFormId() {
  40. String formId = null;
  41. Tag parent = this;
  42. while (((parent = parent.getParent()) != null) && (formId == null)) {
  43. if (FormTag.class.isAssignableFrom(parent.getClass())) {
  44. formId = ((FormTag) parent).getId();
  45. }
  46. }
  47. return formId;
  48. }
  49. public void setFormId(String formId) {
  50. this.formId = formId;
  51. }
  52. public void setHref(String href) {
  53. this.href = href;
  54. }
  55. public void setMethod(String method) {
  56. this.method = method;
  57. }
  58. public void setTarget(String target) {
  59. this.target = target;
  60. }
  61. public void setCallback(String callback) {
  62. this.callback = callback;
  63. }
  64. public void setClickListener(String clickListener) {
  65. this.clickListener = clickListener;
  66. }
  67. }