X-Git-Url: https://code.grnet.gr/git/pithos/blobdiff_plain/9e6a28ed00569575c0a9ae54ace309ab7067076c..4aba5423d07fbf1a1388a27cc996b38db5c4835c:/src/gr/ebs/gss/client/FolderPropertiesDialog.java diff --git a/src/gr/ebs/gss/client/FolderPropertiesDialog.java b/src/gr/ebs/gss/client/FolderPropertiesDialog.java index 479375f..2e466e2 100644 --- a/src/gr/ebs/gss/client/FolderPropertiesDialog.java +++ b/src/gr/ebs/gss/client/FolderPropertiesDialog.java @@ -1,5 +1,5 @@ /* - * Copyright 2007, 2008, 2009 Electronic Business Systems Ltd. + * Copyright 2007, 2008, 2009, 2010 Electronic Business Systems Ltd. * * This file is part of GSS. * @@ -19,18 +19,21 @@ package gr.ebs.gss.client; import gr.ebs.gss.client.FilePropertiesDialog.Images; -import gr.ebs.gss.client.dnd.DnDTreeItem; import gr.ebs.gss.client.rest.PostCommand; import gr.ebs.gss.client.rest.RestException; import gr.ebs.gss.client.rest.resource.FolderResource; import gr.ebs.gss.client.rest.resource.GroupResource; import gr.ebs.gss.client.rest.resource.PermissionHolder; +import gr.ebs.gss.client.rest.resource.RestResource; +import gr.ebs.gss.client.rest.resource.RestResourceWrapper; import java.util.List; import java.util.Set; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.NativeEvent; +import com.google.gwt.event.dom.client.ChangeEvent; +import com.google.gwt.event.dom.client.ChangeHandler; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; @@ -95,8 +98,8 @@ public class FolderPropertiesDialog extends DialogBox { GSS.enableIESelection(); create = _create; - DnDTreeItem folderItem = (DnDTreeItem)GSS.get().getFolders().getCurrent(); - folder = folderItem.getFolderResource(); + + folder = ((RestResourceWrapper) GSS.get().getTreeView().getSelection()).getResource(); permList = new PermissionsList(images, folder.getPermissions(), folder.getOwner()); groups = _groups; @@ -123,19 +126,38 @@ public class FolderPropertiesDialog extends DialogBox { inner.add(permPanel, "Sharing"); inner.selectTab(0); + final Label folderNameNote = new Label("Please note that slashes ('/') are not allowed in folder names.", true); + folderNameNote.setVisible(false); + folderNameNote.setStylePrimaryName("gss-readForAllNote"); + FlexTable generalTable = new FlexTable(); generalTable.setText(0, 0, "Name"); generalTable.setText(1, 0, "Parent"); generalTable.setText(2, 0, "Creator"); generalTable.setText(3, 0, "Last modified"); folderName.setText(create ? "" : folder.getName()); + folderName.getElement().setId("folderPropertiesDialog.textBox.name"); generalTable.setWidget(0, 1, folderName); + folderName.addChangeHandler(new ChangeHandler() { + + @Override + public void onChange(ChangeEvent event) { + if(folderName.getText().contains("/")) + folderNameNote.setVisible(true); + else + folderNameNote.setVisible(false); + + } + }); + + if (create) generalTable.setText(1, 1, folder.getName()); else if(folder.getParentName() == null) generalTable.setText(1, 1, "-"); else generalTable.setText(1, 1, folder.getParentName()); + generalTable.setWidget(0, 2, folderNameNote); generalTable.setText(2, 1, folder.getOwner()); DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a"); if(folder.getModificationDate() != null) @@ -159,13 +181,18 @@ public class FolderPropertiesDialog extends DialogBox { okLabel = "Update"; Button ok = new Button(okLabel, new ClickHandler() { @Override - public void onClick(ClickEvent event) { - - createOrUpdateFolder(); + public void onClick(ClickEvent event) { + if(folderName.getText().contains("/")) + folderNameNote.setVisible(true); + else { + folderNameNote.setVisible(false); + createOrUpdateFolder(); + closeDialog(); + } - closeDialog(); } }); + ok.getElement().setId("folderPropertiesDialog.button.ok"); buttons.add(ok); buttons.setCellHorizontalAlignment(ok, HasHorizontalAlignment.ALIGN_CENTER); // Create the 'Cancel' button, along with a listener that hides the @@ -177,6 +204,7 @@ public class FolderPropertiesDialog extends DialogBox { closeDialog(); } }); + cancel.getElement().setId("folderPropertiesDialog.button.cancel"); buttons.add(cancel); buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER); buttons.setSpacing(8); @@ -206,9 +234,9 @@ public class FolderPropertiesDialog extends DialogBox { permButtons.setSpacing(8); permButtons.addStyleName("gss-TabPanelBottom"); - final Label readForAllNote = new Label("When this option is enabled, the file will be readable" + + final Label readForAllNote = new Label("When this option is enabled, the folder will be readable" + " by everyone. By checking this option, you are certifying that you have the right to " + - "distribute this file and that it does not violate the Terms of Use.", true); + "distribute this folder's contents and that it does not violate the Terms of Use.", true); readForAllNote.setVisible(false); readForAllNote.setStylePrimaryName("gss-readForAllNote"); @@ -247,7 +275,7 @@ public class FolderPropertiesDialog extends DialogBox { }); path.setText(folder.getUri()); - path.setTitle("Use this link for sharing the file via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)"); + path.setTitle("Use this link for sharing the folder via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)"); path.setWidth("100%"); path.setReadOnly(true); pathPanel.setWidth("100%"); @@ -314,12 +342,19 @@ public class FolderPropertiesDialog extends DialogBox { * @param _folderName the name of the folder to create */ private void createFolder() { + String name = folderName.getText(); + if (!GSS.isValidResourceName(name)) { + GSS.get().displayError("The folder name '" + name + "' is invalid"); + return; + } PostCommand ep = new PostCommand(folder.getUri() + "?new=" + - URL.encodeComponent(folderName.getText()), "", 201) { + URL.encodeComponent(name), "", 201) { @Override public void onComplete() { - GSS.get().getFolders().updateFolder((DnDTreeItem) GSS.get().getFolders().getCurrent()); + //TODO:CELLTREE + GSS.get().getTreeView().updateNodeChildren((RestResourceWrapper) GSS.get().getTreeView().getSelection()); + //GSS.get().getFolders().updateFolder((DnDTreeItem) GSS.get().getFolders().getCurrent()); } @Override @@ -393,19 +428,26 @@ public class FolderPropertiesDialog extends DialogBox { @Override public void onComplete() { + //TODO:CELLTREE + if(getPostBody() != null && !"".equals(getPostBody().trim())){ - DnDTreeItem folderItem = (DnDTreeItem) GSS.get().getFolders().getCurrent(); - FolderResource fres = folderItem.getFolderResource(); + + + FolderResource fres = ((RestResourceWrapper) GSS.get().getTreeView().getSelection()).getResource(); String initialPath = fres.getUri(); String newPath = getPostBody().trim(); fres.setUri(newPath); - + ((RestResourceWrapper) GSS.get().getTreeView().getSelection()).getResource().setUri(newPath); + ((RestResourceWrapper) GSS.get().getTreeView().getSelection()).setUri(newPath); + GSS.get().getTreeView().updateNodeChildren(fres.getParentURI()); + /* if(folderItem.getParentItem() != null && ((DnDTreeItem)folderItem.getParentItem()).getFolderResource() != null){ ((DnDTreeItem)folderItem.getParentItem()).getFolderResource().removeSubfolderPath(initialPath); ((DnDTreeItem)folderItem.getParentItem()).getFolderResource().getSubfolderPaths().add(newPath); - } + }*/ } - GSS.get().getFolders().updateFolder( (DnDTreeItem) GSS.get().getFolders().getCurrent()); + //GSS.get().getFolders().updateFolder( (DnDTreeItem) GSS.get().getFolders().getCurrent()); + GSS.get().showFileList(true); } @@ -424,7 +466,8 @@ public class FolderPropertiesDialog extends DialogBox { } else GSS.get().displayError("System error moifying file: "+t.getMessage()); - GSS.get().getFolders().updateFolder( (DnDTreeItem) GSS.get().getFolders().getCurrent()); + //TODO:CELLTREE + //GSS.get().getFolders().updateFolder( (DnDTreeItem) GSS.get().getFolders().getCurrent()); } }; DeferredCommand.addCommand(ep);