From dd0a41920932caca7a1857b07a89ce0cbf22a09d Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 28 Feb 2013 11:32:45 +0000 Subject: [PATCH] git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@70591 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 2 +- .../server/GWTWorkspaceServiceImpl.java | 324 +++++++----------- 2 files changed, 118 insertions(+), 208 deletions(-) diff --git a/pom.xml b/pom.xml index 5b0562f..c6087bb 100644 --- a/pom.xml +++ b/pom.xml @@ -147,7 +147,7 @@ org.gcube.portlets.user - opengcubeapplication + workspaceapplicationhandler 1.0.0-SNAPSHOT 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 22d304d..3896449 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 @@ -28,7 +28,6 @@ import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ExternalU import org.gcube.portlets.user.homelibrary.home.workspace.folder.items.ts.TimeSeries; import org.gcube.portlets.user.homelibrary.home.workspace.search.SearchItem; import org.gcube.portlets.user.homelibrary.home.workspace.sharing.WorkspaceMessage; -import org.gcube.portlets.user.opengcubeapplication.ApplicationReaderFromGenericResource; import org.gcube.portlets.user.workspace.client.ConstantsExplorer; import org.gcube.portlets.user.workspace.client.interfaces.GXTCategoryItemInterface; import org.gcube.portlets.user.workspace.client.model.BulkCreatorModel; @@ -46,6 +45,7 @@ import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem; import org.gcube.portlets.user.workspace.server.notifications.NotificationsProducer; import org.gcube.portlets.user.workspace.server.util.AllScope; import org.gcube.portlets.user.workspace.server.util.Util; +import org.gcube.portlets.user.workspaceapplicationhandler.ApplicationReaderFromGenericResource; import com.google.gwt.user.server.rpc.RemoteServiceServlet; @@ -293,82 +293,27 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT sourceSharedId = sourceItem.getIdSharedFolder(); //GET SHARED ID BEFORE OF MOVE - System.out.println("moveItem item: "+itemId+" sourceItem name "+sourceItem.getName() + " shared: "+sourceItemIsShared+ " destination: "+destinationId); + //System.out.println("moveItem item: "+itemId+" sourceItem name "+sourceItem.getName() + " shared: "+sourceItemIsShared+ " destination: "+destinationId); workspace.moveItem(itemId, destinationId); //move item WorkspaceItem folderDestinationItem = workspace.getItem(destinationId); //retrieve folder destination - System.out.println("sourceItem.isShared() "+sourceItemIsShared ); - System.out.println("folderDestinationItem item: "+destinationId+" folderDestinationItem name "+folderDestinationItem.getName() + " folderDestinationItem shared: "+folderDestinationItem.isShared()); + //System.out.println("sourceItem.isShared() "+sourceItemIsShared ); + //System.out.println("folderDestinationItem item: "+destinationId+" folderDestinationItem name "+folderDestinationItem.getName() + " folderDestinationItem shared: "+folderDestinationItem.isShared()); if(folderDestinationItem!=null){ - -// //if folder destination is shared folder -// if(folderDestinationItem.isShared()){ //Notify Added Item To Sharing? -// -// //share condition is true if source shared folder is null or not equal to destination shared folder -// shareChangeCondition = (sourceSharedId==null) || (sourceSharedId.compareTo(folderDestinationItem.getIdSharedFolder())!=0); -// -// System.out.println("shareChangeCondition add item: "+ shareChangeCondition); -// -// -// //if shareChangeCondition is true.. notifies added item to sharing -// if(shareChangeCondition){ -// -// List listContacts = getListUserSharedByFolderSharedId(folderDestinationItem.getIdSharedFolder()); -// -// //DEBUG -// printContacts(listContacts); -// -// WorkspaceItem destinationSharedFolder = workspace.getItem(folderDestinationItem.getIdSharedFolder()); -// -// np.notifyAddedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) destinationSharedFolder); -// -//// np.notifyAddedItemToSharing(listContacts, (WorkspaceFolder) folderDestinationItem); -// } -// } try{ - checkNotifyAddItemToShare(sourceItem, sourceSharedId, folderDestinationItem); - - checkNotifyRemoveItemToShare(sourceItemIsShared, sourceItem, sourceSharedId, folderDestinationItem); + checkNotifyAddItemToShare(sourceItem, sourceSharedId, folderDestinationItem); + + checkNotifyRemoveItemToShare(sourceItemIsShared, sourceItem, sourceSharedId, folderDestinationItem); }catch (Exception e) { workspaceLogger.error("An error occurred in checkNotify ", e); } - -// System.out.println("folderDestinationItem.isShared() "+ folderDestinationItem.getName() + ": "+ folderDestinationItem.isShared()); -// -// -// String idSharedFolder = folderDestinationItem.getIdSharedFolder()!=null?folderDestinationItem.getIdSharedFolder():""; -// -// //share condition is true if source shared folder is not equal to destination shared folder -// shareChangeCondition = sourceSharedId==null?false:(sourceSharedId.compareTo(idSharedFolder)!=0); -// -// System.out.println("shareChangeCondition remove item: "+ shareChangeCondition); -// -// //Notify Removed Item To Sharing? -// //if source Item is shared and folder destination is not shared or shareChangeCondition is true.. notifies removed item to sharing -// if(sourceItemIsShared && (!folderDestinationItem.isShared() || shareChangeCondition)){ -// -// //get contacts -// List listContacts = getListUserSharedByFolderSharedId(sourceSharedId); -// -// //DEBUG -// printContacts(listContacts); -// -// WorkspaceItem sourceSharedFolder = workspace.getItem(sourceSharedId); -// -// System.out.println(" name sourceSharedFolder: "+ sourceSharedFolder.getName()); -// -// np.notifyRemovedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) sourceSharedFolder); -// -// } } - - return Boolean.TRUE; }catch (InsufficientPrivilegesException e) { @@ -384,158 +329,122 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT } - private void checkNotifyAddItemToShare(WorkspaceItem sourceItem, String sourceSharedId, WorkspaceItem folderDestinationItem) throws WorkspaceFolderNotFoundException, ItemNotFoundException, InternalErrorException, HomeNotFoundException, Exception{ - + private void checkNotifyAddItemToShare(final WorkspaceItem sourceItem, final String sourceSharedId, final WorkspaceItem folderDestinationItem) { + + workspaceLogger.trace("checkNotifyAddItemToShare"); + if(folderDestinationItem!=null){ - - //if folder destination is shared folder - if(folderDestinationItem.isShared()){ //Notify Added Item To Sharing? - //share condition is true if source shared folder is null or not equal to destination shared folder - boolean shareChangeCondition = (sourceSharedId==null) || (sourceSharedId.compareTo(folderDestinationItem.getIdSharedFolder())!=0); - - System.out.println("shareChangeCondition add item: "+ shareChangeCondition); - - //if shareChangeCondition is true.. notifies added item to sharing - if(shareChangeCondition){ + try{ + //if folder destination is shared folder + if(folderDestinationItem.isShared()){ //Notify Added Item To Sharing? + + workspaceLogger.trace("checkNotifyAddItemToShare source item: "+sourceItem.getName()+" sourceSharedId: "+sourceSharedId + " folder destination: "+folderDestinationItem.getName()); + + //share condition is true if source shared folder is null or not equal to destination shared folder + boolean shareChangeCondition = (sourceSharedId==null) || (sourceSharedId.compareTo(folderDestinationItem.getIdSharedFolder())!=0); + + //System.out.println("shareChangeCondition add item: "+ shareChangeCondition); + + workspaceLogger.trace("shareChangeCondition add item: "+shareChangeCondition); + + //if shareChangeCondition is true.. notifies added item to sharing + if(shareChangeCondition){ - List listContacts = getListUserSharedByFolderSharedId(folderDestinationItem.getIdSharedFolder()); + List listContacts = getListUserSharedByFolderSharedId(folderDestinationItem.getIdSharedFolder()); - //DEBUG - printContacts(listContacts); - - Workspace workspace = getWorkspace(); - - WorkspaceItem destinationSharedFolder = workspace.getItem(folderDestinationItem.getIdSharedFolder()); - - NotificationsProducer np = getNotificationProducer(); - - np.notifyAddedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) destinationSharedFolder); - -// np.notifyAddedItemToSharing(listContacts, (WorkspaceFolder) folderDestinationItem); - } + //DEBUG + printContacts(listContacts); + + Workspace workspace = getWorkspace(); + + WorkspaceItem destinationSharedFolder = workspace.getItem(folderDestinationItem.getIdSharedFolder()); + + NotificationsProducer np = getNotificationProducer(); + + np.notifyAddedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) destinationSharedFolder); + + workspaceLogger.trace("The notifies was sent correctly"); +// np.notifyAddedItemToSharing(listContacts, (WorkspaceFolder) folderDestinationItem); + } + } + else + workspaceLogger.trace("folder destination is not shared"); + + }catch (Exception e) { + workspaceLogger.error("An error occurred in verifyNotifyAddItemToShare ",e); } }else - workspaceLogger.error("verifyNotifyAddItemToShare folder destination item is null"); - + workspaceLogger.warn("The notifies is failure in verifyNotifyAddItemToShare because folder destination item is null"); } -// private void checkNotifyAddItemToShare(final String itemId, final String destinationId) throws WorkspaceFolderNotFoundException, ItemNotFoundException, InternalErrorException, HomeNotFoundException, Exception{ -// -// new Thread(){ -// @Override -// public void run() { -// -// try{ -// -// Workspace workspace = getWorkspace(); -// GCUBEClientLog logger = new GCUBEClientLog(GWTWorkspaceServiceImpl.class); -// logger.trace("moveItem item: "+itemId+" destination: "+destinationId); -// -// WorkspaceItem sourceItem = workspace.getItem(itemId); -// -// if(sourceItem==null) -// return; -// -// String sourceSharedId = null; -// boolean sourceItemIsShared = sourceItem.isShared(); -// -// if(sourceItemIsShared) -// sourceSharedId = sourceItem.getIdSharedFolder(); //GET SHARED ID BEFORE OF MOVE -// -// -// System.out.println("moveItem item: "+itemId+" sourceItem name "+sourceItem.getName() + " shared: "+sourceItemIsShared+ " destination: "+destinationId); -// -// -// WorkspaceItem folderDestinationItem = workspace.getItem(destinationId); //retrieve folder destination -// -// if(folderDestinationItem!=null){ -// -// //if folder destination is shared folder -// if(folderDestinationItem.isShared()){ //Notify Added Item To Sharing? -// -// //share condition is true if source shared folder is null or not equal to destination shared folder -// boolean shareChangeCondition = (sourceSharedId==null) || (sourceSharedId.compareTo(folderDestinationItem.getIdSharedFolder())!=0); -// -// System.out.println("shareChangeCondition add item: "+ shareChangeCondition); -// -// //if shareChangeCondition is true.. notifies added item to sharing -// if(shareChangeCondition){ -// -// List listContacts = getListUserSharedByFolderSharedId(folderDestinationItem.getIdSharedFolder()); -// -// //DEBUG -// printContacts(listContacts); -// -// WorkspaceItem destinationSharedFolder = workspace.getItem(folderDestinationItem.getIdSharedFolder()); -// -// NotificationsProducer np = getNotificationProducer(); -// -// np.notifyAddedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) destinationSharedFolder); -// -//// np.notifyAddedItemToSharing(listContacts, (WorkspaceFolder) folderDestinationItem); -// } -// } -// }else -// workspaceLogger.error("verifyNotifyAddItemToShare folder destination item is null"); -// -// -// }catch (Exception e) { -// // TODO: handle exception -// } -// -// -// } -// }.start(); -// -// } - - - private void checkNotifyRemoveItemToShare(boolean sourceItemIsShared, WorkspaceItem sourceItem, String sourceSharedId, WorkspaceItem folderDestinationItem) throws WorkspaceFolderNotFoundException, ItemNotFoundException, InternalErrorException, HomeNotFoundException, Exception{ - if(folderDestinationItem!=null){ - - String idSharedFolder = folderDestinationItem.getIdSharedFolder()!=null?folderDestinationItem.getIdSharedFolder():""; - - //share condition is true if source shared folder is not equal to destination shared folder - boolean shareChangeCondition = sourceSharedId==null?false:(sourceSharedId.compareTo(idSharedFolder)!=0); - - System.out.println("shareChangeCondition remove item: "+ shareChangeCondition); - - //Notify Removed Item To Sharing? - //if source Item is shared and folder destination is not shared or shareChangeCondition is true.. notifies removed item to sharing - if(sourceItemIsShared && (!folderDestinationItem.isShared() || shareChangeCondition)){ - - //get contacts - List listContacts = getListUserSharedByFolderSharedId(sourceSharedId); - - //DEBUG - printContacts(listContacts); - - Workspace workspace = getWorkspace(); - - WorkspaceItem sourceSharedFolder = workspace.getItem(sourceSharedId); - - System.out.println(" name sourceSharedFolder: "+ sourceSharedFolder.getName()); - - NotificationsProducer np = getNotificationProducer(); - - np.notifyRemovedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) sourceSharedFolder); - - } - - - }else - workspaceLogger.error("verifyNotifyRemoveItemToShare folder destination item is null"); + private void checkNotifyRemoveItemToShare(final boolean sourceItemIsShared, final WorkspaceItem sourceItem, final String sourceSharedId, final WorkspaceItem folderDestinationItem) { + workspaceLogger.trace("checkNotifyRemoveItemToShare:"); + + try{ + + if(folderDestinationItem!=null){ + + String idSharedFolder = folderDestinationItem.getIdSharedFolder()!=null?folderDestinationItem.getIdSharedFolder():""; + + //share condition is true if source shared folder is not equal to destination shared folder + boolean shareChangeCondition = sourceSharedId==null?false:(sourceSharedId.compareTo(idSharedFolder)!=0); + + workspaceLogger.trace("checkNotifyRemoveItemToShare source item: "+sourceItem.getName()+" sourceSharedId: "+sourceSharedId + " folder destination: "+folderDestinationItem.getName() +" sourceItemIsShared: "+sourceItemIsShared); + +// System.out.println("shareChangeCondition remove item: "+ shareChangeCondition); + + workspaceLogger.trace("shareChangeCondition remove item: "+ shareChangeCondition); + + //Notify Removed Item To Sharing? + //if source Item is shared and folder destination is not shared or shareChangeCondition is true.. notifies removed item to sharing + if(sourceItemIsShared && (!folderDestinationItem.isShared() || shareChangeCondition)){ + + //get contacts + List listContacts = getListUserSharedByFolderSharedId(sourceSharedId); + + //DEBUG + printContacts(listContacts); + + Workspace workspace = getWorkspace(); + + WorkspaceItem sourceSharedFolder = workspace.getItem(sourceSharedId); + + //System.out.println(" name sourceSharedFolder: "+ sourceSharedFolder.getName()); + + NotificationsProducer np = getNotificationProducer(); + + np.notifyRemovedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) sourceSharedFolder); + + workspaceLogger.trace("The notifies was sent correctly"); + + } + + }else + workspaceLogger.warn("The notifies is failure in verifyNotifyRemoveItemToShare because folder destination item is null"); + + }catch (Exception e) { + workspaceLogger.error("An error occurred in checkNotifyRemoveItemToShare ",e); + } + } //DEBUG private void printContacts(List listContacts){ - System.out.println("PRINT CONTACTS: "); + boolean testMode = isTestMode(); + if(testMode) + System.out.println("Contacts: "); + else + workspaceLogger.trace("Contacts:"); + for (InfoContactModel infoContactModel : listContacts) { - System.out.println("User: "+infoContactModel); + if(testMode) + System.out.println("User: "+infoContactModel); + else + workspaceLogger.trace("User: "+infoContactModel); } } @@ -1594,14 +1503,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT + " listContacts size: " + listContacts.size()); // //DEBUG - System.out.println("shareFolder "+ folder.getIdentifier() - + " name: "+ folder.getName() - + " parent name: " + folder.getParentFileModel().getName() - + " listContacts size: " + listContacts.size()); + //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()); - } +// for (InfoContactModel infoContactModel : listContacts) { +// System.out.println("share with "+ infoContactModel.getLogin()); +// } + + printContacts(listContacts); GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder(); @@ -1687,7 +1595,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT workspaceLogger.trace("the item with id: "+folderSharedId+ " is not "+WorkspaceItemType.SHARED_FOLDER); //DEBUG - System.out.println("the item with id: "+folderSharedId+ " is not "+WorkspaceItemType.SHARED_FOLDER); + //System.out.println("the item with id: "+folderSharedId+ " is not "+WorkspaceItemType.SHARED_FOLDER); } return new ArrayList(); @@ -1716,7 +1624,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT unShared = unSharedFolder==null?false:true; - System.out.println("unShared is "+unShared); +// System.out.println("unShared is "+unShared); + + workspaceLogger.trace("unShared is "+ unShared); if(unShared){ NotificationsProducer np = getNotificationProducer();