From 7fa36d874dc496e4fc28ead6ca08f129de71b91a Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Tue, 12 Feb 2013 16:17:15 +0000 Subject: [PATCH] update sharing.. git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@69138 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/AppControllerExplorer.java | 23 ++-- .../client/event/CreateSharedFolderEvent.java | 8 -- .../workspace/client/model/FileModel.java | 28 +---- .../workspace/client/model/FolderModel.java | 44 +------- .../client/view/tree/AsyncTreePanel.java | 4 +- .../client/view/tree/ContextMenuTree.java | 2 +- .../workspace/server/GWTWorkspaceBuilder.java | 100 +----------------- .../server/GWTWorkspaceServiceImpl.java | 53 +++++----- 8 files changed, 53 insertions(+), 209 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java b/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java index c920335..0bd006c 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java @@ -115,6 +115,7 @@ import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.event.MessageBoxEvent; import com.extjs.gxt.ui.client.widget.Dialog; +import com.extjs.gxt.ui.client.widget.Info; import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.HandlerManager; @@ -155,7 +156,6 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt // } public GWTWorkspaceServiceAsync getRpcWorkspaceService() { - return rpcWorkspaceService; } @@ -216,6 +216,7 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt //IF ITEM IS SHAREABLE if(sourceFileModel.isShareable()){ + //DEBUG System.out.println("create shared folderEvent - sourceFileModel id "+sourceFileModel.getIdentifier()); final FileModel parentFileModel= createSharedFolderEvent.getParentFileModel(); @@ -248,6 +249,8 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt final DialogShareFolder finalDialog = dialogSharedFolder; final FileModel parentModel = parent; + + finalDialog.getButtonById(Dialog.OK).addListener(Events.Select, new Listener() { @Override @@ -269,18 +272,21 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt } //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) ; - - } - +// 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) ; +// +// } + + Info.display("Info", "An operation of sharing was submitted"); + explorerPanel.mask("Submitting operation"); + rpcWorkspaceService.shareFolder(fileModel, finalDialog.getSharedListUsers(), isNewFolder, new AsyncCallback() { @Override public void onFailure(Throwable caught) { new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR+" creating shared folder. "+ caught.getMessage(), null); - + explorerPanel.unmask(); } @Override @@ -288,6 +294,7 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt if(result) eventBus.fireEvent(new RefreshFolderEvent(parentFileModel)); + explorerPanel.unmask(); } }); } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/event/CreateSharedFolderEvent.java b/src/main/java/org/gcube/portlets/user/workspace/client/event/CreateSharedFolderEvent.java index 3f07c99..b205284 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/event/CreateSharedFolderEvent.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/event/CreateSharedFolderEvent.java @@ -45,12 +45,4 @@ public class CreateSharedFolderEvent extends GwtEvent children = new LinkedList(); -// -// GWTWorkspaceFolder gwtWorkspace = new GWTWorkspaceFolder( -// workspace.getId(), -// workspace.getName(), -// workspace.getDescription(), -// workspace.getOwner().getPortalLogin(), -// toDate(workspace.getCreationTime()), -// gwtProperties, -// toDate(workspace.getLastModificationTime()), -// GWTWorkspaceItemAction.valueOf(workspace.getLastAction().toString()), -// parent, -// children); -// -// gwtWorkspace.setShared(workspace.getCapabilities().isShared()); -// -// for (WorkspaceItem folder : workspace.getChildren()){ -// GWTWorkspaceItem gwtFolder = buildGWTWorkspaceItem(folder, gwtWorkspace); -// if (gwtFolder!=null) children.add(gwtFolder); -// else{ -// logger.error("gwt conversion return null for folder "+folder); -// } -// } -// -// return gwtWorkspace; -// } - protected Date toDate(Calendar calendar) { if (calendar == null) return new Date(0); @@ -185,20 +148,6 @@ public class GWTWorkspaceBuilder { return resultdate; } - -// protected GWTWorkspaceItem buildGWTWorkspaceItem(WorkspaceItem item, GWTWorkspaceItem parent) throws InternalErrorException -// { -// logger.trace("buildGWTWorkspaceItem item: "+item); -// switch (item.getType()) -// { -// case FOLDER: return buildGWTWorkspace((WorkspaceFolder) item, (GWTWorkspaceFolder) parent); -// case FOLDER_ITEM: return buildGWTFolderItem((FolderItem) item, (GWTWorkspaceFolder) parent); -// } -// -// logger.error("Unknown item type: "+item.getType()); -// -// return null; -// } protected GWTProperties buildGWTProperties(Properties metadata) throws InternalErrorException { @@ -207,34 +156,7 @@ public class GWTWorkspaceBuilder { return new GWTProperties(); } - -// protected GWTFolderItem buildGWTFolderItem(FolderItem item, GWTWorkspaceFolder parent) throws InternalErrorException -// { -// switch(item.getFolderItemType()) -// { -// case EXTERNAL_IMAGE: return buildGWTExternalImage((ExternalImage) item, parent); -// case EXTERNAL_FILE: return buildGWTExternalFile((ExternalFile) item, parent); -// case EXTERNAL_PDF_FILE: return buildGWTExternalPDFFile((ExternalPDFFile) item, parent); -// case EXTERNAL_URL: return buildGWTExternalUrl((ExternalUrl)item, parent); -// case REPORT_TEMPLATE: return buildGWTReportTemplate((ReportTemplate)item, parent); -// case REPORT: return buildGWTReport((Report)item, parent); -// case QUERY: return buildGWTQuery((Query) item, parent); -// case TIME_SERIES: return buildGWTTimeSeries((TimeSeries)item, parent); -// case AQUAMAPS_ITEM: return buildGWTAquaMapsItem((AquaMapsItem)item, parent); -// case PDF_DOCUMENT: return buildGWTPDFDocument((PDFDocument) item, parent); -// case IMAGE_DOCUMENT: return buildGWTImageDocument((ImageDocument) item, parent); -// case DOCUMENT: return buildGWTDocument((Document) item, parent); -// case URL_DOCUMENT: return buildGWTUrlDocument((UrlDocument) item, parent); -// case METADATA: return buildGWTMetadata((Metadata) item, parent); -// case WORKFLOW_REPORT: return buildGWTWorkflowReport((WorkflowReport) item, parent); -// case WORKFLOW_TEMPLATE: return buildGWTWorkflowTemplate((WorkflowTemplate) item, parent); -// } -// -// logger.error("Unknown folder item type: "+item.getFolderItemType()); -// -// return null; -// } - + protected String buildImageUrl(String id) { return buildImageServiceUrl(id, ImageRequestType.IMAGE); @@ -831,6 +753,7 @@ public class GWTWorkspaceBuilder { FolderModel root = new FolderModel(workspaceRoot.getId(),workspaceRoot.getName(),null, true, workspaceRoot.isShared()); root.setIsRoot(true); +// root.setShareable(true); // root.setOwner(new InfoContactModel(workspaceRoot.getOwner().getId(), workspaceRoot.getOwner().getPortalLogin(), "name")); // root.setShared(workspaceRoot.isShared()); @@ -844,23 +767,7 @@ public class GWTWorkspaceBuilder { return root; } - -// public GWTWorkspaceItem buildWorkspaceFileModelItems(WorkspaceFolder workspace) throws InternalErrorException { -// -// List children = new LinkedList(); -// -// for (WorkspaceItem folder : workspace.getChildren()){ -// GWTWorkspaceItem gwtFolder = buildGWTWorkspaceItem(folder, gwtWorkspace); -// if (gwtFolder!=null) children.add(gwtFolder); -// else{ -// logger.error("gwt conversion return null for folder "+folder); -// } -// -// -// return root; -// } - - + protected List buildGXTListFileModelItem(WorkspaceItem workspaceFolder, FileModel parentFolderModel) throws InternalErrorException { @@ -962,6 +869,7 @@ public class GWTWorkspaceBuilder { fileModel = new FileModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, false, false); FolderItem folderItem = (FolderItem) item; fileModel = setFolderItemType(fileModel, folderItem); + fileModel.setShareable(true); break; case SHARED_FOLDER: diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java index 7cd9cb7..bb21d5d 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java @@ -1280,42 +1280,39 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT public boolean shareFolder(FileModel folder, List listContacts, boolean isNewFolder) throws Exception { try { - - System.out.println("quiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); - + Workspace workspace = getWorkspace(); -// workspaceLogger.trace("shareFolder "+ folder.getIdentifier() -// + " name: "+ folder.getName() -// + " parent name: " + folder.getParentFileModel().getName() -// + " listContacts size: " + listContacts.size()); + workspaceLogger.trace("shareFolder "+ folder.getIdentifier() + + " name: "+ folder.getName() + + " parent name: " + folder.getParentFileModel().getName() + + " listContacts size: " + listContacts.size()); // //DEBUG -// System.out.println("shareFolder "+ folder.getIdentifier() -// + " name: "+ folder.getName() -// + " parent name: " + folder.getParentFileModel().getName() -// + " listContacts size: " + listContacts.size()); -// -// for (InfoContactModel infoContactModel : listContacts) { -// System.out.println("share with "+ infoContactModel.getLogin()); -// } + System.out.println("shareFolder "+ folder.getIdentifier() + + " name: "+ folder.getName() + + " parent name: " + folder.getParentFileModel().getName() + + " listContacts size: " + listContacts.size()); + + for (InfoContactModel infoContactModel : listContacts) { + System.out.println("share with "+ infoContactModel.getLogin()); + } + + GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder(); + + List listLogin = builder.getListLoginByInfoContactModel(listContacts); -// GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder(); -// -// List listLogin = builder.getListLoginByInfoContactModel(listContacts); -// WorkspaceSharedFolder sharedFolder = null; -// -// if(listLogin.size()>0){ -// -// if(!isNewFolder) -// sharedFolder = workspace.shareFolder(listLogin, folder.getIdentifier()); -// else -// sharedFolder = workspace.createSharedFolder(folder.getName(), "description", listLogin, folder.getParentFileModel().getIdentifier()); -// } + + if(listLogin.size()>0){ + + if(!isNewFolder) + sharedFolder = workspace.shareFolder(listLogin, folder.getIdentifier()); + else + sharedFolder = workspace.createSharedFolder(folder.getName(), "description", listLogin, folder.getParentFileModel().getIdentifier()); + } boolean created = sharedFolder==null?false:true; -// return created; } catch (Exception e) {