Reformat AddUserDialog and extract constants
authorChristos KK Loverdos <loverdos@gmail.com>
Thu, 7 Feb 2013 11:54:09 +0000 (13:54 +0200)
committerChristos KK Loverdos <loverdos@gmail.com>
Thu, 7 Feb 2013 11:54:09 +0000 (13:54 +0200)
src/gr/grnet/pithos/web/client/AddUserDialog.java
src/gr/grnet/pithos/web/client/Const.java

index 00542c7..407dfe7 100644 (file)
  */\r
 package gr.grnet.pithos.web.client;\r
 \r
-import gr.grnet.pithos.web.client.grouptree.Group;\r
-import gr.grnet.pithos.web.client.rest.PostRequest;\r
-import gr.grnet.pithos.web.client.rest.RestException;\r
-\r
 import com.google.gwt.core.client.GWT;\r
 import com.google.gwt.core.client.Scheduler;\r
 import com.google.gwt.dom.client.NativeEvent;\r
@@ -47,15 +43,11 @@ import com.google.gwt.event.dom.client.KeyCodes;
 import com.google.gwt.event.dom.client.KeyDownEvent;\r
 import com.google.gwt.http.client.Response;\r
 import com.google.gwt.http.client.URL;\r
-import com.google.gwt.regexp.shared.RegExp;\r
 import com.google.gwt.user.client.Event.NativePreviewEvent;\r
-import com.google.gwt.user.client.ui.Anchor;\r
-import com.google.gwt.user.client.ui.Button;\r
-import com.google.gwt.user.client.ui.DialogBox;\r
-import com.google.gwt.user.client.ui.FlexTable;\r
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;\r
-import com.google.gwt.user.client.ui.TextBox;\r
-import com.google.gwt.user.client.ui.VerticalPanel;\r
+import com.google.gwt.user.client.ui.*;\r
+import gr.grnet.pithos.web.client.grouptree.Group;\r
+import gr.grnet.pithos.web.client.rest.PostRequest;\r
+import gr.grnet.pithos.web.client.rest.RestException;\r
 \r
 /**\r
  * The 'Folder properties' dialog box implementation.\r
@@ -65,47 +57,47 @@ public class AddUserDialog extends DialogBox {
     protected Pithos app;\r
 \r
     Group group;\r
-       /**\r
-        * The widget that holds the folderName of the folder.\r
-        */\r
-       TextBox userName = new TextBox();\r
+    /**\r
+     * The widget that holds the folderName of the folder.\r
+     */\r
+    TextBox userName = new TextBox();\r
 \r
-       final VerticalPanel inner;\r
+    final VerticalPanel inner;\r
 \r
-       /**\r
-        * The widget's constructor.\r
-        */\r
-       public AddUserDialog(final Pithos app, Group _group) {\r
+    /**\r
+     * The widget's constructor.\r
+     */\r
+    public AddUserDialog(final Pithos app, Group _group) {\r
         this.app = app;\r
         this.group = _group;\r
-        \r
-               Anchor close = new Anchor("close");\r
-               close.addStyleName("close");\r
-               close.addClickHandler(new ClickHandler() {\r
-                       \r
-                       @Override\r
-                       public void onClick(ClickEvent event) {\r
-                               hide();\r
-                       }\r
-               });\r
-\r
-               setGlassEnabled(true);\r
-               setStyleName("pithos-DialogBox");\r
-\r
-               // Enable IE selection for the dialog (must disable it upon closing it)\r
-               Pithos.enableIESelection();\r
-\r
-               // Use this opportunity to set the dialog's caption.\r
-               setText("Add user");\r
-\r
-               // Outer contains inner and buttons\r
-               VerticalPanel outer = new VerticalPanel();\r
-               outer.add(close);\r
-               // Inner contains generalPanel and permPanel\r
-               inner = new VerticalPanel();\r
-               inner.addStyleName("inner");\r
-\r
-               VerticalPanel generalPanel = new VerticalPanel();\r
+\r
+        Anchor close = new Anchor("close");\r
+        close.addStyleName("close");\r
+        close.addClickHandler(new ClickHandler() {\r
+\r
+            @Override\r
+            public void onClick(ClickEvent event) {\r
+                hide();\r
+            }\r
+        });\r
+\r
+        setGlassEnabled(true);\r
+        setStyleName("pithos-DialogBox");\r
+\r
+        // Enable IE selection for the dialog (must disable it upon closing it)\r
+        Pithos.enableIESelection();\r
+\r
+        // Use this opportunity to set the dialog's caption.\r
+        setText("Add user");\r
+\r
+        // Outer contains inner and buttons\r
+        VerticalPanel outer = new VerticalPanel();\r
+        outer.add(close);\r
+        // Inner contains generalPanel and permPanel\r
+        inner = new VerticalPanel();\r
+        inner.addStyleName("inner");\r
+\r
+        VerticalPanel generalPanel = new VerticalPanel();\r
         FlexTable generalTable = new FlexTable();\r
         generalTable.setText(0, 0, "Username");\r
 \r
@@ -119,101 +111,105 @@ public class AddUserDialog extends DialogBox {
 \r
         outer.add(inner);\r
 \r
-               // Create the 'Create/Update' button, along with a listener that hides the dialog\r
-               // when the button is clicked and quits the application.\r
-               String okLabel = "Create";\r
-               final Button ok = new Button(okLabel, new ClickHandler() {\r
-                       @Override\r
-                       public void onClick(ClickEvent event) {\r
-                               addUser();\r
-                               closeDialog();\r
-                       }\r
-               });\r
-               ok.addStyleName("button");\r
-               outer.add(ok);\r
+        // Create the 'Create/Update' button, along with a listener that hides the dialog\r
+        // when the button is clicked and quits the application.\r
+        String okLabel = "Create";\r
+        final Button ok = new Button(okLabel, new ClickHandler() {\r
+            @Override\r
+            public void onClick(ClickEvent event) {\r
+                addUser();\r
+                closeDialog();\r
+            }\r
+        });\r
+        ok.addStyleName("button");\r
+        outer.add(ok);\r
         outer.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER);\r
 \r
         setWidget(outer);\r
-       }\r
-\r
-       @Override\r
-       public void center() {\r
-               super.center();\r
-               userName.setFocus(true);\r
-       }\r
-\r
-       @Override\r
-       protected void onPreviewNativeEvent(NativePreviewEvent preview) {\r
-               super.onPreviewNativeEvent(preview);\r
-\r
-               NativeEvent evt = preview.getNativeEvent();\r
-               if (evt.getType().equals(KeyDownEvent.getType().getName()))\r
-                       // Use the popup's key preview hooks to close the dialog when either\r
-                       // enter or escape is pressed.\r
-                       switch (evt.getKeyCode()) {\r
-                               case KeyCodes.KEY_ENTER:\r
-                                       addUser();\r
+    }\r
+\r
+    @Override\r
+    public void center() {\r
+        super.center();\r
+        userName.setFocus(true);\r
+    }\r
+\r
+    @Override\r
+    protected void onPreviewNativeEvent(NativePreviewEvent preview) {\r
+        super.onPreviewNativeEvent(preview);\r
+\r
+        NativeEvent evt = preview.getNativeEvent();\r
+        if(evt.getType().equals(KeyDownEvent.getType().getName()))\r
+        // Use the popup's key preview hooks to close the dialog when either\r
+        // enter or escape is pressed.\r
+        {\r
+            switch(evt.getKeyCode()) {\r
+                case KeyCodes.KEY_ENTER:\r
+                    addUser();\r
+                    closeDialog();\r
+                    break;\r
+                case KeyCodes.KEY_ESCAPE:\r
                     closeDialog();\r
-                                       break;\r
-                               case KeyCodes.KEY_ESCAPE:\r
-                                       closeDialog();\r
-                                       break;\r
-                       }\r
-       }\r
-\r
-\r
-       /**\r
-        * Enables IE selection prevention and hides the dialog\r
-        * (we disable the prevention on creation of the dialog)\r
-        */\r
-       public void closeDialog() {\r
-               Pithos.preventIESelection();\r
-               hide();\r
-       }\r
-\r
-       /**\r
-        * Generate an RPC request to create a new folder.\r
-        */\r
-       void addUser() {\r
-               String name = userName.getText().trim();\r
-               if (name.length() == 0)\r
-                       return;\r
-               RegExp emailValidator = RegExp.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+[.][A-Z]{2,4}$", "i");\r
-               if (!emailValidator.test(name)) {\r
-                       app.displayWarning("Username must be a valid email address");\r
-                       return;\r
-               }\r
-                       \r
-       group.addMember(name);\r
-       String path = "?update=";\r
-       PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) {\r
-                       \r
-                       @Override\r
-                       public void onSuccess(Resource result) {\r
-                               app.updateGroupNode(group);\r
-                       }\r
-                       \r
-                       @Override\r
-                       public void onError(Throwable t) {\r
-                               GWT.log("", t);\r
-                               app.setError(t);\r
-                               if (t instanceof RestException) {\r
-                                       app.displayError("Unable to update group:" + ((RestException) t).getHttpStatusText());\r
-                               }\r
-                               else \r
-                                       app.displayError("System error updating group:" + t.getMessage());\r
-                       }\r
-\r
-                       @Override\r
-                       protected void onUnauthorized(Response response) {\r
-                               app.sessionExpired();\r
-                       }\r
-               };\r
-               updateGroup.setHeader("X-Auth-Token", app.getUserToken());\r
-               String groupMembers = "";\r
-               for (String u : group.getMembers())\r
-                       groupMembers += (URL.encodePathSegment(u) + ",");\r
-               updateGroup.setHeader("X-Account-Group-" + URL.encodePathSegment(group.getName()), groupMembers);\r
-               Scheduler.get().scheduleDeferred(updateGroup);\r
-       }\r
+                    break;\r
+            }\r
+        }\r
+    }\r
+\r
+\r
+    /**\r
+     * Enables IE selection prevention and hides the dialog\r
+     * (we disable the prevention on creation of the dialog)\r
+     */\r
+    public void closeDialog() {\r
+        Pithos.preventIESelection();\r
+        hide();\r
+    }\r
+\r
+    /**\r
+     * Generate an RPC request to create a new folder.\r
+     */\r
+    void addUser() {\r
+        String name = userName.getText().trim();\r
+        if(name.length() == 0) {\r
+            return;\r
+        }\r
+        if(!Const.EMAIL_REGEX.test(name)) {\r
+            app.displayWarning("Username must be a valid email address");\r
+            return;\r
+        }\r
+\r
+        group.addMember(name);\r
+        String path = "?update=";\r
+        PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) {\r
+\r
+            @Override\r
+            public void onSuccess(Resource result) {\r
+                app.updateGroupNode(group);\r
+            }\r
+\r
+            @Override\r
+            public void onError(Throwable t) {\r
+                GWT.log("", t);\r
+                app.setError(t);\r
+                if(t instanceof RestException) {\r
+                    app.displayError("Unable to update group:" + ((RestException) t).getHttpStatusText());\r
+                }\r
+                else {\r
+                    app.displayError("System error updating group:" + t.getMessage());\r
+                }\r
+            }\r
+\r
+            @Override\r
+            protected void onUnauthorized(Response response) {\r
+                app.sessionExpired();\r
+            }\r
+        };\r
+        updateGroup.setHeader(Const.X_AUTH_TOKEN, app.getUserToken());\r
+        String groupMembers = "";\r
+        for(String u : group.getMembers()) {\r
+            groupMembers += (URL.encodePathSegment(u) + ",");\r
+        }\r
+        updateGroup.setHeader(Const.X_ACCOUNT_GROUP_ + URL.encodePathSegment(group.getName()), groupMembers);\r
+        Scheduler.get().scheduleDeferred(updateGroup);\r
+    }\r
 }\r
index c50bced..f87dd3c 100644 (file)
@@ -1,5 +1,7 @@
 package gr.grnet.pithos.web.client;
 
+import com.google.gwt.regexp.shared.RegExp;
+
 /**
  * Gathers application-wide constants, like <code>X-Auth-Token</code>
  */
@@ -19,6 +21,8 @@ public class Const {
     public static final String X_MOVE_FROM = "X-Move-From";
     public static final String HOME_CONTAINER = "pithos";
     public static final String TRASH_CONTAINER = "trash";
+    public static final RegExp EMAIL_REGEX = RegExp.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+[.][A-Z]{2,4}$", "i");
+    public static final String X_ACCOUNT_GROUP_ = "X-Account-Group-";
 
     private Const() {}