Show display name in FolderPropertiesDialog
[pithos-web-client] / src / gr / grnet / pithos / web / client / PermissionsAddDialog.java
index c2fa97c..28aecef 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2011 GRNET S.A. All rights reserved.
+ * Copyright 2011-2012 GRNET S.A. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or
  * without modification, are permitted provided that the following
@@ -42,14 +42,15 @@ import com.google.gwt.dom.client.NativeEvent;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.regexp.shared.RegExp;
 import com.google.gwt.user.client.Event.NativePreviewEvent;
 import com.google.gwt.user.client.ui.Anchor;
 import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.CheckBox;
 import com.google.gwt.user.client.ui.DialogBox;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
 import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.RadioButton;
 import com.google.gwt.user.client.ui.TextBox;
 import com.google.gwt.user.client.ui.VerticalPanel;
 
@@ -59,9 +60,9 @@ public class PermissionsAddDialog extends DialogBox {
 
        private ListBox groupBox = new ListBox();
 
-       private CheckBox read = new CheckBox();
+       private RadioButton read = new RadioButton("permissions");
 
-       private CheckBox write = new CheckBox();
+       private RadioButton write = new RadioButton("permissions");
 
        private PermissionsList permList;
 
@@ -74,7 +75,7 @@ public class PermissionsAddDialog extends DialogBox {
                userAdd = _userAdd;
                permList = _permList;
 
-               Anchor close = new Anchor();
+               Anchor close = new Anchor("close");
                close.addStyleName("close");
                close.addClickHandler(new ClickHandler() {
                        
@@ -94,8 +95,8 @@ public class PermissionsAddDialog extends DialogBox {
 
         final FlexTable permTable = new FlexTable();
         permTable.setText(0, 0, "Users/Groups");
-        permTable.setText(0, 1, "Read");
-        permTable.setText(0, 2, "Write");
+        permTable.setText(0, 1, "Read Only");
+        permTable.setText(0, 2, "Read/Write");
         permTable.getFlexCellFormatter().setStyleName(0, 0, "props-toplabels");
         permTable.getFlexCellFormatter().setStyleName(0, 1, "props-toplabels");
         permTable.getFlexCellFormatter().setStyleName(0, 2, "props-toplabels");
@@ -108,7 +109,8 @@ public class PermissionsAddDialog extends DialogBox {
                 groupBox.addItem(group.getName(), group.getName());
             permTable.setWidget(1, 0, groupBox);
         }
-
+                
+        read.setValue(true);
         permTable.setWidget(1, 1, read);
         permTable.setWidget(1, 2, write);
 
@@ -137,14 +139,24 @@ public class PermissionsAddDialog extends DialogBox {
        protected void addPermission() {
         String selected = null;
                if (userAdd) {
-                       selected = userBox.getText();
-               } else {
+                       selected = userBox.getText().trim();
+                       RegExp emailValidator = RegExp.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+[.][A-Z]{2,4}$", "i");
+                       if (!emailValidator.test(selected)) {
+                               app.displayWarning("Username must be a valid email address");
+                               return;
+                       }
+               } else if (groupBox.getSelectedIndex() > -1) {
                        String groupName = groupBox.getValue(groupBox.getSelectedIndex());
-            selected = app.getUsername() + ":" + groupName;
+                       selected = app.getUserID() + ":" + groupName;
                }
         if (permList.getPermissions().get(selected) != null) {
             return;
         }
+        if (selected == null || selected.length() == 0 || selected.equals(app.getUserID() + ":")) {
+               app.displayWarning("You have to select a username or group");
+               return;
+        }
+
                boolean readValue = read.getValue();
                boolean writeValue = write.getValue();