Fixed issue #2340
authorChristos Stathis <chstath@ebs.gr>
Wed, 2 May 2012 14:57:48 +0000 (17:57 +0300)
committerChristos Stathis <chstath@ebs.gr>
Wed, 2 May 2012 14:57:48 +0000 (17:57 +0300)
src/gr/grnet/pithos/web/client/FilePermissionsDialog.java
src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java
src/gr/grnet/pithos/web/client/GroupCreateDialog.java

index 7d9f0ea..d4c94af 100644 (file)
@@ -173,9 +173,24 @@ public class FilePermissionsDialog extends AbstractPropertiesDialog {
         Button add = new Button("Add Group", new ClickHandler() {\r
             @Override\r
             public void onClick(ClickEvent event) {\r
-                PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
-                dlg.center();\r
-                permList.updatePermissionTable();\r
+               if (app.getAccount().getGroups().isEmpty()) {\r
+                    new GroupCreateDialog(app, new Command() {\r
+                                               \r
+                                               @Override\r
+                                               public void execute() {\r
+                                       if (app.getAccount().getGroups().isEmpty())\r
+                                               return;\r
+                                       PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
+                                       dlg.center();\r
+                                       permList.updatePermissionTable();\r
+                                               }\r
+                                       }).center();\r
+               }\r
+               else {\r
+                       PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
+                       dlg.center();\r
+                       permList.updatePermissionTable();\r
+               }\r
             }\r
         });\r
         add.addStyleName("button");\r
index 47bd080..6e21f26 100644 (file)
@@ -34,6 +34,7 @@
  */\r
 package gr.grnet.pithos.web.client;\r
 \r
+import gr.grnet.pithos.web.client.commands.CreateGroupCommand;\r
 import gr.grnet.pithos.web.client.foldertree.File;\r
 import gr.grnet.pithos.web.client.foldertree.Folder;\r
 import gr.grnet.pithos.web.client.foldertree.Resource;\r
@@ -137,8 +138,22 @@ public class FolderPermissionsDialog extends DialogBox {
         Button add = new Button("Add Group", new ClickHandler() {\r
             @Override\r
             public void onClick(ClickEvent event) {\r
-                PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
-                dlg.center();\r
+               if (app.getAccount().getGroups().isEmpty()) {\r
+                    new GroupCreateDialog(app, new Command() {\r
+                                               \r
+                                               @Override\r
+                                               public void execute() {\r
+                                       if (app.getAccount().getGroups().isEmpty())\r
+                                               return;\r
+                                       PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
+                                       dlg.center();\r
+                                               }\r
+                                       }).center();\r
+               }\r
+               else {\r
+                       PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
+                       dlg.center();\r
+               }\r
             }\r
         });\r
         add.addStyleName("button");\r
index d55b6a3..9d4b869 100644 (file)
@@ -41,6 +41,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;\r
 import com.google.gwt.event.dom.client.KeyCodes;\r
 import com.google.gwt.event.dom.client.KeyDownEvent;\r
+import com.google.gwt.user.client.Command;\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
@@ -57,6 +58,8 @@ public class GroupCreateDialog extends DialogBox {
 \r
     protected Pithos app;\r
 \r
+    private Command callback;\r
+    \r
        /**\r
         * The widget that holds the folderName of the folder.\r
         */\r
@@ -64,11 +67,17 @@ public class GroupCreateDialog extends DialogBox {
 \r
        final VerticalPanel inner;\r
 \r
+       public GroupCreateDialog(final Pithos app) {\r
+               this(app, null);\r
+       }\r
+       \r
        /**\r
         * The widget's constructor.\r
         */\r
-       public GroupCreateDialog(final Pithos app) {\r
+       public GroupCreateDialog(final Pithos app, Command callback) {\r
         this.app = app;\r
+        this.callback = callback;\r
+        \r
                Anchor close = new Anchor();\r
                close.addStyleName("close");\r
                close.addClickHandler(new ClickHandler() {\r
@@ -160,12 +169,14 @@ public class GroupCreateDialog extends DialogBox {
        public void closeDialog() {\r
                Pithos.preventIESelection();\r
                hide();\r
+               if (callback != null)\r
+                       callback.execute();\r
        }\r
 \r
        /**\r
         * Generate an RPC request to create a new folder.\r
         */\r
-       private void createGroup() {\r
+       void createGroup() {\r
                String name = groupName.getText().trim();\r
                if (name.length() == 0)\r
                        return;\r