Guest User

Untitled

a guest
Mar 2nd, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. package org.uwogarage.views.admin;
  2.  
  3. import java.util.LinkedList;
  4.  
  5. import javax.swing.JButton;
  6. import javax.swing.JPanel;
  7. import javax.swing.JSlider;
  8. import javax.swing.JTextField;
  9.  
  10. import org.uwogarage.models.UserModel;
  11. import org.uwogarage.util.documents.*;
  12. import org.uwogarage.util.functional.D;
  13. import org.uwogarage.util.functional.P;
  14. import org.uwogarage.views.MapZoomSlider;
  15. import org.uwogarage.views.View;
  16.  
  17. /**
  18. * View to add a user to the system.
  19. *
  20. * @version $Id: AddUserView.java 27 2009-03-12 19:37:11Z peter.goodman $
  21. */
  22. public class AddUserView extends View {
  23.  
  24. /**
  25. * Show the form to add a user.
  26. *
  27. * @param user_exists A predicate that checks whether or not a supplied user
  28. * id is unique.
  29. * @param responder
  30. * @return
  31. */
  32. static public JPanel view(final P<String> id_is_unique, final D<UserModel> responder) {
  33.  
  34. // create the text fields
  35. final JTextField user_id = field.text(4, new AlphaNumDocument(4)),
  36. password = field.text(3, new AlphaDocument(3)),
  37. first_name = field.text(20, new AlphaDocument(20)),
  38. last_name = field.text(20, new AlphaDashDocument(20)),
  39. phone_num = field.text(10, new NumDocument(10)),
  40. start_lat = field.text(10, new RealNumDocument(10)),
  41. start_lng = field.text(10, new RealNumDocument(10));
  42.  
  43. // the slider to choose the start zoom level
  44. final JSlider start_zoom = MapZoomSlider.view();
  45.  
  46. // set the default password to the form
  47. password.setText("aaa");
  48.  
  49. // create the form
  50. return grid(
  51. grid.row(
  52. grid.cell(label("Add User")).margin(10, 10, 0, 10)
  53. ),
  54.  
  55. form.row(label("User ID:"), user_id),
  56. form.row(label("Password:"), password),
  57. form.row(label("First Name:"), first_name),
  58. form.row(label("Last Name:"), last_name),
  59. form.row(label("Phone Number:"), phone_num),
  60. form.row(label("Start Latitude:"), start_lat),
  61. form.row(label("Start Longitude:"), start_lng),
  62. form.row(label("Start Zoom Level"), start_zoom),
  63.  
  64. grid.row(
  65. grid.cell(2, button("Add", new D<JButton>() {
  66. public void call(JButton b) {
  67.  
  68. LinkedList<String> errors = new LinkedList<String>();
  69. UserModel user = new UserModel();
  70.  
  71. if(!id_is_unique.call(user_id.getText()))
  72. errors.add("The user id must be unique.");
  73.  
  74. else if(!user.setUserId(user_id.getText()))
  75. errors.add("The user id must be 4 characters long.");
  76.  
  77. if(!user.setPassword(password.getText()))
  78. errors.add("The password must be 3 characters long.");
  79.  
  80. if(!user.setFirstName(first_name.getText())) {
  81. errors.add(
  82. "The first name must be between 1 and 20 "+
  83. "characters long."
  84. );
  85. }
  86.  
  87. if(!user.setLastName(last_name.getText())) {
  88. errors.add(
  89. "The last name must be between 1 and 20 "+
  90. "characters long."
  91. );
  92. }
  93.  
  94. if(!user.setPhoneNumber(phone_num.getText()))
  95. errors.add("The phone number must be 10 characters long.");
  96.  
  97. if(!user.setDefaultLatLng(start_lat.getText(), start_lng.getText())) {
  98. errors.add(
  99. "The start latitude or longitude are incorrectly "+
  100. "formatted."
  101. );
  102. }
  103.  
  104. if(!user.setDefaultZoom(start_zoom.getValue()))
  105. errors.add("The start zoom is out of range.");
  106.  
  107. // there are errors, report them
  108. if(!errors.isEmpty()) {
  109. String error_str = "The following errors occurred:";
  110. for(String error : errors)
  111. error_str += "\n"+ error;
  112.  
  113. dialog.alert(f, error_str);
  114.  
  115. // no errors, yay, add the user in
  116. } else {
  117. responder.call(user);
  118. }
  119. }
  120. })).margin(10, 10, 10, 10)
  121. )
  122. );
  123. }
  124. }
Add Comment
Please, Sign In to add comment