From 9cd21500d7834c6ee6a966f59940e8450b4975d6 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Wed, 3 Sep 2014 13:51:58 +0000 Subject: [PATCH] open url with double click implemented, changed icons for html and links, updated revision git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@99427 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 4 +- .settings/com.google.gdt.eclipse.core.prefs | 2 +- .settings/org.eclipse.wst.common.component | 6 + pom.xml | 2 +- .../user/workspace/client/AppController.java | 918 +++++++++--------- .../view/grids/GxtGridFilterGroupPanel.java | 36 +- .../user/workspace/WorkspacePortlet.gwt.xml | 3 +- 7 files changed, 488 insertions(+), 483 deletions(-) diff --git a/.classpath b/.classpath index e589261..a842bda 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + @@ -25,5 +25,5 @@ - + diff --git a/.settings/com.google.gdt.eclipse.core.prefs b/.settings/com.google.gdt.eclipse.core.prefs index 8338523..20225e0 100644 --- a/.settings/com.google.gdt.eclipse.core.prefs +++ b/.settings/com.google.gdt.eclipse.core.prefs @@ -3,6 +3,6 @@ >>>>>>>=.r93212 eclipse.preferences.version=1 jarsExcludedFromWebInfLib= -lastWarOutDir=/home/francesco-mangiacrapa/wseclipse/workspace/target/workspace-6.6.7-SNAPSHOT +lastWarOutDir=/Users/massi/Documents/workspace/workspace/target/workspace-6.6.8-SNAPSHOT warSrcDir=src/main/webapp warSrcDirIsOutput=false diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index f181549..f771b76 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -5,6 +5,12 @@ + + uses + + + uses + diff --git a/pom.xml b/pom.xml index f4c05ab..26eebe8 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.gcube.portlets.user workspace war - 6.6.7-SNAPSHOT + 6.6.8-SNAPSHOT gCube Workspace Portlet gcube Workspace Portlet is a portlet for users workspace management diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java index e0c984a..b2209da 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/AppController.java @@ -52,6 +52,8 @@ import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEvent; import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEventHandler; import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEventHandler; +import org.gcube.portlets.user.workspace.client.event.OpenUrlEvent; +import org.gcube.portlets.user.workspace.client.event.OpenUrlEventHandler; import org.gcube.portlets.user.workspace.client.event.PasteItemEvent; import org.gcube.portlets.user.workspace.client.event.PasteItemEventHandler; import org.gcube.portlets.user.workspace.client.event.PathElementSelectedEvent; @@ -83,11 +85,14 @@ import org.gcube.portlets.user.workspace.client.event.VRESettingPermissionEvent; import org.gcube.portlets.user.workspace.client.event.WebDavUrlEvent; import org.gcube.portlets.user.workspace.client.event.WebDavUrlEventHandler; import org.gcube.portlets.user.workspace.client.interfaces.EventsTypeEnum; +import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface; import org.gcube.portlets.user.workspace.client.model.FileGridModel; 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.ScopeModel; +import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService; +import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceServiceAsync; import org.gcube.portlets.user.workspace.client.view.WorskpacePortlet; import org.gcube.portlets.user.workspace.client.view.panels.GxtBorderLayoutPanel; import org.gcube.portlets.user.workspace.client.view.panels.GxtItemsPanel; @@ -97,6 +102,10 @@ import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfo; 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.WindowOpenUrl; +import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem; +import org.gcube.portlets.user.workspace.client.workspace.folder.item.GWTExternalUrl; +import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTUrlDocument; import org.gcube.portlets.user.workspace.shared.ExtendedWorkspaceACL; import org.gcube.portlets.user.workspace.shared.SessionExpiredException; import org.gcube.portlets.user.workspace.shared.TrashContent; @@ -130,13 +139,13 @@ public class AppController implements SubscriberInterface { private WorskpacePortlet wsPortlet = null; private AppControllerExplorer appContrExplorer = null; private String rootIdentifier = null; -// public static boolean isSearchActive = false; + // public static boolean isSearchActive = false; private HasWidgets rootPanel; private String selectedSmartFolderId; private String selectedSmartFolderCategory; - - + + public AppController(AppControllerExplorer appControllerExplorer) { this.appContrExplorer = appControllerExplorer; this.appContrExplorer.subscribe(this, new EventsTypeEnum[] { @@ -168,51 +177,56 @@ public class AppController implements SubscriberInterface { bind(); } - + public static HandlerManager getEventBus() { return eventBus; } - private void bind() { - - + //double click on URLs + eventBus.addHandler(OpenUrlEvent.TYPE, new OpenUrlEventHandler() { + @Override + public void onClickUrl(OpenUrlEvent openUrlEvent) { + AppControllerExplorer.getInstance().doClickUrl(openUrlEvent); + } + }); + eventBus.addHandler(StoreGridChangedEvent.TYPE, new StoreGridChangedEventHandler() { - + @Override public void onStoreChanged(StoreGridChangedEvent storeGridChangedEvent) { wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemDetails().updateItemsNumber(storeGridChangedEvent.getSize()); } }); - + eventBus.addHandler(AddAdministratorEvent.TYPE, new AddAdministratorEventHandler() { - + @Override public void onAddAdministrator(AddAdministratorEvent addAdministratorEvent) { FileModel parent = wsPortlet.getToolBarPath().getLastParent(); - + if(parent!=null) AppControllerExplorer.getEventBus().fireEvent(new AddAdministratorEvent(parent)); - + } }); - + eventBus.addHandler(TrashEvent.TYPE, new TrashEventHandler() { - + @Override public void onTrashEvent(TrashEvent trashEvent) { - + executeTrashOperation(trashEvent.getTrashOperation(), trashEvent.getTargetFileModels()); } }); - + //********EVENTS TO NOTIFY SUBSCRIBERS eventBus.addHandler(ActiveGroupingView.TYPE, new ActiveGroupingViewHandler() { - + @Override public void onActiveGroupingView(ActiveGroupingView activeGroupingView) { - + if(activeGroupingView.isActiveGrouping()){ setCookieGridViewSetting("true"); wsPortlet.getGridGroupContainer().enableGrouping(); @@ -223,35 +237,35 @@ public class AppController implements SubscriberInterface { } } }); - + //PASTE EVENT eventBus.addHandler(PasteItemEvent.TYPE, new PasteItemEventHandler() { - - + + @Override public void onCutCopyAndPaste(PasteItemEvent pasteItemEvent) { - + String folderDestinationId = null; if(pasteItemEvent.getFolderDestinationId()!=null){ //IF FOLDER DESTINATION EXISTS folderDestinationId = pasteItemEvent.getFolderDestinationId(); }else{ FileModel file = wsPortlet.getToolBarPath().getLastParent(); - + if(file.getIdentifier()!=null){ //GET LAST PARENT FROM BREADRUMB folderDestinationId = file.getIdentifier(); } - + } - + wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.VALIDATINGOPERATION,ConstantsExplorer.LOADINGSTYLE); - + if(folderDestinationId!=null){ -// Info.display("Info", "pasting..."); + // Info.display("Info", "pasting..."); AppControllerExplorer.getEventBus().fireEvent(new PasteItemEvent(pasteItemEvent.getIds(), folderDestinationId, pasteItemEvent.getOperationType())); } } }); - + //********EVENTS TO NOTIFY SUBSCRIBERS eventBus.addHandler(OpenReportsEvent.TYPE, new OpenReportsEventHandler() { @@ -262,9 +276,9 @@ public class AppController implements SubscriberInterface { } }); - + eventBus.addHandler(GetPublicLinkEvent.TYPE, new GetPublicLinkEventHandler() { - + @Override public void onGetPublicLink(GetPublicLinkEvent getPublicLinkEvent) { // TODO Auto-generated method stub @@ -273,78 +287,78 @@ public class AppController implements SubscriberInterface { } } }); - - + + eventBus.addHandler(AccountingHistoryEvent.TYPE, new AccountingHistoryEventHandler() { - + @Override public void onAccountingHistoryShow(AccountingHistoryEvent accountingHistoryEvent) { - + FileGridModel fileItem = getGridSelectedItem(); - + if(fileItem!=null){ AppControllerExplorer.getEventBus().fireEvent(new AccountingHistoryEvent(fileItem)); } } }); - + eventBus.addHandler(AccountingReadersEvent.TYPE, new AccountingReadersEventHandler() { - + @Override public void onAccountingReadersShow(AccountingReadersEvent accountingReadersEvent) { FileGridModel fileItem = getGridSelectedItem(); - + if(fileItem!=null){ AppControllerExplorer.getEventBus().fireEvent(new AccountingReadersEvent(fileItem)); } } }); - + eventBus.addHandler(GetInfoEvent.TYPE, new GetInfoEventHandler() { - + @Override public void onGetInfo(GetInfoEvent getInfoEvent) { - + FileModel file = getInfoEvent.getSourceFile(); if(file==null) file = getGridSelectedItem(); - + if(file!=null) new DialogGetInfo(file); } }); - + eventBus.addHandler(GetShareLinkEvent.TYPE, new GetSharedLinkEventHandler() { - + @Override public void onGetLink(GetShareLinkEvent getLinkEvent) { - + FileModel getLinkFile = getLinkEvent.getSourceFile()!=null?getLinkEvent.getSourceFile():wsPortlet.getToolBarPath().getLastParent(); - + AppControllerExplorer.getEventBus().fireEvent(new GetShareLinkEvent(getLinkFile)); } }); - + eventBus.addHandler(GridRefreshEvent.TYPE, new GridRefreshEventHandler() { - + @Override public void onGridRefresh(GridRefreshEvent gridRefreshEvent) { - + if(wsPortlet.getToolBarPath().getLastParent()!=null){ - + //ID DISPLAYED SMART FOLDER CONTENTS? if(selectedSmartFolderId!=null || selectedSmartFolderCategory!=null){ - + smartFolderSelected(selectedSmartFolderId, selectedSmartFolderCategory); return; } - + FileModel parent = wsPortlet.getToolBarPath().getLastParent(); //CREATE FOLDER PARENT FOR RPC -// FolderModel folder = new FolderModel(parent.getIdentifier(), parent.getName(), parent.getParentFileModel(), true, parent.isShared()); + // FolderModel folder = new FolderModel(parent.getIdentifier(), parent.getName(), parent.getParentFileModel(), true, parent.isShared()); updateStoreByRpc(parent); } } @@ -396,15 +410,15 @@ public class AppController implements SubscriberInterface { public void onFileDownloadEvent(FileDownloadEvent fileDownloadEvent) { if(fileDownloadEvent!=null && fileDownloadEvent.getItemIdentifier()!=null){ -// FileGridModel fileItem = getGridSelectedItem(); -// -// String id = fileDownloadEvent.getItemIdentifier()!=null? fileDownloadEvent.getItemIdentifier():""; -// -// if(fileItem!=null && id.compareTo(fileItem.getIdentifier())==0){ -// fileItem.setMarkAsRead(true); -// accountingSetItemAsRead(true); -// } - + // FileGridModel fileItem = getGridSelectedItem(); + // + // String id = fileDownloadEvent.getItemIdentifier()!=null? fileDownloadEvent.getItemIdentifier():""; + // + // if(fileItem!=null && id.compareTo(fileItem.getIdentifier())==0){ + // fileItem.setMarkAsRead(true); + // accountingSetItemAsRead(true); + // } + AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(fileDownloadEvent.getItemIdentifier(), fileDownloadEvent.getItemName(), fileDownloadEvent.getDownloadType())); } @@ -433,17 +447,17 @@ public class AppController implements SubscriberInterface { @Override public void onGridElementSelected(GridElementSelectedEvent event) { - + if(!event.isMultiSelection()){ //IS NOT MULTISELECTION doElementGridSelected(true, event.getSourceFile()); - + FileGridModel fileItem = getGridSelectedItem(); - + if(fileItem!=null){ accountingSetItemAsRead(fileItem.isMarkAsRead()); } }else{ //IS MULTISELECTION - + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonForMultiSelection(true); wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemDetails().enableInfoHistoryButtons(false); } @@ -477,14 +491,14 @@ public class AppController implements SubscriberInterface { // for(ScopeModel scope: result) // System.out.println("#############Scopde id " + scope.getId() + " name " + scope.getName()); - + if(result!=null && result.size()>0){ wsPortlet.getSearchAndFilterContainer().setListScope(result); wsPortlet.getSearchAndFilterContainer().selectScopeByIndex(0); //select first scope } else new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting all scope. No scope available. " +ConstantsExplorer.TRY_AGAIN, null); - + } }); } @@ -523,26 +537,26 @@ public class AppController implements SubscriberInterface { @Override public void onDoubleClickElementGrid(DoubleClickElementSelectedEvent doubleClickElementSelectedEvent) { - + doElementDoubleClick(doubleClickElementSelectedEvent.getSourceFile()); } private void doElementDoubleClick(final FileGridModel fileModel) { -// appContrExplorer.expandFolder(event.getIdentifier()); - + // appContrExplorer.expandFolder(event.getIdentifier()); + //COMMENTED 01-02-2013 -// appContrExplorer.expandFolder(event.getIdentifier()); - - + // appContrExplorer.expandFolder(event.getIdentifier()); + + if(fileModel.getIdentifier()!=null){ - + if(wsPortlet.getSearchAndFilterContainer().isSearchActive()){ AppController.getEventBus().fireEvent(new SearchTextEvent(null)); wsPortlet.getSearchAndFilterContainer().setSearchActive(false); resetSmartFolderSelected(); } - + System.out.println("FILE MODEL DOUBLE CLICK: "+fileModel); FolderModel folder = new FolderModel(fileModel.getIdentifier(), fileModel.getName(), fileModel.getParentFileModel(), true, fileModel.isShared(),fileModel.isVreFolder()); updateStoreByRpc(folder); @@ -567,7 +581,7 @@ public class AppController implements SubscriberInterface { } else{ wsPortlet.getSearchAndFilterContainer().setSearchActive(true); //ADDED 06-04-12 -// setSearchActive(true); + // setSearchActive(true); appContrExplorer.searching(true); wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonsOnSearch(true); //ADDED 09-08-13 doSearchText(searchTextEvent.getTextSearch()); @@ -580,8 +594,8 @@ public class AppController implements SubscriberInterface { wsPortlet.getSearchAndFilterContainer().setVisibleButtonSave(true); //ADDED 24/04/2012 -// wsPortlet.getGxtCardLayoutResultPanel().getToolBarItem().activeAllButtonWithoutGroupView(false); //ADDED 06/02/2013 - + // wsPortlet.getGxtCardLayoutResultPanel().getToolBarItem().activeAllButtonWithoutGroupView(false); //ADDED 06/02/2013 + wsPortlet.getGridGroupContainer().setBorderAsOnSearch(true); wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE); @@ -590,7 +604,7 @@ public class AppController implements SubscriberInterface { @Override public void onFailure(Throwable caught) { -// System.out.println("Failure search RPC"); + // System.out.println("Failure search RPC"); new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " searching item. " +ConstantsExplorer.TRY_AGAIN, null); wsPortlet.getGridGroupContainer().unmask(); @@ -605,21 +619,21 @@ public class AppController implements SubscriberInterface { } } }); - - + + eventBus.addHandler(SearchItemByIdEvent.TYPE, new SearchItemByIdEventHandler() { - + @Override public void onSearchItemById(SearchItemByIdEvent searchItemByIdEvent) { if(searchItemByIdEvent.getItemId()!=null && !searchItemByIdEvent.getItemId().isEmpty()){ - + wsPortlet.getSearchAndFilterContainer().setSearchActive(true); //ADDED 06-04-12 appContrExplorer.searching(true); doSearchItemById(searchItemByIdEvent.getItemId(), searchItemByIdEvent.getOperationParameter()); - + }else{ - + appContrExplorer.searching(false); wsPortlet.getGridGroupContainer().setBorderAsOnSearch(false); @@ -627,86 +641,86 @@ public class AppController implements SubscriberInterface { } private void doSearchItemById(final String itemId, WsPortletInitOperation wsPortletInitOperation) { - + wsPortlet.getGridGroupContainer().setBorderAsOnSearch(true); wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE); - - + + switch (wsPortletInitOperation) { - - case gotofolder: - - - appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGridById(itemId, new AsyncCallback>() { - @Override - public void onFailure(Throwable caught) { - - if(caught instanceof SessionExpiredException){ - GWT.log("Session expired"); - viewSessionExpiredPanel(); - return; - } - - new MessageBoxAlert("Error", caught.getMessage(), null); - wsPortlet.getGridGroupContainer().unmask(); - + case gotofolder: + + + appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGridById(itemId, new AsyncCallback>() { + + @Override + public void onFailure(Throwable caught) { + + if(caught instanceof SessionExpiredException){ + GWT.log("Session expired"); + viewSessionExpiredPanel(); + return; } - @Override - public void onSuccess(List result) { - - wsPortlet.getGridGroupContainer().updateStore(result); - wsPortlet.getGridGroupContainer().unmask(); - - if(result!=null && result.size()>0){ - String childId = result.get(0).getIdentifier(); //GET FIRST CHILD ID TO LOAD PARENTS BREADCRUMB - loadParentBreadcrumbByItemId(childId, false); - }else{ //FOLDER IS EMPTY AND EXISTS, FOLDER IS LAST PARENT INTO BREADCRUMB - - loadParentBreadcrumbByItemId(itemId, true); //RELOAD BREDCRUMB - } - - - boolean selected =wsPortlet.getGridGroupContainer().selectItemByFileModelId(itemId); - - if(selected) - new InfoDisplay("Info", "The searched element was selected"); - } - }); - - - break; - - case sharelink: - - appContrExplorer.getRpcWorkspaceService().getItemForFileGrid(itemId, new AsyncCallback() { + new MessageBoxAlert("Error", caught.getMessage(), null); + wsPortlet.getGridGroupContainer().unmask(); - @Override - public void onFailure(Throwable caught) { - new MessageBoxAlert("Error", caught.getMessage(), null); - wsPortlet.getGridGroupContainer().unmask(); - + } + + @Override + public void onSuccess(List result) { + + wsPortlet.getGridGroupContainer().updateStore(result); + wsPortlet.getGridGroupContainer().unmask(); + + if(result!=null && result.size()>0){ + String childId = result.get(0).getIdentifier(); //GET FIRST CHILD ID TO LOAD PARENTS BREADCRUMB + loadParentBreadcrumbByItemId(childId, false); + }else{ //FOLDER IS EMPTY AND EXISTS, FOLDER IS LAST PARENT INTO BREADCRUMB + + loadParentBreadcrumbByItemId(itemId, true); //RELOAD BREDCRUMB } - @Override - public void onSuccess(FileGridModel result) { - - List listResult = new ArrayList(); - listResult.add(result); - wsPortlet.getGridGroupContainer().updateStore(listResult); - wsPortlet.getGridGroupContainer().unmask(); - - if(result!=null) - loadBreadcrumbByFileModel(result, false); //ADDED 13-06-2013 - } - }); - - - break; + + boolean selected =wsPortlet.getGridGroupContainer().selectItemByFileModelId(itemId); + + if(selected) + new InfoDisplay("Info", "The searched element was selected"); + } + }); + + + break; + + case sharelink: + + appContrExplorer.getRpcWorkspaceService().getItemForFileGrid(itemId, new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + new MessageBoxAlert("Error", caught.getMessage(), null); + wsPortlet.getGridGroupContainer().unmask(); + + } + + @Override + public void onSuccess(FileGridModel result) { + + List listResult = new ArrayList(); + listResult.add(result); + wsPortlet.getGridGroupContainer().updateStore(listResult); + wsPortlet.getGridGroupContainer().unmask(); + + if(result!=null) + loadBreadcrumbByFileModel(result, false); //ADDED 13-06-2013 + } + }); + + + break; } - - + + } }); @@ -785,27 +799,27 @@ public class AppController implements SubscriberInterface { parent = wsPortlet.getGridGroupContainer().getCurrentFolderView(); GWT.log("Search is not active get parent item for uploading from CurrentFolderView: " +parent.getName()); } - // }else if(wsPortlet.getGridGroupContainer().getCurrentFolderView()!=null){ - // parent = wsPortlet.getGridGroupContainer().getCurrentFolderView(); - // GWT.log("get parent item for uploading from CurrentFolderView: " +parent.getName()); - // }else if(wsPortlet.getToolBarPath().getLastParent()!=null){ - // parent = wsPortlet.getToolBarPath().getLastParent(); - // GWT.log("get parent item for uploading from breadcrumb: " +parent.getName()); - // } + // }else if(wsPortlet.getGridGroupContainer().getCurrentFolderView()!=null){ + // parent = wsPortlet.getGridGroupContainer().getCurrentFolderView(); + // GWT.log("get parent item for uploading from CurrentFolderView: " +parent.getName()); + // }else if(wsPortlet.getToolBarPath().getLastParent()!=null){ + // parent = wsPortlet.getToolBarPath().getLastParent(); + // GWT.log("get parent item for uploading from breadcrumb: " +parent.getName()); + // } } else{ //IF IS SEARCH ACTIVE - - //is BREADCRUMB fully? - if(wsPortlet.getToolBarPath().getLastParent()!=null){ + + //is BREADCRUMB fully? + if(wsPortlet.getToolBarPath().getLastParent()!=null){ parent = wsPortlet.getToolBarPath().getLastParent(); GWT.log("Search is active get parent item for uploading from breadcrumb: " +parent.getName()); - }else - parent = null; //also SET null AS PARENT - + }else + parent = null; //also SET null AS PARENT + } - + AppControllerExplorer.getEventBus().fireEvent(new FileUploadEvent(parent,fileUploadEvent.getUploadType())); - + }catch (Exception e) { GWT.log("Error onFileUploadEvent", e); } @@ -814,14 +828,14 @@ public class AppController implements SubscriberInterface { }); -// eventBus.addHandler(FileDownloadEvent.TYPE, new FileDownloadEventHandler() { -// -// @Override -// public void onFileDownloadEvent(FileDownloadEvent fileDownloadEvent) { -// AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(fileDownloadEvent.getItemIdentifier(), fileDownloadEvent.getItemName(), fileDownloadEvent.getDownloadType())); -// -// } -// }); + // eventBus.addHandler(FileDownloadEvent.TYPE, new FileDownloadEventHandler() { + // + // @Override + // public void onFileDownloadEvent(FileDownloadEvent fileDownloadEvent) { + // AppControllerExplorer.getEventBus().fireEvent(new FileDownloadEvent(fileDownloadEvent.getItemIdentifier(), fileDownloadEvent.getItemName(), fileDownloadEvent.getDownloadType())); + // + // } + // }); eventBus.addHandler(DeleteItemEvent.TYPE, new DeleteItemEventHandler() { @@ -833,18 +847,18 @@ public class AppController implements SubscriberInterface { private void doDeleteItem(final DeleteItemEvent event){ - + if(!event.isMultiSelection()){ //IS NOT MULTI - + AppControllerExplorer.getEventBus().fireEvent(new DeleteItemEvent(event.getFileTarget())); - + }else{ //IS MULTI - - + + if(event.getListTarget()!=null){ FileModel parent = null; - + if(!wsPortlet.getSearchAndFilterContainer().isSearchActive()){ // IS NOT A SEARCH if(wsPortlet.getToolBarPath().getLastParent()!=null){ parent = wsPortlet.getToolBarPath().getLastParent(); @@ -854,56 +868,56 @@ public class AppController implements SubscriberInterface { GWT.log("Search is not active get parent item for uploading from CurrentFolderView: " +parent.getName()); } } - + final FileModel target = parent; - + int size = event.getListTarget().size(); - - MessageBoxConfirm mbc = new MessageBoxConfirm(ConstantsExplorer.MESSAGE_DELETE, "Are you sure you want to delete "+size+" items?"); - - mbc.getMessageBoxConfirm().addCallback(new Listener() { - - public void handleEvent(MessageBoxEvent be) { - -// eventBus.fireEvent(new DeleteItemEvent(sel)); - - //IF NOT CANCELLED - String clickedButton = be.getButtonClicked().getItemId(); - if(clickedButton.equals(Dialog.YES)){ - - wsPortlet.getGridGroupContainer().mask("Deleting",ConstantsExplorer.LOADINGSTYLE); - - appContrExplorer.getRpcWorkspaceService().deleteListItemsForIds(event.getListTarget(), new AsyncCallback() { - @Override - public void onFailure(Throwable arg0) { - new MessageBoxAlert("Error", arg0.getMessage(),null); - wsPortlet.getGridGroupContainer().unmask(); - appContrExplorer.refreshRoot(true); - } + MessageBoxConfirm mbc = new MessageBoxConfirm(ConstantsExplorer.MESSAGE_DELETE, "Are you sure you want to delete "+size+" items?"); - @Override - public void onSuccess(Void arg0) { - - //Deleting item from grid - for (String id : event.getListTarget()) { - deleteItem(id); - } - wsPortlet.getGridGroupContainer().unmask(); - - System.out.println("target: "+target); - - if(wsPortlet.getSearchAndFilterContainer().isSearchActive()){ - appContrExplorer.refreshRoot(false); - }else - AppControllerExplorer.getEventBus().fireEvent(new RefreshFolderEvent(target, true, false, true)); + mbc.getMessageBoxConfirm().addCallback(new Listener() { + + public void handleEvent(MessageBoxEvent be) { + + // eventBus.fireEvent(new DeleteItemEvent(sel)); + + //IF NOT CANCELLED + String clickedButton = be.getButtonClicked().getItemId(); + if(clickedButton.equals(Dialog.YES)){ + + wsPortlet.getGridGroupContainer().mask("Deleting",ConstantsExplorer.LOADINGSTYLE); + + appContrExplorer.getRpcWorkspaceService().deleteListItemsForIds(event.getListTarget(), new AsyncCallback() { + + @Override + public void onFailure(Throwable arg0) { + new MessageBoxAlert("Error", arg0.getMessage(),null); + wsPortlet.getGridGroupContainer().unmask(); + appContrExplorer.refreshRoot(true); + } + + @Override + public void onSuccess(Void arg0) { + + //Deleting item from grid + for (String id : event.getListTarget()) { + deleteItem(id); } - }); - } - } + wsPortlet.getGridGroupContainer().unmask(); + + System.out.println("target: "+target); + + if(wsPortlet.getSearchAndFilterContainer().isSearchActive()){ + appContrExplorer.refreshRoot(false); + }else + AppControllerExplorer.getEventBus().fireEvent(new RefreshFolderEvent(target, true, false, true)); + } + }); + } + } }); } - + } } @@ -922,29 +936,29 @@ public class AppController implements SubscriberInterface { AppControllerExplorer.getEventBus().fireEvent(new RenameItemEvent(event.getFileTarget())); } }); - + eventBus.addHandler(LoadBreadcrumbEvent.TYPE, new LoadBreadcrumbEventHandler() { - + @Override public void loadBreadcrumb(LoadBreadcrumbEvent loadBreadcrumbEvent) { - + if(loadBreadcrumbEvent.getFileModel()!=null) loadBreadcrumbByFileModel(loadBreadcrumbEvent.getFileModel(), true); } }); - + eventBus.addHandler(VREChangePermissionsEvent.TYPE, new VREChangePermissionsEventHandler() { - + @Override public void onChangePermissionsOpen(VREChangePermissionsEvent vreChangePermissionsEvent) { if(vreChangePermissionsEvent.getFileModel()!=null) AppControllerExplorer.getEventBus().fireEvent(new VRESettingPermissionEvent(vreChangePermissionsEvent.getFileModel())); - + } }); - + } - + private void accountingSetItemAsRead(boolean read) { wsPortlet.getToolBarItemDetails().setRead(read); } @@ -957,10 +971,10 @@ public class AppController implements SubscriberInterface { if(isSelected){ FileModel lastParent = this.wsPortlet.getToolBarPath().getLastParent(); - + if(lastParent!=null && target.getParentFileModel()!=null){ boolean parentChanged = lastParent.getIdentifier().compareTo(target.getParentFileModel().getIdentifier())==0?false:true; - + //RELOAD breadcrumb only if last parent id is changed if(parentChanged) loadBreadcrumbByFileModel(target,false); @@ -970,18 +984,18 @@ public class AppController implements SubscriberInterface { } } - + private void disableButtonsOnBreadcrumbSpecialFolder(){ GxtBreadcrumbPathPanel breadCrumb = this.wsPortlet.getToolBarPath(); FileModel parent = breadCrumb.getLastParent(); if(parent!=null && parent.isSpecialFolder()) wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().disableButtonSpecialFolderSelected(); } - + private FileGridModel getGridSelectedItem(){ return wsPortlet.getGridGroupContainer().getSelectedItem(); } - + private void resetSmartFolderSelected(){ selectedSmartFolderId = null; selectedSmartFolderCategory = null; @@ -994,56 +1008,56 @@ public class AppController implements SubscriberInterface { * @param isLastParent - if is true, load the item passed in input as last item of the list resulted */ private void loadBreadcrumbByFileModel(final FileModel item, final boolean isLastParent){ - + GWT.log("Reload Breadcrumb: [FileModel name: "+item.getName()+ ", isLastParent: "+isLastParent+"]"); - + AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(item.getIdentifier(), false, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { GWT.log("failure get list parents by item identifier "+caught); - + } @Override public void onSuccess(List result) { - + if(isLastParent && item.isDirectory()){ result.add(item); } - + updateBreadcrumb(result); //Set file path in tab panel on current item selected - - + + } }); - + } - + /** * * @param childItemId */ protected void loadParentBreadcrumbByItemId(final String childItemId, boolean includeItemAsParent){ - + GWT.log("Reload Parent Breadcrumb: [Item id: "+childItemId+"]"); - + AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(childItemId, includeItemAsParent, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { GWT.log("failure get list parents by item identifier "+caught); - + } @Override public void onSuccess(List result) { updateBreadcrumb(result); //Set file path in tab panel on current item selected - + } }); - + } private void updateBreadcrumb(List parents){ @@ -1051,13 +1065,13 @@ public class AppController implements SubscriberInterface { //this.wsPortlet.getBasicTabContainer().setLabelPath(path); //Set path in breadcrumb GxtBreadcrumbPathPanel breadCrumb = this.wsPortlet.getToolBarPath(); - + breadCrumb.setPath(parents); //Set path in breadcrumb - + FileModel parent = breadCrumb.getLastParent(); - + GWT.log("Updated Breadcrumb for : "+parent); - + if(parent!=null){ if(parent.isDirectory() && parent.isShared()){ //IS SHARED FOLDER, ENABLING OPERATION FOR ACTIVE BREADCRUMB setACLInfo(parent.getIdentifier()); @@ -1072,32 +1086,32 @@ public class AppController implements SubscriberInterface { } }else setACLInfo(null); - + } - - + + private void setACLInfo(final String parentId){ - + if(parentId==null){ wsPortlet.getToolBarItemDetails().updateACLInfo(null); return; } - + GWT.log("Updating ACL info for folder id: "+parentId); AppControllerExplorer.rpcWorkspaceService.getUserACLForFolderId(parentId, new AsyncCallback>() { @Override public void onFailure(Throwable arg0) { // TODO Auto-generated method stub - + } @Override public void onSuccess(List res) { - + FileModel parent = wsPortlet.getToolBarPath().getLastParent(); - + GWT.log("Validating correct ACL id: "+parentId +" and "+parent.getIdentifier()); if(parentId.compareTo(parent.getIdentifier())==0){ if(res!=null && res.size()>0){ @@ -1114,16 +1128,16 @@ public class AppController implements SubscriberInterface { * @param rootPanel */ public void go(final HasWidgets rootPanel) { - + this.rootPanel = rootPanel; - + final String searchParameter = Window.Location.getParameter(ConstantsPortlet.GET_SEARCH_PARAMETER); final String itemIdParameter = Window.Location.getParameter(ConstantsPortlet.GET_ITEMID_PARAMETER); final String operationParameter = Window.Location.getParameter(ConstantsPortlet.GET_OPEARATION_PARAMETER); final String validateSession = Window.Location.getParameter(ConstantsPortlet.GET_VALIDATE_SESSION); - + boolean sessionValidating = true; - + if(validateSession!=null && validateSession.compareToIgnoreCase("false")==0) sessionValidating = false; @@ -1131,34 +1145,34 @@ public class AppController implements SubscriberInterface { GWT.log("GET PARAMETER "+ConstantsPortlet.GET_ITEMID_PARAMETER+": "+itemIdParameter); GWT.log("GET PARAMETER "+ConstantsPortlet.GET_OPEARATION_PARAMETER+": "+operationParameter); GWT.log("GET PARAMETER "+ConstantsPortlet.GET_VALIDATE_SESSION+": "+validateSession); - + final boolean instanceWithGrouping = readCookieWorkspaceGridViewSetting(); - + System.out.println("Cookie "+ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING + " return "+instanceWithGrouping); System.out.println("Session Validating is "+sessionValidating); - + boolean isSearch = false; boolean isSearchForItemId = false; // Log.trace("Start Workspace Portlet"); if (this.appContrExplorer == null){ - + this.wsPortlet = new WorskpacePortlet(instanceWithGrouping); } else{ if(searchParameter!=null && !searchParameter.isEmpty()) isSearch = true; - + if(itemIdParameter!=null && !itemIdParameter.isEmpty()){ isSearch = true; isSearchForItemId = true; } - + this.wsPortlet = new WorskpacePortlet(this.appContrExplorer.getPanel(true, false, !isSearch), instanceWithGrouping); eventBus.fireEvent(new LoadAllScopeEvent()); //LOAD ALL SCOPE EVENT } - + final boolean searchingForItemId = isSearchForItemId; - + //VALIDATING SESSION if(appContrExplorer!=null && sessionValidating){ appContrExplorer.getRpcWorkspaceService().isSessionExpired(new AsyncCallback() { @@ -1171,9 +1185,9 @@ public class AppController implements SubscriberInterface { @Override public void onSuccess(Boolean result) { - + GWT.log("SESSION IS EXPIRED: "+result); - + //SESSION IS NOT EXPIRED if(!result) initPortlet(rootPanel, instanceWithGrouping, searchingForItemId, searchParameter, itemIdParameter, operationParameter); @@ -1181,39 +1195,39 @@ public class AppController implements SubscriberInterface { //SESSION IS EXPIRED viewSessionExpiredPanel(); } - + } }); } else initPortlet(rootPanel, instanceWithGrouping, searchingForItemId, searchParameter, itemIdParameter, operationParameter); - + } private void initPortlet(final HasWidgets rootPanel, final boolean instanceWithGrouping, boolean isSearchForItemId, final String searchParameter, final String itemIdParameter, final String operationParameter){ - + rootPanel.add(wsPortlet.getBorderLayoutContainer()); - + //SET TOGGLE BUTTON GRID VIEW Scheduler.get().scheduleDeferred(new ScheduledCommand() { - + @Override public void execute() { wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().toggleGridViewButton(instanceWithGrouping); } }); - + //IF IS SEARCH and IS NOT SEARCH FOR ITEM ID - fire event search text if(searchParameter!=null && !searchParameter.isEmpty() && !isSearchForItemId){ - Scheduler.get().scheduleDeferred(new ScheduledCommand() { - @Override - public void execute() { - wsPortlet.getSearchAndFilterContainer().searchText(searchParameter); - wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonsOnSearch(false); //ADDED 09-08-13 - } + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + @Override + public void execute() { + wsPortlet.getSearchAndFilterContainer().searchText(searchParameter); + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonsOnSearch(false); //ADDED 09-08-13 + } }); } else if(itemIdParameter!=null && !itemIdParameter.isEmpty()){ //SEARCH FOR ITEM ID - + Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { @@ -1223,7 +1237,7 @@ public class AppController implements SubscriberInterface { }); } - + //LOADING TRASH CONTENT Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override @@ -1231,7 +1245,7 @@ public class AppController implements SubscriberInterface { executeTrashOperation(WorkspaceTrashOperation.REFRESH, null); } }); - + } @@ -1240,41 +1254,41 @@ public class AppController implements SubscriberInterface { * @return true if exists a cookie with msg as true value (or not exists the cookie), false otherwise */ private boolean readCookieWorkspaceGridViewSetting() { - + //get the cookie with name GCBUEWorkspaceGridViewSetting String msg = Cookies.getCookie(ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING); - + //if null, there was no cookie if(msg == null){ setCookieGridViewSetting("true"); return true; } - + if(msg.compareTo("true")==0) return true; - + return false; - + } - public static void setCookie(String name, String value, int days) { - - if (value == null) { - Cookies.removeCookie(name); - return; - } - - // Now - Date expiringDate = new Date(); - // Now + days - expiringDate.setTime(expiringDate.getTime() + ConstantsPortlet.MILLISECS_PER_DAY * days); - Cookies.setCookie(name, value, expiringDate); - } - - public static void setCookieGridViewSetting(String value) { - - setCookie(ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING, value, ConstantsPortlet.COOKIE_EXPIRE_DAYS); - } + public static void setCookie(String name, String value, int days) { + + if (value == null) { + Cookies.removeCookie(name); + return; + } + + // Now + Date expiringDate = new Date(); + // Now + days + expiringDate.setTime(expiringDate.getTime() + ConstantsPortlet.MILLISECS_PER_DAY * days); + Cookies.setCookie(name, value, expiringDate); + } + + public static void setCookieGridViewSetting(String value) { + + setCookie(ConstantsPortlet.GCUBE_COOKIE_WORKSPACE_GRID_VIEW_SETTING, value, ConstantsPortlet.COOKIE_EXPIRE_DAYS); + } public GxtBorderLayoutPanel getMainPanel(){ return wsPortlet.getBorderLayoutContainer(); @@ -1291,33 +1305,33 @@ public class AppController implements SubscriberInterface { private void updateStoreByRpc(final FileModel folder){ resetSmartFolderSelected(); - + if(folder==null) return; - + //CREATE FOLDER PARENT FOR RPC final FileModel parent = new FolderModel(folder.getIdentifier(), folder.getName(), folder.getParentFileModel(), true, folder.isShared(), folder.isVreFolder()); - + wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE); -// System.out.println("In client new RPC getFolderChildrenForFileGrid "+parent.getName()); -// -// System.out.println(parent); - + // System.out.println("In client new RPC getFolderChildrenForFileGrid "+parent.getName()); + // + // System.out.println(parent); + appContrExplorer.getRpcWorkspaceService().getFolderChildrenForFileGrid(parent, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { - + if(caught instanceof SessionExpiredException){ GWT.log("Session expired"); viewSessionExpiredPanel(); return; } - + new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR + " getting items for grid. " +ConstantsExplorer.TRY_AGAIN, null); - // System.out.println(caught); - // caught.printStackTrace(); + // System.out.println(caught); + // caught.printStackTrace(); wsPortlet.getGridGroupContainer().unmask(); } @@ -1359,10 +1373,10 @@ public class AppController implements SubscriberInterface { FileModel currentFolder = wsPortlet.getGridGroupContainer().getCurrentFolderView(); if(currentFolder!=null){ - + if(item.isDirectory()) //ADDED 11-06-2013 parents.add(item); - + updateBreadcrumb(parents); //set path //CASE IS A SEARCH @@ -1370,10 +1384,10 @@ public class AppController implements SubscriberInterface { wsPortlet.getSearchAndFilterContainer().searchCancel(); //TODO added in 05/04/2012 AppController.getEventBus().fireEvent(new SearchTextEvent(null)); wsPortlet.getSearchAndFilterContainer().setSearchActive(false); -// setSearchActive(false); - + // setSearchActive(false); + resetSmartFolderSelected(); - + updatGridViewForSelectedItem(item); return; } @@ -1394,16 +1408,16 @@ public class AppController implements SubscriberInterface { loadBreadcrumbByFileModel(item, true); } } - + /** * * @param item */ private void updatGridViewForSelectedItem(FileModel item){ - + if(item==null) return; - + if(item.isDirectory()) updateStoreByRpc(item); else @@ -1417,19 +1431,19 @@ public class AppController implements SubscriberInterface { @Override public boolean renameItem(String itemIdentifier, String newName, String extension) { - + FileModel lastParent = wsPortlet.getToolBarPath().getLastParent(); //RELOAD BREADCRUMB loadBreadcrumbByFileModel(lastParent, true); - + return wsPortlet.getGridGroupContainer().renameItem(itemIdentifier, newName, extension); } @Override public boolean deleteItem(String itemIdentifier) { - + executeTrashOperation(WorkspaceTrashOperation.REFRESH, null); - + return wsPortlet.getGridGroupContainer().deleteItem(itemIdentifier); } @@ -1449,10 +1463,10 @@ public class AppController implements SubscriberInterface { selectedSmartFolderId = folderId; selectedSmartFolderCategory = category; - + GWT.log("Smart folder selected, folderId: " + selectedSmartFolderId); GWT.log("Smart folder selected, category: " + selectedSmartFolderCategory); - + wsPortlet.getGridGroupContainer().mask(ConstantsExplorer.LOADING,ConstantsExplorer.LOADINGSTYLE); wsPortlet.getGridGroupContainer().setBorderAsOnSearch(true); @@ -1470,7 +1484,7 @@ public class AppController implements SubscriberInterface { @Override public void onSuccess(List result) { wsPortlet.getSearchAndFilterContainer().setSearchActive(true); -// setSearchActive(true); + // setSearchActive(true); wsPortlet.getGridGroupContainer().unmask(); wsPortlet.getGridGroupContainer().updateStore(result); } @@ -1504,7 +1518,7 @@ public class AppController implements SubscriberInterface { public void movedItems(String sourceParentIdentifier, FileModel targetParent) { updateStoreByRpc(targetParent); loadBreadcrumbByFileModel(targetParent, true); //ADDED 13-06-2013 - + } @Override @@ -1529,41 +1543,41 @@ public class AppController implements SubscriberInterface { @Override public void refreshFolder(FileModel folderTarget, boolean forceRefresh) { - + resetSmartFolderSelected(); - + GWT.log("refreshFolder method, forceRefresh is :" +forceRefresh); - + if(folderTarget!=null){ - + if(forceRefresh){ - + //FORCED REFRESH FOLDER FileGridModel folder = wsPortlet.getGridGroupContainer().getFileGridModelByIdentifier(folderTarget.getIdentifier()); - + GWT.log("force refresh, folder :" +folder); - + updateStoreByRpc(folderTarget); - + return; } - + FileModel filePath = wsPortlet.getToolBarPath().getLastParent(); if(filePath!=null){ - + //REFRESH FOLDER ONLY IF IS THE LAST ITEM OF BREADCRUMB if(folderTarget.getIdentifier().compareToIgnoreCase(filePath.getIdentifier())==0){ - - + + FileGridModel folder = wsPortlet.getGridGroupContainer().getFileGridModelByIdentifier(folderTarget.getIdentifier()); - + GWT.log("refresh folder :" +folder); - + updateStoreByRpc(folderTarget); } } - + GWT.log("folderTarget is not same folder path, refresh skypped"); } else @@ -1579,7 +1593,7 @@ public class AppController implements SubscriberInterface { // // } - + @Override public void createNewMessage(final HashMap hashAttachs) { GWT.runAsync(MailForm.class, new RunAsyncCallback() { @@ -1602,18 +1616,18 @@ public class AppController implements SubscriberInterface { */ @Override public void fileDownloaded(String itemIdentifier) { - + FileGridModel fileItem = wsPortlet.getGridGroupContainer().getFileGridModelByIdentifier(itemIdentifier); - + if(fileItem!=null && itemIdentifier!= null && fileItem.getIdentifier().compareTo(itemIdentifier)==0){ fileItem.setMarkAsRead(true); - + //SET ICON AS READ IF ITEM IS SELECETED IN THE GRID FileGridModel fileSelected = getGridSelectedItem(); if(fileSelected!=null && fileSelected.getIdentifier().compareTo(itemIdentifier)==0) accountingSetItemAsRead(true); } - + } @@ -1622,25 +1636,25 @@ public class AppController implements SubscriberInterface { */ @Override public void viewSessionExpiredPanel() { - + if(this.rootPanel!=null){ rootPanel.clear(); rootPanel.add(showProblems()); getMainPanel().setHeight(350); } } - + private LayoutContainer showProblems() { LayoutContainer errorPanel = new LayoutContainer(); errorPanel.setLayout(new FitLayout()); - + errorPanel.add(new HTML("
" + "Ops! There were problems while retrieving your workspace!" + "
Your session expired, please try to login again ")); - + return errorPanel; - } + } /* (non-Javadoc) @@ -1648,13 +1662,13 @@ public class AppController implements SubscriberInterface { */ @Override public void pasteEventIsCompleted(boolean isTreeRefreshable, String parentId) { - + if(isTreeRefreshable){ wsPortlet.getGridGroupContainer().unmask(); }else{ //FORCE GRID REFRESH FileModel lastBreadCrumb = wsPortlet.getToolBarPath().getLastParent(); GWT.log("PasteEventIsCompleted tree is not refreshable"); - + if(lastBreadCrumb!=null){ GWT.log("Comparing breadcrumb id: "+lastBreadCrumb.getIdentifier() + " and parent id: "+parentId); if(lastBreadCrumb.getIdentifier().compareToIgnoreCase(parentId)==0){ @@ -1662,9 +1676,9 @@ public class AppController implements SubscriberInterface { } } } -// Info.display("Info", "paste submitting..."); + // Info.display("Info", "paste submitting..."); wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activePasteButton(false); - + } @@ -1674,7 +1688,7 @@ public class AppController implements SubscriberInterface { @Override public void copyEventIsCompleted() { wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activePasteButton(true); - + } /* (non-Javadoc) @@ -1682,10 +1696,10 @@ public class AppController implements SubscriberInterface { */ @Override public void updatedVREPermissions(String vreFolderId) { - + GxtBreadcrumbPathPanel breadCrumb = this.wsPortlet.getToolBarPath(); FileModel parent = breadCrumb.getLastParent(); - + if(parent!=null) GWT.log("UpdatedVREPermissions comparing "+vreFolderId +" and "+parent.getIdentifier()); //IF VRE FOLDER (UPDATED) IS CURRENT BREADCRUMB DISPLAING -> UPDATE @@ -1693,106 +1707,106 @@ public class AppController implements SubscriberInterface { setACLInfo(vreFolderId); } } - + /** * * @param operation * @param trashItemId */ private void executeTrashOperation(final WorkspaceTrashOperation operation, List trashItemIds){ - + GWT.log("Executing trash operation: "+operation); if(operation==null) return; - + switch (operation) { - - case SHOW: - WindowTrash.getInstance().show(); - break; - - case DELETE_PERMANENTLY: - case RESTORE:{ - - if(trashItemIds==null || trashItemIds.isEmpty()) - return; - - - WindowTrash.getInstance().maskContainer("Updating Trash"); - List trashIds = new ArrayList(trashItemIds.size()); - for (FileModel fileModel : trashItemIds) { - trashIds.add(fileModel.getIdentifier()); + + case SHOW: + WindowTrash.getInstance().show(); + break; + + case DELETE_PERMANENTLY: + case RESTORE:{ + + if(trashItemIds==null || trashItemIds.isEmpty()) + return; + + + WindowTrash.getInstance().maskContainer("Updating Trash"); + List trashIds = new ArrayList(trashItemIds.size()); + for (FileModel fileModel : trashItemIds) { + trashIds.add(fileModel.getIdentifier()); + } + + AppControllerExplorer.rpcWorkspaceService.executeOperationOnTrash(trashIds, operation, new AsyncCallback() { + + @Override + public void onFailure(Throwable arg0) { + WindowTrash.getInstance().unmaskContainer(); + } - - AppControllerExplorer.rpcWorkspaceService.executeOperationOnTrash(trashIds, operation, new AsyncCallback() { - @Override - public void onFailure(Throwable arg0) { - WindowTrash.getInstance().unmaskContainer(); - + @Override + public void onSuccess(TrashOperationContent operationResult) { + + WindowTrash.getInstance().executeOperationOnTrashContainer(operationResult.getListTrashIds(), operationResult.getOperation()); + + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemDetails().updateTrashIcon(WindowTrash.getInstance().getTrashedFiles().size()>0); + + //SHOW POSSIBLY ERRORS + WindowTrash.getInstance().showTrashErrors(operation, operationResult.getListErrors()); + + if(operation.equals(WorkspaceTrashOperation.RESTORE)){ + appContrExplorer.refreshRoot(true); } - @Override - public void onSuccess(TrashOperationContent operationResult) { - - WindowTrash.getInstance().executeOperationOnTrashContainer(operationResult.getListTrashIds(), operationResult.getOperation()); + WindowTrash.getInstance().unmaskContainer(); - wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemDetails().updateTrashIcon(WindowTrash.getInstance().getTrashedFiles().size()>0); - - //SHOW POSSIBLY ERRORS - WindowTrash.getInstance().showTrashErrors(operation, operationResult.getListErrors()); - - if(operation.equals(WorkspaceTrashOperation.RESTORE)){ - appContrExplorer.refreshRoot(true); - } - - WindowTrash.getInstance().unmaskContainer(); + } + }); + } + default:{ + + WindowTrash.getInstance().maskContainer("Updating Trash"); + AppControllerExplorer.rpcWorkspaceService.updateTrashContent(operation, new AsyncCallback() { + + @Override + public void onFailure(Throwable arg0) { + WindowTrash.getInstance().unmaskContainer(); + + } + + @Override + public void onSuccess(TrashContent operationResult) { + + WindowTrash.getInstance().updateTrashContainer(operationResult.getTrashContent()); + + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemDetails().updateTrashIcon(operationResult.getTrashContent().size()>0); + + //SHOW POSSIBLY ERRORS + WindowTrash.getInstance().showTrashErrors(operation, operationResult.getListErrors()); + + if(operation.equals(WorkspaceTrashOperation.RESTORE_ALL)){ + appContrExplorer.refreshRoot(true); } - }); - } - - default:{ - - WindowTrash.getInstance().maskContainer("Updating Trash"); - AppControllerExplorer.rpcWorkspaceService.updateTrashContent(operation, new AsyncCallback() { - - @Override - public void onFailure(Throwable arg0) { - WindowTrash.getInstance().unmaskContainer(); - - } - - @Override - public void onSuccess(TrashContent operationResult) { - - WindowTrash.getInstance().updateTrashContainer(operationResult.getTrashContent()); - - wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemDetails().updateTrashIcon(operationResult.getTrashContent().size()>0); - //SHOW POSSIBLY ERRORS - WindowTrash.getInstance().showTrashErrors(operation, operationResult.getListErrors()); - - if(operation.equals(WorkspaceTrashOperation.RESTORE_ALL)){ - appContrExplorer.refreshRoot(true); - } - - WindowTrash.getInstance().unmaskContainer(); - } - }); - - break; - } + WindowTrash.getInstance().unmaskContainer(); + } + }); + + break; + } } } - + /* (non-Javadoc) * @see org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface#trashEvent(org.gcube.portlets.user.workspace.shared.WorkspaceTrashOperation, java.util.List) */ @Override public void trashEvent(WorkspaceTrashOperation trashOperation, List targetFileModels) { executeTrashOperation(trashOperation, targetFileModels); - + } } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java index 19dff8e..86bbbf3 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/grids/GxtGridFilterGroupPanel.java @@ -14,6 +14,7 @@ import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent; import org.gcube.portlets.user.workspace.client.event.OpenContextMenuTreeEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; +import org.gcube.portlets.user.workspace.client.event.OpenUrlEvent; import org.gcube.portlets.user.workspace.client.event.StoreGridChangedEvent; import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.model.FileGridModel; @@ -52,6 +53,7 @@ import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter; import com.extjs.gxt.ui.client.widget.layout.FitLayout; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.i18n.client.NumberFormat; +import com.google.gwt.user.client.Window; /** * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it @@ -302,48 +304,30 @@ public class GxtGridFilterGroupPanel extends LayoutContainer { switch(target.getGXTFolderItemType()){ case EXTERNAL_IMAGE: - AppController.getEventBus().fireEvent(new ImagePreviewEvent(target, 0, 0)); + case IMAGE_DOCUMENT: + AppController.getEventBus().fireEvent(new ImagePreviewEvent(target,0, 0)); break; case EXTERNAL_FILE: - AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); - break; - case EXTERNAL_PDF_FILE: + case EXTERNAL_PDF_FILE: + case PDF_DOCUMENT: + case DOCUMENT: + case URL_DOCUMENT: + case EXTERNAL_RESOURCE_LINK: AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); break; case EXTERNAL_URL: - AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); + AppController.getEventBus().fireEvent(new OpenUrlEvent(target)); break; case REPORT_TEMPLATE: - AppController.getEventBus().fireEvent(new OpenReportsEvent(target)); - break; case REPORT: AppController.getEventBus().fireEvent(new OpenReportsEvent(target)); break; case QUERY: - break; case TIME_SERIES: - break; - case PDF_DOCUMENT: - AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); - break; - case IMAGE_DOCUMENT: - AppController.getEventBus().fireEvent(new ImagePreviewEvent(target,0, 0)); - break; - case DOCUMENT: - AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); - break; - case URL_DOCUMENT: - AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); - break; case METADATA: - break; case WORKFLOW_REPORT: - break; case WORKFLOW_TEMPLATE: break; - case EXTERNAL_RESOURCE_LINK: - AppController.getEventBus().fireEvent(new FileDownloadEvent(target.getIdentifier(), target.getName(), DownloadType.SHOW)); - break; default: } diff --git a/src/main/resources/org/gcube/portlets/user/workspace/WorkspacePortlet.gwt.xml b/src/main/resources/org/gcube/portlets/user/workspace/WorkspacePortlet.gwt.xml index 9d40496..68c693a 100644 --- a/src/main/resources/org/gcube/portlets/user/workspace/WorkspacePortlet.gwt.xml +++ b/src/main/resources/org/gcube/portlets/user/workspace/WorkspacePortlet.gwt.xml @@ -5,7 +5,8 @@ - + +