Finished meta data for files
[pithos-web-client] / src / gr / grnet / pithos / web / client / FileList.java
index 7ac22ae..2566f24 100644 (file)
@@ -60,6 +60,7 @@ import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
 import com.google.gwt.user.cellview.client.CellTable;
 import com.google.gwt.user.cellview.client.Column;
+import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Event;
 import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.Composite;
@@ -83,7 +84,7 @@ public class FileList extends Composite {
 
        interface TableResources extends CellTable.Resources {
            @Override
-               @Source({CellTable.Style.DEFAULT_CSS, "GssCellTable.css"})
+               @Source({CellTable.Style.DEFAULT_CSS, "PithosCellTable.css"})
            TableStyle cellTableStyle();
        }
        
@@ -297,7 +298,7 @@ public class FileList extends Composite {
         aColumn = new Column<File,String>(new TextCell()) {
                        @Override
                        public String getValue(File object) {
-                               return formatter.format(object.getLastModified());
+                               return object.getLastModified() != null ? formatter.format(object.getLastModified()) : "";
                        }
                };
         aheader = new SortableHeader("Last Modified");
@@ -309,6 +310,7 @@ public class FileList extends Composite {
 
                VerticalPanel vp = new VerticalPanel();
                vp.setWidth("100%");
+               vp.addStyleName("pithos-FileListContainer");
 
         vp.add(celltable);
 
@@ -331,7 +333,7 @@ public class FileList extends Composite {
 
                selectionModel = new MultiSelectionModel<File>(keyProvider);
 
-               celltable.setSelectionModel(selectionModel, GSSSelectionEventManager.<File> createDefaultManager());
+               celltable.setSelectionModel(selectionModel, PithosSelectionEventManager.<File> createDefaultManager());
 //             celltable.setPageSize(Pithos.VISIBLE_FILE_COUNT);
                
                sinkEvents(Event.ONCONTEXTMENU);
@@ -339,7 +341,7 @@ public class FileList extends Composite {
 //             sinkEvents(Event.ONMOUSEDOWN);
 //             sinkEvents(Event.ONCLICK);
 //             sinkEvents(Event.ONKEYDOWN);
-//             sinkEvents(Event.ONDBLCLICK);
+               sinkEvents(Event.ONDBLCLICK);
                Pithos.preventIESelection();
        }
 
@@ -347,9 +349,9 @@ public class FileList extends Composite {
         return new ArrayList<File>(selectionModel.getSelectedSet());
        }
        
-//     @Override
-//     public void onBrowserEvent(Event event) {
-//
+       @Override
+       public void onBrowserEvent(Event event) {
+
 //             if (files == null || files.size() == 0) {
 //                     if (DOM.eventGetType(event) == Event.ONCONTEXTMENU && getSelectedFiles().size() == 0) {
 //                             contextMenu = new FileContextMenu(images, false, true);
@@ -370,16 +372,16 @@ public class FileList extends Composite {
 //                     contextMenu = contextMenu.onEmptyEvent(event);
 //                     event.cancelBubble(true);
 //                     event.preventDefault();
-//             } else if (DOM.eventGetType(event) == Event.ONDBLCLICK)
-//                     if (getSelectedFiles().size() == 1) {
-//                             Pithos app = app;
-//                             File file = getSelectedFiles().get(0);
-//                             Window.open(file.getUri(), "_blank", "");
-//                             event.preventDefault();
-//                             return;
-//                     }
-//             super.onBrowserEvent(event);
-//     }
+//             } else 
+               if (DOM.eventGetType(event) == Event.ONDBLCLICK)
+                       if (getSelectedFiles().size() == 1) {
+                               File file = getSelectedFiles().get(0);
+                               Window.open(app.getApiPath() + file.getOwner() + file.getUri() + "?X-Auth-Token=" + app.getToken(), "_blank", "");
+                               event.preventDefault();
+                               return;
+                       }
+               super.onBrowserEvent(event);
+       }
 
        /**
         * Update the display of the file list.
@@ -500,7 +502,9 @@ public class FileList extends Composite {
                             } else if (sortingProperty.equals("owner")) {
                                     return arg0.getOwner().compareTo(arg1.getOwner());
                             } else if (sortingProperty.equals("date")) {
-                                    return arg0.getLastModified().compareTo(arg1.getLastModified());
+                                       if (arg0.getLastModified() != null && arg1.getLastModified() != null)
+                                               return arg0.getLastModified().compareTo(arg1.getLastModified());
+                                       return 0;
                             } else if (sortingProperty.equals("size")) {
                                     return (int) (arg0.getBytes() - arg1.getBytes());
                             } else if (sortingProperty.equals("name")) {