Merge branch 'hotfix-0.14.5' into develop
[pithos-web-client] / src / gr / grnet / pithos / web / client / mysharedtree / MysharedTreeView.java
index e286195..9c7da6f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2011-2012 GRNET S.A. All rights reserved.
+ * Copyright 2011-2013 GRNET S.A. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or
  * without modification, are permitted provided that the following
 
 package gr.grnet.pithos.web.client.mysharedtree;
 
-import gr.grnet.pithos.web.client.FolderContextMenu;
-import gr.grnet.pithos.web.client.PithosDisclosurePanel;
-import gr.grnet.pithos.web.client.TreeView;
-import gr.grnet.pithos.web.client.foldertree.Folder;
-
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.resources.client.ImageResource;
 import com.google.gwt.resources.client.ImageResource.ImageOptions;
@@ -49,8 +44,13 @@ import com.google.gwt.safehtml.shared.SafeHtml;
 import com.google.gwt.user.cellview.client.CellTree;
 import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
 import com.google.gwt.user.cellview.client.TreeNode;
+import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.Tree;
+import gr.grnet.pithos.web.client.FolderContextMenu;
+import gr.grnet.pithos.web.client.PithosDisclosurePanel;
+import gr.grnet.pithos.web.client.TreeView;
+import gr.grnet.pithos.web.client.foldertree.Folder;
 
 public class MysharedTreeView extends Composite implements TreeView {
 
@@ -130,32 +130,53 @@ public class MysharedTreeView extends Composite implements TreeView {
         public SafeHtml nameSpan(String name);
       }
 
-    interface Resources extends gr.grnet.pithos.web.client.PithosDisclosurePanel.Resources {
+    interface Style extends gr.grnet.pithos.web.client.PithosDisclosurePanel.Style {
        @Override
+               String header();
+    }
+
+    interface Resources extends gr.grnet.pithos.web.client.PithosDisclosurePanel.Resources {
+               @Override
+               @Source("PithosMySharedDisclosurePanel.css")
+               Style pithosDisclosurePanelCss();
+
+               @Override
                @Source("gr/grnet/pithos/resources/sharedbyme22.png")
        ImageResource icon();
     }
 
     private MysharedTreeViewModel model;
 
+    private PithosDisclosurePanel panel;
+    
     private CellTree tree;
     
+    private CellTree.Resources res = GWT.create(BasicResources.class);
+    
     public MysharedTreeView(MysharedTreeViewModel viewModel) {
         this.model = viewModel;
         
-        PithosDisclosurePanel panel = new PithosDisclosurePanel((Resources) GWT.create(Resources.class), "Shared by me", false);
-        /*
+        panel = new PithosDisclosurePanel((Resources) GWT.create(Resources.class), "Shared by me", false, false);
+        createTree();
+
+        initWidget(panel);
+    }
+
+       /**
+        * 
+        */
+       void createTree() {
+               /*
          * Create the tree using the model. We use <code>null</code> as the default
          * value of the root node. The default value will be passed to
          * CustomTreeModel#getNodeInfo();
          */
-        CellTree.Resources res = GWT.create(BasicResources.class);
+               if (tree != null)
+                       tree.removeFromParent();
         tree = new CellTree(model, null, res);
         tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
-
-        panel.add(tree);
-        initWidget(panel);
-    }
+        panel.setContent(tree);
+       }
 
 
     @Override
@@ -163,13 +184,17 @@ public class MysharedTreeView extends Composite implements TreeView {
        return model.getSelection();
     }
 
-    public void updateFolder(Folder folder, boolean showfiles) {
-        model.updateFolder(folder, showfiles);
+    public void updateFolder(Folder folder, boolean showfiles, Command callback) {
+        model.updateFolder(folder, showfiles, callback);
     }
 
        public void updateRoot() {
-               TreeNode root = ((CellTree) getWidget()).getRootTreeNode();
-               root.setChildOpen(0, true);
-               root.setChildOpen(0, false);
+               model.initialize(new Command() {
+                               
+                               @Override
+                               public void execute() {
+                                       createTree();
+                               }
+               });
        }
 }