\r
final VerticalPanel inner;\r
\r
- final Button updateButton;\r
-\r
- private boolean _initialPermissionCheck = true;\r
-\r
/**\r
* The widget's constructor.\r
*/\r
\r
folder = selected;\r
\r
- setText("Folder permissions");\r
+ setText(Const.TXT_SHARE_FOLDER);\r
\r
// Outer contains inner and buttons\r
VerticalPanel outer = new VerticalPanel();\r
inner = new VerticalPanel();\r
inner.addStyleName("inner");\r
\r
-\r
folderName.setText(folder.getName());\r
\r
+ final HorizontalPanel privateInfoPanel = new HorizontalPanel();\r
+ privateInfoPanel.setSpacing(8);\r
+ final Label privateInfoTitle = new InlineHTML("<b>Private sharing</b>");\r
+ final Label privateInfoText = new Label("Only people explicitly granted permission can access. Sign-in required.", true);\r
+ privateInfoPanel.add(privateInfoTitle);\r
+ privateInfoPanel.add(privateInfoText);\r
+ inner.add(privateInfoPanel);\r
+\r
VerticalPanel permPanel = new VerticalPanel();\r
FileShareDialog.PrivateSharingImages images = GWT.create(FileShareDialog.PrivateSharingImages.class);\r
- permList = new PermissionsList(app, images, folder.getPermissions(), folder.getOwnerID(), false, null);\r
+\r
+ permList = new PermissionsList(app, images, folder.getPermissions(), folder.getOwnerID(), false, new Command() {\r
+ @Override\r
+ public void execute() {\r
+ updateMetadataForPrivateSharing();\r
+ }\r
+ });\r
+\r
permPanel.add(permList);\r
\r
HorizontalPanel permButtons = new HorizontalPanel();\r
public void onClick(ClickEvent event) {\r
PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, true);\r
dlg.center();\r
- checkUpdateButtonVisibility();\r
+ permList.updatePermissionTable();\r
}\r
});\r
addUser.addStyleName("button");\r
permButtons.add(addUser);\r
permButtons.setCellHorizontalAlignment(addUser, HasHorizontalAlignment.ALIGN_CENTER);\r
\r
- Button add = new Button("Add Group", new ClickHandler() {\r
- @Override\r
- public void onClick(ClickEvent event) {\r
- if(app.getAccount().getGroups().isEmpty()) {\r
- new GroupCreateDialog(app, new Command() {\r
- @Override\r
- public void execute() {\r
- if(app.getAccount().getGroups().isEmpty()) {\r
- return;\r
- }\r
- PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
- dlg.center();\r
- checkUpdateButtonVisibility();\r
- }\r
- }).center();\r
- }\r
- else {\r
+ final boolean haveGroups = app.getAccount().getGroups().size() > 0;\r
+ if(haveGroups) {\r
+ Button addGroup = new Button("Add Group", new ClickHandler() {\r
+ @Override\r
+ public void onClick(ClickEvent event) {\r
PermissionsAddDialog dlg = new PermissionsAddDialog(app, app.getAccount().getGroups(), permList, false);\r
dlg.center();\r
- checkUpdateButtonVisibility();\r
+ permList.updatePermissionTable();\r
}\r
- }\r
- });\r
- add.addStyleName("button");\r
- permButtons.add(add);\r
- permButtons.setCellHorizontalAlignment(add, HasHorizontalAlignment.ALIGN_CENTER);\r
+ });\r
+ addGroup.addStyleName("button");\r
+ permButtons.add(addGroup);\r
+ permButtons.setCellHorizontalAlignment(addGroup, HasHorizontalAlignment.ALIGN_CENTER);\r
+ }\r
\r
permButtons.setSpacing(8);\r
permPanel.add(permButtons);\r
\r
outer.add(inner);\r
\r
- // Create the 'Create/Update' button, along with a listener that hides the dialog\r
- // when the button is clicked and quits the application.\r
- final String okLabel = "Update";\r
- updateButton = new Button(okLabel, new ClickHandler() {\r
+ final Button ok = new Button("OK", new ClickHandler() {\r
@Override\r
public void onClick(ClickEvent event) {\r
- updateFolder();\r
closeDialog();\r
}\r
});\r
- updateButton.addStyleName("button");\r
- checkUpdateButtonVisibility();\r
- outer.add(updateButton);\r
+ ok.addStyleName("button");\r
+\r
+ outer.add(ok);\r
outer.setCellHorizontalAlignment(inner, HasHorizontalAlignment.ALIGN_CENTER);\r
\r
setWidget(outer);\r
}\r
\r
- private void checkUpdateButtonVisibility() {\r
- if(!this._initialPermissionCheck) {\r
- updateButton.setVisible(true);\r
- return;\r
- }\r
-\r
- updateButton.setVisible(permList.hasPermissions());\r
-\r
- this._initialPermissionCheck = false;\r
- }\r
-\r
@Override\r
protected void onPreviewNativeEvent(NativePreviewEvent preview) {\r
super.onPreviewNativeEvent(preview);\r
{\r
switch(evt.getKeyCode()) {\r
case KeyCodes.KEY_ENTER:\r
- updateFolder();\r
+ updateMetadataForPrivateSharing();\r
closeDialog();\r
break;\r
case KeyCodes.KEY_ESCAPE:\r
hide();\r
}\r
\r
- void updateFolder() {\r
+ private void updateMetadataForPrivateSharing() {\r
final Map<String, Boolean[]> perms = (permList.hasChanges() ? permList.getPermissions() : null);\r
- updateMetadata(\r
+ updateMetadataForPrivateSharing(\r
folder.getUri() + Const.QUESTION_MARK_UPDATE_EQ,\r
perms\r
);\r
}\r
\r
- protected void updateMetadata(final String path, final Map<String, Boolean[]> newPermissions) {\r
+ private void updateMetadataForPrivateSharing(final String path, final Map<String, Boolean[]> newPermissions) {\r
if(newPermissions != null) {\r
PostRequest updateFolder = new PostRequest(app.getApiPath(), folder.getOwnerID(), path) {\r
@Override\r
PutRequest newFolder = new PutRequest(app.getApiPath(), folder.getOwnerID(), path1) {\r
@Override\r
public void onSuccess(Resource result) {\r
- updateMetadata(path, newPermissions);\r
+ updateMetadataForPrivateSharing(path, newPermissions);\r
}\r
\r
@Override\r