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 079f9af..396f996 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 @@ -1675,7 +1675,7 @@ public class AppController implements SubscriberInterface { private void executeTrashOperation(WorkspaceTrashOperation operation, List trashItemIds){ GWT.log("Executing trash operation: "+operation); - + if(operation==null) return; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java index 3bf59b5..e33368f 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java @@ -6,8 +6,6 @@ import java.util.List; import org.gcube.portlets.user.workspace.client.AppController; import org.gcube.portlets.user.workspace.client.ConstantsExplorer; -import org.gcube.portlets.user.workspace.client.event.GridElementSelectedEvent; -import org.gcube.portlets.user.workspace.client.event.GridElementUnSelectedEvent; import org.gcube.portlets.user.workspace.client.event.TrashEvent; import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum; import org.gcube.portlets.user.workspace.client.model.FileGridModel; @@ -20,7 +18,6 @@ import com.extjs.gxt.ui.client.Style.ButtonScale; import com.extjs.gxt.ui.client.Style.HorizontalAlignment; import com.extjs.gxt.ui.client.Style.IconAlign; import com.extjs.gxt.ui.client.data.BaseModelData; -import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.dnd.GridDropTarget; import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.DNDEvent; @@ -41,6 +38,7 @@ import com.extjs.gxt.ui.client.widget.grid.ColumnModel; import com.extjs.gxt.ui.client.widget.grid.Grid; import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; import com.extjs.gxt.ui.client.widget.grid.GroupingView; +import com.extjs.gxt.ui.client.widget.grid.filters.DateFilter; import com.extjs.gxt.ui.client.widget.grid.filters.GridFilters; import com.extjs.gxt.ui.client.widget.grid.filters.StringFilter; import com.extjs.gxt.ui.client.widget.layout.FitLayout; @@ -50,20 +48,16 @@ import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; public class TrashInfoContainer extends LayoutContainer { - /** - * - */ - - private Grid grid; private ContentPanel cp; private GroupingStore store = new GroupingStore(); - private boolean groupingEnabled; private ListStore typeStoreOperation = new ListStore(); private GridDropTarget gridDropTarget; private Button buttonDelete; private Button buttonRestore; - + private Button buttonRestoreAll; + private Button buttonEmptyTrash; + public TrashInfoContainer() { initContentPanel(); initGrid(); @@ -72,8 +66,6 @@ public class TrashInfoContainer extends LayoutContainer { activeButtonOnSelection(false); } - - /** * @@ -176,6 +168,7 @@ public class TrashInfoContainer extends LayoutContainer { return true; } + private void createToolBar() { ToolBar bar = new ToolBar(); @@ -217,7 +210,7 @@ public class TrashInfoContainer extends LayoutContainer { bar.add(new SeparatorMenuItem()); - Button buttonRestoreAll = new Button(WorkspaceTrashOperation.RESTORE_ALL.getLabel(),Resources.getIconRecycle()); + buttonRestoreAll = new Button(WorkspaceTrashOperation.RESTORE_ALL.getLabel(),Resources.getIconRecycle()); buttonRestoreAll.setToolTip(WorkspaceTrashOperation.RESTORE_ALL.getOperationDescription()); buttonRestoreAll.setScale(ButtonScale.SMALL); buttonRestoreAll.setIconAlign(IconAlign.TOP); @@ -233,7 +226,7 @@ public class TrashInfoContainer extends LayoutContainer { bar.add(buttonRestoreAll); - Button buttonEmptyTrash = new Button(WorkspaceTrashOperation.EMPTY_TRASH.getLabel(),Resources.getTrashEmpty()); + buttonEmptyTrash = new Button(WorkspaceTrashOperation.EMPTY_TRASH.getLabel(),Resources.getTrashEmpty()); buttonEmptyTrash.setToolTip(WorkspaceTrashOperation.EMPTY_TRASH.getOperationDescription()); buttonEmptyTrash.setScale(ButtonScale.SMALL); buttonEmptyTrash.setIconAlign(IconAlign.TOP); @@ -275,9 +268,9 @@ public class TrashInfoContainer extends LayoutContainer { ColumnConfig icon = new ColumnConfig(ConstantsExplorer.ICON, "", 25); ColumnConfig name = createSortableColumnConfig(ConstantsExplorer.NAME, ConstantsExplorer.NAME, 200); - ColumnConfig type = createSortableColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 50); + ColumnConfig type = createSortableColumnConfig(ConstantsExplorer.TYPE, ConstantsExplorer.TYPE, 80); ColumnConfig originalPath = createSortableColumnConfig(FileTrashedModel.STOREINFO.ORIGINALPATH.toString(), "Original Path", 200); - ColumnConfig deleteDate = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEDATE.toString(), "Deleted Date", 50); + ColumnConfig deleteDate = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEDATE.toString(), "Deleted Date", 80); ColumnConfig deleteUser = createSortableColumnConfig(FileTrashedModel.STOREINFO.DELETEUSER.toString(), "Deleted By", 150); ColumnModel cm = new ColumnModel(Arrays.asList(icon, name, type, originalPath, deleteDate, deleteUser)); @@ -287,7 +280,8 @@ public class TrashInfoContainer extends LayoutContainer { grid = new Grid(this.store, cm); GroupingView view = new GroupingView(); - view.setShowGroupedColumn(true); + view.setShowGroupedColumn(false); + this.grid.setView(view); // view.setGroupRenderer(new GridGroupRenderer() { @@ -315,7 +309,7 @@ public class TrashInfoContainer extends LayoutContainer { return "" + val + ""; } } - }; + }; type.setRenderer(folderRender); @@ -324,33 +318,29 @@ public class TrashInfoContainer extends LayoutContainer { StringFilter nameFilter = new StringFilter(ConstantsExplorer.NAME); - StringFilter authorFilter = new StringFilter(ConstantsExplorer.TYPE); - + StringFilter typeFilter = new StringFilter(ConstantsExplorer.TYPE); + DateFilter dateFilter = new DateFilter(FileTrashedModel.STOREINFO.DELETEDATE.toString()); + filters.addFilter(nameFilter); - filters.addFilter(authorFilter); + filters.addFilter(typeFilter); + filters.addFilter(dateFilter); grid.addPlugin(filters); - grid.getSelectionModel().addSelectionChangedListener(new SelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent se) { boolean selection = grid.getSelectionModel().getSelectedItems().size()>0; - - if(selection){ - activeButtonOnSelection(selection); - } - - - + activeButtonOnSelection(selection); } }); + grid.getView().setAutoFill(true); grid.setBorders(true); grid.setStripeRows(true); - grid.getView().setAutoFill(true); + grid.getView().setShowDirtyCells(false); grid.setColumnLines(true); grid.setColumnReordering(true); grid.setStyleAttribute("borderTop", "none"); @@ -359,13 +349,7 @@ public class TrashInfoContainer extends LayoutContainer { } - /** - * @param multi - */ - protected void activeButtonOnSelection(boolean bool) { - buttonDelete.setEnabled(bool); - buttonRestore.setEnabled(bool); - } + public void setPanelSize(int width, int height) { @@ -382,28 +366,6 @@ public class TrashInfoContainer extends LayoutContainer { updateTrash(trashFiles); } - public void disableGrouping() { - GroupingStore groupingStore = null; - if (store instanceof GroupingStore) { - groupingStore = (GroupingStore) store; - if (groupingStore != null) { - groupingStore.clearGrouping(); - } - this.groupingEnabled = false; - } - } - - public void enableGrouping() { - GroupingStore groupingStore = null; - if (store instanceof GroupingStore) { - groupingStore = (GroupingStore) store; - if (groupingStore != null) { - groupingStore.groupBy(ConstantsExplorer.SHORTCUTCATEGORY); - } - this.groupingEnabled = true; - } - } - public void updateTrash(List trashFiles) { store.removeAll(); @@ -414,8 +376,25 @@ public class TrashInfoContainer extends LayoutContainer { } store.add(trashFiles); + + activeButtonsOnNotEmtpy(store.getModels().size()>0); } + /** + * @param b + */ + private void activeButtonsOnNotEmtpy(boolean isNotEmpty) { + buttonRestoreAll.setEnabled(isNotEmpty); + buttonEmptyTrash.setEnabled(isNotEmpty); + } + + /** + * @param multi + */ + protected void activeButtonOnSelection(boolean bool) { + buttonDelete.setEnabled(bool); + buttonRestore.setEnabled(bool); + } private void updateStore(ListStore store) { resetStore(); @@ -439,15 +418,6 @@ public class TrashInfoContainer extends LayoutContainer { // cp.layout(); } - private boolean isGroupingEnabled() { - return groupingEnabled; - } - - private void setGroupingEnabled(boolean groupingEnabled) { - this.groupingEnabled = groupingEnabled; - } - - /** * * @param identifier @@ -498,6 +468,8 @@ public class TrashInfoContainer extends LayoutContainer { + fileTarget.getIdentifier() + " identifier not exist in store"); + activeButtonsOnNotEmtpy(store.getModels().size()>0); + return false; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/WindowTrash.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/WindowTrash.java index d18bce4..da6e644 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/WindowTrash.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/WindowTrash.java @@ -28,7 +28,6 @@ public class WindowTrash extends Window { initAccounting(); setIcon(Resources.getTrashFull()); //TODO setHeading("Trash"); -// addResizeListner(); } /** @@ -42,34 +41,11 @@ public class WindowTrash extends Window { return INSTANCE; } -// public void addResizeListner(){ -// -// this.addListener(Events.Resize, new Listener() { -// -// @Override -// public void handleEvent(WindowEvent we ) -// { -// -// if(trashContainers!=null){ -//// System.out.println("Size in event: " + we.getWidth() + "x" + we.getHeight() ); -//// accountingsContainers.setPanelSize(we.getWidth()-14, we.getHeight()-30); -// } -// } -// -// }); -// } - -// public WindowTrash(List trashFiles) { -// updateTrashContainer(trashFiles); -// } - private void initAccounting() { -// setModal(true); setLayout(new FitLayout()); - setSize(700, 350); + setSize(750, 400); setResizable(true); setMaximizable(true); -// setCollapsible(true); this.trashContainers = new TrashInfoContainer(); add(trashContainers); }