Finished meta data for files
authorChristos Stathis <chstath@ebs.gr>
Wed, 7 Dec 2011 10:30:45 +0000 (12:30 +0200)
committerChristos Stathis <chstath@ebs.gr>
Wed, 7 Dec 2011 10:30:45 +0000 (12:30 +0200)
src/gr/grnet/pithos/web/client/FilePropertiesDialog.java
src/gr/grnet/pithos/web/public/pithos.css

index 5d0f7c4..c487d18 100644 (file)
@@ -47,8 +47,6 @@ import java.util.HashMap;
 import java.util.List;\r
 import java.util.Map;\r
 \r
-import org.apache.commons.collections.map.HashedMap;\r
-\r
 import com.google.gwt.core.client.GWT;\r
 import com.google.gwt.core.client.Scheduler;\r
 import com.google.gwt.event.dom.client.ClickEvent;\r
@@ -111,7 +109,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
 \r
     Images images = GWT.create(Images.class);\r
 \r
-    private FlexTable metaTable;\r
+    FlexTable metaTable;\r
        /**\r
         * The widget's constructor.\r
         */\r
@@ -124,7 +122,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                close.addClickHandler(new ClickHandler() {\r
                        \r
                        @Override\r
-                       public void onClick(ClickEvent event) {\r
+                       public void onClick(@SuppressWarnings("unused") ClickEvent event) {\r
                                hide();\r
                        }\r
                });\r
@@ -193,7 +191,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                        }\r
 \r
                        @Override\r
-                       protected void onUnauthorized(Response response) {\r
+                       protected void onUnauthorized(@SuppressWarnings("unused") Response response) {\r
                                app.sessionExpired();\r
                        }\r
                };\r
@@ -234,11 +232,17 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
 \r
         generalPanel.add(generalTable);\r
 \r
+        HorizontalPanel metaTitlePanel = new HorizontalPanel();\r
+        metaTitlePanel.setSpacing(5);\r
         Label meta = new Label("Meta data");\r
-        generalPanel.add(meta);\r
+        meta.addStyleName("pithos-metaTitle");\r
+        metaTitlePanel.add(meta);\r
+        \r
                Image plus = new Image("images/plus.png");\r
-               plus.addStyleName("pithos-addInvitationImg");\r
-               generalPanel.add(plus);\r
+               plus.addStyleName("pithos-addMetaImg");\r
+               metaTitlePanel.add(plus);\r
+               \r
+               generalPanel.add(metaTitlePanel);\r
                \r
                metaTable = new FlexTable();\r
                metaTable.setCellSpacing(0);\r
@@ -250,11 +254,13 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                for (String metaKey : file.getMeta().keySet()) {\r
                        addFormLine(metaTable, rows++, metaKey, file.getMeta().get(metaKey));\r
                }\r
+               if (rows == 1) //If no meta add an empty line\r
+                       addFormLine(metaTable, rows++, "", "");\r
                \r
                plus.addClickHandler(new ClickHandler() {\r
                        \r
                        @Override\r
-                       public void onClick(ClickEvent event) {\r
+                       public void onClick(@SuppressWarnings("unused") ClickEvent event) {\r
                                addFormLine(metaTable, metaTable.getRowCount(), "", "");\r
                        }\r
                });\r
@@ -264,19 +270,21 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
         return generalPanel;\r
     }\r
 \r
-       private void addFormLine(final FlexTable table, int row, String name, String value) {\r
+       void addFormLine(final FlexTable table, int row, String _name, String _value) {\r
                TextBox nameBox = new TextBox();\r
-               nameBox.setText(name);\r
+               nameBox.setText(_name);\r
+               nameBox.addStyleName("pithos-metaName");\r
                table.setWidget(row, 0, nameBox);\r
                table.getFlexCellFormatter().setStyleName(1, 0, "props-values");\r
 \r
                TextBox valueBox = new TextBox();\r
-               valueBox.setText(value);\r
+               valueBox.setText(_value);\r
+               valueBox.addStyleName("pithos-metaValue");\r
                table.setWidget(row, 1, valueBox);\r
                table.getFlexCellFormatter().setStyleName(1, 1, "props-values");\r
                \r
                Image delete = new Image("images/delete.png");\r
-               delete.addStyleName("pithos-invitationDeleteImg");\r
+               delete.addStyleName("pithos-metaDeleteImg");\r
                delete.addClickHandler(new ClickHandler() {\r
                        \r
                        @Override\r
@@ -412,7 +420,8 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
         for (int row = 1; row < metaTable.getRowCount(); row++) {\r
                String key = ((TextBox) metaTable.getWidget(row, 0)).getText().trim();\r
                String value = ((TextBox) metaTable.getWidget(row, 1)).getText().trim();\r
-               newMeta.put(key, value);\r
+               if (key.length() > 0 && value.length() > 0)\r
+                       newMeta.put(key, value);\r
         }\r
 \r
         if (newFilename != null) {\r
@@ -430,7 +439,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                 }\r
 \r
                                @Override\r
-                               protected void onUnauthorized(Response response) {\r
+                               protected void onUnauthorized(@SuppressWarnings("unused") Response response) {\r
                                        app.sessionExpired();\r
                                }\r
             };\r
@@ -458,16 +467,20 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
                 }\r
 \r
                                @Override\r
-                               protected void onUnauthorized(Response response) {\r
+                               protected void onUnauthorized(@SuppressWarnings("unused") Response response) {\r
                                        app.sessionExpired();\r
                                }\r
             };\r
             updateFile.setHeader("X-Auth-Token", app.getToken());\r
-            for (String t : file.getMeta().keySet()) {\r
-                       updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(t.trim()), "~");\r
+            \r
+            if (newMeta != null) {\r
+                   for (String t : file.getMeta().keySet()) {\r
+                               updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(t.trim()), "~");\r
+                   }\r
+                   \r
+                   for (String key : newMeta.keySet())\r
+                       updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(key.trim()), URL.encodePathSegment(newMeta.get(key)));\r
             }\r
-            for (String key : newMeta.keySet())\r
-                updateFile.setHeader("X-Object-Meta-" + URL.encodePathSegment(key.trim()), URL.encodePathSegment(newMeta.get(key)));\r
             \r
             if (published != null)\r
                 updateFile.setHeader("X-Object-Public", published.toString());\r
index 88dd07c..4cb5286 100644 (file)
@@ -630,4 +630,26 @@ a.pithos-tag {
 .pithos-pagerButtonCurrent {
        background-color: #4085A5;
        color: white;
-}
\ No newline at end of file
+}
+
+.pithos-metaTitle {
+       font-weight: bold;
+}
+
+.pithos-addMetaImg {
+       background-color: #4085A5;
+       padding: 5px;
+       cursor: pointer;
+}
+
+.pithos-metaDeleteImg {
+       cursor: pointer;
+}
+
+.pithos-metaName {
+       width: 7em;
+}
+
+.pithos-metaValue {
+       width: 7em;
+}