From dc8cc18a117d8e094a6aef5d1c343f4a14625628 Mon Sep 17 00:00:00 2001 From: Christos KK Loverdos Date: Fri, 8 Feb 2013 15:57:03 +0200 Subject: [PATCH] Revert "Work in progress. Do not rely on this commit" This reverts commit ee77dbf16f524824e3c0337a04984caa84a12231. --- src/gr/grnet/pithos/web/client/AddUserDialog.java | 50 +--- src/gr/grnet/pithos/web/client/Const.java | 7 - .../grnet/pithos/web/client/DeleteFileDialog.java | 2 +- src/gr/grnet/pithos/web/client/FeedbackDialog.java | 2 +- .../pithos/web/client/FilePermissionsDialog.java | 4 +- .../pithos/web/client/FilePropertiesDialog.java | 4 +- .../grnet/pithos/web/client/FilePublishDialog.java | 4 +- .../pithos/web/client/FileVersionsDialog.java | 2 +- .../pithos/web/client/FolderPermissionsDialog.java | 4 +- .../pithos/web/client/FolderPropertiesDialog.java | 2 +- .../grnet/pithos/web/client/GroupCreateDialog.java | 230 +++++++-------- .../grnet/pithos/web/client/PermissionsList.java | 8 +- src/gr/grnet/pithos/web/client/Pithos.java | 49 ++-- src/gr/grnet/pithos/web/client/Resource.java | 4 +- src/gr/grnet/pithos/web/client/VersionsList.java | 2 +- .../web/client/catalog/UpdateUserCatalogs.java | 4 - .../pithos/web/client/catalog/UserCatalogs.java | 14 +- .../web/client/commands/DeleteGroupCommand.java | 7 +- .../pithos/web/client/commands/PasteCommand.java | 2 +- .../web/client/commands/RemoveUserCommand.java | 143 +++++---- .../web/client/commands/RestoreTrashCommand.java | 2 +- .../pithos/web/client/commands/ToTrashCommand.java | 2 +- .../web/client/foldertree/AccountResource.java | 303 ++++++++------------ .../web/client/foldertree/FolderTreeViewModel.java | 4 +- .../grnet/pithos/web/client/grouptree/Group.java | 42 +-- .../web/client/grouptree/GroupTreeViewModel.java | 259 ++++++++--------- src/gr/grnet/pithos/web/client/grouptree/User.java | 60 +--- .../client/mysharedtree/MysharedTreeViewModel.java | 6 +- .../othersharedtree/OtherSharedTreeViewModel.java | 8 +- .../pithos/web/client/rest/DeleteRequest.java | 8 +- .../grnet/pithos/web/client/rest/GetRequest.java | 18 +- .../grnet/pithos/web/client/rest/HeadRequest.java | 16 +- .../grnet/pithos/web/client/rest/PostRequest.java | 11 +- .../grnet/pithos/web/client/rest/PutRequest.java | 8 +- .../web/client/tagtree/TagTreeViewModel.java | 2 +- 35 files changed, 548 insertions(+), 745 deletions(-) diff --git a/src/gr/grnet/pithos/web/client/AddUserDialog.java b/src/gr/grnet/pithos/web/client/AddUserDialog.java index 9dcffd1..407dfe7 100644 --- a/src/gr/grnet/pithos/web/client/AddUserDialog.java +++ b/src/gr/grnet/pithos/web/client/AddUserDialog.java @@ -45,10 +45,7 @@ import com.google.gwt.http.client.Response; import com.google.gwt.http.client.URL; import com.google.gwt.user.client.Event.NativePreviewEvent; import com.google.gwt.user.client.ui.*; -import gr.grnet.pithos.web.client.catalog.UpdateUserCatalogs; -import gr.grnet.pithos.web.client.catalog.UserCatalogs; import gr.grnet.pithos.web.client.grouptree.Group; -import gr.grnet.pithos.web.client.grouptree.User; import gr.grnet.pithos.web.client.rest.PostRequest; import gr.grnet.pithos.web.client.rest.RestException; @@ -63,7 +60,7 @@ public class AddUserDialog extends DialogBox { /** * The widget that holds the folderName of the folder. */ - TextBox userDisplayNameTextBox = new TextBox(); + TextBox userName = new TextBox(); final VerticalPanel inner; @@ -104,7 +101,7 @@ public class AddUserDialog extends DialogBox { FlexTable generalTable = new FlexTable(); generalTable.setText(0, 0, "Username"); - generalTable.setWidget(0, 1, userDisplayNameTextBox); + generalTable.setWidget(0, 1, userName); generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels"); generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values"); @@ -134,7 +131,7 @@ public class AddUserDialog extends DialogBox { @Override public void center() { super.center(); - userDisplayNameTextBox.setFocus(true); + userName.setFocus(true); } @Override @@ -172,43 +169,19 @@ public class AddUserDialog extends DialogBox { * Generate an RPC request to create a new folder. */ void addUser() { - final String userDisplayName = userDisplayNameTextBox.getText().trim(); - if(userDisplayName.length() == 0) { + String name = userName.getText().trim(); + if(name.length() == 0) { return; } - if(!Const.EMAIL_REGEX.test(userDisplayName)) { + if(!Const.EMAIL_REGEX.test(name)) { app.displayWarning("Username must be a valid email address"); return; } - // Now get the userID - final String userID = app.getUserIDForDisplayName(userDisplayName); - if(userID != null) { - doAddUser(userID, userDisplayName); - } - else { - // Must call server to obtain userID - new UpdateUserCatalogs(app, null, Helpers.toList(userDisplayName)) { - @Override - public void onSuccess(UserCatalogs requestedUserCatalogs, UserCatalogs updatedUserCatalogs) { - final String userID = updatedUserCatalogs.getUserID(userDisplayName); - if(userID != null) { - doAddUser(userID, userDisplayName); - } - else { - app.displayError("Unknown user " + userDisplayName); - } - } - }.scheduleDeferred(); - } - } + group.addMember(name); + String path = "?update="; + PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) { - private void doAddUser(String userID, String userDisplayName) { - final User newUser = new User(userID, userDisplayName, group.getName()); - app.LOG("doAddUser() ", newUser); - group.addUser(newUser); - final String path = "?update="; - PostRequest updateGroup = new PostRequest(app, app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(Resource result) { app.updateGroupNode(group); @@ -232,7 +205,10 @@ public class AddUserDialog extends DialogBox { } }; updateGroup.setHeader(Const.X_AUTH_TOKEN, app.getUserToken()); - final String groupMembers = group.encodeUserIDsForXAccountGroup(); + String groupMembers = ""; + for(String u : group.getMembers()) { + groupMembers += (URL.encodePathSegment(u) + ","); + } updateGroup.setHeader(Const.X_ACCOUNT_GROUP_ + URL.encodePathSegment(group.getName()), groupMembers); Scheduler.get().scheduleDeferred(updateGroup); } diff --git a/src/gr/grnet/pithos/web/client/Const.java b/src/gr/grnet/pithos/web/client/Const.java index 11589cc..f87dd3c 100644 --- a/src/gr/grnet/pithos/web/client/Const.java +++ b/src/gr/grnet/pithos/web/client/Const.java @@ -23,13 +23,6 @@ public class Const { public static final String TRASH_CONTAINER = "trash"; public static final RegExp EMAIL_REGEX = RegExp.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+[.][A-Z]{2,4}$", "i"); public static final String X_ACCOUNT_GROUP_ = "X-Account-Group-"; - public static final String X_ACCOUNT_CONTAINER_COUNT = "X-Account-Container-Count"; - public static final String X_ACCOUNT_OBJECT_COUNT = "X-Account-Object-Count"; - public static final String X_ACCOUNT_BYTES_USED = "X-Account-Bytes-Used"; - public static final String X_ACCOUNT_POLICY_QUOTA = "X-Account-Policy-Quota"; - public static final String X_ACCOUNT_LAST_LOGIN = "X-Account-Last-Login"; - public static final String LAST_MODIFIED = "Last-Modified"; - public static final String NUMBER_FORMAT_1 = "######.#"; private Const() {} diff --git a/src/gr/grnet/pithos/web/client/DeleteFileDialog.java b/src/gr/grnet/pithos/web/client/DeleteFileDialog.java index dfecfab..ffbacdd 100644 --- a/src/gr/grnet/pithos/web/client/DeleteFileDialog.java +++ b/src/gr/grnet/pithos/web/client/DeleteFileDialog.java @@ -135,7 +135,7 @@ public class DeleteFileDialog extends DialogBox { if (iter.hasNext()) { File f = iter.next(); String path = f.getUri(); - DeleteRequest deleteFile = new DeleteRequest(app, app.getApiPath(), f.getOwnerID(), URL.encode(path)) { + DeleteRequest deleteFile = new DeleteRequest(app.getApiPath(), f.getOwnerID(), URL.encode(path)) { @Override public void onSuccess(Resource result) { deleteFile(iter); diff --git a/src/gr/grnet/pithos/web/client/FeedbackDialog.java b/src/gr/grnet/pithos/web/client/FeedbackDialog.java index 5c85235..0461def 100644 --- a/src/gr/grnet/pithos/web/client/FeedbackDialog.java +++ b/src/gr/grnet/pithos/web/client/FeedbackDialog.java @@ -140,7 +140,7 @@ public class FeedbackDialog extends DialogBox { */ void sendFeedback() { final String feedbackURL = otherProperties.get("feedbackUrl"); - PostRequest sendFeedback = new PostRequest(app, "", "", feedbackURL, "feedback_msg=" + msg.getText() + "&feedback_data=" + appData + "&auth=" + app.getUserToken()) { + PostRequest sendFeedback = new PostRequest("", "", feedbackURL, "feedback_msg=" + msg.getText() + "&feedback_data=" + appData + "&auth=" + app.getUserToken()) { @Override protected void onUnauthorized(Response response) { diff --git a/src/gr/grnet/pithos/web/client/FilePermissionsDialog.java b/src/gr/grnet/pithos/web/client/FilePermissionsDialog.java index dac21b9..49a9a9a 100644 --- a/src/gr/grnet/pithos/web/client/FilePermissionsDialog.java +++ b/src/gr/grnet/pithos/web/client/FilePermissionsDialog.java @@ -262,10 +262,10 @@ public class FilePermissionsDialog extends AbstractPropertiesDialog { protected void updateMetaData(String api, String owner, final String path, final Map newPermissions) { if (newPermissions != null) { - PostRequest updateFile = new PostRequest(app, api, owner, path) { + PostRequest updateFile = new PostRequest(api, owner, path) { @Override public void onSuccess(Resource result) { - HeadRequest headFile = new HeadRequest(app, File.class, app.getApiPath(), file.getOwnerID(), path, file) { + HeadRequest headFile = new HeadRequest(File.class, app.getApiPath(), file.getOwnerID(), path, file) { @Override public void onSuccess(File _result) { diff --git a/src/gr/grnet/pithos/web/client/FilePropertiesDialog.java b/src/gr/grnet/pithos/web/client/FilePropertiesDialog.java index 6bb542f..4161b90 100644 --- a/src/gr/grnet/pithos/web/client/FilePropertiesDialog.java +++ b/src/gr/grnet/pithos/web/client/FilePropertiesDialog.java @@ -261,7 +261,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog { if (newFilename != null) { final String path = file.getParent().getUri() + "/" + newFilename; - PutRequest updateFile = new PutRequest(app, app.getApiPath(), app.getUserID(), path) { + PutRequest updateFile = new PutRequest(app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(Resource result) { updateMetaData(app.getApiPath(), file.getOwnerID(), path, newMeta); @@ -319,7 +319,7 @@ public class FilePropertiesDialog extends AbstractPropertiesDialog { protected void updateMetaData(final String api, final String owner, final String path, Map newMeta) { if (newMeta != null) { - PostRequest updateFile = new PostRequest(app, api, owner, path + "?update=") { + PostRequest updateFile = new PostRequest(api, owner, path + "?update=") { @Override public void onSuccess(Resource result) { if (!app.isMySharedSelected()) diff --git a/src/gr/grnet/pithos/web/client/FilePublishDialog.java b/src/gr/grnet/pithos/web/client/FilePublishDialog.java index eca3581..b074f01 100644 --- a/src/gr/grnet/pithos/web/client/FilePublishDialog.java +++ b/src/gr/grnet/pithos/web/client/FilePublishDialog.java @@ -230,10 +230,10 @@ public class FilePublishDialog extends AbstractPropertiesDialog { protected void updateMetaData(String api, String owner, final String path, final Boolean published) { if (published != null) { - PostRequest updateFile = new PostRequest(app, api, owner, path) { + PostRequest updateFile = new PostRequest(api, owner, path) { @Override public void onSuccess(Resource result) { - HeadRequest headFile = new HeadRequest(app, File.class, app.getApiPath(), file.getOwnerID(), path, file) { + HeadRequest headFile = new HeadRequest(File.class, app.getApiPath(), file.getOwnerID(), path, file) { @Override public void onSuccess(File _result) { diff --git a/src/gr/grnet/pithos/web/client/FileVersionsDialog.java b/src/gr/grnet/pithos/web/client/FileVersionsDialog.java index ea5569f..2a2fa79 100644 --- a/src/gr/grnet/pithos/web/client/FileVersionsDialog.java +++ b/src/gr/grnet/pithos/web/client/FileVersionsDialog.java @@ -146,7 +146,7 @@ public class FileVersionsDialog extends AbstractPropertiesDialog { protected void fetchVersions() { String path = file.getUri() + "?format=json&version=list"; - GetRequest getVersions = new GetRequest(app, FileVersions.class, app.getApiPath(), file.getOwnerID(), path) { + GetRequest getVersions = new GetRequest(FileVersions.class, app.getApiPath(), file.getOwnerID(), path) { @Override public void onSuccess(FileVersions _result) { diff --git a/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java b/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java index 18dfb24..77389e7 100644 --- a/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java +++ b/src/gr/grnet/pithos/web/client/FolderPermissionsDialog.java @@ -215,7 +215,7 @@ public class FolderPermissionsDialog extends DialogBox { protected void updateMetadata(final String path, final Map newPermissions) { if (newPermissions != null) { - PostRequest updateFolder = new PostRequest(app, app.getApiPath(), folder.getOwnerID(), path) { + PostRequest updateFolder = new PostRequest(app.getApiPath(), folder.getOwnerID(), path) { @Override public void onSuccess(Resource result) { app.updateFolder(folder.getParent(), false, new Command() { @@ -234,7 +234,7 @@ public class FolderPermissionsDialog extends DialogBox { if (t instanceof RestException) { if (((RestException) t).getHttpStatusCode() == Response.SC_NOT_FOUND) { //Probably a virtual folder final String path1 = folder.getUri(); - PutRequest newFolder = new PutRequest(app, app.getApiPath(), folder.getOwnerID(), path1) { + PutRequest newFolder = new PutRequest(app.getApiPath(), folder.getOwnerID(), path1) { @Override public void onSuccess(Resource result) { updateMetadata(path, newPermissions); diff --git a/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java b/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java index 9847b46..e2f1def 100644 --- a/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java +++ b/src/gr/grnet/pithos/web/client/FolderPropertiesDialog.java @@ -249,7 +249,7 @@ public class FolderPropertiesDialog extends DialogBox { return; } String path = folder.getUri() + "/" + name; - PutRequest createFolder = new PutRequest(app, app.getApiPath(), folder.getOwnerID(), path) { + PutRequest createFolder = new PutRequest(app.getApiPath(), folder.getOwnerID(), path) { @Override public void onSuccess(Resource result) { app.updateFolder(folder, true, new Command() { diff --git a/src/gr/grnet/pithos/web/client/GroupCreateDialog.java b/src/gr/grnet/pithos/web/client/GroupCreateDialog.java index b598679..799cee0 100644 --- a/src/gr/grnet/pithos/web/client/GroupCreateDialog.java +++ b/src/gr/grnet/pithos/web/client/GroupCreateDialog.java @@ -34,6 +34,10 @@ */ package gr.grnet.pithos.web.client; +import gr.grnet.pithos.web.client.commands.AddUserCommand; +import gr.grnet.pithos.web.client.foldertree.Folder; +import gr.grnet.pithos.web.client.grouptree.Group; + import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -41,9 +45,13 @@ import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Event.NativePreviewEvent; -import com.google.gwt.user.client.ui.*; -import gr.grnet.pithos.web.client.commands.AddUserCommand; -import gr.grnet.pithos.web.client.grouptree.Group; +import com.google.gwt.user.client.ui.Anchor; +import com.google.gwt.user.client.ui.Button; +import com.google.gwt.user.client.ui.DialogBox; +import com.google.gwt.user.client.ui.FlexTable; +import com.google.gwt.user.client.ui.HasHorizontalAlignment; +import com.google.gwt.user.client.ui.TextBox; +import com.google.gwt.user.client.ui.VerticalPanel; /** * The 'Folder properties' dialog box implementation. @@ -53,56 +61,56 @@ public class GroupCreateDialog extends DialogBox { protected Pithos app; private Command callback; - - /** - * The widget that holds the folderName of the folder. - */ - TextBox groupNameTextBox = new TextBox(); - - final VerticalPanel inner; - - public GroupCreateDialog(final Pithos app) { - this(app, null); - } - - /** - * The widget's constructor. - */ - public GroupCreateDialog(final Pithos app, Command callback) { + + /** + * The widget that holds the folderName of the folder. + */ + TextBox groupName = new TextBox(); + + final VerticalPanel inner; + + public GroupCreateDialog(final Pithos app) { + this(app, null); + } + + /** + * The widget's constructor. + */ + public GroupCreateDialog(final Pithos app, Command callback) { this.app = app; this.callback = callback; - - Anchor close = new Anchor("close"); - close.addStyleName("close"); - close.addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { - hide(); - } - }); - - setGlassEnabled(true); - setStyleName("pithos-DialogBox"); - - // Enable IE selection for the dialog (must disable it upon closing it) - Pithos.enableIESelection(); - - // Use this opportunity to set the dialog's caption. - setText("Create group"); - - // Outer contains inner and buttons - VerticalPanel outer = new VerticalPanel(); - outer.add(close); - // Inner contains generalPanel and permPanel - inner = new VerticalPanel(); - inner.addStyleName("inner"); - - VerticalPanel generalPanel = new VerticalPanel(); + + Anchor close = new Anchor("close"); + close.addStyleName("close"); + close.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + hide(); + } + }); + + setGlassEnabled(true); + setStyleName("pithos-DialogBox"); + + // Enable IE selection for the dialog (must disable it upon closing it) + Pithos.enableIESelection(); + + // Use this opportunity to set the dialog's caption. + setText("Create group"); + + // Outer contains inner and buttons + VerticalPanel outer = new VerticalPanel(); + outer.add(close); + // Inner contains generalPanel and permPanel + inner = new VerticalPanel(); + inner.addStyleName("inner"); + + VerticalPanel generalPanel = new VerticalPanel(); FlexTable generalTable = new FlexTable(); generalTable.setText(0, 0, "Name"); - generalTable.setWidget(0, 1, groupNameTextBox); + generalTable.setWidget(0, 1, groupName); generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels"); generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values"); @@ -112,73 +120,69 @@ public class GroupCreateDialog extends DialogBox { outer.add(inner); - // Create the 'Create/Update' button, along with a listener that hides the dialog - // when the button is clicked and quits the application. - String okLabel = "Create"; - final Button ok = new Button(okLabel, new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - createGroup(); - closeDialog(); - } - }); - ok.addStyleName("button"); - outer.add(ok); + // Create the 'Create/Update' button, along with a listener that hides the dialog + // when the button is clicked and quits the application. + String okLabel = "Create"; + final Button ok = new Button(okLabel, new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + createGroup(); + closeDialog(); + } + }); + ok.addStyleName("button"); + outer.add(ok); outer.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER); setWidget(outer); - } - - @Override - public void center() { - super.center(); - groupNameTextBox.setFocus(true); - } - - @Override - protected void onPreviewNativeEvent(NativePreviewEvent preview) { - super.onPreviewNativeEvent(preview); - - NativeEvent evt = preview.getNativeEvent(); - if(evt.getType().equals(KeyDownEvent.getType().getName())) - // Use the popup's key preview hooks to close the dialog when either - // enter or escape is pressed. - { - switch(evt.getKeyCode()) { - case KeyCodes.KEY_ENTER: - createGroup(); - closeDialog(); - break; - case KeyCodes.KEY_ESCAPE: + } + + @Override + public void center() { + super.center(); + groupName.setFocus(true); + } + + @Override + protected void onPreviewNativeEvent(NativePreviewEvent preview) { + super.onPreviewNativeEvent(preview); + + NativeEvent evt = preview.getNativeEvent(); + if (evt.getType().equals(KeyDownEvent.getType().getName())) + // Use the popup's key preview hooks to close the dialog when either + // enter or escape is pressed. + switch (evt.getKeyCode()) { + case KeyCodes.KEY_ENTER: + createGroup(); closeDialog(); - break; - } - } - } - - - /** - * Enables IE selection prevention and hides the dialog - * (we disable the prevention on creation of the dialog) - */ - public void closeDialog() { - Pithos.preventIESelection(); - hide(); - if(callback != null) { - callback.execute(); - } - } - - /** - * Generate an RPC request to create a new folder. - */ - void createGroup() { - final String groupName = groupNameTextBox.getText().trim(); - if(groupName.length() == 0) { - return; - } - Group group = app.addGroup(groupName); - - new AddUserCommand(app, null, group).execute(); - } + break; + case KeyCodes.KEY_ESCAPE: + closeDialog(); + break; + } + } + + + /** + * Enables IE selection prevention and hides the dialog + * (we disable the prevention on creation of the dialog) + */ + public void closeDialog() { + Pithos.preventIESelection(); + hide(); + if (callback != null) + callback.execute(); + } + + /** + * Generate an RPC request to create a new folder. + */ + void createGroup() { + String name = groupName.getText().trim(); + if (name.length() == 0) + return; + Group group = app.addGroup(name); + + new AddUserCommand(app, null, group).execute(); + } } diff --git a/src/gr/grnet/pithos/web/client/PermissionsList.java b/src/gr/grnet/pithos/web/client/PermissionsList.java index 4f3a26f..2c8c40c 100644 --- a/src/gr/grnet/pithos/web/client/PermissionsList.java +++ b/src/gr/grnet/pithos/web/client/PermissionsList.java @@ -34,6 +34,9 @@ */ package gr.grnet.pithos.web.client; +import com.google.gwt.http.client.Request; +import com.google.gwt.http.client.Response; +import com.google.gwt.json.client.JSONObject; import gr.grnet.pithos.web.client.FilePermissionsDialog.Images; import java.util.HashMap; @@ -46,11 +49,14 @@ import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.Anchor; +import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.HasHorizontalAlignment; +import com.google.gwt.user.client.ui.PushButton; import com.google.gwt.user.client.ui.RadioButton; import com.google.gwt.user.client.ui.VerticalPanel; +import gr.grnet.pithos.web.client.catalog.GetUserCatalogs; import gr.grnet.pithos.web.client.catalog.UpdateUserCatalogs; import gr.grnet.pithos.web.client.catalog.UserCatalogs; @@ -140,7 +146,7 @@ public class PermissionsList extends Composite { new UpdateUserCatalogs(app, userID) { @Override public void onSuccess(UserCatalogs requestedUserCatalogs, UserCatalogs updatedUserCatalogs) { - final String displayName = updatedUserCatalogs.getUserDisplayName(userID); + final String displayName = updatedUserCatalogs.getDisplayName(userID); permTable.setHTML( ii, 0, diff --git a/src/gr/grnet/pithos/web/client/Pithos.java b/src/gr/grnet/pithos/web/client/Pithos.java index bec05d5..16eef94 100644 --- a/src/gr/grnet/pithos/web/client/Pithos.java +++ b/src/gr/grnet/pithos/web/client/Pithos.java @@ -125,20 +125,16 @@ public class Pithos implements EntryPoint, ResizeHandler { } public String getCurrentUserDisplayNameOrID() { - final String displayName = userCatalogs.getUserDisplayName(getUserID()); + final String displayName = userCatalogs.getDisplayName(getUserID()); return displayName == null ? getUserID() : displayName; } public boolean hasUserDisplayNameForID(String userID) { - return userCatalogs.getUserDisplayName(userID) != null; - } - - public boolean hasUserIDForDisplayName(String displayName) { - return userCatalogs.getUserID(displayName) != null; + return userCatalogs.getDisplayName(userID) != null; } public String getUserDisplayNameForID(String userID) { - return userCatalogs.getUserDisplayName(userID); + return userCatalogs.getDisplayName(userID); } public String getUserIDForDisplayName(String displayName) { @@ -164,7 +160,7 @@ public class Pithos implements EntryPoint, ResizeHandler { } final List filtered = new ArrayList(); for(String userID : userIDs) { - if(!this.userCatalogs.hasUserID(userID)) { + if(!this.userCatalogs.hasID(userID)) { filtered.add(userID); } } @@ -336,9 +332,9 @@ public class Pithos implements EntryPoint, ResizeHandler { } }-*/; - public static void LOG(Object ...args) { + public static void LOG(String ...args) { final StringBuilder sb = new StringBuilder(); - for(Object arg : args) { + for(String arg : args) { sb.append(arg); } if(sb.length() > 0) { @@ -553,7 +549,7 @@ public class Pithos implements EntryPoint, ResizeHandler { return true; } - HeadRequest head = new HeadRequest(Pithos.this, Folder.class, getApiPath(), f.getOwnerID(), "/" + f.getContainer()) { + HeadRequest head = new HeadRequest(Folder.class, getApiPath(), f.getOwnerID(), "/" + f.getContainer()) { @Override public void onSuccess(Folder _result) { @@ -710,10 +706,9 @@ public class Pithos implements EntryPoint, ResizeHandler { } public void fetchAccount(final Command callback) { - LOG("Pithos::fetchAccount(), callback = ", callback); String path = "?format=json"; - GetRequest getAccount = new GetRequest(this, AccountResource.class, getApiPath(), userID, path) { + GetRequest getAccount = new GetRequest(AccountResource.class, getApiPath(), userID, path) { @Override public void onSuccess(AccountResource _result) { account = _result; @@ -746,7 +741,7 @@ public class Pithos implements EntryPoint, ResizeHandler { } public void updateStatistics() { - HeadRequest headAccount = new HeadRequest(this, AccountResource.class, getApiPath(), userID, "", account) { + HeadRequest headAccount = new HeadRequest(AccountResource.class, getApiPath(), userID, "", account) { @Override public void onSuccess(AccountResource _result) { @@ -776,7 +771,7 @@ public class Pithos implements EntryPoint, ResizeHandler { protected void createHomeContainer(final AccountResource _account, final Command callback) { String path = "/" + Const.HOME_CONTAINER; - PutRequest createPithos = new PutRequest(this, getApiPath(), getUserID(), path) { + PutRequest createPithos = new PutRequest(getApiPath(), getUserID(), path) { @Override public void onSuccess(Resource result) { if(!_account.hasTrashContainer()) { @@ -810,7 +805,7 @@ public class Pithos implements EntryPoint, ResizeHandler { protected void createTrashContainer(final Command callback) { String path = "/" + Const.TRASH_CONTAINER; - PutRequest createPithos = new PutRequest(this, getApiPath(), getUserID(), path) { + PutRequest createPithos = new PutRequest(getApiPath(), getUserID(), path) { @Override public void onSuccess(Resource result) { fetchAccount(callback); @@ -977,7 +972,7 @@ public class Pithos implements EntryPoint, ResizeHandler { final PleaseWaitPopup pwp = new PleaseWaitPopup(); pwp.center(); String path = "/" + folder.getContainer() + "/" + folder.getPrefix() + "?delimiter=/" + "&t=" + System.currentTimeMillis(); - DeleteRequest deleteFolder = new DeleteRequest(this, getApiPath(), folder.getOwnerID(), path) { + DeleteRequest deleteFolder = new DeleteRequest(getApiPath(), folder.getOwnerID(), path) { @Override protected void onUnauthorized(Response response) { @@ -1031,7 +1026,7 @@ public class Pithos implements EntryPoint, ResizeHandler { if(iter.hasNext()) { File file = iter.next(); String path = targetUri + "/" + file.getName(); - PutRequest copyFile = new PutRequest(this, getApiPath(), targetUsername, path) { + PutRequest copyFile = new PutRequest(getApiPath(), targetUsername, path) { @Override public void onSuccess(Resource result) { copyFiles(iter, targetUsername, targetUri, callback); @@ -1069,7 +1064,7 @@ public class Pithos implements EntryPoint, ResizeHandler { public void copyFolder(final Folder f, final String targetUsername, final String targetUri, boolean move, final Command callback) { String path = targetUri + "?delimiter=/"; - PutRequest copyFolder = new PutRequest(this, getApiPath(), targetUsername, path) { + PutRequest copyFolder = new PutRequest(getApiPath(), targetUsername, path) { @Override public void onSuccess(Resource result) { if(callback != null) { @@ -1126,11 +1121,11 @@ public class Pithos implements EntryPoint, ResizeHandler { groupTreeView.updateGroupNode(null); } - public Group addGroup(String groupName) { - final Group group = new Group(groupName); - account.addGroup(group); + public Group addGroup(String groupname) { + Group newGroup = new Group(groupname); + account.addGroup(newGroup); groupTreeView.updateGroupNode(null); - return group; + return newGroup; } public void removeGroup(Group group) { @@ -1283,7 +1278,7 @@ public class Pithos implements EntryPoint, ResizeHandler { } } else { - HeadRequest headFolder = new HeadRequest(this, Folder.class, getApiPath(), folder.getOwnerID(), folder.getUri(), folder) { + HeadRequest headFolder = new HeadRequest(Folder.class, getApiPath(), folder.getOwnerID(), folder.getUri(), folder) { @Override public void onSuccess(Folder _result) { @@ -1297,7 +1292,7 @@ public class Pithos implements EntryPoint, ResizeHandler { if(t instanceof RestException) { if(((RestException) t).getHttpStatusCode() == Response.SC_NOT_FOUND) { final String path = folder.getUri(); - PutRequest newFolder = new PutRequest(Pithos.this, getApiPath(), folder.getOwnerID(), path) { + PutRequest newFolder = new PutRequest(getApiPath(), folder.getOwnerID(), path) { @Override public void onSuccess(Resource _result) { scheduleFolderHeadCommand(folder, callback); @@ -1352,7 +1347,7 @@ public class Pithos implements EntryPoint, ResizeHandler { } public void scheduleFileHeadCommand(File f, final Command callback) { - HeadRequest headFile = new HeadRequest(this, File.class, getApiPath(), f.getOwnerID(), f.getUri(), f) { + HeadRequest headFile = new HeadRequest(File.class, getApiPath(), f.getOwnerID(), f.getUri(), f) { @Override public void onSuccess(File _result) { @@ -1466,7 +1461,7 @@ public class Pithos implements EntryPoint, ResizeHandler { public void emptyContainer(final Folder container) { String path = "/" + container.getName() + "?delimiter=/"; - DeleteRequest delete = new DeleteRequest(this, getApiPath(), getUserID(), path) { + DeleteRequest delete = new DeleteRequest(getApiPath(), getUserID(), path) { @Override protected void onUnauthorized(Response response) { diff --git a/src/gr/grnet/pithos/web/client/Resource.java b/src/gr/grnet/pithos/web/client/Resource.java index fd013eb..150f3a2 100644 --- a/src/gr/grnet/pithos/web/client/Resource.java +++ b/src/gr/grnet/pithos/web/client/Resource.java @@ -116,10 +116,10 @@ public abstract class Resource { }-*/; @SuppressWarnings("unchecked") - public static T createFromResponse(Pithos app, Class aClass, String owner, Response response, T result) { + public static T createFromResponse(Class aClass, String owner, Response response, T result) { T result1 = null; if(aClass.equals(AccountResource.class)) { - result1 = (T) AccountResource.createFromResponse(app, owner, response, (AccountResource) result); + result1 = (T) AccountResource.createFromResponse(owner, response, (AccountResource) result); } else if(aClass.equals(Folder.class)) { result1 = (T) Folder.createFromResponse(owner, response, (Folder) result); diff --git a/src/gr/grnet/pithos/web/client/VersionsList.java b/src/gr/grnet/pithos/web/client/VersionsList.java index 66d4e6b..88f8aa2 100644 --- a/src/gr/grnet/pithos/web/client/VersionsList.java +++ b/src/gr/grnet/pithos/web/client/VersionsList.java @@ -132,7 +132,7 @@ public class VersionsList extends Composite { void restoreVersion(int version) { String path = file.getUri() + "?update="; - PostRequest restoreVersion = new PostRequest(app, app.getApiPath(), file.getOwnerID(), path) { + PostRequest restoreVersion = new PostRequest(app.getApiPath(), file.getOwnerID(), path) { @Override public void onSuccess(Resource result) { diff --git a/src/gr/grnet/pithos/web/client/catalog/UpdateUserCatalogs.java b/src/gr/grnet/pithos/web/client/catalog/UpdateUserCatalogs.java index 645905e..8640ae2 100644 --- a/src/gr/grnet/pithos/web/client/catalog/UpdateUserCatalogs.java +++ b/src/gr/grnet/pithos/web/client/catalog/UpdateUserCatalogs.java @@ -60,8 +60,4 @@ public class UpdateUserCatalogs implements Scheduler.ScheduledCommand { public void scheduleDeferred() { Scheduler.get().scheduleDeferred(this); } - - public void scheduleEntry() { - Scheduler.get().scheduleEntry(this); - } } diff --git a/src/gr/grnet/pithos/web/client/catalog/UserCatalogs.java b/src/gr/grnet/pithos/web/client/catalog/UserCatalogs.java index 4fb2a6a..7a58247 100644 --- a/src/gr/grnet/pithos/web/client/catalog/UserCatalogs.java +++ b/src/gr/grnet/pithos/web/client/catalog/UserCatalogs.java @@ -45,20 +45,20 @@ public class UserCatalogs implements Iterable>{ ); } - public boolean hasUserID(String id) { + public boolean hasID(String id) { return id2name.containsKey(id); } - public boolean hasUserDisplayName(String displayName) { - return name2id.containsKey(displayName); + public boolean hasName(String name) { + return name2id.containsKey(name); } - public String getUserDisplayName(String userID) { - return id2name.get(userID); + public String getDisplayName(String id) { + return id2name.get(id); } - public String getUserID(String displayName) { - return name2id.get(displayName); + public String getUserID(String name) { + return name2id.get(name); } @Override diff --git a/src/gr/grnet/pithos/web/client/commands/DeleteGroupCommand.java b/src/gr/grnet/pithos/web/client/commands/DeleteGroupCommand.java index 456cc06..d23cbba 100644 --- a/src/gr/grnet/pithos/web/client/commands/DeleteGroupCommand.java +++ b/src/gr/grnet/pithos/web/client/commands/DeleteGroupCommand.java @@ -34,7 +34,6 @@ */ package gr.grnet.pithos.web.client.commands; -import gr.grnet.pithos.web.client.Const; import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import gr.grnet.pithos.web.client.grouptree.Group; @@ -76,7 +75,7 @@ public class DeleteGroupCommand implements Command { containerPanel.hide(); if (Window.confirm("Are you sure you want to delete group " + group.getName())) { String path = "?update="; - PostRequest updateGroup = new PostRequest(app, app.getApiPath(), app.getUserID(), path) { + PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(Resource result) { @@ -99,8 +98,8 @@ public class DeleteGroupCommand implements Command { app.sessionExpired(); } }; - updateGroup.setHeader(Const.X_AUTH_TOKEN, app.getUserToken()); - updateGroup.setHeader(Const.X_ACCOUNT_GROUP_ + URL.encodePathSegment(group.getName()), "~"); + updateGroup.setHeader("X-Auth-Token", app.getUserToken()); + updateGroup.setHeader("X-Account-Group-" + URL.encodePathSegment(group.getName()), "~"); Scheduler.get().scheduleDeferred(updateGroup); } } diff --git a/src/gr/grnet/pithos/web/client/commands/PasteCommand.java b/src/gr/grnet/pithos/web/client/commands/PasteCommand.java index ccbcda8..1f1c486 100644 --- a/src/gr/grnet/pithos/web/client/commands/PasteCommand.java +++ b/src/gr/grnet/pithos/web/client/commands/PasteCommand.java @@ -137,7 +137,7 @@ public class PasteCommand implements Command { if (iter.hasNext()) { File file = iter.next(); String path = folder.getUri() + "/" + file.getName(); - PutRequest copyFile = new PutRequest(app, app.getApiPath(), folder.getOwnerID(), path) { + PutRequest copyFile = new PutRequest(app.getApiPath(), folder.getOwnerID(), path) { @Override public void onSuccess(Resource result) { moveFiles(iter, callback); diff --git a/src/gr/grnet/pithos/web/client/commands/RemoveUserCommand.java b/src/gr/grnet/pithos/web/client/commands/RemoveUserCommand.java index d39a3ab..0edfb9c 100644 --- a/src/gr/grnet/pithos/web/client/commands/RemoveUserCommand.java +++ b/src/gr/grnet/pithos/web/client/commands/RemoveUserCommand.java @@ -34,13 +34,6 @@ */ package gr.grnet.pithos.web.client.commands; -import com.google.gwt.core.client.GWT; -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.http.client.Response; -import com.google.gwt.http.client.URL; -import com.google.gwt.user.client.Command; -import com.google.gwt.user.client.ui.PopupPanel; -import gr.grnet.pithos.web.client.Const; import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import gr.grnet.pithos.web.client.grouptree.Group; @@ -48,82 +41,86 @@ import gr.grnet.pithos.web.client.grouptree.User; import gr.grnet.pithos.web.client.rest.PostRequest; import gr.grnet.pithos.web.client.rest.RestException; +import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.http.client.Response; +import com.google.gwt.http.client.URL; +import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.ui.PopupPanel; + /** * Display the 'new folder' dialog for creating a new folder. + * */ public class RemoveUserCommand implements Command { - private PopupPanel containerPanel; + private PopupPanel containerPanel; User user; Pithos app; - /** - * @param aContainerPanel - */ - public RemoveUserCommand(Pithos _app, PopupPanel aContainerPanel, User _user) { + /** + * @param aContainerPanel + */ + public RemoveUserCommand(Pithos _app, PopupPanel aContainerPanel, User _user){ app = _app; - containerPanel = aContainerPanel; - user = _user; - } - - @Override - public void execute() { - if(containerPanel != null) { - containerPanel.hide(); - } - final String groupName = user.getGroup(); - final Group group = app.getAccount().getGroup(groupName); - if(group == null) { - return; - } - group.removeUser(user); - String path = "?update="; - PostRequest updateGroup = new PostRequest(app, app.getApiPath(), app.getUserID(), path) { - - @Override - public void onSuccess(Resource result) { - app.fetchAccount(new Command() { - - @Override - public void execute() { - Group updatedGroup2 = app.getAccount().getGroup(groupName); - if(updatedGroup2 != null) { - app.updateGroupNode(updatedGroup2); - } - else { - app.updateGroupNode(null); - } - } - }); - } + containerPanel = aContainerPanel; + user = _user; + } - @Override - public void onError(Throwable t) { - GWT.log("", t); - app.setError(t); - if(t instanceof RestException) { - app.displayError("Unable to update group:" + ((RestException) t).getHttpStatusText()); - } - else { - app.displayError("System error updating group:" + t.getMessage()); - } - } + @Override + public void execute() { + if (containerPanel != null) + containerPanel.hide(); + final String groupName = user.getGroup(); + final Group group = app.getAccount().getGroup(groupName); + if (group == null) + return; + group.removeMember(user.getName()); + String path = "?update="; + PostRequest updateGroup = new PostRequest(app.getApiPath(), app.getUserID(), path) { + + @Override + public void onSuccess(Resource result) { + app.fetchAccount(new Command() { + + @Override + public void execute() { + Group updatedGroup2 = app.getAccount().getGroup(groupName); + if (updatedGroup2 != null) + app.updateGroupNode(updatedGroup2); + else { + app.updateGroupNode(null); + } + } + }); + } + + @Override + public void onError(Throwable t) { + GWT.log("", t); + app.setError(t); + if (t instanceof RestException) { + app.displayError("Unable to update group:" + ((RestException) t).getHttpStatusText()); + } + else + app.displayError("System error updating group:" + t.getMessage()); + } - @Override - protected void onUnauthorized(Response response) { - app.sessionExpired(); - } - }; - updateGroup.setHeader(Const.X_AUTH_TOKEN, app.getUserToken()); - final String groupMembers; - if(!group.getUsers().isEmpty()) { - groupMembers = group.encodeUserIDsForXAccountGroup(); - } - else { - groupMembers = "~"; - } - updateGroup.setHeader(Const.X_ACCOUNT_GROUP_ + URL.encodePathSegment(group.getName()), groupMembers); - Scheduler.get().scheduleDeferred(updateGroup); - } + @Override + protected void onUnauthorized(Response response) { + app.sessionExpired(); + } + }; + updateGroup.setHeader("X-Auth-Token", app.getUserToken()); + String groupMembers = ""; + if (!group.getMembers().isEmpty()) { + for (String u : group.getMembers()) + groupMembers += (URL.encodePathSegment(u) + ","); + } + else + groupMembers = "~"; + updateGroup.setHeader("X-Account-Group-" + URL.encodePathSegment(group.getName()), groupMembers); + Scheduler.get().scheduleDeferred(updateGroup); + } } diff --git a/src/gr/grnet/pithos/web/client/commands/RestoreTrashCommand.java b/src/gr/grnet/pithos/web/client/commands/RestoreTrashCommand.java index ff8d56a..9f19835 100644 --- a/src/gr/grnet/pithos/web/client/commands/RestoreTrashCommand.java +++ b/src/gr/grnet/pithos/web/client/commands/RestoreTrashCommand.java @@ -117,7 +117,7 @@ public class RestoreTrashCommand implements Command { if (iter.hasNext()) { File file = iter.next(); String path = "/" + Const.HOME_CONTAINER + "/" + file.getPath(); - PutRequest untrashFile = new PutRequest(app, app.getApiPath(), app.getUserID(), path) { + PutRequest untrashFile = new PutRequest(app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(Resource result) { untrashFiles(iter, callback); diff --git a/src/gr/grnet/pithos/web/client/commands/ToTrashCommand.java b/src/gr/grnet/pithos/web/client/commands/ToTrashCommand.java index b5ece80..f08bc52 100644 --- a/src/gr/grnet/pithos/web/client/commands/ToTrashCommand.java +++ b/src/gr/grnet/pithos/web/client/commands/ToTrashCommand.java @@ -127,7 +127,7 @@ public class ToTrashCommand implements Command{ if (iter.hasNext()) { File file = iter.next(); String path = "/" + Const.TRASH_CONTAINER + "/" + file.getPath(); - PutRequest trashFile = new PutRequest(app, app.getApiPath(), app.getUserID(), path) { + PutRequest trashFile = new PutRequest(app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(Resource result) { trashFiles(iter, callback); diff --git a/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java b/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java index e4011a0..8f835bf 100644 --- a/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java +++ b/src/gr/grnet/pithos/web/client/foldertree/AccountResource.java @@ -35,6 +35,14 @@ package gr.grnet.pithos.web.client.foldertree; +import gr.grnet.pithos.web.client.Const; +import gr.grnet.pithos.web.client.Resource; +import gr.grnet.pithos.web.client.grouptree.Group; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + import com.google.gwt.http.client.Header; import com.google.gwt.http.client.Response; import com.google.gwt.http.client.URL; @@ -45,22 +53,12 @@ import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONParser; import com.google.gwt.json.client.JSONValue; -import gr.grnet.pithos.web.client.Const; -import gr.grnet.pithos.web.client.Pithos; -import gr.grnet.pithos.web.client.Resource; -import gr.grnet.pithos.web.client.catalog.UpdateUserCatalogs; -import gr.grnet.pithos.web.client.catalog.UserCatalogs; -import gr.grnet.pithos.web.client.grouptree.Group; -import gr.grnet.pithos.web.client.grouptree.User; - -import java.util.*; /** * Created by IntelliJ IDEA. User: chstath Date: 5/19/11 Time: 2:55 PM To change this template use File | Settings | * File Templates. */ public class AccountResource extends Resource { - private final Pithos app; private long numberOfContainers = 0; @@ -73,17 +71,13 @@ public class AccountResource extends Resource { private Date lastLogin = null; private Date lastModified = null; - + private List containers = new ArrayList(); private Date currentLogin = null; private List groups = new ArrayList(); - public AccountResource(Pithos app) { - this.app = app; - } - public long getQuota() { return quota; } @@ -109,7 +103,7 @@ public class AccountResource extends Resource { } @Override - public Date getLastModified() { + public Date getLastModified() { return lastModified; } @@ -145,208 +139,145 @@ public class AccountResource extends Resource { this.currentLogin = currentLogin; } - private void doAddUsersByIDs(final List userIDs, final String groupName) { - app.LOG("AccountResource::doAddUsersByIDs(), group = ", groupName); - final Group group = new Group(groupName); - for(String userID : userIDs) { - final String userDisplayName = app.getUserDisplayNameForID(userID); - final User user = new User(userID, userDisplayName, groupName); - group.addUser(user); - app.LOG("AccountResource::doAddUsersByIDs(), user = (", userID, ", ", userDisplayName, ")"); - - } - groups.add(group); - - } - public void populate(String owner, Response response) { DateTimeFormat df = DateTimeFormat.getFormat(PredefinedFormat.RFC_2822); groups.clear(); - - final Map> parsedGroups = new HashMap>(); - - for(Header h : response.getHeaders()) { - if(h != null) { - String name = h.getName(); - if(name.startsWith(Const.X_ACCOUNT_GROUP_)) { - final String groupName = URL.decodePathSegment(name.substring(Const.X_ACCOUNT_GROUP_.length())); - final String[] users = h.getValue().split(","); - final List userIDs = new ArrayList(); - for(String user : users) { - final String userID = URL.decodePathSegment(user).trim(); - userIDs.add(userID); - } - parsedGroups.put(groupName, userIDs); - } - else if(name.equals(Const.X_ACCOUNT_CONTAINER_COUNT)) { - numberOfContainers = Long.valueOf(h.getValue()); - } - else if(name.equals(Const.X_ACCOUNT_OBJECT_COUNT)) { - numberOfObjects = Long.valueOf(h.getValue()); - } - else if(name.equals(Const.X_ACCOUNT_BYTES_USED)) { - bytesUsed = Long.valueOf(h.getValue()); - } - else if(name.equals(Const.X_ACCOUNT_POLICY_QUOTA)) { - quota = Long.valueOf(h.getValue()); - } - else if(name.equals(Const.X_ACCOUNT_LAST_LOGIN)) { - lastLogin = df.parse(h.getValue()); - } - else if(name.equals(Const.LAST_MODIFIED)) { - lastModified = df.parse(h.getValue()); - } - } - } - - // Gather all unknown users for the groups - final List userIDsWithUnknownDisplayName = new ArrayList(); - for(Map.Entry> parsedGroupEntry : parsedGroups.entrySet()) { - final List groupUserIDs = parsedGroupEntry.getValue(); - userIDsWithUnknownDisplayName.addAll(app.filterUserIDsWithUnknownDisplayName(groupUserIDs)); - } - if(userIDsWithUnknownDisplayName.size() == 0) { - for(Map.Entry> parsedGroupEntry : parsedGroups.entrySet()) { - final String groupName = parsedGroupEntry.getKey(); - final List groupUserIDs = parsedGroupEntry.getValue(); - doAddUsersByIDs(groupUserIDs, groupName); - } - } - else { - new UpdateUserCatalogs(app, userIDsWithUnknownDisplayName) { - @Override - public void onSuccess(UserCatalogs requestedUserCatalogs, UserCatalogs updatedUserCatalogs) { - for(Map.Entry> parsedGroupEntry : parsedGroups.entrySet()) { - final String groupName = parsedGroupEntry.getKey(); - final List groupUserIDs = parsedGroupEntry.getValue(); - doAddUsersByIDs(groupUserIDs, groupName); - } - } - }.scheduleEntry(); + for (Header h : response.getHeaders()) { + if (h != null) { + String name = h.getName(); + if (name.startsWith("X-Account-Group-")) { + String groupName = URL.decodePathSegment(name.substring("X-Account-Group-".length())); + Group g = new Group(groupName); + String[] members = h.getValue().split(","); + for (String s : members) + g.addMember(URL.decodePathSegment(s).trim()); + groups.add(g); + } + else if (name.equals("X-Account-Container-Count")) { + numberOfContainers = Long.valueOf(h.getValue()); + } + else if (name.equals("X-Account-Object-Count")) { + numberOfObjects = Long.valueOf(h.getValue()); + } + else if (name.equals("X-Account-Bytes-Used")) { + bytesUsed = Long.valueOf(h.getValue()); + } + else if (name.equals("X-Account-Policy-Quota")) { + quota = Long.valueOf(h.getValue()); + } + else if (name.equals("X-Account-Last-Login")) { + lastLogin = df.parse(h.getValue()); + } + else if (name.equals("Last-Modified")) { + lastModified = df.parse(h.getValue()); + } + } } - if(response.getText() != null && response.getText().length() > 0) { - containers.clear(); - JSONValue json = JSONParser.parseStrict(response.getText()); - JSONArray array = json.isArray(); - if(array != null) { - for(int i = 0; i < array.size(); i++) { - JSONObject o = array.get(i).isObject(); - if(o != null) { - Folder f = new Folder(); - f.populate(null, o, owner, null); - containers.add(f); - } - } - } + if (response.getText() != null && response.getText().length() > 0) { + containers.clear(); + JSONValue json = JSONParser.parseStrict(response.getText()); + JSONArray array = json.isArray(); + if (array != null) { + for (int i=0; i getGroups() { return groups; } - + public boolean hasHomeContainer() { - for(Folder f : containers) { - if(f.getName().equals(Const.HOME_CONTAINER)) { - return true; - } - } - return false; + for (Folder f : containers) + if (f.getName().equals(Const.HOME_CONTAINER)) + return true; + return false; } public boolean hasTrashContainer() { - for(Folder f : containers) { - if(f.getName().equals(Const.TRASH_CONTAINER)) { - return true; - } - } - return false; - } - - public void addGroup(Group group) { - groups.add(group); - } - - public void removeGroup(Group group) { - groups.remove(group); + for (Folder f : containers) + if (f.getName().equals(Const.TRASH_CONTAINER)) + return true; + return false; } - public Folder getTrash() { - for(Folder c : containers) { - if(c.getName().equals(Const.TRASH_CONTAINER)) { - return c; - } - } - return null; - } - - public double getUsedPercentage() { - if(quota == 0) { - return 0; - } - return ((double) bytesUsed) / quota; - } - - public Folder getPithos() { - for(Folder f : containers) { - if(f.getName().equals(Const.HOME_CONTAINER)) { - return f; - } - } - return null; - } - - public Group getGroup(String groupName) { - for(Group g : groups) { - if(g.getName().equalsIgnoreCase(groupName)) { - return g; - } - } - return null; - } + public void addGroup(Group newGroup) { + groups.add(newGroup); + } + + public void removeGroup(Group group) { + groups.remove(group); + } + + public Folder getTrash() { + for (Folder c : containers) { + if (c.getName().equals(Const.TRASH_CONTAINER)) + return c; + } + return null; + } + + public double getUsedPercentage() { + if (quota == 0) + return 0; + return ((double) bytesUsed) / quota; + } + + public Folder getPithos() { + for (Folder f : containers) + if (f.getName().equals(Const.HOME_CONTAINER)) + return f; + return null; + } + + public Group getGroup(String groupName) { + for (Group g : groups) + if (g.getName().equalsIgnoreCase(groupName)) + return g; + return null; + } } diff --git a/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java index fb4d31f..5e3f56b 100644 --- a/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/foldertree/FolderTreeViewModel.java @@ -152,7 +152,7 @@ public class FolderTreeViewModel implements TreeViewModel { final Folder f = iter.next(); String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix()); - GetRequest getFolder = new GetRequest(app, Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { @Override public void onSuccess(Folder _result) { fetchFolder(iter, callback); @@ -236,7 +236,7 @@ public class FolderTreeViewModel implements TreeViewModel { 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(app, Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { @Override public void onSuccess(final Folder _result) { if (showfiles) diff --git a/src/gr/grnet/pithos/web/client/grouptree/Group.java b/src/gr/grnet/pithos/web/client/grouptree/Group.java index aef15f5..d367048 100644 --- a/src/gr/grnet/pithos/web/client/grouptree/Group.java +++ b/src/gr/grnet/pithos/web/client/grouptree/Group.java @@ -36,50 +36,30 @@ package gr.grnet.pithos.web.client.grouptree; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -public final class Group { - private final String name; +public class Group { + private String name; - private final List users = new ArrayList(); + private List members = new ArrayList(); - public Group(String name) { - this.name = name; + public Group(String _name) { + name = _name; } - public List getUsers() { - return Collections.unmodifiableList(users); + public List getMembers() { + return members; } public String getName() { return name; } - public void addUser(User user) { - this.users.add(user); + public void addMember(String user) { + members.add(user); } - public void removeUser(User user) { - this.users.remove(user); + public void removeMember(String username) { + members.remove(username); } - - public String encodeUserIDsForXAccountGroup() { - final StringBuilder sb = new StringBuilder(); - for(int i=0; i groupCell = new AbstractCell(ContextMenuEvent.getType().getName()) { + private Cell groupCell = new AbstractCell(ContextMenuEvent.getType().getName()) { - @Override - public void render(Context context, Group group, SafeHtmlBuilder sb) { + @Override + public void render(Context context, Group value, SafeHtmlBuilder sb) { String html = AbstractImagePrototype.create(GroupTreeView.images.group()).getHTML(); sb.appendHtmlConstant(html).appendHtmlConstant(" "); - sb.append(Templates.INSTANCE.nameSpan(group.getName())); - } - + sb.append(Templates.INSTANCE.nameSpan(value.getName())); + } + @Override public void onBrowserEvent(Cell.Context context, com.google.gwt.dom.client.Element parent, Group group, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater valueUpdater) { - if(!group.equals(CreateGroupPlaceholder)) { - GroupTreeViewModel.this.groupSelectionModel.setSelected(group, true); - if(event.getType().equals(ContextMenuEvent.getType().getName())) { - GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, group); - menu.setPopupPosition(event.getClientX(), event.getClientY()); - menu.show(); - } - } + if (!group.equals(createGroup)) { + GroupTreeViewModel.this.groupSelectionModel.setSelected(group, true); + if (event.getType().equals(ContextMenuEvent.getType().getName())) { + GroupContextMenu menu = new GroupContextMenu(app, GroupTreeView.images, group); + menu.setPopupPosition(event.getClientX(), event.getClientY()); + menu.show(); + } + } } - }; + }; private Cell userCell = new AbstractCell(ContextMenuEvent.getType().getName()) { - @Override - public void render(Context context, User user, final SafeHtmlBuilder sb) { + @Override + public void render(Context context, User value, SafeHtmlBuilder sb) { String html = AbstractImagePrototype.create(GroupTreeView.images.user()).getHTML(); sb.appendHtmlConstant(html).appendHtmlConstant(" "); - final String userDisplayName = user.getUserDisplayName(); - sb.append(Templates.INSTANCE.nameSpan(userDisplayName)); - } + sb.append(Templates.INSTANCE.nameSpan(value.getName())); + } @Override public void onBrowserEvent(Cell.Context context, com.google.gwt.dom.client.Element parent, User user, com.google.gwt.dom.client.NativeEvent event, com.google.gwt.cell.client.ValueUpdater valueUpdater) { GroupTreeViewModel.this.userSelectionModel.setSelected(user, true); - if(event.getType().equals(ContextMenuEvent.getType().getName())) { + if (event.getType().equals(ContextMenuEvent.getType().getName())) { UserContextMenu menu = new UserContextMenu(app, GroupTreeView.images, user); menu.setPopupPosition(event.getClientX(), event.getClientY()); menu.show(); @@ -105,127 +103,114 @@ public class GroupTreeViewModel implements TreeViewModel { protected ListDataProvider groupsDataProvider = new ListDataProvider(); protected Map> userDataProviderMap = new HashMap>(); - + SingleSelectionModel groupSelectionModel; SingleSelectionModel userSelectionModel; + + final Group createGroup = new Group("Create new group..."); public GroupTreeViewModel(Pithos _app) { app = _app; - groupSelectionModel = new SingleSelectionModel(); - app.addSelectionModel(groupSelectionModel); - groupSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { - - @Override - public void onSelectionChange(SelectionChangeEvent event) { - Group selected = groupSelectionModel.getSelectedObject(); - if(selected != null) { - app.deselectOthers(app.getGroupTreeView(), groupSelectionModel); - app.showFiles(new HashSet()); - app.disableUploadArea(); - app.upload.setEnabled(false); - app.showRelevantToolbarButtons(); - if(selected.equals(CreateGroupPlaceholder)) { - new CreateGroupCommand(app, null).execute(); - groupSelectionModel.setSelected(CreateGroupPlaceholder, false); - } - } - else { - if(app.getSelectedTree().equals(app.getGroupTreeView())) { - app.setSelectedTree(null); - } - if(app.getSelectedTree() == null) { - app.showRelevantToolbarButtons(); - } - } - } - }); - - userSelectionModel = new SingleSelectionModel(); - app.addSelectionModel(userSelectionModel); - userSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { - - @Override - public void onSelectionChange(SelectionChangeEvent event) { - if(userSelectionModel.getSelectedObject() != null) { - app.deselectOthers(app.getGroupTreeView(), userSelectionModel); - app.showFiles(new HashSet()); - app.showRelevantToolbarButtons(); - } - else { - if(app.getSelectedTree().equals(app.getGroupTreeView())) { - app.setSelectedTree(null); - } - if(app.getSelectedTree() == null) { - app.showRelevantToolbarButtons(); - } - } - } - }); - } + groupSelectionModel = new SingleSelectionModel(); + app.addSelectionModel(groupSelectionModel); + groupSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { + + @Override + public void onSelectionChange(SelectionChangeEvent event) { + Group selected = groupSelectionModel.getSelectedObject(); + if (selected != null) { + app.deselectOthers(app.getGroupTreeView(), groupSelectionModel); + app.showFiles(new HashSet()); + app.disableUploadArea(); + app.upload.setEnabled(false); + app.showRelevantToolbarButtons(); + if (selected.equals(createGroup)) { + new CreateGroupCommand(app, null).execute(); + groupSelectionModel.setSelected(createGroup, false); + } + } + else { + if (app.getSelectedTree().equals(app.getGroupTreeView())) + app.setSelectedTree(null); + if (app.getSelectedTree() == null) + app.showRelevantToolbarButtons(); + } + } + }); + + userSelectionModel = new SingleSelectionModel(); + app.addSelectionModel(userSelectionModel); + userSelectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { + + @Override + public void onSelectionChange(SelectionChangeEvent event) { + if (userSelectionModel.getSelectedObject() != null) { + app.deselectOthers(app.getGroupTreeView(), userSelectionModel); + app.showFiles(new HashSet()); + app.showRelevantToolbarButtons(); + } + else { + if (app.getSelectedTree().equals(app.getGroupTreeView())) + app.setSelectedTree(null); + if (app.getSelectedTree() == null) + app.showRelevantToolbarButtons(); + } + } + }); +} @Override public NodeInfo getNodeInfo(T value) { - app.LOG("GroupTreeViewModel::getNodeInfo(), value = ", value); - if(value == null) { - groupsDataProvider.getList().clear(); - groupsDataProvider.getList().addAll(app.getAccount().getGroups()); - groupsDataProvider.getList().add(CreateGroupPlaceholder); + if (value == null) { + groupsDataProvider.getList().clear(); + groupsDataProvider.getList().addAll(app.getAccount().getGroups()); + groupsDataProvider.getList().add(createGroup); return new DefaultNodeInfo(groupsDataProvider, groupCell, groupSelectionModel, null); } - final Group group = (Group) value; - if(userDataProviderMap.get(group) == null) { - userDataProviderMap.put(group, new ListDataProvider()); - } - final ListDataProvider dataProvider = userDataProviderMap.get(group); - dataProvider.getList().clear(); - final List users = group.getUsers(); - for(User user : users) { - app.LOG("GroupTreeViewModel::getNodeInfo(), Add ", user); - dataProvider.getList().add(user); - } - - - return new DefaultNodeInfo(dataProvider, userCell, userSelectionModel, null); + Group g = (Group) value; + if (userDataProviderMap.get(g) == null) { + userDataProviderMap.put(g, new ListDataProvider()); + } + final ListDataProvider dataProvider = userDataProviderMap.get(g); + dataProvider.getList().clear(); + for (String u : g.getMembers()) + dataProvider.getList().add(new User(u, g.getName())); + return new DefaultNodeInfo(dataProvider, userCell, userSelectionModel, null); } - @Override + @Override public boolean isLeaf(Object o) { - if(o instanceof User) { - return true; - } - else if(o instanceof Group) { - return ((Group) o).getUsers().isEmpty(); + if (o instanceof User) { + return true; } + else if (o instanceof Group) + return ((Group) o).getMembers().isEmpty(); return false; } - - public void updateGroupNode(Group group) { - if(group == null) { - groupsDataProvider.getList().clear(); - groupsDataProvider.getList().addAll(app.getAccount().getGroups()); - groupsDataProvider.getList().add(CreateGroupPlaceholder); - } - else { - if(userDataProviderMap.get(group) == null) { - userDataProviderMap.put(group, new ListDataProvider()); - } - final ListDataProvider dataProvider = userDataProviderMap.get(group); - dataProvider.getList().clear(); - for(User user : group.getUsers()) { - app.LOG("GroupTreeViewModel::updateGroupNode(), group = ", group, ". Add ", user); - dataProvider.getList().add(user); - } - } - } - - public Object getSelectedObject() { - if(groupSelectionModel.getSelectedObject() != null) { - return groupSelectionModel.getSelectedObject(); - } - if(userSelectionModel.getSelectedObject() != null) { - return userSelectionModel.getSelectedObject(); - } - return null; - } + + public void updateGroupNode(Group group) { + if (group == null) { + groupsDataProvider.getList().clear(); + groupsDataProvider.getList().addAll(app.getAccount().getGroups()); + groupsDataProvider.getList().add(createGroup); + } + else { + if (userDataProviderMap.get(group) == null) { + userDataProviderMap.put(group, new ListDataProvider()); + } + final ListDataProvider dataProvider = userDataProviderMap.get(group); + dataProvider.getList().clear(); + for (String u : group.getMembers()) + dataProvider.getList().add(new User(u, group.getName())); + } + } + + public Object getSelectedObject() { + if (groupSelectionModel.getSelectedObject() != null) + return groupSelectionModel.getSelectedObject(); + if (userSelectionModel.getSelectedObject() != null) + return userSelectionModel.getSelectedObject(); + return null; + } } diff --git a/src/gr/grnet/pithos/web/client/grouptree/User.java b/src/gr/grnet/pithos/web/client/grouptree/User.java index f6798ae..067fbd2 100644 --- a/src/gr/grnet/pithos/web/client/grouptree/User.java +++ b/src/gr/grnet/pithos/web/client/grouptree/User.java @@ -36,59 +36,21 @@ package gr.grnet.pithos.web.client.grouptree; -public final class User { - private final String userID; - private final String userDisplayName; - private final String group; - - public User(String userID, String userDisplayName, String group) { - this.userID = userID; - this.userDisplayName = userDisplayName; - this.group = group; - } - - public String getUserID() { - return userID; +public class User { + private String name; + + private String group; + + public User(String _name, String _group) { + name = _name; + group = _group; } - public String getUserDisplayName() { - return userDisplayName; + public String getName() { + return name; } - public String getGroup() { + public String getGroup() { return group; } - - @Override - public boolean equals(Object o) { - if(this == o) { - return true; - } - if(o == null || getClass() != o.getClass()) { - return false; - } - - User user = (User) o; - - if(group != null ? !group.equals(user.group) : user.group != null) { - return false; - } - if(userID != null ? !userID.equals(user.userID) : user.userID != null) { - return false; - } - - return true; - } - - @Override - public int hashCode() { - int result = userID != null ? userID.hashCode() : 0; - result = 31 * result + (group != null ? group.hashCode() : 0); - return result; - } - - @Override - public String toString() { - return "User(" + userID + ", " + userDisplayName + ", " + group + ")"; - } } diff --git a/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java index cfa6dea..87aca52 100644 --- a/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java @@ -119,7 +119,7 @@ public class MysharedTreeViewModel implements TreeViewModel { private void fetchSharedContainers(final Command callback) { String path = "?format=json&shared=&public="; - GetRequest getAccount = new GetRequest(app, AccountResource.class, app.getApiPath(), app.getUserID(), path) { + GetRequest getAccount = new GetRequest(AccountResource.class, app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(final AccountResource _result) { firstLevelDataProvider.getList().clear(); @@ -170,7 +170,7 @@ public class MysharedTreeViewModel implements TreeViewModel { final Folder f = iter.next(); String path = "/" + f.getContainer() + "?format=json&shared=&public=&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix()); - GetRequest getFolder = new GetRequest(app, Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { @Override public void onSuccess(Folder _result) { fetchFolder(iter, callback); @@ -208,7 +208,7 @@ public class MysharedTreeViewModel implements TreeViewModel { public void fetchFolder(final Folder f, final boolean showfiles, final Command callback) { String path = "/" + f.getContainer() + "?format=json&shared=&public=" + URL.encodeQueryString(f.getPrefix()); - GetRequest getFolder = new GetRequest(app, Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { @Override public void onSuccess(final Folder _result) { for (File file : _result.getFiles()) { diff --git a/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java index 1c1a244..1879b89 100644 --- a/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java @@ -175,7 +175,7 @@ public class OtherSharedTreeViewModel implements TreeViewModel { // }-*/; private void fetchSharingUsers(final Command callback) { - GetRequest getSharingUsers = new GetRequest(app, SharingUsers.class, app.getApiPath(), "", "?format=json") { + GetRequest getSharingUsers = new GetRequest(SharingUsers.class, app.getApiPath(), "", "?format=json") { @Override public void onSuccess(final SharingUsers _result) { userLevelDataProviderForIDs.getList().clear(); @@ -285,7 +285,7 @@ public class OtherSharedTreeViewModel implements TreeViewModel { } private void fetchSharedContainers(final String userID, final ListDataProvider dataProvider, final Command callback) { - GetRequest getUserSharedContainers = new GetRequest(app, AccountResource.class, app.getApiPath(), userID, "?format=json") { + GetRequest getUserSharedContainers = new GetRequest(AccountResource.class, app.getApiPath(), userID, "?format=json") { @Override public void onSuccess(AccountResource _result) { @@ -330,7 +330,7 @@ public class OtherSharedTreeViewModel implements TreeViewModel { final Folder f = folderIterator.next(); String path = "/" + f.getContainer() + "?format=json&delimiter=/&prefix=" + URL.encodeQueryString(f.getPrefix()); - GetRequest getFolder = new GetRequest(app, Folder.class, app.getApiPath(), userID, path, f) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), userID, path, f) { @Override public void onSuccess(Folder _result) { dataProvider.getList().add(_result); @@ -376,7 +376,7 @@ public class OtherSharedTreeViewModel implements TreeViewModel { 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(app, Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), f.getOwnerID(), path, f) { @Override public void onSuccess(final Folder _result) { if(showfiles) { diff --git a/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java b/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java index bea8c44..0194db0 100644 --- a/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java +++ b/src/gr/grnet/pithos/web/client/rest/DeleteRequest.java @@ -35,7 +35,6 @@ package gr.grnet.pithos.web.client.rest; -import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import java.util.HashMap; @@ -56,8 +55,6 @@ public abstract class DeleteRequest implements ScheduledCommand { protected static final int MAX_RETRIES = 3; - private final Pithos app; - protected int retries = 0; private String api; @@ -72,8 +69,7 @@ public abstract class DeleteRequest implements ScheduledCommand { public abstract void onError(Throwable t); - public DeleteRequest(Pithos app, String api, String owner, String path) { - this.app = app; + public DeleteRequest(String api, String owner, String path) { this.api = api; this.owner = owner; this.path = path; @@ -94,7 +90,7 @@ public abstract class DeleteRequest implements ScheduledCommand { @Override public Resource deserialize(Response response) { - return Resource.createFromResponse(app, Resource.class, owner, response, null); + return Resource.createFromResponse(Resource.class, owner, response, null); } @Override diff --git a/src/gr/grnet/pithos/web/client/rest/GetRequest.java b/src/gr/grnet/pithos/web/client/rest/GetRequest.java index ab5d519..e087800 100644 --- a/src/gr/grnet/pithos/web/client/rest/GetRequest.java +++ b/src/gr/grnet/pithos/web/client/rest/GetRequest.java @@ -35,7 +35,6 @@ package gr.grnet.pithos.web.client.rest; -import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import java.util.HashMap; @@ -52,9 +51,7 @@ public abstract class GetRequest implements ScheduledCommand protected static final int MAX_RETRIES = 3; - protected int retries = 0; - - private final Pithos app; + protected int retries = 0; protected Class resourceClass; @@ -74,8 +71,7 @@ public abstract class GetRequest implements ScheduledCommand public abstract void onError(Throwable t); - public GetRequest(Pithos app, Class resourceClass, String api, String owner, String path, int okCode, T result) { - this.app = app; + public GetRequest(Class resourceClass, String api, String owner, String path, int okCode, T result) { this.resourceClass = resourceClass; this.api = api; this.owner = owner; @@ -84,12 +80,12 @@ public abstract class GetRequest implements ScheduledCommand this.result = result; } - public GetRequest(Pithos app, Class resourceClass, String api, String owner, String path) { - this(app, resourceClass, api, owner, path, -1, null); + public GetRequest(Class resourceClass, String api, String owner, String path) { + this(resourceClass, api, owner, path, -1, null); } - public GetRequest(Pithos app, Class resourceClass, String api, String owner, String path, T result) { - this(app, resourceClass, api, owner, path, -1, result); + public GetRequest(Class resourceClass, String api, String owner, String path, T result) { + this(resourceClass, api, owner, path, -1, result); } @Override @@ -112,7 +108,7 @@ public abstract class GetRequest implements ScheduledCommand @Override public T deserialize(Response response) { - return Resource.createFromResponse(app, resourceClass, owner, response, result); + return Resource.createFromResponse(resourceClass, owner, response, result); } @Override diff --git a/src/gr/grnet/pithos/web/client/rest/HeadRequest.java b/src/gr/grnet/pithos/web/client/rest/HeadRequest.java index 1148554..5b0f0fc 100644 --- a/src/gr/grnet/pithos/web/client/rest/HeadRequest.java +++ b/src/gr/grnet/pithos/web/client/rest/HeadRequest.java @@ -35,7 +35,6 @@ package gr.grnet.pithos.web.client.rest; -import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import java.util.HashMap; @@ -52,8 +51,6 @@ public abstract class HeadRequest implements ScheduledComman protected static final int MAX_RETRIES = 3; - private final Pithos app; - protected int retries = 0; protected Class aClass; @@ -76,8 +73,7 @@ public abstract class HeadRequest implements ScheduledComman public abstract void onError(Throwable t); - public HeadRequest(Pithos app, Class aClass, String api, String owner, String path, int okCode, T result) { - this.app = app; + public HeadRequest(Class aClass, String api, String owner, String path, int okCode, T result) { this.aClass = aClass; this.api = api; this.owner = owner; @@ -86,12 +82,12 @@ public abstract class HeadRequest implements ScheduledComman this.result = result; } - public HeadRequest(Pithos app, Class aClass, String api, String owner, String path) { - this(app, aClass, api, owner, path, Response.SC_NO_CONTENT, null); + public HeadRequest(Class aClass, String api, String owner, String path) { + this(aClass, api, owner, path, Response.SC_NO_CONTENT, null); } - public HeadRequest(Pithos app, Class aClass, String api, String owner, String path, T result) { - this(app, aClass, api, owner, path, Response.SC_NO_CONTENT, result); + public HeadRequest(Class aClass, String api, String owner, String path, T result) { + this(aClass, api, owner, path, Response.SC_NO_CONTENT, result); } @Override @@ -113,7 +109,7 @@ public abstract class HeadRequest implements ScheduledComman @Override public T deserialize(Response response) { - return Resource.createFromResponse(app, aClass, owner, response, result); + return Resource.createFromResponse(aClass, owner, response, result); } @Override diff --git a/src/gr/grnet/pithos/web/client/rest/PostRequest.java b/src/gr/grnet/pithos/web/client/rest/PostRequest.java index a5437a5..2bc7454 100644 --- a/src/gr/grnet/pithos/web/client/rest/PostRequest.java +++ b/src/gr/grnet/pithos/web/client/rest/PostRequest.java @@ -35,7 +35,6 @@ package gr.grnet.pithos.web.client.rest; -import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import java.util.HashMap; @@ -50,8 +49,6 @@ import com.google.gwt.http.client.Response; public abstract class PostRequest implements ScheduledCommand { - private final Pithos app; - private String api; protected String owner; @@ -66,15 +63,13 @@ public abstract class PostRequest implements ScheduledCommand { public abstract void onError(Throwable t); - public PostRequest(Pithos app, String api, String owner, String path) { - this.app = app; + public PostRequest(String api, String owner, String path) { this.api = api; this.owner = owner; this.path = path; } - public PostRequest(Pithos app, String api, String owner, String path, String data) { - this.app = app; + public PostRequest(String api, String owner, String path, String data) { this.api = api; this.owner = owner; this.path = path; @@ -96,7 +91,7 @@ public abstract class PostRequest implements ScheduledCommand { @Override public Resource deserialize(Response response) { - return Resource.createFromResponse(app, Resource.class, owner, response, null); + return Resource.createFromResponse(Resource.class, owner, response, null); } @Override diff --git a/src/gr/grnet/pithos/web/client/rest/PutRequest.java b/src/gr/grnet/pithos/web/client/rest/PutRequest.java index 73ee55d..1b8d734 100644 --- a/src/gr/grnet/pithos/web/client/rest/PutRequest.java +++ b/src/gr/grnet/pithos/web/client/rest/PutRequest.java @@ -70,7 +70,6 @@ package gr.grnet.pithos.web.client.rest; -import gr.grnet.pithos.web.client.Pithos; import gr.grnet.pithos.web.client.Resource; import java.util.HashMap; @@ -84,8 +83,6 @@ import com.google.gwt.http.client.Response; public abstract class PutRequest implements ScheduledCommand { - private final Pithos app; - private String api; protected String owner; @@ -98,8 +95,7 @@ public abstract class PutRequest implements ScheduledCommand { public abstract void onError(Throwable t); - public PutRequest(Pithos app, String api, String owner, String path) { - this.app = app; + public PutRequest(String api, String owner, String path) { this.api = api; this.owner = owner; this.path = path; @@ -120,7 +116,7 @@ public abstract class PutRequest implements ScheduledCommand { @Override public Resource deserialize(Response response) { - return Resource.createFromResponse(app, Resource.class, owner, response, null); + return Resource.createFromResponse(Resource.class, owner, response, null); } @Override diff --git a/src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java b/src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java index 96e71e8..ceab232 100644 --- a/src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java +++ b/src/gr/grnet/pithos/web/client/tagtree/TagTreeViewModel.java @@ -147,7 +147,7 @@ public class TagTreeViewModel implements TreeViewModel { if (iter.hasNext()) { Folder f = iter.next(); String path = f.getUri() + "?format=json&meta=" + t.getName(); - GetRequest getFolder = new GetRequest(app, Folder.class, app.getApiPath(), app.getUserID(), path) { + GetRequest getFolder = new GetRequest(Folder.class, app.getApiPath(), app.getUserID(), path) { @Override public void onSuccess(Folder _result) { files.addAll(_result.getFiles()); -- 1.7.10.4