X-Git-Url: https://code.grnet.gr/git/pithos-web-client/blobdiff_plain/cae2a8db2f7374b3dc9308ce08981dc21b4c7284..7a8d27050a8fcd289cabb2338496308807668d13:/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java diff --git a/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java index fb64941..9c7da6f 100644 --- a/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java +++ b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeView.java @@ -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 @@ -35,25 +35,27 @@ package gr.grnet.pithos.web.client.mysharedtree; -import gr.grnet.pithos.web.client.FolderContextMenu; -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; +import com.google.gwt.resources.client.ImageResource.RepeatStyle; import com.google.gwt.safehtml.client.SafeHtmlTemplates; 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 { public void updateChildren(Folder folder) { - TreeNode root = ((CellTree) getWidget()).getRootTreeNode(); + TreeNode root = tree.getRootTreeNode(); updateChildren(root, folder); } @@ -92,6 +94,10 @@ public class MysharedTreeView extends Composite implements TreeView { @Override @Source({"gr/grnet/pithos/web/client/PithosCellTreeBasic.css"}) CellTree.Style cellTreeStyle(); + + @Source("gr/grnet/pithos/web/client/cellTreeLoadingBasic.gif") + @ImageOptions(repeatStyle=RepeatStyle.None) + ImageResource cellTreeLoadingBasic(); } public static interface Images extends Tree.Resources, FolderContextMenu.Images { @@ -99,18 +105,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(); } @@ -124,21 +130,53 @@ public class MysharedTreeView extends Composite implements TreeView { public SafeHtml nameSpan(String name); } + 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; - /* + + 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 null 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); - - initWidget(tree); - } + panel.setContent(tree); + } @Override @@ -146,14 +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.fetchSharedFiles(false); + model.initialize(new Command() { + + @Override + public void execute() { + createTree(); + } + }); } }