safeHtmlBuilder.appendHtmlConstant(html).appendHtmlConstant(" ");
safeHtmlBuilder.append(Templates.INSTANCE.nameSpan(folder.getName()));
}
-
- @Override
- public void onBrowserEvent(Context context, com.google.gwt.dom.client.Element parent, final Folder folder, com.google.gwt.dom.client.NativeEvent event, ValueUpdater<Folder> valueUpdater) {
- if (event.getType().equals(ContextMenuEvent.getType().getName())) {
- final int x = event.getClientX();
- final int y = event.getClientY();
- MysharedTreeViewModel.this.selectionModel.setSelected(folder, true);
- app.scheduleFolderHeadCommand(folder, new Command() {
-
- @Override
- public void execute() {
- FolderContextMenu menu = new FolderContextMenu(app, MysharedTreeView.images, app.getSelectedTree(), folder);
- menu.setPopupPosition(x, y);
- menu.show();
- }
- });
- }
- }
};
protected ListDataProvider<Folder> firstLevelDataProvider = new ListDataProvider<Folder>();
-
- private Map<Folder, ListDataProvider<Folder>> dataProviderMap = new HashMap<Folder, ListDataProvider<Folder>>();
-
+
protected SingleSelectionModel<Folder> selectionModel;
public MysharedTreeViewModel(Pithos _app, SingleSelectionModel<Folder> selectionModel) {
fetchSharedContainers(null);
return new DefaultNodeInfo<Folder>(firstLevelDataProvider, folderCell, selectionModel, null);
}
- final Folder f = (Folder) value;
- if (dataProviderMap.get(f) == null) {
- dataProviderMap.put(f, new ListDataProvider<Folder>());
- }
- final ListDataProvider<Folder> dataProvider = dataProviderMap.get(f);
- fetchFolder(f, dataProvider, false);
- return new DefaultNodeInfo<Folder>(dataProvider, folderCell, selectionModel, null);
+ return null;
}
private void fetchSharedContainers(final Command callback) {
GetRequest<AccountResource> getAccount = new GetRequest<AccountResource>(AccountResource.class, app.getApiPath(), app.getUsername(), path) {
@Override
public void onSuccess(final AccountResource _result) {
- Iterator<Folder> iter = _result.getContainers().listIterator();
- fetchFolder(iter, new Command() {
-
- @Override
- public void execute() {
- firstLevelDataProvider.getList().clear();
- Folder t = null;
- for (Folder c : _result.getContainers()) {
- if (c.isHome())
- firstLevelDataProvider.getList().add(0, c); //Pithos is always first
- else if (!c.isTrash())
- firstLevelDataProvider.getList().add(c);
- }
- if (callback != null)
- callback.execute();
- }
- });
+ firstLevelDataProvider.getList().clear();
+ Folder t = null;
+ for (Folder c : _result.getContainers()) {
+ if (c.isHome())
+ firstLevelDataProvider.getList().add(0, c); //Pithos is always first
+ else if (!c.isTrash())
+ firstLevelDataProvider.getList().add(c);
+ }
+ if (callback != null)
+ callback.execute();
}
@Override
public boolean isLeaf(Object o) {
if (o == null)
return false;
- else if (o instanceof Folder) {
- Folder f = (Folder) o;
- return f.getSubfolders().isEmpty();
- }
- else {
- return firstLevelDataProvider.getList().isEmpty();
- }
+ return true;
}
private native void log(String msg) /*-{
}
public void updateFolder(Folder folder, boolean showfiles) {
- if (dataProviderMap.get(folder) == null) {
- dataProviderMap.put(folder, new ListDataProvider<Folder>());
- }
- final ListDataProvider<Folder> dataProvider = dataProviderMap.get(folder);
- fetchFolder(folder, dataProvider, showfiles);
+ fetchFolder(folder,showfiles);
}
- public void fetchFolder(final Folder f, final ListDataProvider<Folder> dataProvider, final boolean showfiles) {
- String path = "/" + f.getContainer() + "?format=json&shared=&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix());
- GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, f) {
+ public void fetchFolder(final Folder f, final boolean showfiles) {
+ String path = "/" + f.getContainer() + "?format=json&shared=" + URL.encodeQueryString(f.getPrefix());
+ GetRequest<Folder> getFolder = new GetRequest<Folder>(Folder.class, app.getApiPath(), f.getOwner(), path, null) {
@Override
public void onSuccess(final Folder _result) {
if (showfiles)
app.showFiles(_result);
- Iterator<Folder> iter = new ArrayList<Folder>(_result.getSubfolders()).listIterator();
- fetchFolder(iter, new Command() {
- @Override
- public void execute() {
- dataProvider.getList().clear();
- dataProvider.getList().addAll(_result.getSubfolders());
- app.getMySharedTreeView().updateChildren(f);
- }
- });
}
@Override