Partial fix for issue #2336
authorChristos Stathis <chstath@ebs.gr>
Mon, 30 Apr 2012 15:41:04 +0000 (18:41 +0300)
committerChristos Stathis <chstath@ebs.gr>
Mon, 30 Apr 2012 15:41:04 +0000 (18:41 +0300)
src/gr/grnet/pithos/web/client/PithosDisclosurePanel.java
src/gr/grnet/pithos/web/client/grouptree/GroupTreeView.java
src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java
src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeView.java

index 66c5f5f..cff566d 100644 (file)
 
 package gr.grnet.pithos.web.client;
 
-import gr.grnet.pithos.web.client.grouptree.GroupTreeView;
-import gr.grnet.pithos.web.client.grouptree.GroupTreeView.Templates;
-
-import com.google.gwt.dom.client.Style;
 import com.google.gwt.event.logical.shared.CloseEvent;
 import com.google.gwt.event.logical.shared.CloseHandler;
 import com.google.gwt.event.logical.shared.OpenEvent;
@@ -46,9 +42,6 @@ import com.google.gwt.event.logical.shared.OpenHandler;
 import com.google.gwt.resources.client.ClientBundle;
 import com.google.gwt.resources.client.CssResource;
 import com.google.gwt.resources.client.ImageResource;
-import com.google.gwt.resources.client.CssResource.ImportedWithPrefix;
-import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
-import com.google.gwt.user.client.ui.AbstractImagePrototype;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.DisclosurePanel;
 import com.google.gwt.user.client.ui.HTML;
@@ -56,7 +49,6 @@ import com.google.gwt.user.client.ui.HasHorizontalAlignment;
 import com.google.gwt.user.client.ui.HasVerticalAlignment;
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.IsWidget;
 import com.google.gwt.user.client.ui.Widget;
 
 public class PithosDisclosurePanel extends Composite {
@@ -135,8 +127,8 @@ public class PithosDisclosurePanel extends Composite {
                return header;
        }
        
-       public void add(IsWidget widget) {
-               panel.add(widget);
+       public void setContent(Widget widget) {
+               panel.setContent(widget);
                panel.getContent().removeStyleName("content");
                panel.getContent().addStyleName(resources.pithosDisclosurePanelCss().content());
        }
index 7d0ba27..b0d3bd7 100644 (file)
@@ -162,7 +162,7 @@ public class GroupTreeView extends Composite implements TreeView {
         tree = new CellTree(model, null, res);
         tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
 
-        panel.add(tree);
+        panel.setContent(tree);
         
         initWidget(panel);
     }
index f4d32c7..f651f18 100644 (file)
@@ -50,6 +50,7 @@ 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;
 
@@ -148,24 +149,36 @@ public class MysharedTreeView extends Composite implements TreeView {
 
     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);
+               if (tree != null)
+                       tree.removeFromParent();
         tree = new CellTree(model, null, res);
         tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
-
-        panel.add(tree);
-        initWidget(panel);
-    }
+        panel.setContent(tree);
+       }
 
 
     @Override
@@ -178,8 +191,12 @@ public class MysharedTreeView extends Composite implements TreeView {
     }
 
        public void updateRoot() {
-               TreeNode root = tree.getRootTreeNode();
-               root.setChildOpen(0, true);
-               root.setChildOpen(0, false);
+               model.initialize(new Command() {
+                               
+                               @Override
+                               public void execute() {
+                                       createTree();
+                               }
+               });
        }
 }
index f74bd2b..3727316 100644 (file)
@@ -157,7 +157,7 @@ public class OtherSharedTreeView extends Composite implements TreeView {
         tree = new CellTree(model, null, res);
         tree.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
 
-        panel.add(tree);
+        panel.setContent(tree);
         initWidget(panel);
     }