diff --git a/pom.xml b/pom.xml index bce5a6c..160efe6 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.gcube.portlets.user workspace war - 6.5.1-SNAPSHOT + 6.6.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 6ea6fc0..e282fe8 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 @@ -70,6 +70,9 @@ 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.TrashEvent; +import org.gcube.portlets.user.workspace.client.event.TrashEvent.TRASHOPERATION; +import org.gcube.portlets.user.workspace.client.event.TrashEventHandler; 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; @@ -81,6 +84,7 @@ import org.gcube.portlets.user.workspace.client.model.ScopeModel; 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; +import org.gcube.portlets.user.workspace.client.view.trash.WindowTrash; 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; @@ -116,6 +120,7 @@ public class AppController implements SubscriberInterface { private String selectedSmartFolderId; private String selectedSmartFolderCategory; + public AppController(AppControllerExplorer appControllerExplorer) { this.appContrExplorer = appControllerExplorer; this.appContrExplorer.subscribe(this, new EventsTypeEnum[] { @@ -140,7 +145,8 @@ public class AppController implements SubscriberInterface { EventsTypeEnum.FILE_DOWNLAD_EVENT, EventsTypeEnum.SESSION_EXPIRED, EventsTypeEnum.PASTED_EVENT, - EventsTypeEnum.COPY_EVENT + EventsTypeEnum.COPY_EVENT, + EventsTypeEnum.TRASH_EVENT }); bind(); } @@ -152,6 +158,34 @@ public class AppController implements SubscriberInterface { private void bind() { + + + eventBus.addHandler(TrashEvent.TYPE, new TrashEventHandler() { + + @Override + public void onTrashEvent(TrashEvent trashEvent) { + + + switch (trashEvent.getTrashOperation()) { + case SHOW: + + WindowTrash.getInstance().show(); + + break; + + case MOVETO: + + break; + + case RESTOREFROM: + break; + + default: + break; + } + + } + }); //********EVENTS TO NOTIFY SUBSCRIBERS eventBus.addHandler(ActiveGroupingView.TYPE, new ActiveGroupingViewHandler() { @@ -217,6 +251,8 @@ public class AppController implements SubscriberInterface { } }); + + eventBus.addHandler(AccountingHistoryEvent.TYPE, new AccountingHistoryEventHandler() { @Override @@ -1439,4 +1475,14 @@ public class AppController implements SubscriberInterface { } + + /* (non-Javadoc) + * @see org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface#trashEvent(org.gcube.portlets.user.workspace.client.event.TrashEvent.TRASHOPERATION, org.gcube.portlets.user.workspace.client.model.FileModel) + */ + @Override + public void trashEvent(TRASHOPERATION trashOperation, FileModel targetFileModel) { + + + } + } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java index c528a92..b94c37c 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/WorskpacePortlet.java @@ -6,7 +6,7 @@ import org.gcube.portlets.user.workspace.client.view.panels.GxtBorderLayoutPanel import org.gcube.portlets.user.workspace.client.view.panels.GxtCardLayoutResultPanel; import org.gcube.portlets.user.workspace.client.view.panels.GxtSeachAndFilterPanel; import org.gcube.portlets.user.workspace.client.view.toolbars.GxtPathPanel; -import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItemAccounting; +import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem; /** @@ -19,7 +19,7 @@ public class WorskpacePortlet { private GxtBasicTabPanel basicTabContainer = null; // private GxtToolBarFunctionsPanel toolbarPanelContainer = null; private ExplorerPanel explorerPanel = null; - private GxtToolBarItemAccounting toolBarItemDetails; + private GxtBottomToolBarItem toolBarItemDetails; private GxtListView listViewContainer; private GxtPathPanel toolBarPathPanel; private GxtGridFilterGroupPanel gridFilterGroupContainer; @@ -35,7 +35,7 @@ public class WorskpacePortlet { this.gridFilterGroupContainer = new GxtGridFilterGroupPanel(activeGroup); this.listViewContainer = new GxtListView(); - this.toolBarItemDetails = new GxtToolBarItemAccounting(); + this.toolBarItemDetails = new GxtBottomToolBarItem(); this.gxtCardLayoutResultPanel = new GxtCardLayoutResultPanel(gridFilterGroupContainer, listViewContainer, toolBarItemDetails); @@ -57,7 +57,7 @@ public class WorskpacePortlet { return basicTabContainer; } - public GxtToolBarItemAccounting getDetailsContainer() { + public GxtBottomToolBarItem getDetailsContainer() { return toolBarItemDetails; } @@ -85,7 +85,7 @@ public class WorskpacePortlet { return gxtCardLayoutResultPanel; } - public GxtToolBarItemAccounting getToolBarItemDetails() { + public GxtBottomToolBarItem getToolBarItemDetails() { return toolBarItemDetails; } } 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 fb93497..a3d6ad3 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 @@ -20,6 +20,8 @@ import org.gcube.portlets.user.workspace.client.model.GroupingStoreModel; import com.extjs.gxt.ui.client.Style.SelectionMode; import com.extjs.gxt.ui.client.data.ModelData; +import com.extjs.gxt.ui.client.dnd.GridDragSource; +import com.extjs.gxt.ui.client.dnd.GridDropTarget; import com.extjs.gxt.ui.client.event.BaseEvent; import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.GridEvent; @@ -242,6 +244,12 @@ public class GxtGridFilterGroupPanel extends LayoutContainer { } }); + + + + new GridDragSource(grid); + + cp.add(grid); add(cp); } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java index d3598fd..8bd3740 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtBorderLayoutPanel.java @@ -2,7 +2,7 @@ package org.gcube.portlets.user.workspace.client.view.panels; import org.gcube.portlets.user.workspace.client.ConstantsPortlet; import org.gcube.portlets.user.workspace.client.view.ExplorerPanel; -import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItemAccounting; +import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem; import com.extjs.gxt.ui.client.Style.LayoutRegion; import com.extjs.gxt.ui.client.Style.Scroll; @@ -26,7 +26,7 @@ public class GxtBorderLayoutPanel extends ContentPanel { private ContentPanel center = new ContentPanel(); private ContentPanel east = new ContentPanel(); private ContentPanel south = new ContentPanel(); - private GxtToolBarItemAccounting toolBarItemDetails = null; + private GxtBottomToolBarItem toolBarItemDetails = null; private ExplorerPanel expPanel = null; //TODO change position private GxtSeachAndFilterPanel searchAndFilterContainer; private GxtCardLayoutResultPanel gxtCardLayoutResultPanel; @@ -36,7 +36,7 @@ public class GxtBorderLayoutPanel extends ContentPanel { GxtSeachAndFilterPanel searchAndFilterContainer2, ExplorerPanel explorerPanel, GxtCardLayoutResultPanel gxtCardLayoutResultPanel, - GxtToolBarItemAccounting detailsContainer2) { + GxtBottomToolBarItem detailsContainer2) { this.searchAndFilterContainer = searchAndFilterContainer2; this.expPanel = explorerPanel; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtCardLayoutResultPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtCardLayoutResultPanel.java index f21a1c9..9543cf0 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtCardLayoutResultPanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtCardLayoutResultPanel.java @@ -3,7 +3,7 @@ package org.gcube.portlets.user.workspace.client.view.panels; import org.gcube.portlets.user.workspace.client.ConstantsPortlet.ViewSwitchTypeInResult; import org.gcube.portlets.user.workspace.client.view.GxtListView; import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel; -import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItemAccounting; +import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem; import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItemFunctionality; import com.extjs.gxt.ui.client.widget.ContentPanel; @@ -24,12 +24,12 @@ public class GxtCardLayoutResultPanel extends LayoutContainer{ private GxtGridFilterGroupPanel gridGroupViewContainer; private ContentPanel activePanel = null; private GxtToolBarItemFunctionality toolBarItemFunct; - private GxtToolBarItemAccounting toolBarItemDetails; + private GxtBottomToolBarItem toolBarItemDetails; public GxtCardLayoutResultPanel( GxtGridFilterGroupPanel gridFilterGroupContainer, GxtListView listViewContainer, - GxtToolBarItemAccounting toolBarItemDetails) { + GxtBottomToolBarItem toolBarItemDetails) { this.iconsViewContainer = listViewContainer; this.gridGroupViewContainer = gridFilterGroupContainer; this.toolBarItemDetails = toolBarItemDetails; @@ -94,7 +94,7 @@ public class GxtCardLayoutResultPanel extends LayoutContainer{ return activePanel; } - public GxtToolBarItemAccounting getToolBarItemDetails() { + public GxtBottomToolBarItem getToolBarItemDetails() { return toolBarItemDetails; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtItemsPanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtItemsPanel.java index e229384..bbd7058 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtItemsPanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/panels/GxtItemsPanel.java @@ -2,7 +2,7 @@ package org.gcube.portlets.user.workspace.client.view.panels; import org.gcube.portlets.user.workspace.client.view.GxtListView; import org.gcube.portlets.user.workspace.client.view.grids.GxtGridFilterGroupPanel; -import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItemAccounting; +import org.gcube.portlets.user.workspace.client.view.toolbars.GxtBottomToolBarItem; import org.gcube.portlets.user.workspace.client.view.toolbars.GxtToolBarItemFunctionality; import com.extjs.gxt.ui.client.widget.ContentPanel; @@ -16,10 +16,10 @@ public class GxtItemsPanel extends ContentPanel{ private GxtToolBarItemFunctionality toolBarItemFunct; private GxtListView iconsViewContainer; private GxtGridFilterGroupPanel gridGroupViewContainer; - private GxtToolBarItemAccounting toolBarItemDetails; + private GxtBottomToolBarItem toolBarItemDetails; - public GxtItemsPanel(GxtListView iconsViewContainer, GxtGridFilterGroupPanel gridGroupViewContainer, GxtToolBarItemFunctionality toolBarItem, GxtToolBarItemAccounting toolBarItemDetails) { + public GxtItemsPanel(GxtListView iconsViewContainer, GxtGridFilterGroupPanel gridGroupViewContainer, GxtToolBarItemFunctionality toolBarItem, GxtBottomToolBarItem toolBarItemDetails) { this.iconsViewContainer = iconsViewContainer; this.gridGroupViewContainer = gridGroupViewContainer; this.toolBarItemFunct = toolBarItem; @@ -53,7 +53,7 @@ public class GxtItemsPanel extends ContentPanel{ } - public GxtToolBarItemAccounting getToolBarItemDetails() { + public GxtBottomToolBarItem getToolBarItemDetails() { return toolBarItemDetails; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemAccounting.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java similarity index 82% rename from src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemAccounting.java rename to src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java index 5c6ed8d..ca30bad 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtToolBarItemAccounting.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/toolbars/GxtBottomToolBarItem.java @@ -4,6 +4,8 @@ import org.gcube.portlets.user.workspace.client.AppController; import org.gcube.portlets.user.workspace.client.event.AccountingHistoryEvent; import org.gcube.portlets.user.workspace.client.event.AccountingReadersEvent; import org.gcube.portlets.user.workspace.client.event.GetInfoEvent; +import org.gcube.portlets.user.workspace.client.event.TrashEvent; +import org.gcube.portlets.user.workspace.client.event.TrashEvent.TRASHOPERATION; import org.gcube.portlets.user.workspace.client.resources.Resources; import com.extjs.gxt.ui.client.event.ButtonEvent; @@ -11,6 +13,7 @@ import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.widget.Text; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.TextField; +import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem; import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem; import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; @@ -18,7 +21,7 @@ import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * */ -public class GxtToolBarItemAccounting extends ToolBar{ +public class GxtBottomToolBarItem extends ToolBar{ /** * @@ -40,8 +43,9 @@ public class GxtToolBarItemAccounting extends ToolBar{ private Button btnGetInfo; private Button bHistory; private Button bRead; + private Button btnGetTrash; - public GxtToolBarItemAccounting(){ + public GxtBottomToolBarItem(){ super(); initToolbar(); } @@ -94,7 +98,25 @@ public class GxtToolBarItemAccounting extends ToolBar{ // add(new SeparatorToolItem()); // add(bRead); + + btnGetTrash = new Button("Trash"); + btnGetTrash.setIcon(Resources.getTrash()); + btnGetTrash.addSelectionListener(new SelectionListener() { + + @Override + public void componentSelected(ButtonEvent ce) { + + AppController.getEventBus().fireEvent(new TrashEvent(TRASHOPERATION.SHOW, null)); + + } + }); + + add(new FillToolItem()); + add(btnGetTrash); + enableButtons(false); + + } public void resetDetails(){