X-Git-Url: https://code.grnet.gr/git/pithos-web-client/blobdiff_plain/ebead1b508364bfa1154e40773c659bc61dc87cf..a2f617f89274e5bd069ee9e7cb99d37c80b8212c:/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java diff --git a/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java index 19cd69e..5035473 100644 --- a/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2011 GRNET S.A. All rights reserved. + * Copyright 2011-2012 GRNET S.A. All rights reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following @@ -41,6 +41,7 @@ import gr.grnet.pithos.web.client.foldertree.FolderTreeView.Templates; import gr.grnet.pithos.web.client.rest.GetRequest; import gr.grnet.pithos.web.client.rest.RestException; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -87,12 +88,20 @@ public class FolderTreeViewModel implements TreeViewModel { } @Override - public void onBrowserEvent(Cell.Context context, com.google.gwt.dom.client.Element parent, Folder folder, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater valueUpdater) { + public void onBrowserEvent(Cell.Context context, com.google.gwt.dom.client.Element parent, final Folder folder, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater valueUpdater) { if (event.getType().equals(ContextMenuEvent.getType().getName())) { + final int x = event.getClientX(); + final int y = event.getClientY(); FolderTreeViewModel.this.selectionModel.setSelected(folder, true); - FolderContextMenu menu = new FolderContextMenu(app, FolderTreeView.images, app.getSelectedTree(), folder); - menu.setPopupPosition(event.getClientX(), event.getClientY()); - menu.show(); + app.scheduleFolderHeadCommand(folder, new Command() { + + @Override + public void execute() { + FolderContextMenu menu = new FolderContextMenu(app, FolderTreeView.images, app.getSelectedTree(), folder); + menu.setPopupPosition(x, y); + menu.show(); + } + }); } } }; @@ -136,6 +145,10 @@ public class FolderTreeViewModel implements TreeViewModel { return false; } + private native void log(String msg) /*-{ + $wnd.console.log(msg); + }-*/; + protected void fetchFolder(final Iterator iter, final Command callback) { if (iter.hasNext()) { final Folder f = iter.next(); @@ -170,7 +183,7 @@ public class FolderTreeViewModel implements TreeViewModel { } public void initialize(final AccountResource account, final Command callback) { - Iterator iter = account.getContainers().iterator(); + Iterator iter = account.getContainers().listIterator(); fetchFolder(iter, new Command() { @Override public void execute() { @@ -220,7 +233,7 @@ public class FolderTreeViewModel implements TreeViewModel { public void onSuccess(final Folder _result) { if (showfiles) app.showFiles(_result); - Iterator iter = _result.getSubfolders().iterator(); + Iterator iter = new ArrayList(_result.getSubfolders()).listIterator(); fetchFolder(iter, new Command() { @Override public void execute() {