|
|
|
@ -79,6 +79,7 @@ import org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.interfaces.TreeAppControllerInterface;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.model.FileModel;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.model.FolderModel;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.model.MessageModel;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.model.SmartFolderModel;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.model.SubTree;
|
|
|
|
@ -99,6 +100,7 @@ import org.gcube.portlets.user.workspace.client.view.windows.DialogWebDavUrl;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplay;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxConfirm;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxInfo;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.view.windows.WindowImagePreview;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.view.windows.WindowOpenUrl;
|
|
|
|
|
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
|
|
|
|
@ -208,75 +210,97 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onCreateSharedFolder(CreateSharedFolderEvent createSharedFolderEvent) {
|
|
|
|
|
|
|
|
|
|
final FileModel sourceFileModel = createSharedFolderEvent.getFileSourceModel();
|
|
|
|
|
System.out.println("##########sourceFileModel id "+sourceFileModel.getIdentifier());
|
|
|
|
|
|
|
|
|
|
final FileModel parentFileModel= createSharedFolderEvent.getParentFileModel();
|
|
|
|
|
final boolean isNewFolder = createSharedFolderEvent.isNewFolder();
|
|
|
|
|
DialogShareFolder dialogSharedFolder = null;
|
|
|
|
|
String parentDirectoryName = null;
|
|
|
|
|
|
|
|
|
|
FolderModel parent = null;
|
|
|
|
|
|
|
|
|
|
if(sourceFileModel.isDirectory()){
|
|
|
|
|
// explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true);
|
|
|
|
|
parentDirectoryName = sourceFileModel.getName();
|
|
|
|
|
parent = (FolderModel) sourceFileModel;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
parentDirectoryName = parentFileModel.getName();
|
|
|
|
|
parent = (FolderModel) parentFileModel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(isNewFolder)
|
|
|
|
|
dialogSharedFolder = new DialogShareFolder(parentDirectoryName,eventBus);
|
|
|
|
|
else
|
|
|
|
|
dialogSharedFolder = new DialogShareFolder(parentDirectoryName, (FolderModel) sourceFileModel, eventBus);
|
|
|
|
|
|
|
|
|
|
final FileModel sourceFileModel = createSharedFolderEvent.getFileSourceModel();
|
|
|
|
|
|
|
|
|
|
final DialogShareFolder finalDialog = dialogSharedFolder;
|
|
|
|
|
final FolderModel parentModel = parent;
|
|
|
|
|
|
|
|
|
|
finalDialog.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void handleEvent(BaseEvent be) {
|
|
|
|
|
|
|
|
|
|
if(finalDialog.isValidForm(true)){
|
|
|
|
|
|
|
|
|
|
FolderModel folderModel = null;
|
|
|
|
|
|
|
|
|
|
if(isNewFolder){
|
|
|
|
|
folderModel = new FolderModel("tempId", finalDialog.getName(), parentModel, true, false); //create new shared folder
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
folderModel = finalDialog.getFolder(); //add user for share
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.println("##########sourceFileModel id "+folderModel.getIdentifier());
|
|
|
|
|
//IF ITEM IS SHAREABLE
|
|
|
|
|
if(sourceFileModel.isShareable()){
|
|
|
|
|
|
|
|
|
|
System.out.println("create shared folderEvent - sourceFileModel id "+sourceFileModel.getIdentifier());
|
|
|
|
|
|
|
|
|
|
final FileModel parentFileModel= createSharedFolderEvent.getParentFileModel();
|
|
|
|
|
final boolean isNewFolder = createSharedFolderEvent.isNewFolder();
|
|
|
|
|
DialogShareFolder dialogSharedFolder = null;
|
|
|
|
|
String parentDirectoryName = null;
|
|
|
|
|
FileModel parent = null;
|
|
|
|
|
|
|
|
|
|
if(parentFileModel==null){ //PARENT IS ROOT
|
|
|
|
|
parent = explorerPanel.getAsycTreePanel().getRootItem();
|
|
|
|
|
sourceFileModel.setParentFileModel(parent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(sourceFileModel.isDirectory()){
|
|
|
|
|
// explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true);
|
|
|
|
|
parentDirectoryName = sourceFileModel.getName();
|
|
|
|
|
parent = sourceFileModel;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
parentDirectoryName = parentFileModel.getName();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(isNewFolder)
|
|
|
|
|
dialogSharedFolder = new DialogShareFolder(parentDirectoryName,eventBus);
|
|
|
|
|
else
|
|
|
|
|
dialogSharedFolder = new DialogShareFolder(parentDirectoryName, sourceFileModel, eventBus);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final DialogShareFolder finalDialog = dialogSharedFolder;
|
|
|
|
|
final FileModel parentModel = parent;
|
|
|
|
|
|
|
|
|
|
finalDialog.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void handleEvent(BaseEvent be) {
|
|
|
|
|
|
|
|
|
|
rpcWorkspaceService.shareFolder(folderModel, finalDialog.getSharedListUsers(), isNewFolder, new AsyncCallback<Boolean>() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onFailure(Throwable caught) {
|
|
|
|
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR+" creating shared folder. "+ caught.getMessage(), null);
|
|
|
|
|
|
|
|
|
|
if(finalDialog.isValidForm(true)){
|
|
|
|
|
|
|
|
|
|
FileModel fileModel = null;
|
|
|
|
|
|
|
|
|
|
if(isNewFolder){
|
|
|
|
|
//create a lowest object to send to server
|
|
|
|
|
fileModel = new FileModel("tempId", finalDialog.getName(), parentModel, true, false); //create new shared folder
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onSuccess(Boolean result) {
|
|
|
|
|
if(result)
|
|
|
|
|
eventBus.fireEvent(new RefreshFolderEvent(parentFileModel));
|
|
|
|
|
else{
|
|
|
|
|
fileModel = finalDialog.getParentFolder(); //add user for share
|
|
|
|
|
|
|
|
|
|
//create a lowest object to send to server
|
|
|
|
|
fileModel = new FileModel(fileModel.getIdentifier(), fileModel.getName(), fileModel.getParentFileModel(), fileModel.isDirectory(), fileModel.isShared());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
//DEBUG
|
|
|
|
|
System.out.println("FileModel id "+fileModel.getIdentifier() + " name: "+fileModel.getName() + " parent " + fileModel.getParentFileModel());
|
|
|
|
|
for(InfoContactModel contact:finalDialog.getSharedListUsers() ){
|
|
|
|
|
System.out.println("Share with Contact "+contact) ;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rpcWorkspaceService.shareFolder(fileModel, finalDialog.getSharedListUsers(), isNewFolder, new AsyncCallback<Boolean>() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onFailure(Throwable caught) {
|
|
|
|
|
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR+" creating shared folder. "+ caught.getMessage(), null);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onSuccess(Boolean result) {
|
|
|
|
|
if(result)
|
|
|
|
|
eventBus.fireEvent(new RefreshFolderEvent(parentFileModel));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else{//ITEM IS NOT SHARABLE
|
|
|
|
|
new MessageBoxInfo("Info", "The selected item is not shareable because an ancestor item is already shared");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|