Added validation to properties dialog (issue #2347)
[pithos-web-client] / src / gr / grnet / pithos / web / client / FilePropertiesDialog.java
index 336a5ee..68bd977 100644 (file)
@@ -112,8 +112,8 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                final Button ok = new Button("OK", new ClickHandler() {\r
                        @Override\r
                        public void onClick(ClickEvent event) {\r
-                               accept();\r
-                               closeDialog();\r
+                               if (accept())\r
+                                       closeDialog();\r
                        }\r
                });\r
                ok.addStyleName("button");\r
@@ -226,12 +226,15 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
         *\r
         */\r
        @Override\r
-       protected void accept() {\r
+       protected boolean accept() {\r
                String newFilename = null;\r
 \r
                if (!name.getText().trim().equals(file.getName())) {\r
                        newFilename = name.getText().trim();\r
+                       if (newFilename.length() == 0)\r
+                               newFilename = null;\r
                }\r
+               \r
 \r
         final Map<String, String> newMeta = new HashMap<String, String>();\r
         for (int row = 1; row < metaTable.getRowCount(); row++) {\r
@@ -239,6 +242,10 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                String value = ((TextBox) metaTable.getWidget(row, 1)).getText().trim();\r
                if (key.length() > 0 && value.length() > 0)\r
                        newMeta.put(key, value);\r
+               else if ((key.length() > 0 && value.length() == 0) || (key.length() == 0 && value.length() > 0)) {\r
+                       app.displayError("You have empty keys or values");\r
+                       return false;\r
+               }\r
         }\r
 \r
         if (newFilename != null) {\r
@@ -296,6 +303,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
         }\r
         else\r
             updateMetaData(app.getApiPath(), app.getUsername(), file.getUri() + "?update=", newMeta);\r
+        return true;\r
        }\r
 \r
        protected void updateMetaData(String api, String owner, String path, Map<String, String> newMeta) {\r