Fixed file properties to show correctly the public url
authorChristos Stathis <chstath@ebs.gr>
Wed, 3 Aug 2011 15:30:54 +0000 (18:30 +0300)
committerChristos Stathis <chstath@ebs.gr>
Wed, 3 Aug 2011 15:30:54 +0000 (18:30 +0300)
src/gr/grnet/pithos/web/client/FilePropertiesDialog.java
src/gr/grnet/pithos/web/client/foldertree/File.java

index 2638aab..359c0bc 100644 (file)
@@ -37,6 +37,7 @@ package gr.grnet.pithos.web.client;
 import com.google.gwt.core.client.Scheduler;\r
 import com.google.gwt.json.client.JSONArray;\r
 import com.google.gwt.json.client.JSONString;\r
+import com.google.gwt.user.client.Window;\r
 import com.google.gwt.user.client.ui.Anchor;\r
 import com.google.gwt.user.client.ui.Label;\r
 import gr.grnet.pithos.web.client.foldertree.File;\r
@@ -311,29 +312,31 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog {
             permPanel.add(permForAll);\r
         }\r
 \r
-        final HorizontalPanel pathPanel = new HorizontalPanel();\r
-        pathPanel.setWidth("100%");\r
-        pathPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);\r
-        pathPanel.add(new Label("Link"));\r
-        pathPanel.setSpacing(8);\r
-        pathPanel.addStyleName("pithos-TabPanelBottom");\r
-\r
-        TextBox path = new TextBox();\r
-        path.setWidth("100%");\r
-        path.addClickHandler(new ClickHandler() {\r
-            @Override\r
-            public void onClick(ClickEvent event) {\r
-                Pithos.enableIESelection();\r
-                ((TextBox) event.getSource()).selectAll();\r
-                Pithos.preventIESelection();\r
-            }\r
-        });\r
-        path.setText(file.getUri());\r
-        path.setTitle("Use this link for sharing the file via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)");\r
-        path.setWidth("100%");\r
-        path.setReadOnly(true);\r
-        pathPanel.add(path);\r
-        permPanel.add(pathPanel);\r
+        if (file.isPublished()) {\r
+            final HorizontalPanel pathPanel = new HorizontalPanel();\r
+            pathPanel.setWidth("100%");\r
+            pathPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);\r
+            pathPanel.add(new Label("Link"));\r
+            pathPanel.setSpacing(8);\r
+            pathPanel.addStyleName("pithos-TabPanelBottom");\r
+\r
+            TextBox path = new TextBox();\r
+            path.setWidth("100%");\r
+            path.addClickHandler(new ClickHandler() {\r
+                @Override\r
+                public void onClick(ClickEvent event) {\r
+                    Pithos.enableIESelection();\r
+                    ((TextBox) event.getSource()).selectAll();\r
+                    Pithos.preventIESelection();\r
+                }\r
+            });\r
+            path.setText(Window.Location.getHost() + file.getPublicUri());\r
+            path.setTitle("Use this link for sharing the file via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)");\r
+            path.setWidth("100%");\r
+            path.setReadOnly(true);\r
+            pathPanel.add(path);\r
+            permPanel.add(pathPanel);\r
+        }\r
 \r
         return permPanel;\r
     }\r
index 8c74f8c..1d3f062 100644 (file)
@@ -80,6 +80,8 @@ public class File extends Resource {
 
     private boolean published;
 
+    private String publicUri;
+
     public String getContentType() {
         return contentType;
     }
@@ -158,7 +160,8 @@ public class File extends Resource {
         lastModified = unmarshallDate(o, "last_modified");
         modifiedBy = unmarshallString(o, "modified_by");
         versionTimestamp = unmarshallDate(o, "version_timestamp");
-        published = unmarshallBoolean(o, "x_object_public");
+        published = o.containsKey("x_object_public") ? true : false;
+        publicUri = unmarshallString(o, "x_object_public");
         this.container = container;
 
         for (String key : o.keySet())
@@ -215,4 +218,8 @@ public class File extends Resource {
     public boolean isPublished() {
         return published;
     }
+
+    public String getPublicUri() {
+        return publicUri;
+    }
 }