return account;
}
- public void updateFolder(Folder f, boolean showfiles, Command callback) {
- folderTreeView.updateFolder(f, showfiles, callback);
+ public void updateFolder(Folder f, boolean showfiles, Command callback, final boolean openParent) {
+ folderTreeView.updateFolder(f, showfiles, callback, openParent);
}
public void updateGroupNode(Group group) {
OtherSharedTreeView otherSharedTreeView = null;
GroupTreeViewModel groupTreeViewModel;
- private GroupTreeView groupTreeView;
+ GroupTreeView groupTreeView;
TreeView selectedTree;
protected AccountResource account;
public void execute() {
updateStatistics();
}
- });
+ }, true);
+ showRelevantToolbarButtons();
}
- showRelevantToolbarButtons();
+ else {
+ if (getSelectedTree().equals(folderTreeView))
+ setSelectedTree(null);
+ if (getSelectedTree() == null)
+ showRelevantToolbarButtons();
+ }
}
});
selectionModels.add(folderTreeSelectionModel);
fileList = new FileList(this, images, folderTreeView);
inner.add(fileList);
- groupTreeViewModel = new GroupTreeViewModel(this);
- groupTreeView = new GroupTreeView(groupTreeViewModel);
- treeViews.add(groupTreeView);
-
trees = new VerticalPanel();
trees.setWidth("100%");
-
- HorizontalPanel treeHeader = new HorizontalPanel();
- treeHeader.addStyleName("pithos-treeHeader");
- treeHeader.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
- treeHeader.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
- HorizontalPanel statistics = new HorizontalPanel();
- statistics.addStyleName("pithos-statistics");
- statistics.add(new HTML("Used: "));
- usedBytes = new HTML();
- statistics.add(usedBytes);
- statistics.add(new HTML(" of "));
- totalBytes = new HTML();
- statistics.add(totalBytes);
- statistics.add(new HTML(" ("));
- usedPercent = new HTML();
- statistics.add(usedPercent);
- statistics.add(new HTML(")"));
- treeHeader.add(statistics);
- treeHeader.setCellHorizontalAlignment(statistics, HasHorizontalAlignment.ALIGN_LEFT);
- trees.add(treeHeader);
-
trees.add(folderTreeView);
- trees.add(groupTreeView);
+
+ HorizontalPanel separator = new HorizontalPanel();
+ separator.addStyleName("pithos-statisticsSeparator");
+ trees.add(separator);
+
+ HorizontalPanel statistics = new HorizontalPanel();
+ statistics.addStyleName("pithos-statistics");
+ statistics.add(new HTML("Used: "));
+ usedBytes = new HTML();
+ statistics.add(usedBytes);
+ statistics.add(new HTML(" of "));
+ totalBytes = new HTML();
+ statistics.add(totalBytes);
+ statistics.add(new HTML(" ("));
+ usedPercent = new HTML();
+ statistics.add(usedPercent);
+ statistics.add(new HTML(")"));
+ trees.add(statistics);
+
// Add the left and right panels to the split panel.
splitPanel.setLeftWidget(trees);
splitPanel.setRightWidget(inner);
- splitPanel.setSplitPosition("35%");
+ splitPanel.setSplitPosition("219px");
splitPanel.setSize("100%", "100%");
splitPanel.addStyleName("pithos-splitPanel");
splitPanel.setWidth(contentWidth);
createMySharedTree();
}
});
- groupTreeViewModel.initialize();
+ groupTreeViewModel = new GroupTreeViewModel(Pithos.this);
+ groupTreeView = new GroupTreeView(groupTreeViewModel);
+ treeViews.add(groupTreeView);
+ trees.add(groupTreeView);
showStatistics();
}
}
Folder f = getSelection();
if (f != null) {
if (getSelectedTree().equals(folderTreeView))
- updateFolder(f, true, null);
+ updateFolder(f, true, null, false);
else if (getSelectedTree().equals(mysharedTreeView))
updateSharedFolder(f, true);
}
c.removeStyleName("cellTreeWidget-selectedTree");
for (SingleSelectionModel s : selectionModels)
- if (!s.equals(model))
+ if (!s.equals(model) && s.getSelectedObject() != null)
s.setSelected(s.getSelectedObject(), false);
}
* Parse and store the user credentials to the appropriate fields.
*/
private boolean parseUserCredentials() {
- username = Window.Location.getParameter("user");
- token = Window.Location.getParameter("token");
Configuration conf = (Configuration) GWT.create(Configuration.class);
Dictionary otherProperties = Dictionary.getDictionary("otherProperties");
- if (username == null || username.length() == 0 || token == null || token.length() == 0) {
- String cookie = otherProperties.get("authCookie");
- String auth = Cookies.getCookie(cookie);
- if (auth == null) {
- authenticateUser();
- return false;
- }
- if (auth.startsWith("\""))
- auth = auth.substring(1);
- if (auth.endsWith("\""))
- auth = auth.substring(0, auth.length() - 1);
- String[] authSplit = auth.split("\\" + conf.cookieSeparator(), 2);
- if (authSplit.length != 2) {
- authenticateUser();
- return false;
- }
- username = authSplit[0];
- token = authSplit[1];
+ String cookie = otherProperties.get("authCookie");
+ String auth = Cookies.getCookie(cookie);
+ if (auth == null) {
+ authenticateUser();
+ return false;
}
- else
- Cookies.setCookie(otherProperties.get("authCookie"), username + conf.cookieSeparator() + token, null, "", "/", false);
+ if (auth.startsWith("\""))
+ auth = auth.substring(1);
+ if (auth.endsWith("\""))
+ auth = auth.substring(0, auth.length() - 1);
+ String[] authSplit = auth.split("\\" + conf.cookieSeparator(), 2);
+ if (authSplit.length != 2) {
+ authenticateUser();
+ return false;
+ }
+ username = authSplit[0];
+ token = authSplit[1];
String gotoUrl = Window.Location.getParameter("goto");
if (gotoUrl != null && gotoUrl.length() > 0) {
History.newItem(key);
}
- public void deleteFolder(final Folder folder) {
+ public void deleteFolder(final Folder folder, final Command callback) {
String path = getApiPath() + folder.getOwner() + "/" + folder.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(folder.getPrefix()) + "&t=" + System.currentTimeMillis();
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path);
builder.setHeader("X-Auth-Token", getToken());
JSONArray array = json.isArray();
int i = 0;
if (array != null) {
- deleteObject(folder, i, array);
+ deleteObject(folder, i, array, callback);
}
}
}
}
}
- void deleteObject(final Folder folder, final int i, final JSONArray array) {
+ void deleteObject(final Folder folder, final int i, final JSONArray array, final Command callback) {
if (i < array.size()) {
JSONObject o = array.get(i).isObject();
if (o != null && !o.containsKey("subdir")) {
DeleteRequest delete = new DeleteRequest(getApiPath(), folder.getOwner(), URL.encode(path)) {
@Override
public void onSuccess(Resource result) {
- deleteObject(folder, i + 1, array);
+ deleteObject(folder, i + 1, array, callback);
}
@Override
array.set(l++, array2.get(j));
}
}
- deleteObject(folder, i + 1, array);
+ deleteObject(folder, i + 1, array, callback);
}
}
@Override
public void execute() {
+ folderTreeSelectionModel.setSelected(folder.getParent(), true);
updateStatistics();
+ if (callback != null)
+ callback.execute();
}
- });
+ }, true);
}
@Override
}
public void updateTrash(boolean showFiles, Command callback) {
- updateFolder(trash, showFiles, callback);
+ updateFolder(trash, showFiles, callback, true);
}
public void updateGroupsNode() {
return selectedTree;
}
+ public void setSelectedTree(TreeView selected) {
+ selectedTree = selected;
+ }
+
public Folder getSelection() {
return selectedTree.getSelection();
}
}
public void updateRootFolder(Command callback) {
- updateFolder(account.getPithos(), false, callback);
+ updateFolder(account.getPithos(), false, callback, true);
}
void createMySharedTree() {
deselectOthers(mysharedTreeView, mysharedTreeSelectionModel);
upload.setEnabled(false);
updateSharedFolder(mysharedTreeSelectionModel.getSelectedObject(), true);
+ showRelevantToolbarButtons();
}
- showRelevantToolbarButtons();
+ else {
+ if (getSelectedTree().equals(mysharedTreeView))
+ setSelectedTree(null);
+ if (getSelectedTree() == null)
+ showRelevantToolbarButtons();
+ }
}
});
selectionModels.add(mysharedTreeSelectionModel);
@Override
public void execute() {
mysharedTreeView = new MysharedTreeView(mysharedTreeViewModel);
- trees.insert(mysharedTreeView, 2);
+ trees.insert(mysharedTreeView, 3);
treeViews.add(mysharedTreeView);
createOtherSharedTree();
}
otherSharedTreeView.addStyleName("cellTreeWidget-selectedTree");
applyPermissions(otherSharedTreeSelectionModel.getSelectedObject());
updateOtherSharedFolder(otherSharedTreeSelectionModel.getSelectedObject(), true);
+ showRelevantToolbarButtons();
}
- showRelevantToolbarButtons();
+ else {
+ if (getSelectedTree().equals(otherSharedTreeView))
+ setSelectedTree(null);
+ if (getSelectedTree() == null)
+ showRelevantToolbarButtons();
+ }
}
});
selectionModels.add(otherSharedTreeSelectionModel);