/src/org/polishcalendar/client/RegistrationPage.java

https://github.com/Karusmeister/ThePolishCalendar · Java · 156 lines · 113 code · 37 blank · 6 comment · 1 complexity · d324b35fa2d60ab6b1e6aa3a72a43564 MD5 · raw file

  1. package org.polishcalendar.client;
  2. import java.util.Date;
  3. import org.polishcalendar.ds.UserDataSource;
  4. import com.smartgwt.client.data.DataSource;
  5. import com.smartgwt.client.widgets.Button;
  6. import com.smartgwt.client.widgets.Canvas;
  7. import com.smartgwt.client.widgets.form.DynamicForm;
  8. import com.smartgwt.client.widgets.form.fields.ButtonItem;
  9. import com.smartgwt.client.widgets.form.fields.CheckboxItem;
  10. import com.smartgwt.client.widgets.form.fields.HeaderItem;
  11. import com.smartgwt.client.widgets.form.fields.HiddenItem;
  12. import com.smartgwt.client.widgets.form.fields.PasswordItem;
  13. import com.smartgwt.client.widgets.form.fields.TextItem;
  14. import com.smartgwt.client.widgets.form.fields.events.ClickEvent;
  15. import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
  16. import com.smartgwt.client.widgets.form.validator.MatchesFieldValidator;
  17. import com.smartgwt.client.widgets.layout.HLayout;
  18. import com.smartgwt.client.widgets.layout.Layout;
  19. import com.smartgwt.client.widgets.layout.VLayout;
  20. public class RegistrationPage {
  21. private DynamicForm form;
  22. public Canvas buildRegistrationPage() {
  23. return buildRegistrationForm();
  24. }
  25. public Canvas buildRegistrationForm()
  26. {
  27. Layout output = new VLayout();
  28. DataSource dataSource = new DataSource();
  29. form = new DynamicForm();
  30. form.setDataSource(dataSource);
  31. form.setUseAllDataSourceFields(true);
  32. HeaderItem header = new HeaderItem();
  33. header.setDefaultValue("Registration Form");
  34. PasswordItem passwordItem = new PasswordItem();
  35. passwordItem.setName("password");
  36. PasswordItem passwordItem2 = new PasswordItem();
  37. passwordItem2.setName("password2");
  38. passwordItem2.setTitle("Password Again");
  39. passwordItem2.setRequired(true);
  40. passwordItem2.setLength(20);
  41. MatchesFieldValidator matchesValidator = new MatchesFieldValidator();
  42. matchesValidator.setOtherField("password");
  43. matchesValidator.setErrorMessage("Passwords do not match");
  44. passwordItem2.setValidators(matchesValidator);
  45. // Creating secret fields in order to bypass DS limitations
  46. // GWT is fucked up so you have to hide them explicitly
  47. HiddenItem date_item = new HiddenItem();
  48. date_item.setName("joinedDate");
  49. date_item.setValue(new Date());
  50. HiddenItem type_item = new HiddenItem();
  51. type_item.setName("type");
  52. type_item.setValue("user");
  53. // This will be ignored but is required for avoiding null pntr exception
  54. HiddenItem id_item = new HiddenItem();
  55. id_item.setName("id");
  56. id_item.setValue(-1);
  57. CheckboxItem acceptItem = new CheckboxItem();
  58. acceptItem.setName("acceptTerms");
  59. acceptItem.setTitle("I accept the terms of use.");
  60. acceptItem.setRequired(true);
  61. acceptItem.setWidth(150);
  62. ButtonItem validateItem = new ButtonItem();
  63. validateItem.setTitle("Next");
  64. validateItem.addClickHandler(new ClickHandler() {
  65. public void onClick(ClickEvent event) {
  66. if (form.validate(true)) {
  67. // Note, submiting record instead of doing form.submit()
  68. // form.submit would cause datasource.executeUpdate() and we
  69. // want datasource.executeAdd() instead.
  70. form.getDataSource().addData(form.getValuesAsRecord());
  71. PolishCalendarDev.replaceOutmostContent(createPreferencesSetUp());
  72. }
  73. }
  74. });
  75. form.setFields(header, passwordItem, passwordItem2, acceptItem, id_item,
  76. date_item , type_item , validateItem);
  77. output.addMember(form);
  78. HLayout buttons = new HLayout();
  79. Button registerOrg= new Button();
  80. registerOrg.setTitle("Register Organisation");
  81. registerOrg.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
  82. @Override
  83. public void onClick(
  84. com.smartgwt.client.widgets.events.ClickEvent event) {
  85. OrganisationRegistration org_reg = new OrganisationRegistration();
  86. PolishCalendarDev.replaceOutmostContent(org_reg.buildOrganisationRegistration());
  87. }
  88. });
  89. buttons.addMember(registerOrg);
  90. Button backToLoginPage = new Button("Back");
  91. backToLoginPage.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
  92. @Override
  93. public void onClick(
  94. com.smartgwt.client.widgets.events.ClickEvent event) {
  95. LoginPage page = new LoginPage();
  96. PolishCalendarDev.replaceOutmostContent(page.buildLoginPage());
  97. }
  98. });
  99. buttons.addMember(backToLoginPage);
  100. output.addMember(buttons);
  101. return output;
  102. }
  103. private Layout createPreferencesSetUp() {
  104. Layout output = new VLayout();
  105. output.addMember((new PreferencesPage()).buildMainPanel());
  106. Button submit = new Button("Submit");
  107. submit.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
  108. @Override
  109. public void onClick(
  110. com.smartgwt.client.widgets.events.ClickEvent event) {
  111. CalendarPage caldendar_page = new CalendarPage();
  112. Canvas content = caldendar_page.build();
  113. PolishCalendarDev.replaceOutmostContent(content);
  114. }
  115. });
  116. output.addMember(submit);
  117. return output;
  118. }
  119. }