protected ListDataProvider<Folder> rootDataProvider = new ListDataProvider<Folder>();
- private Map<Folder, AsyncDataProvider<Folder>> dataProviderMap = new HashMap<Folder, AsyncDataProvider<Folder>>();
+ private Map<Folder, ListDataProvider<Folder>> dataProviderMap = new HashMap<Folder, ListDataProvider<Folder>>();
protected SingleSelectionModel<Folder> selectionModel;
}
final Folder f = (Folder) value;
if (dataProviderMap.get(f) == null) {
- dataProviderMap.put(f, new AsyncDataProvider<Folder>() {
-
- @Override
- protected void onRangeChanged(HasData<Folder> display) {
- fetchFolder(f, this, false, null);
- }
- });
+ dataProviderMap.put(f, new ListDataProvider<Folder>());
}
- final AsyncDataProvider<Folder> dataProvider = dataProviderMap.get(f);
+ final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f);
+ dataProvider.getList().clear();
+ dataProvider.getList().addAll(f.getSubfolders());
+ fetchFolder(f, dataProvider, false, null);
return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
}
return selectionModel.getSelectedObject();
}
- public void updateFolder(final Folder folder, final boolean showfiles, final Command callback) {
+ public void updateFolder(final Folder folder, boolean showfiles, final Command callback) {
if (dataProviderMap.get(folder) == null) {
- dataProviderMap.put(folder, new AsyncDataProvider<Folder>() {
-
- @Override
- protected void onRangeChanged(HasData<Folder> display) {
- fetchFolder(folder, this, showfiles, null);
- }
- });
+ dataProviderMap.put(folder, new ListDataProvider<Folder>());
}
- final AsyncDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
+ final ListDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
fetchFolder(folder, dataProvider, showfiles, new Command() {
@Override
});
}
- public void fetchFolder(final Folder f, final AsyncDataProvider<Folder> dataProvider, final boolean showfiles, final Command callback) {
+ public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider, final boolean showfiles, final Command callback) {
String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix());
GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, f) {
@Override
fetchFolder(iter, new Command() {
@Override
public void execute() {
- dataProvider.updateRowCount(_result.getSubfolders().size(), true);
- dataProvider.updateRowData(0, new ArrayList<Folder>(_result.getSubfolders()));
+ dataProvider.getList().clear();
+ dataProvider.getList().addAll(_result.getSubfolders());
// app.getFolderTreeView().updateChildren(f);
if (callback != null)
callback.execute();
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.HashSet;
import java.util.Iterator;
import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.google.gwt.view.client.AsyncDataProvider;
-import com.google.gwt.view.client.HasData;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
}
};
- boolean hasSharedFolders = false;
- protected AsyncDataProvider<Folder> firstLevelDataProvider = new AsyncDataProvider<Folder>() {
+ protected ListDataProvider<Folder> firstLevelDataProvider = new ListDataProvider<Folder>();
- @Override
- protected void onRangeChanged(HasData<Folder> display) {
- fetchSharedContainers(null);
- }
- };
-
- private Map<Folder, AsyncDataProvider<Folder>> dataProviderMap = new HashMap<Folder, AsyncDataProvider<Folder>>();
+ private Map<Folder, ListDataProvider<Folder>> dataProviderMap = new HashMap<Folder, ListDataProvider<Folder>>();
protected Set<File> sharedFiles = new HashSet<File>();
}), selectionModel2, null);
}
else if (value instanceof String) {
-// fetchSharedContainers(null);
+ fetchSharedContainers(null);
return new DefaultNodeInfo<Folder>(firstLevelDataProvider, folderCell, selectionModel, null);
}
else {
final Folder f = (Folder) value;
if (dataProviderMap.get(f) == null) {
- dataProviderMap.put(f, new AsyncDataProvider<Folder>() {
-
- @Override
- protected void onRangeChanged(HasData<Folder> display) {
- fetchFolder(f, this, false);
- }
- });
+ dataProviderMap.put(f, new ListDataProvider<Folder>());
}
- final AsyncDataProvider<Folder> dataProvider = dataProviderMap.get(f);
+ final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f);
+ fetchFolder(f, dataProvider, false);
return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
}
}
protected void fetchSharedFiles() {
final List<Folder> containers = app.getAccount().getContainers();
- final List<Folder> tempProvider = new ArrayList<Folder>();
+ final ListDataProvider<Folder> tempProvider = new ListDataProvider<Folder>();
Iterator<Folder> iter = containers.iterator();
fetchFolder(iter, tempProvider, new Command() {
@Override
public void execute() {
- firstLevelDataProvider.updateRowCount(tempProvider.size(), true);
- firstLevelDataProvider.updateRowData(0, tempProvider);
- hasSharedFolders = tempProvider.size() > 0;
+ firstLevelDataProvider.getList().clear();
+ firstLevelDataProvider.getList().addAll(tempProvider.getList());
app.showFiles(sharedFiles);
}
});
private void fetchSharedContainers(final Command callback) {
final List<Folder> containers = app.getAccount().getContainers();
- final List<Folder> tempProvider = new ArrayList<Folder>();
+ final ListDataProvider<Folder> tempProvider = new ListDataProvider<Folder>();
Iterator<Folder> iter = containers.iterator();
fetchFolder(iter, tempProvider, new Command() {
@Override
public void execute() {
- firstLevelDataProvider.updateRowCount(tempProvider.size(), true);
- firstLevelDataProvider.updateRowData(0, tempProvider);
- hasSharedFolders = tempProvider.size() > 0;
+ firstLevelDataProvider.getList().clear();
+ firstLevelDataProvider.getList().addAll(tempProvider.getList());
if (callback != null)
callback.execute();
}
return f.getSubfolders().isEmpty();
}
else {
- return !hasSharedFolders;
+ return firstLevelDataProvider.getList().isEmpty();
}
}
- protected void fetchFolder(final Iterator<Folder> iter, final List<Folder> dataProvider, final Command callback) {
+ protected void fetchFolder(final Iterator<Folder> iter, final ListDataProvider<Folder> dataProvider, final Command callback) {
if (iter.hasNext()) {
final Folder f = iter.next();
});
}
else {
- dataProvider.add(_result);
+ dataProvider.getList().add(_result);
fetchFolder(iter, dataProvider, callback);
}
}
return selectionModel.getSelectedObject();
}
- public void updateFolder(final Folder folder, final boolean showfiles) {
+ public void updateFolder(Folder folder, boolean showfiles) {
if (dataProviderMap.get(folder) == null) {
- dataProviderMap.put(folder, new AsyncDataProvider<Folder>() {
-
- @Override
- protected void onRangeChanged(HasData<Folder> display) {
- fetchFolder(folder, this, showfiles);
- }
- });
+ dataProviderMap.put(folder, new ListDataProvider<Folder>());
}
- final AsyncDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
+ final ListDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
fetchFolder(folder, dataProvider, showfiles);
}
- public void fetchFolder(final Folder f, final AsyncDataProvider<Folder> dataProvider, final boolean showfiles) {
+ public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider, final boolean showfiles) {
String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix());
GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, f) {
@Override
if (showfiles)
app.showFiles(_result);
Iterator<Folder> iter = _result.getSubfolders().iterator();
- final List<Folder> temp = new ArrayList<Folder>();
- fetchFolder(iter, temp, new Command() {
+ fetchFolder(iter, dataProvider, new Command() {
@Override
public void execute() {
- dataProvider.updateRowCount(_result.getSubfolders().size(), true);
- dataProvider.updateRowData(0, new ArrayList<Folder>(_result.getSubfolders()));
+ dataProvider.getList().clear();
+ dataProvider.getList().addAll(_result.getSubfolders());
app.getMySharedTreeView().updateChildren(f);
}
});