From 9151a28cff19b37851a9cdc5b6ef9f8dc93ac557 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Fri, 29 Jun 2018 14:34:05 +0000 Subject: [PATCH] fox for set showable type and set selectable types git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@169550 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../select/WorkspaceExplorerSelectPanel.java | 62 ++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectPanel.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectPanel.java index fe0fc5e..2070a70 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectPanel.java @@ -4,6 +4,7 @@ package org.gcube.portlets.widgets.wsexplorer.client.select; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.gcube.portlets.widgets.wsexplorer.client.Util; @@ -131,6 +132,10 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors if(showOnlyFolders){ ItemType[] itemsType = new ItemType[1]; itemsType[0] = ItemType.FOLDER; + itemsType[1] = ItemType.PRIVATE_FOLDER; + itemsType[2] = ItemType.SHARED_FOLDER; + itemsType[3] = ItemType.VRE_FOLDER; + setSelectableTypes(itemsType); setShowableTypes(itemsType); } @@ -440,9 +445,57 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors * @param selectableTypes the selectableTypes to set */ private void setSelectableTypes(ItemType ... selectableTypes) { - controller.setSelectableTypes(selectableTypes); + ArrayList list = new ArrayList<>(); + for (int i = 0; i < selectableTypes.length; i++) { + list.add(selectableTypes[i]); + } + GWT.log("setSelectableTypes for type " + list.toString()); + controller.setSelectableTypes(getPatchedTypes(selectableTypes)); } + private ItemType[] getPatchedTypes(ItemType[] selectableTypes) { + boolean ANY_FOLDER = false; + boolean ANY_FILE = false; + + ArrayList list = new ArrayList<>(); + for (int i = 0; i < selectableTypes.length; i++) { + list.add(selectableTypes[i]); + } + + for (int i = 0; i < selectableTypes.length; i++) { + if (selectableTypes[i] == ItemType.FOLDER) + ANY_FOLDER = true; + if (selectableTypes[i] == ItemType.EXTERNAL_FILE) { + ANY_FILE = true; + } + } + + for (int i = 0; i < selectableTypes.length; i++) { + list.add(selectableTypes[i]); + } + if (ANY_FOLDER) { + list.add(ItemType.PRIVATE_FOLDER); + list.add(ItemType.VRE_FOLDER); + list.add(ItemType.SHARED_FOLDER); + } + if (ANY_FILE) { + ArrayList temp = new ArrayList<>(); + ItemType[] allValues = ItemType.values(); + for (int i = 0; i < allValues.length; i++) { + temp.add(allValues[i]); + } + temp.remove(ItemType.PRIVATE_FOLDER); + temp.remove(ItemType.VRE_FOLDER); + temp.remove(ItemType.SHARED_FOLDER); + temp.remove(ItemType.FOLDER); + for (ItemType itemType : temp) { + list.add(itemType); + } + } + GWT.log("getPatchedTypes returns " + list.toString()); + return list.toArray(new ItemType[list.size()]); + } + /** * Gets the selectable types. @@ -466,6 +519,11 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors * @param showableTypes the showableTypes to set */ private void setShowableTypes(ItemType ... showableTypes) { - controller.setShowableTypes(showableTypes); + ArrayList list = new ArrayList<>(); + for (int i = 0; i < showableTypes.length; i++) { + list.add(showableTypes[i]); + } + GWT.log("setShowableTypes for type " + list.toString()); + controller.setShowableTypes(getPatchedTypes(showableTypes)); } }