Use display name to add a user to a group
[pithos-web-client] / src / gr / grnet / pithos / web / client / mysharedtree / MysharedTreeView.java
index e2fdeed..91578b8 100644 (file)
@@ -42,6 +42,7 @@ 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.ClientBundle.Source;
 import com.google.gwt.resources.client.ImageResource.ImageOptions;
 import com.google.gwt.resources.client.ImageResource.RepeatStyle;
 import com.google.gwt.safehtml.client.SafeHtmlTemplates;
@@ -49,13 +50,14 @@ 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;
 
 public class MysharedTreeView extends Composite implements TreeView {
 
     public void updateChildren(Folder folder) {
-        TreeNode root = ((CellTree) getWidget()).getRootTreeNode();
+        TreeNode root = tree.getRootTreeNode();
         updateChildren(root, folder);
     }
 
@@ -105,18 +107,18 @@ public class MysharedTreeView extends Composite implements TreeView {
         @Source("gr/grnet/pithos/resources/home22.png")
         ImageResource home();
 
-        @Source("gr/grnet/pithos/resources/folder22.png")
+        @Source("gr/grnet/pithos/resources/2folder22.png")
         public ImageResource folderYellow();
 
         @Source("gr/grnet/pithos/resources/mimetypes/document.png")
         ImageResource document();
 
-        @Source("gr/grnet/pithos/resources/othersshared.png")
-        ImageResource othersShared();
-
         @Source("gr/grnet/pithos/resources/myshared22.png")
         ImageResource myShared();
 
+        @Source("gr/grnet/pithos/resources/sharedbyme22.png")
+        ImageResource sharedByMe();
+
         @Source("gr/grnet/pithos/resources/folder_user.png")
         ImageResource sharedFolder();
     }
@@ -130,30 +132,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
-               @Source("gr/grnet/pithos/resources/myshared22.png")
+               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);
+        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);
-        CellTree tree = new CellTree(model, null, res);
+               if (tree != null)
+                       tree.removeFromParent();
+        tree = new CellTree(model, null, res);
         tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
-
-        panel.add(tree);
-        initWidget(panel);
-    }
+        panel.setContent(tree);
+       }
 
 
     @Override
@@ -161,13 +186,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();
+                               }
+               });
        }
 }