From 35aaa4585300bec19ec404f870a477b0254ad38b Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Mon, 9 Sep 2013 15:37:49 +0000 Subject: [PATCH] Ticket #1868: enhancement is completed git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace@81162 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 2 +- .../user/workspace/client/AppController.java | 56 +++++++------------ .../client/event/GridRefreshEvent.java | 30 ++++++++++ .../client/event/GridRefreshEventHandler.java | 15 +++++ .../view/grids/GxtGridFilterGroupPanel.java | 2 +- .../toolbars/GxtToolBarItemFunctionality.java | 21 ++++++- 6 files changed, 87 insertions(+), 39 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEvent.java create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEventHandler.java diff --git a/pom.xml b/pom.xml index a61af74..056b92c 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.gcube.portlets.user workspace war - 6.3.0-SNAPSHOT + 6.4.0-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 72c1cb5..40d3737 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 @@ -38,6 +38,8 @@ import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEvent; import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEventHandler; import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent; import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEventHandler; +import org.gcube.portlets.user.workspace.client.event.GridRefreshEvent; +import org.gcube.portlets.user.workspace.client.event.GridRefreshEventHandler; import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent; import org.gcube.portlets.user.workspace.client.event.ImagePreviewEventHandler; import org.gcube.portlets.user.workspace.client.event.LoadAllScopeEvent; @@ -66,7 +68,6 @@ import org.gcube.portlets.user.workspace.client.event.SearchTextEvent; import org.gcube.portlets.user.workspace.client.event.SearchTextEventHandler; import org.gcube.portlets.user.workspace.client.event.SendMessageEvent; import org.gcube.portlets.user.workspace.client.event.SendMessageEventHandler; -import org.gcube.portlets.user.workspace.client.event.SessionExpiredEvent; 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; @@ -111,7 +112,6 @@ public class AppController implements SubscriberInterface { private HasWidgets rootPanel; - public AppController(AppControllerExplorer appControllerExplorer) { this.appContrExplorer = appControllerExplorer; this.appContrExplorer.subscribe(this, new EventsTypeEnum[] { @@ -235,6 +235,21 @@ public class AppController implements SubscriberInterface { AppControllerExplorer.getEventBus().fireEvent(new GetShareLinkEvent(getLinkEvent.getSourceFile())); } }); + + eventBus.addHandler(GridRefreshEvent.TYPE, new GridRefreshEventHandler() { + + @Override + public void onGridRefresh(GridRefreshEvent gridRefreshEvent) { + + if(wsPortlet.getToolBarPath().getLastParent()!=null){ + FileModel parent = wsPortlet.getToolBarPath().getLastParent(); + + //CREATE FOLDER PARENT FOR RPC + FolderModel folder = new FolderModel(parent.getIdentifier(), parent.getName(), parent.getParentFileModel(), true, parent.isShared()); + updateStoreByRpc(folder); + } + } + }); eventBus.addHandler(PreviewMessageEvent.TYPE, new PreviewMessageEventHandler() { @@ -440,11 +455,13 @@ public class AppController implements SubscriberInterface { if(searchTextEvent.getTextSearch()==null){ appContrExplorer.searching(false); wsPortlet.getGridGroupContainer().setBorderAsOnSearch(false); + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonsOnSearch(false); //ADDED 09-08-13 } else{ wsPortlet.getSearchAndFilterContainer().setSearchActive(true); //ADDED 06-04-12 // setSearchActive(true); appContrExplorer.searching(true); + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonsOnSearch(true); //ADDED 09-08-13 doSearchText(searchTextEvent.getTextSearch()); } } @@ -890,39 +907,6 @@ public class AppController implements SubscriberInterface { else initPortlet(rootPanel, instanceWithGrouping, searchingForItemId, searchParameter, itemIdParameter, operationParameter); - -//// System.out.println("isSearch "+isSearch); -//// System.out.println("isSearchForItemId "+isSearchForItemId); -// -// 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); -// } -// }); -// } else if(itemIdParameter!=null && !itemIdParameter.isEmpty()){ //SEARCH FOR ITEM ID -// -// Scheduler.get().scheduleDeferred(new ScheduledCommand() { -// @Override -// public void execute() { -// AppController.getEventBus().fireEvent(new SearchItemByIdEvent(itemIdParameter, operationParameter)); -// } -// }); -// -// } } private void initPortlet(final HasWidgets rootPanel, final boolean instanceWithGrouping, boolean isSearchForItemId, final String searchParameter, final String itemIdParameter, final String operationParameter){ @@ -944,6 +928,7 @@ public class AppController implements SubscriberInterface { @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 @@ -952,6 +937,7 @@ public class AppController implements SubscriberInterface { @Override public void execute() { AppController.getEventBus().fireEvent(new SearchItemByIdEvent(itemIdParameter, operationParameter)); + wsPortlet.getGxtCardLayoutResultPanel().getToolBarItemFunctionalities().activeButtonsOnSearch(false); //ADDED 09-08-13 } }); diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEvent.java b/src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEvent.java new file mode 100644 index 0000000..e210a53 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEvent.java @@ -0,0 +1,30 @@ +package org.gcube.portlets.user.workspace.client.event; + +import org.gcube.portlets.user.workspace.client.model.FileGridModel; + +import com.extjs.gxt.ui.client.data.ModelData; +import com.google.gwt.event.shared.GwtEvent; + +/** + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * + */ +public class GridRefreshEvent extends GwtEvent { + public static Type TYPE = new Type(); + + public GridRefreshEvent() { + + } + + @Override + public Type getAssociatedType() { + return TYPE; + } + + @Override + protected void dispatch(GridRefreshEventHandler handler) { + handler.onGridRefresh(this); + + } +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEventHandler.java b/src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEventHandler.java new file mode 100644 index 0000000..4942dc2 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/workspace/client/event/GridRefreshEventHandler.java @@ -0,0 +1,15 @@ +package org.gcube.portlets.user.workspace.client.event; + +import com.google.gwt.event.shared.EventHandler; + +/** + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * + */ +public interface GridRefreshEventHandler extends EventHandler { + /** + * @param gridRefreshEvent + */ + void onGridRefresh(GridRefreshEvent gridRefreshEvent); +} 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 52e24eb..728d4ce 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 @@ -332,7 +332,7 @@ public class GxtGridFilterGroupPanel extends LayoutContainer { public boolean updateStore(List result){ resetStore(); - if(result!= null){ + if(result!= null && result.size()>0){ for(FileGridModel file: result) file.setIcon(); store.add(result); diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java index ddd9c00..038e001 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemFunctionality.java @@ -13,6 +13,7 @@ import org.gcube.portlets.user.workspace.client.event.FileUploadEvent; import org.gcube.portlets.user.workspace.client.event.FileUploadEvent.UploadType; import org.gcube.portlets.user.workspace.client.event.GetPublicLinkEvent; import org.gcube.portlets.user.workspace.client.event.GetShareLinkEvent; +import org.gcube.portlets.user.workspace.client.event.GridRefreshEvent; import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent; import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent; import org.gcube.portlets.user.workspace.client.event.RenameItemEvent; @@ -96,8 +97,7 @@ public class GxtToolBarItemFunctionality { toolBar.add(btnUploadFile); - btnRefreshFolder = new Button(ConstantsPortlet.REFRESH, - Resources.getIconRefresh()); + btnRefreshFolder = new Button(ConstantsPortlet.REFRESH, Resources.getIconRefresh()); btnRefreshFolder.setScale(ButtonScale.SMALL); btnRefreshFolder.setIconAlign(IconAlign.TOP); btnRefreshFolder.setArrowAlign(ButtonArrowAlign.BOTTOM); @@ -264,6 +264,16 @@ public class GxtToolBarItemFunctionality { }); + btnRefreshFolder.addSelectionListener(new SelectionListener() { + + @Override + public void componentSelected(ButtonEvent ce) { + + AppController.getEventBus().fireEvent(new GridRefreshEvent()); + + } + }); + btnPublicLink.addSelectionListener(new SelectionListener() { @Override @@ -545,4 +555,11 @@ public class GxtToolBarItemFunctionality { return this.toolBar; } + /** + * @param b + */ + public void activeButtonsOnSearch(boolean b) { + btnRefreshFolder.setEnabled(!b); + } + }