From: Christos Stathis Date: Fri, 18 May 2012 16:11:07 +0000 (+0300) Subject: Added upload alert when droping files in the app and select the uploaded files at... X-Git-Tag: 0.14rc1~103 X-Git-Url: https://code.grnet.gr/git/pithos-web-client/commitdiff_plain/3646552fc41ec407aee105580027082d5ba7beb8 Added upload alert when droping files in the app and select the uploaded files at the end --- diff --git a/src/gr/grnet/pithos/resources/close-popup.png b/src/gr/grnet/pithos/resources/close-popup.png new file mode 100644 index 0000000..4791b32 Binary files /dev/null and b/src/gr/grnet/pithos/resources/close-popup.png differ diff --git a/src/gr/grnet/pithos/web/client/FileList.java b/src/gr/grnet/pithos/web/client/FileList.java index 0e5e54d..d927970 100644 --- a/src/gr/grnet/pithos/web/client/FileList.java +++ b/src/gr/grnet/pithos/web/client/FileList.java @@ -44,6 +44,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; +import java.util.Set; import com.google.gwt.cell.client.Cell.Context; import com.google.gwt.cell.client.ImageResourceCell; @@ -665,4 +666,19 @@ public class FileList extends Composite { else if (callback != null) callback.execute(); } + + public void selectByUrl(List selectedUrls) { + Set previous = selectionModel.getSelectedSet(); + for (File f : previous) + selectionModel.setSelected(f, false); + + int i = 0; + for (File f : files) { + if (selectedUrls.contains(app.getApiPath() + f.getOwner() + f.getUri())) { + selectionModel.setSelected(f, true); + celltable.getRowElement(i).scrollIntoView(); + } + i++; + } + } } diff --git a/src/gr/grnet/pithos/web/client/FileUploadDialog.java b/src/gr/grnet/pithos/web/client/FileUploadDialog.java index 1457ef8..ba778d6 100644 --- a/src/gr/grnet/pithos/web/client/FileUploadDialog.java +++ b/src/gr/grnet/pithos/web/client/FileUploadDialog.java @@ -170,7 +170,7 @@ public class FileUploadDialog extends DialogBox { } }, true); else - app.updateOtherSharedFolder(folder, true); + app.updateOtherSharedFolder(folder, true, null); } native void setupUpload(FileUploadDialog dlg, Pithos app, String token) /*-{ @@ -206,10 +206,11 @@ public class FileUploadDialog extends DialogBox { var uri = folder.@gr.grnet.pithos.web.client.foldertree.Folder::getUri()(); var path = api + owner + uri; for (var j=0; j selectedUrls = new ArrayList(); + for (int i=0; i 1 ? "files are" : "file is") + " being uploaded"; + content.add(new HTML(label)); + Anchor a = new Anchor("Click for details"); + a.addStyleName(Pithos.resources.pithosCss().uploadAlertLink()); + a.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + app.getFileUploadDialog().center(); + } + }); + content.add(a); + Image close = new Image(Pithos.resources.closePopup()); + close.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + hide(); + } + }); + close.addStyleName(Pithos.resources.pithosCss().uploadAlertClose()); + content.add(close); + add(content); + } +} diff --git a/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeView.java b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeView.java index 33491dc..d28b45c 100644 --- a/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeView.java +++ b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeView.java @@ -49,6 +49,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; @@ -175,7 +176,7 @@ public class OtherSharedTreeView 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); } } diff --git a/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java index d7df929..b2ba2aa 100644 --- a/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java @@ -156,7 +156,7 @@ public class OtherSharedTreeViewModel implements TreeViewModel { dataProviderMap.put(f, new ListDataProvider()); } final ListDataProvider dataProvider = dataProviderMap.get(f); - fetchFolder(f, dataProvider, false); + fetchFolder(f, dataProvider, false, null); return new DefaultNodeInfo(dataProvider, folderCell, selectionModel, null); } } @@ -305,15 +305,15 @@ public class OtherSharedTreeViewModel implements TreeViewModel { return selectionModel.getSelectedObject(); } - public void updateFolder(Folder folder, boolean showfiles) { + public void updateFolder(Folder folder, boolean showfiles, Command callback) { if (dataProviderMap.get(folder) == null) { dataProviderMap.put(folder, new ListDataProvider()); } final ListDataProvider dataProvider = dataProviderMap.get(folder); - fetchFolder(folder, dataProvider, showfiles); + fetchFolder(folder, dataProvider, showfiles, callback); } - public void fetchFolder(final Folder f, final ListDataProvider dataProvider, final boolean showfiles) { + public void fetchFolder(final Folder f, final ListDataProvider dataProvider, final boolean showfiles, final Command callback) { String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix()); GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), f.getOwner(), path, f) { @Override @@ -327,6 +327,8 @@ public class OtherSharedTreeViewModel implements TreeViewModel { dataProvider.getList().clear(); dataProvider.getList().addAll(_result.getSubfolders()); app.getOtherSharedTreeView().updateChildren(f); + if (callback != null) + callback.execute(); } }); }