1373: Workspace: breadcrumb slowness on file upload make upload of files on parent folders
Task-Url: https://support.d4science.org/issues/1373 Updated breadcrumb using HL method: Workspace.getParentsById(itemIdentifier); git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@120289 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
57028d0e00
commit
ea90e93dc1
|
@ -55,6 +55,7 @@ import org.gcube.portlets.user.workspace.client.model.ScopeModel;
|
||||||
import org.gcube.portlets.user.workspace.client.model.SmartFolderModel;
|
import org.gcube.portlets.user.workspace.client.model.SmartFolderModel;
|
||||||
import org.gcube.portlets.user.workspace.client.model.SubTree;
|
import org.gcube.portlets.user.workspace.client.model.SubTree;
|
||||||
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService;
|
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService;
|
||||||
|
import org.gcube.portlets.user.workspace.client.util.FileModelUtils;
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
|
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
|
||||||
import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.WorkspaceHandledException;
|
import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.WorkspaceHandledException;
|
||||||
import org.gcube.portlets.user.workspace.server.notifications.NotificationsProducer;
|
import org.gcube.portlets.user.workspace.server.notifications.NotificationsProducer;
|
||||||
|
@ -1666,186 +1667,12 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
workspaceLogger.error("Error in server save attachments by messageIdentifier ", e);
|
workspaceLogger.error("Error in server save attachments by messageIdentifier ", e);
|
||||||
//GWT can't serialize all exceptions
|
//GWT can't serialize all exceptions
|
||||||
throw new Exception(e.getMessage());
|
throw new Exception(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#saveAttach(java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Deprecated
|
|
||||||
/**
|
|
||||||
* use WsMailWidget
|
|
||||||
*/
|
|
||||||
public boolean saveAttach(String attachId) throws Exception {
|
|
||||||
// TODO NOT USED
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#markMessage(java.lang.String, java.lang.String, boolean, java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Deprecated
|
|
||||||
public boolean markMessage(String messageIdentifier, String messageType, boolean boolMark, String markType) throws Exception {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
|
||||||
|
|
||||||
workspaceLogger.trace(" markMessageAsRead by messageIdentifier " + messageIdentifier + " boolMark " + boolMark + " messageType " +messageType);
|
|
||||||
|
|
||||||
if(messageType.equals(GXTCategoryItemInterface.MS_RECEIVED)){
|
|
||||||
// workspaceLogger.trace("message identifier: "+messageIdentifier);
|
|
||||||
// workspaceLogger.trace("Message messageType: "+messageType);
|
|
||||||
|
|
||||||
if(markType.equals("READ")){
|
|
||||||
workspace.getWorkspaceMessageManager().getReceivedMessage(messageIdentifier).setStatus(boolMark);
|
|
||||||
}else if(markType.equals("OPEN")){
|
|
||||||
workspace.getWorkspaceMessageManager().getReceivedMessage(messageIdentifier).open();
|
|
||||||
}else if(markType.equals("BOTH")){
|
|
||||||
workspace.getWorkspaceMessageManager().getReceivedMessage(messageIdentifier).setStatus(boolMark);
|
|
||||||
workspace.getWorkspaceMessageManager().getReceivedMessage(messageIdentifier).open();
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
// workspaceLogger.trace("Message sent identifier: "+messageIdentifier);
|
|
||||||
// workspaceLogger.trace("essage sent messageType: "+messageType);
|
|
||||||
|
|
||||||
if(markType.equals("READ")){
|
|
||||||
workspace.getWorkspaceMessageManager().getSentMessage(messageIdentifier).setStatus(boolMark);
|
|
||||||
}else if(markType.equals("OPEN")){
|
|
||||||
workspace.getWorkspaceMessageManager().getSentMessage(messageIdentifier).open();
|
|
||||||
}else if(markType.equals("BOTH")){
|
|
||||||
workspace.getWorkspaceMessageManager().getSentMessage(messageIdentifier).setStatus(boolMark);
|
|
||||||
workspace.getWorkspaceMessageManager().getSentMessage(messageIdentifier).open();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
workspaceLogger.error("Error in server markMessageAsRead by messageIdentifier ", e);
|
|
||||||
//GWT can't serialize all exceptions
|
|
||||||
throw new Exception(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#deleteMessage(java.lang.String, java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Deprecated
|
|
||||||
/**
|
|
||||||
* use WsMailWidget
|
|
||||||
*/
|
|
||||||
public boolean deleteMessage(String messageIdentifier, String messageType) throws Exception {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
|
||||||
workspaceLogger.trace("deleteMessage by messageIdentifier " + messageIdentifier);
|
|
||||||
|
|
||||||
if(messageType.equals(GXTCategoryItemInterface.MS_RECEIVED))
|
|
||||||
workspace.getWorkspaceMessageManager().deleteReceivedMessage(messageIdentifier);
|
|
||||||
else
|
|
||||||
workspace.getWorkspaceMessageManager().deleteSentMessage(messageIdentifier);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
workspaceLogger.error("Error in server deleteMessage by messageIdentifier ", e);
|
|
||||||
//GWT can't serialize all exceptions
|
|
||||||
throw new Exception(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getNewMessagesReceived()
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Deprecated
|
|
||||||
/**
|
|
||||||
* use WsMailWidget
|
|
||||||
*/
|
|
||||||
public List<MessageModel> getNewMessagesReceived() throws Exception {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
|
||||||
int count = workspace.getWorkspaceMessageManager().getMessagesNotOpened();
|
|
||||||
|
|
||||||
List<MessageModel> listMessageModels = new ArrayList<MessageModel>();
|
|
||||||
|
|
||||||
for(int i=0; i<count; i++)
|
|
||||||
listMessageModels.add(new MessageModel());
|
|
||||||
|
|
||||||
return listMessageModels;
|
|
||||||
} catch (Exception e) {
|
|
||||||
workspaceLogger.error("Error in server getNewMessagesReceived by messageIdentifier ", e);
|
|
||||||
//GWT can't serialize all exceptions
|
|
||||||
throw new Exception(e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#searchInSentMessagesByText(java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Deprecated
|
|
||||||
/**
|
|
||||||
* use WsMailWidget
|
|
||||||
*/
|
|
||||||
public List<MessageModel> searchInSentMessagesByText(String text) throws Exception {
|
|
||||||
try {
|
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
|
||||||
workspaceLogger.trace("searchInSentMessagesByText "+text);
|
|
||||||
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
|
||||||
List<WorkspaceMessage> listMessages = workspace.getWorkspaceMessageManager().searchOutMessages(text);
|
|
||||||
|
|
||||||
return builder.buildGXTListMessageModelForGrid(listMessages, GXTCategoryItemInterface.MS_SENT);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
workspaceLogger.error("Error in server searchInSentMessagesByText ", e);
|
|
||||||
// workspaceLogger.trace("Error in server searchInSentMessagesByText " + e.getMessage());
|
|
||||||
throw new Exception(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#searchInReceivedMessagesByText(java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Deprecated
|
|
||||||
/**
|
|
||||||
* use WsMailWidget
|
|
||||||
*/
|
|
||||||
public List<MessageModel> searchInReceivedMessagesByText(String text) throws Exception {
|
|
||||||
try {
|
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
|
||||||
workspaceLogger.trace("searchInSentMessagesByText: "+text);
|
|
||||||
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
|
||||||
List<WorkspaceMessage> listMessages = workspace.getWorkspaceMessageManager().searchInMessages(text);
|
|
||||||
|
|
||||||
return builder.buildGXTListMessageModelForGrid(listMessages, GXTCategoryItemInterface.MS_RECEIVED);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
workspaceLogger.error("Error in server searchInSentMessagesByText ", e);
|
|
||||||
// workspaceLogger.trace("Error in server searchInSentMessagesByText " + e.getMessage());
|
|
||||||
throw new Exception(e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -2192,46 +2019,57 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<FileModel> getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception {
|
public List<FileModel> getListParentsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception {
|
||||||
List<FileModel> listParents = new ArrayList<FileModel>();
|
|
||||||
workspaceLogger.debug("get List Parents By Item Identifier "+ itemIdentifier +", include Item As (Last) Parent: "+includeItemAsParent);
|
workspaceLogger.debug("get List Parents By Item Identifier "+ itemIdentifier +", include Item As (Last) Parent: "+includeItemAsParent);
|
||||||
|
|
||||||
|
if(itemIdentifier==null)
|
||||||
|
return new ArrayList<FileModel>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
Workspace workspace = getWorkspace();
|
||||||
WorkspaceItem wsItem = workspace.getItem(itemIdentifier);
|
|
||||||
workspaceLogger.debug("workspace retrieve item name: "+wsItem.getName());
|
|
||||||
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
||||||
|
List<WorkspaceItem> parents = workspace.getParentsById(itemIdentifier);
|
||||||
|
WorkspaceItem lastItem = parents.get(parents.size()-1);
|
||||||
String nameSpecialFolder = getNameForSpecialFolder();
|
String nameSpecialFolder = getNameForSpecialFolder();
|
||||||
|
|
||||||
// if(includeItemAsParent==true && wsItem.getType().equals(WorkspaceItemType.FOLDER)){
|
FileModel[] arrayParents;
|
||||||
if(includeItemAsParent==true && wsItem.isFolder()){ //FIX BUG #298
|
|
||||||
listParents.add(builder.buildGXTFolderModelItemHandleSpecialFolder((WorkspaceFolder) wsItem, null, nameSpecialFolder));
|
//CONVERTING LAST ELEMENT IF NECESSARY
|
||||||
|
workspaceLogger.trace("converting last element..");
|
||||||
|
if(includeItemAsParent==true && lastItem.isFolder()){ //FIX BUG #298
|
||||||
|
arrayParents = new FileModel[parents.size()];
|
||||||
|
workspaceLogger.debug("including last item into path: "+lastItem.getName());
|
||||||
|
arrayParents[parents.size()-1] = builder.buildGXTFolderModelItemHandleSpecialFolder((WorkspaceFolder) lastItem, null, nameSpecialFolder);
|
||||||
|
}else
|
||||||
|
arrayParents = new FileModel[parents.size()-1];
|
||||||
|
|
||||||
|
//CONVERTING PATH
|
||||||
|
workspaceLogger.trace("converting path from second-last..");
|
||||||
|
for (int i = parents.size()-2; i >= 0; i--) {
|
||||||
|
WorkspaceFolder wsFolder = (WorkspaceFolder) parents.get(i);
|
||||||
|
arrayParents[i] = builder.buildGXTFolderModelItemHandleSpecialFolder(wsFolder, null, nameSpecialFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
while(wsItem!=null && wsItem.getParent()!=null){
|
// Collections.reverse(listParents);
|
||||||
|
|
||||||
WorkspaceFolder wsFolder = wsItem.getParent();
|
|
||||||
listParents.add(builder.buildGXTFolderModelItemHandleSpecialFolder(wsFolder, null, nameSpecialFolder));
|
|
||||||
wsItem = wsFolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
Collections.reverse(listParents);
|
|
||||||
|
|
||||||
//SET PARENTS
|
//SET PARENTS
|
||||||
for(int i=0; i<listParents.size()-1; i++){
|
workspaceLogger.trace("setting parents..");
|
||||||
|
for(int i=0; i<arrayParents.length-1; i++){
|
||||||
|
|
||||||
FileModel parent = listParents.get(i);
|
FileModel parent = arrayParents[i];
|
||||||
FileModel fileModel = listParents.get(i+1);
|
FileModel fileModel = arrayParents[i+1];
|
||||||
fileModel.setParentFileModel(parent);
|
fileModel.setParentFileModel(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
workspaceLogger.trace("list parents return size: "+listParents.size());
|
workspaceLogger.trace("list parents returning size: "+arrayParents.length);
|
||||||
|
return new ArrayList<FileModel>(Arrays.asList(arrayParents));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
workspaceLogger.error("Error in get List Parents By Item Identifier ", e);
|
workspaceLogger.error("Error in get List Parents By Item Identifier ", e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
throw new Exception(e.getMessage());
|
throw new Exception(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
return listParents;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -3610,4 +3448,62 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
throw new Exception(error);
|
throw new Exception(error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#getNewMessagesReceived()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<MessageModel> getNewMessagesReceived() throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#searchInSentMessagesByText(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<MessageModel> searchInSentMessagesByText(String text)
|
||||||
|
throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#searchInReceivedMessagesByText(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<MessageModel> searchInReceivedMessagesByText(String text)
|
||||||
|
throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#saveAttach(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean saveAttach(String attachId) throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#markMessage(java.lang.String, java.lang.String, boolean, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean markMessage(String messageIdentifier, String messageType,
|
||||||
|
boolean boolMark, String markType) throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#deleteMessage(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean deleteMessage(String messageIdentifier, String messageType)
|
||||||
|
throws Exception {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue