package gr.grnet.pithos.web.client;\r
\r
import gr.grnet.pithos.web.client.components.TristateCheckBox;\r
+import gr.grnet.pithos.web.client.foldertree.File;\r
+import gr.grnet.pithos.web.client.foldertree.Folder;\r
import gr.grnet.pithos.web.client.rest.MultiplePostCommand;\r
import gr.grnet.pithos.web.client.rest.RestException;\r
import gr.grnet.pithos.web.client.rest.resource.FileResource;\r
*/\r
public class FilesPropertiesDialog extends AbstractPropertiesDialog {\r
\r
- private final TristateCheckBox versionedCheck;\r
+// private final TristateCheckBox versionedCheck;\r
\r
- private final List<FileResource> files;\r
+ private final List<File> files;\r
\r
private Boolean initialVersioned;\r
\r
*\r
* @param _files\r
*/\r
- public FilesPropertiesDialog(final List<FileResource> _files) {\r
+ public FilesPropertiesDialog(GSS _app, final List<File> _files) {\r
super();\r
\r
files = _files;\r
- int versionedNum = 0;\r
- for (FileResource fr : files)\r
- if (fr.isVersioned()) versionedNum++;\r
- Boolean versioned = null;\r
- if (versionedNum==0) versioned = false;\r
- if (versionedNum==files.size()) versioned = true;\r
- initialVersioned = versioned;\r
- versionedCheck = new TristateCheckBox(versioned);\r
+// int versionedNum = 0;\r
+// for (File fr : files)\r
+// if (fr.isVersioned()) versionedNum++;\r
+// Boolean versioned = null;\r
+// if (versionedNum == 0)\r
+// versioned = false;\r
+// if (versionedNum == files.size())\r
+// versioned = true;\r
+\r
+// initialVersioned = versioned;\r
+// versionedCheck = new TristateCheckBox(versioned);\r
\r
// Set the dialog's caption.\r
setText("Files properties");\r
// Inner contains generalPanel and permPanel.\r
inner = new DecoratedTabPanel();\r
inner.setAnimationEnabled(true);\r
- final VerticalPanel generalPanel = new VerticalPanel();\r
- final HorizontalPanel buttons = new HorizontalPanel();\r
- final VerticalPanel verPanel = new VerticalPanel();\r
- final HorizontalPanel vPanel = new HorizontalPanel();\r
\r
- inner.add(generalPanel, "General");\r
- inner.add(verPanel, "Versions");\r
- inner.selectTab(0);\r
+ inner.add(createGeneralPanel(), "General");\r
\r
- final FlexTable generalTable = new FlexTable();\r
- generalTable.setText(0, 0, String.valueOf(files.size())+" files selected");\r
- generalTable.setText(1, 0, "Folder");\r
- generalTable.setText(2, 0, "Tags");\r
- FileResource firstFile = files.get(0);\r
- if(firstFile.getFolderName() != null)\r
- generalTable.setText(1, 1, firstFile.getFolderName());\r
- else\r
- generalTable.setText(1, 1, "-");\r
+ final VerticalPanel verPanel = new VerticalPanel();\r
\r
- // Find if tags are identical\r
- List<String> tagsList = files.get(0).getTags();\r
- List<String> tagss;\r
- for (int i=1; i<files.size(); i++) {\r
- tagss = files.get(i).getTags();\r
- if (tagsList.size() != tagss.size() || !tagsList.containsAll(tagss)) {\r
- tagsList = null;\r
- break;\r
- }\r
- }\r
- // Get the tags.\r
- StringBuffer tagsBuffer = new StringBuffer();\r
- if (tagsList==null)\r
- tagsBuffer.append(MULTIPLE_VALUES_TEXT);\r
- else {\r
- Iterator i = tagsList.iterator();\r
- while (i.hasNext()) {\r
- String tag = (String) i.next();\r
- tagsBuffer.append(tag).append(", ");\r
- }\r
- if (tagsBuffer.length() > 1)\r
- tagsBuffer.delete(tagsBuffer.length() - 2, tagsBuffer.length() - 1);\r
- }\r
- initialTagText = tagsBuffer.toString();\r
- tags.setText(initialTagText);\r
- tags.addFocusHandler(new FocusHandler() {\r
- @Override\r
- public void onFocus(FocusEvent event) {\r
- if (MULTIPLE_VALUES_TEXT.equals(tags.getText()))\r
- tags.setText("");\r
- }\r
- }\r
- );\r
+// final HorizontalPanel vPanel = new HorizontalPanel();\r
+// vPanel.setSpacing(8);\r
+// vPanel.addStyleName("pithos-TabPanelBottom");\r
+// vPanel.add(new Label("Versioned"));\r
+// vPanel.add(versionedCheck);\r
+//\r
+// verPanel.add(vPanel);\r
\r
- generalTable.setWidget(2, 1, tags);\r
- generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels");\r
- generalTable.getFlexCellFormatter().setColSpan(0, 0, 2);\r
- generalTable.getFlexCellFormatter().setStyleName(1, 0, "props-labels");\r
- generalTable.getFlexCellFormatter().setStyleName(2, 0, "props-labels");\r
- generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values");\r
- generalTable.getFlexCellFormatter().setStyleName(1, 1, "props-values");\r
- generalTable.getFlexCellFormatter().setStyleName(2, 1, "props-values");\r
- generalTable.setCellSpacing(4);\r
+ inner.add(verPanel, "Versions");\r
+ inner.selectTab(0);\r
+ outer.add(inner);\r
\r
+ final HorizontalPanel buttons = new HorizontalPanel();\r
// Create the 'OK' button, along with a listener that hides the dialog\r
// when the button is clicked.\r
final Button ok = new Button("OK", new ClickHandler() {\r
buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER);\r
buttons.setSpacing(8);\r
buttons.addStyleName("pithos-TabPanelBottom");\r
+ outer.add(buttons);\r
+ outer.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER);\r
+ outer.addStyleName("pithos-TabPanelBottom");\r
\r
- generalPanel.add(generalTable);\r
+ focusPanel.setFocus(true);\r
+ setWidget(outer);\r
+ }\r
\r
- // Asynchronously retrieve the tags defined by this user.\r
- DeferredCommand.addCommand(new Command() {\r
+ private VerticalPanel createGeneralPanel() {\r
+ VerticalPanel generalPanel = new VerticalPanel();\r
\r
- @Override\r
- public void execute() {\r
- updateTags();\r
- }\r
- });\r
+ final FlexTable generalTable = new FlexTable();\r
+ generalTable.setText(0, 0, String.valueOf(files.size())+" files selected");\r
+ generalTable.setText(1, 0, "Folder");\r
+ generalTable.setText(2, 0, "Tags");\r
+ Folder parent = files.get(0).getParent();\r
+ if(parent != null)\r
+ generalTable.setText(1, 1, parent.getName());\r
+ else\r
+ generalTable.setText(1, 1, "-");\r
+\r
+ // Find if tags are identical\r
+// List<String> tagsList = files.get(0).getTags();\r
+// List<String> tagss;\r
+// for (int i=1; i<files.size(); i++) {\r
+// tagss = files.get(i).getTags();\r
+// if (tagsList.size() != tagss.size() || !tagsList.containsAll(tagss)) {\r
+// tagsList = null;\r
+// break;\r
+// }\r
+// }\r
+// // Get the tags.\r
+// StringBuffer tagsBuffer = new StringBuffer();\r
+// if (tagsList==null)\r
+// tagsBuffer.append(MULTIPLE_VALUES_TEXT);\r
+// else {\r
+// Iterator i = tagsList.iterator();\r
+// while (i.hasNext()) {\r
+// String tag = (String) i.next();\r
+// tagsBuffer.append(tag).append(", ");\r
+// }\r
+// if (tagsBuffer.length() > 1)\r
+// tagsBuffer.delete(tagsBuffer.length() - 2, tagsBuffer.length() - 1);\r
+// }\r
+// initialTagText = tagsBuffer.toString();\r
+// tags.setText(initialTagText);\r
+// tags.addFocusHandler(new FocusHandler() {\r
+// @Override\r
+// public void onFocus(FocusEvent event) {\r
+// if (MULTIPLE_VALUES_TEXT.equals(tags.getText()))\r
+// tags.setText("");\r
+// }\r
+// }\r
+// );\r
+//\r
+// generalTable.setWidget(2, 1, tags);\r
+ generalTable.getFlexCellFormatter().setStyleName(0, 0, "props-labels");\r
+ generalTable.getFlexCellFormatter().setColSpan(0, 0, 2);\r
+ generalTable.getFlexCellFormatter().setStyleName(1, 0, "props-labels");\r
+ generalTable.getFlexCellFormatter().setStyleName(2, 0, "props-labels");\r
+ generalTable.getFlexCellFormatter().setStyleName(0, 1, "props-values");\r
+ generalTable.getFlexCellFormatter().setStyleName(1, 1, "props-values");\r
+ generalTable.getFlexCellFormatter().setStyleName(2, 1, "props-values");\r
+ generalTable.setCellSpacing(4);\r
+\r
+ generalPanel.add(generalTable);\r
+\r
+ // Asynchronously retrieve the tags defined by this user.\r
+// DeferredCommand.addCommand(new Command() {\r
+//\r
+// @Override\r
+// public void execute() {\r
+// updateTags();\r
+// }\r
+// });\r
\r
DisclosurePanel allTags = new DisclosurePanel("All tags");\r
allTagsContent = new FlowPanel();\r
generalPanel.add(allTags);\r
generalPanel.setSpacing(4);\r
\r
-\r
- vPanel.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER);\r
- vPanel.setSpacing(8);\r
- vPanel.addStyleName("pithos-TabPanelBottom");\r
- vPanel.add(new Label("Versioned"));\r
-\r
- vPanel.add(versionedCheck);\r
- verPanel.add(vPanel);\r
- outer.add(inner);\r
- outer.add(buttons);\r
- outer.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER);\r
- outer.addStyleName("pithos-TabPanelBottom");\r
-\r
- focusPanel.setFocus(true);\r
- setWidget(outer);\r
- }\r
-\r
+ return generalPanel;\r
+ }\r
\r
/**\r
* Accepts any change and updates the file\r
*/\r
@Override\r
protected void accept() {\r
- JSONObject json = new JSONObject();\r
- if ( versionedCheck.getState()!=null && !versionedCheck.getState().equals(initialVersioned) )\r
- json.put("versioned", JSONBoolean.getInstance(versionedCheck.getState()));\r
-\r
- JSONArray taga = new JSONArray();\r
- int i = 0;\r
- String tagText = tags.getText();\r
- if (!MULTIPLE_VALUES_TEXT.equals(tagText) && !initialTagText.equals(tagText)) {\r
- String[] tagset = tagText.split(",");\r
- for (String t : tagset) {\r
- JSONString to = new JSONString(t);\r
- taga.set(i, to);\r
- i++;\r
- }\r
- json.put("tags", taga);\r
- }\r
- String jsonString = json.toString();\r
- if(jsonString.equals("{}")){\r
- GWT.log("NO CHANGES", null);\r
- return;\r
- }\r
- final List<String> fileIds = new ArrayList<String>();\r
- for(FileResource f : files)\r
- fileIds.add(f.getUri()+"?update=");\r
- MultiplePostCommand rt = new MultiplePostCommand(fileIds.toArray(new String[0]), jsonString, 200){\r
-\r
- @Override\r
- public void onComplete() {\r
- GSS.get().getTreeView().refreshCurrentNode(false);\r
- }\r
-\r
- @Override\r
- public void onError(String p, Throwable t) {\r
- GWT.log("", t);\r
- if(t instanceof RestException){\r
- int statusCode = ((RestException)t).getHttpStatusCode();\r
- if(statusCode == 405)\r
- GSS.get().displayError("You don't have the necessary permissions");\r
- else if(statusCode == 404)\r
- GSS.get().displayError("File does not exist");\r
- else if(statusCode == 409)\r
- GSS.get().displayError("A file with the same name already exists");\r
- else if(statusCode == 413)\r
- GSS.get().displayError("Your quota has been exceeded");\r
- else\r
- GSS.get().displayError("Unable to modify file::"+((RestException)t).getHttpStatusText());\r
- }\r
- else\r
- GSS.get().displayError("System error modifying file:"+t.getMessage());\r
- }\r
- };\r
- DeferredCommand.addCommand(rt);\r
+// JSONObject json = new JSONObject();\r
+// if ( versionedCheck.getState()!=null && !versionedCheck.getState().equals(initialVersioned) )\r
+// json.put("versioned", JSONBoolean.getInstance(versionedCheck.getState()));\r
+//\r
+// JSONArray taga = new JSONArray();\r
+// int i = 0;\r
+// String tagText = tags.getText();\r
+// if (!MULTIPLE_VALUES_TEXT.equals(tagText) && !initialTagText.equals(tagText)) {\r
+// String[] tagset = tagText.split(",");\r
+// for (String t : tagset) {\r
+// JSONString to = new JSONString(t);\r
+// taga.set(i, to);\r
+// i++;\r
+// }\r
+// json.put("tags", taga);\r
+// }\r
+// String jsonString = json.toString();\r
+// if(jsonString.equals("{}")){\r
+// GWT.log("NO CHANGES", null);\r
+// return;\r
+// }\r
+// final List<String> fileIds = new ArrayList<String>();\r
+// for(FileResource f : files)\r
+// fileIds.add(f.getUri()+"?update=");\r
+// MultiplePostCommand rt = new MultiplePostCommand(fileIds.toArray(new String[0]), jsonString, 200){\r
+//\r
+// @Override\r
+// public void onComplete() {\r
+// GSS.get().getTreeView().refreshCurrentNode(false);\r
+// }\r
+//\r
+// @Override\r
+// public void onError(String p, Throwable t) {\r
+// GWT.log("", t);\r
+// if(t instanceof RestException){\r
+// int statusCode = ((RestException)t).getHttpStatusCode();\r
+// if(statusCode == 405)\r
+// GSS.get().displayError("You don't have the necessary permissions");\r
+// else if(statusCode == 404)\r
+// GSS.get().displayError("File does not exist");\r
+// else if(statusCode == 409)\r
+// GSS.get().displayError("A file with the same name already exists");\r
+// else if(statusCode == 413)\r
+// GSS.get().displayError("Your quota has been exceeded");\r
+// else\r
+// GSS.get().displayError("Unable to modify file::"+((RestException)t).getHttpStatusText());\r
+// }\r
+// else\r
+// GSS.get().displayError("System error modifying file:"+t.getMessage());\r
+// }\r
+// };\r
+// DeferredCommand.addCommand(rt);\r
}\r
-\r
-\r
}\r