diff --git a/.classpath b/.classpath index 0ee8fb6..3dfcb58 100644 --- a/.classpath +++ b/.classpath @@ -28,5 +28,7 @@ + + diff --git a/pom.xml b/pom.xml index 3151007..7923884 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ 4.0.0 org.gcube.portlets.widgets workspace-explorer - 1.8.0-SNAPSHOT + 2.0.0-SNAPSHOT gCube Workspace Explorer gCube Workspace Explorer widget allows to navigate (gCube) Workspace @@ -23,12 +23,12 @@ - 2.6.1 + 2.7.0 distro 1.7 1.8 - -Xdoclint:none + UTF-8 UTF-8 @@ -53,7 +53,11 @@ - + + org.gcube.common + storagehub-client-library + [1.0.0-SNAPSHOT,) + com.google.gwt @@ -87,22 +91,7 @@ provided - - - org.gcube.common - home-library-model - provided - - - org.gcube.common - home-library-jcr - provided - - - org.gcube.common - home-library - provided - + org.gcube.dvos diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/WorkspaceExplorer.gwt.xml b/src/main/java/org/gcube/portlets/widgets/wsexplorer/WorkspaceExplorer.gwt.xml index cddfc3b..27c4fe5 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/WorkspaceExplorer.gwt.xml +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/WorkspaceExplorer.gwt.xml @@ -16,7 +16,7 @@ - + diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java index c053c1d..ff8ccdd 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/Util.java @@ -4,7 +4,7 @@ package org.gcube.portlets.widgets.wsexplorer.client; import org.gcube.portlets.widgets.wsexplorer.client.resources.old.WorkspaceLightTreeResources; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.google.gwt.core.shared.GWT; @@ -67,7 +67,7 @@ public class Util { * @param type the item type. * @return the image. */ - public static ImageResource getImage(Item item) + public static ImageResource getImage(ItemDTO item) { if(item==null) return null; diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java index ad41dee..b1f3cd6 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerController.java @@ -27,7 +27,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.view.CreateFolderForm; import org.gcube.portlets.widgets.wsexplorer.client.view.Navigation; import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; @@ -70,7 +70,7 @@ public class WorkspaceExplorerController implements EventHandler { bindEvents(); //As default all items are showable and selectable wsExplorer = new WorkspaceExplorer(eventBus, ItemType.values(), ItemType.values()); - wsExplorer.initTable(new ListDataProvider()); + wsExplorer.initTable(new ListDataProvider()); initExplorerPanel(heightPanel); } @@ -86,7 +86,7 @@ public class WorkspaceExplorerController implements EventHandler { bindEvents(); //As default all items are showable and selectable wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values(), null, false, null); - wsExplorer.initTable(new ListDataProvider()); + wsExplorer.initTable(new ListDataProvider()); initExplorerPanel(heightPanel); } @@ -105,7 +105,7 @@ public class WorkspaceExplorerController implements EventHandler { bindEvents(); //As default all items are showable and selectable wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values(), showProperties, false, null); - wsExplorer.initTable(new ListDataProvider()); + wsExplorer.initTable(new ListDataProvider()); initExplorerPanel(heightPanel); } @@ -133,8 +133,8 @@ public class WorkspaceExplorerController implements EventHandler { if(loadFolderEvent.getTargetItem()!=null){ - if(loadFolderEvent.getTargetItem() instanceof Item){ - Item item = (Item) loadFolderEvent.getTargetItem(); + if(loadFolderEvent.getTargetItem() instanceof ItemDTO){ + ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem(); if(item.isFolder()){ try { @@ -168,7 +168,7 @@ public class WorkspaceExplorerController implements EventHandler { @Override public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { - eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); + eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); } }); @@ -178,7 +178,7 @@ public class WorkspaceExplorerController implements EventHandler { public void onLoadRoot(LoadRootEvent loadRootEvent) { wsExplorer.loadRoot(); - WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -188,7 +188,7 @@ public class WorkspaceExplorerController implements EventHandler { } @Override - public void onSuccess(Item result) { + public void onSuccess(ItemDTO result) { result.setName(WorkspaceExplorerConstants.HOME_LABEL); //FORCE SET NAME LIKE "HOME_LABEL" breadcrumbs.init(result); navigation.setVisibleNewFolderFacility(true); @@ -212,8 +212,8 @@ public class WorkspaceExplorerController implements EventHandler { public void onClick(final ClickItemEvent clickItemEvent) { if(clickItemEvent.getItem()!=null){ - if (clickItemEvent.getItem() instanceof Item) { - Item item = (Item) clickItemEvent.getItem(); + if (clickItemEvent.getItem() instanceof ItemDTO) { + ItemDTO item = (ItemDTO) clickItemEvent.getItem(); updateMoreInfo(item); } } @@ -226,7 +226,7 @@ public class WorkspaceExplorerController implements EventHandler { public void onLoadMySpecialFolder(LoadMySpecialFolderEvent loadMySpecialFolderEvent) { wsExplorer.loadMySpecialFolder(); - WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -235,7 +235,7 @@ public class WorkspaceExplorerController implements EventHandler { } @Override - public void onSuccess(Item result) { + public void onSuccess(ItemDTO result) { breadcrumbs.init(result); navigation.setVisibleNewFolderFacility(false); clearMoreInfo(); @@ -256,7 +256,7 @@ public class WorkspaceExplorerController implements EventHandler { showMessage(AlertType.INFO, "Creating folder \""+folderName+"\""); - WorkspaceExplorerConstants.workspaceNavigatorService.createFolder(folderName, "", breadcrumbs.getLastParent().getId(), new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.createFolder(folderName, "", breadcrumbs.getLastParent().getId(), new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -267,7 +267,7 @@ public class WorkspaceExplorerController implements EventHandler { } @Override - public void onSuccess(Item result) { + public void onSuccess(ItemDTO result) { hideMessage(); if(result!=null){ wsExplorer.addItemToExplorer(result); @@ -300,7 +300,7 @@ public class WorkspaceExplorerController implements EventHandler { GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]"); - WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifier(itemIdentifier, includeItemAsParent, new AsyncCallback>() { + WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifier(itemIdentifier, includeItemAsParent, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { @@ -309,7 +309,7 @@ public class WorkspaceExplorerController implements EventHandler { } @Override - public void onSuccess(List result) { + public void onSuccess(List result) { if(result!=null){ breadcrumbs.setPath(result); clearMoreInfo(); @@ -330,7 +330,7 @@ public class WorkspaceExplorerController implements EventHandler { * * @param item the item */ - private void updateMoreInfo(Item item){ + private void updateMoreInfo(ItemDTO item){ if(item!=null){ workspaceExplorerPanel.getSouthPanel().clear(); @@ -469,7 +469,7 @@ public class WorkspaceExplorerController implements EventHandler { * @param item the item * @return true, if successful */ - public boolean itemIsSelectable(Item item){ + public boolean itemIsSelectable(ItemDTO item){ GWT.log("Selectable type: "+wsExplorer.getSelectableTypes()); GWT.log("item: "+item); if (item!=null){ diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerEntryPoint.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerEntryPoint.java index 7da01ab..8d22ed9 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerEntryPoint.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/WorkspaceExplorerEntryPoint.java @@ -1,53 +1,53 @@ -//package org.gcube.portlets.widgets.wsexplorer.client; -// -//import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; -//import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectDialog; -//import org.gcube.portlets.widgets.wsexplorer.shared.Item; -// -//import com.google.gwt.core.client.EntryPoint; -//import com.google.gwt.core.shared.GWT; -// -// -///** -// * Entry point classes define onModuleLoad(). -// */ -//public class WorkspaceExplorerEntryPoint implements EntryPoint { -// -// /** -// * This is the entry point method. -// */ -// public void onModuleLoad() { -// -// final WorkspaceExplorerSelectDialog navigator = new WorkspaceExplorerSelectDialog("WorkpspaceExplorer", false); -// -// WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() { -// -// @Override -// public void onSelectedItem(Item item) { -// GWT.log("onSelectedItem: "+item); -// navigator.hide(); -// } -// -// @Override -// public void onFailed(Throwable throwable) { -// GWT.log("onFailed.."); -// -// } -// -// @Override -// public void onAborted() { -// GWT.log("onAborted.."); -// -// } -// -// @Override -// public void onNotValidSelection() { -// GWT.log("onNotValidSelection.."); -// -// } -// }; -// -// navigator.addWorkspaceExplorerSelectNotificationListener(listener); -// navigator.show(); -// } -//} +package org.gcube.portlets.widgets.wsexplorer.client; + +import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; +import org.gcube.portlets.widgets.wsexplorer.client.select.WorkspaceExplorerSelectDialog; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; + +import com.google.gwt.core.client.EntryPoint; +import com.google.gwt.core.shared.GWT; + + +/** + * Entry point classes define onModuleLoad(). + */ +public class WorkspaceExplorerEntryPoint implements EntryPoint { + + /** + * This is the entry point method. + */ + public void onModuleLoad() { + + final WorkspaceExplorerSelectDialog navigator = new WorkspaceExplorerSelectDialog("WorkpspaceExplorer", false); + + WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() { + + @Override + public void onSelectedItem(ItemDTO item) { + GWT.log("onSelectedItem: "+item); + navigator.hide(); + } + + @Override + public void onFailed(Throwable throwable) { + GWT.log("onFailed.."); + + } + + @Override + public void onAborted() { + GWT.log("onAborted.."); + + } + + @Override + public void onNotValidSelection() { + GWT.log("onNotValidSelection.."); + + } + }; + + navigator.addWorkspaceExplorerSelectNotificationListener(listener); + navigator.show(); + } +} diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbClickEvent.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbClickEvent.java index 1b96a59..14dcf70 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbClickEvent.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbClickEvent.java @@ -1,6 +1,6 @@ package org.gcube.portlets.widgets.wsexplorer.client.event; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import com.google.gwt.event.shared.GwtEvent; @@ -13,7 +13,7 @@ import com.google.gwt.event.shared.GwtEvent; */ public class BreadcrumbClickEvent extends GwtEvent { public static Type TYPE = new Type(); - private Item targetItem; + private ItemDTO targetItem; /** @@ -21,7 +21,7 @@ public class BreadcrumbClickEvent extends GwtEvent * * @param target the target */ - public BreadcrumbClickEvent(Item target) { + public BreadcrumbClickEvent(ItemDTO target) { this.targetItem = target; } @@ -46,7 +46,7 @@ public class BreadcrumbClickEvent extends GwtEvent * * @return the targetItem */ - public Item getTargetItem() { + public ItemDTO getTargetItem() { return targetItem; } @@ -55,7 +55,7 @@ public class BreadcrumbClickEvent extends GwtEvent * * @param targetItem the targetItem to set */ - public void setTargetItem(Item targetItem) { + public void setTargetItem(ItemDTO targetItem) { this.targetItem = targetItem; } } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbInitEvent.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbInitEvent.java index f712a7f..7dfef3e 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbInitEvent.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/BreadcrumbInitEvent.java @@ -1,6 +1,6 @@ package org.gcube.portlets.widgets.wsexplorer.client.event; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import com.google.gwt.event.shared.GwtEvent; @@ -13,7 +13,7 @@ import com.google.gwt.event.shared.GwtEvent; */ public class BreadcrumbInitEvent extends GwtEvent { public static Type TYPE = new Type(); - private Item targetItem; + private ItemDTO targetItem; /** @@ -21,7 +21,7 @@ public class BreadcrumbInitEvent extends GwtEvent { * * @param target the target */ - public BreadcrumbInitEvent(Item target) { + public BreadcrumbInitEvent(ItemDTO target) { this.targetItem = target; } @@ -46,7 +46,7 @@ public class BreadcrumbInitEvent extends GwtEvent { * * @return the targetItem */ - public Item getTargetItem() { + public ItemDTO getTargetItem() { return targetItem; } @@ -55,7 +55,7 @@ public class BreadcrumbInitEvent extends GwtEvent { * * @param targetItem the targetItem to set */ - public void setTargetItem(Item targetItem) { + public void setTargetItem(ItemDTO targetItem) { this.targetItem = targetItem; } } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/RootLoadedEvent.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/RootLoadedEvent.java index f644249..4826ddb 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/RootLoadedEvent.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/event/RootLoadedEvent.java @@ -1,6 +1,6 @@ package org.gcube.portlets.widgets.wsexplorer.client.event; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import com.google.gwt.event.shared.GwtEvent; @@ -13,9 +13,9 @@ import com.google.gwt.event.shared.GwtEvent; public class RootLoadedEvent extends GwtEvent { public static Type TYPE = new Type(); - private Item root; + private ItemDTO root; - public RootLoadedEvent(Item root) { + public RootLoadedEvent(ItemDTO root) { this.root = root; } @@ -38,7 +38,7 @@ public class RootLoadedEvent extends GwtEvent { /** * @return the root */ - public Item getRoot() { + public ItemDTO getRoot() { return root; } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesBExplorerPanel.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesBExplorerPanel.java index 13fb30a..85c74e1 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesBExplorerPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesBExplorerPanel.java @@ -20,7 +20,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.view.Breadcrumbs; import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.constants.AlertType; @@ -241,8 +241,8 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo setParameters(folderId, folderName, showProperties, filter); bindEvents(); wsExplorer = new WorkspaceExplorer(eventBus, filter, showableTypes, selectableTypes, showProperties, showGcubeInfo, sortByColumn, new DISPLAY_FIELD[]{DISPLAY_FIELD.ICON, DISPLAY_FIELD.NAME,DISPLAY_FIELD.CREATION_DATE}); - wsExplorer.initTable(new ListDataProvider()); - Item item = new Item(folderId, folderName, true); + wsExplorer.initTable(new ListDataProvider()); + ItemDTO item = new ItemDTO(folderId, folderName, true); wsExplorer.loadFolder(item, true, -1, -1, false); initPanel(""); } @@ -274,7 +274,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo @Override public void onClick(final ClickItemEvent clickItemEvent) { isSelect = false; - Item item = wsExplorer.getItemSelected(); + ItemDTO item = wsExplorer.getItemSelected(); //Return if item is not selectable if(!itemIsSelectable(item)){ @@ -294,8 +294,8 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo if(loadFolderEvent.getTargetItem()!=null){ - if(loadFolderEvent.getTargetItem() instanceof Item){ - Item item = (Item) loadFolderEvent.getTargetItem(); + if(loadFolderEvent.getTargetItem() instanceof ItemDTO){ + ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem(); if(item.isFolder()){ try { wsExplorer.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); @@ -315,7 +315,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo @Override public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { - eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); + eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); } }); } @@ -331,7 +331,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]"); - WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback>() { + WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { @@ -340,7 +340,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo } @Override - public void onSuccess(List result) { + public void onSuccess(List result) { if(result!=null){ notifyOnBreadcrumbChanged(result.get(result.size()-1)); breadcrumbs.setPath(result); @@ -355,8 +355,8 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo * Refresh root folder view. */ public void refreshRootFolderView(){ - Item item = new Item(folderId, folderName, true); - eventBus.fireEvent(new LoadFolderEvent(item)); + ItemDTO item = new ItemDTO(folderId, folderName, true); + eventBus.fireEvent(new LoadFolderEvent(item)); } /** @@ -395,7 +395,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo * * @param selected the selected */ - protected void notifySelectedItem(Item selected){ + protected void notifySelectedItem(ItemDTO selected){ for (WorskpaceExplorerSelectBNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onSelectedItem(selected); @@ -408,7 +408,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo * * @param selected the selected */ - protected void notifyOnBreadcrumbChanged(Item selected){ + protected void notifyOnBreadcrumbChanged(ItemDTO selected){ for (WorskpaceExplorerSelectBNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onBreadcrumbChanged(selected); @@ -495,7 +495,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo * @param item the item * @return true, if successful */ - public boolean itemIsSelectable(Item item){ + public boolean itemIsSelectable(ItemDTO item){ //GWT.log("Selectable type: "+wsExplorer.getSelectableTypes()); //GWT.log("item: "+item); if (item!=null){ diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanel.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanel.java index 87423df..b156e3d 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanel.java @@ -20,7 +20,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.view.Breadcrumbs; import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.constants.AlertType; @@ -212,8 +212,8 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor setParameters(folderId, folderName, showProperties, filter); bindEvents(); wsExplorer = new WorkspaceExplorer(eventBus, filter, showableTypes, selectableTypes, showProperties, showGcubeInfo, sortByColumn, new DISPLAY_FIELD[]{DISPLAY_FIELD.ICON, DISPLAY_FIELD.NAME,DISPLAY_FIELD.CREATION_DATE}); - wsExplorer.initTable(new ListDataProvider()); - Item item = new Item(folderId, folderName, true); + wsExplorer.initTable(new ListDataProvider()); + ItemDTO item = new ItemDTO(folderId, folderName, true); wsExplorer.loadFolder(item, true, -1, -1, false); initPanel(""); } @@ -245,7 +245,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor @Override public void onClick(final ClickItemEvent clickItemEvent) { isSelect = false; - Item item = wsExplorer.getItemSelected(); + ItemDTO item = wsExplorer.getItemSelected(); //Return if item is not selectable if(!itemIsSelectable(item)){ @@ -265,8 +265,8 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor if(loadFolderEvent.getTargetItem()!=null){ - if(loadFolderEvent.getTargetItem() instanceof Item){ - Item item = (Item) loadFolderEvent.getTargetItem(); + if(loadFolderEvent.getTargetItem() instanceof ItemDTO){ + ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem(); if(item.isFolder()){ try { wsExplorer.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); @@ -286,7 +286,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor @Override public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { - eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); + eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); } }); } @@ -302,7 +302,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]"); - WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback>() { + WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback>() { @Override public void onFailure(Throwable caught) { @@ -311,7 +311,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor } @Override - public void onSuccess(List result) { + public void onSuccess(List result) { if(result!=null){ breadcrumbs.setPath(result); clearMoreInfo(); @@ -325,8 +325,8 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor * Refresh root folder view. */ public void refreshRootFolderView(){ - Item item = new Item(folderId, folderName, true); - eventBus.fireEvent(new LoadFolderEvent(item)); + ItemDTO item = new ItemDTO(folderId, folderName, true); + eventBus.fireEvent(new LoadFolderEvent(item)); } /** @@ -365,7 +365,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor * * @param selected the selected */ - protected void notifySelectedItem(Item selected){ + protected void notifySelectedItem(ItemDTO selected){ for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onSelectedItem(selected); @@ -451,7 +451,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor * @param item the item * @return true, if successful */ - public boolean itemIsSelectable(Item item){ + public boolean itemIsSelectable(ItemDTO item){ //GWT.log("Selectable type: "+wsExplorer.getSelectableTypes()); //GWT.log("item: "+item); if (item!=null){ diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanelPaginated.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanelPaginated.java index ab86887..46a5180 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanelPaginated.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/explore/WorkspaceResourcesExplorerPanelPaginated.java @@ -15,7 +15,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEventHandler import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorerPaginated; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.google.gwt.core.shared.GWT; @@ -125,7 +125,7 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources wsExplorerPaginated = new WorkspaceExplorerPaginated(eventBus, filter, showableTypes, selectableTypes, showProperties, showGcubeInfo, sortByColumn, new DISPLAY_FIELD[]{DISPLAY_FIELD.ICON, DISPLAY_FIELD.NAME, DISPLAY_FIELD.CREATION_DATE}); wsExplorerPaginated.initPagination(ITEMS_PER_PAGE); //wsExplorer.initTable(dataProvider); - Item item = new Item(folderId, folderName, true); + ItemDTO item = new ItemDTO(folderId, folderName, true); wsExplorerPaginated.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); initPanel(""); super.wsExplorer = wsExplorerPaginated; @@ -159,7 +159,7 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources @Override public void onClick(final ClickItemEvent clickItemEvent) { isSelect = false; - Item item = wsExplorerPaginated.getItemSelected(); + ItemDTO item = wsExplorerPaginated.getItemSelected(); //Return if item is not selectable if(!itemIsSelectable(item)){ notifyNotValidSelection(); @@ -178,8 +178,8 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources if(loadFolderEvent.getTargetItem()!=null){ - if(loadFolderEvent.getTargetItem() instanceof Item){ - Item item = (Item) loadFolderEvent.getTargetItem(); + if(loadFolderEvent.getTargetItem() instanceof ItemDTO){ + ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem(); if(item.isFolder()){ try { wsExplorerPaginated.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); @@ -199,7 +199,7 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources @Override public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { - eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); + eventBus.fireEvent(new LoadFolderEvent(breadcrumbClickEvent.getTargetItem())); } }); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSaveNotification.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSaveNotification.java index 064fa25..77cc609 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSaveNotification.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSaveNotification.java @@ -3,7 +3,7 @@ */ package org.gcube.portlets.widgets.wsexplorer.client.notification; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; /** @@ -33,7 +33,7 @@ public class WorkspaceExplorerSaveNotification { * @param parent the parent * @param fileName the file name */ - void onSaving(Item parent,String fileName); + void onSaving(ItemDTO parent,String fileName); /** * On aborted. diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectBNotification.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectBNotification.java index c3b58d4..b487079 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectBNotification.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectBNotification.java @@ -3,7 +3,7 @@ */ package org.gcube.portlets.widgets.wsexplorer.client.notification; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; /** @@ -34,7 +34,7 @@ public class WorkspaceExplorerSelectBNotification { * * @param item the item */ - void onSelectedItem(Item item); + void onSelectedItem(ItemDTO item); /** @@ -62,7 +62,7 @@ public class WorkspaceExplorerSelectBNotification { * * @param item the item */ - void onBreadcrumbChanged(Item item); + void onBreadcrumbChanged(ItemDTO item); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectNotification.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectNotification.java index e1a165a..dc737df 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectNotification.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/notification/WorkspaceExplorerSelectNotification.java @@ -3,7 +3,7 @@ */ package org.gcube.portlets.widgets.wsexplorer.client.notification; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; /** @@ -34,7 +34,7 @@ public class WorkspaceExplorerSelectNotification { * * @param item the item */ - void onSelectedItem(Item item); + void onSelectedItem(ItemDTO item); /** diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerService.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerService.java index 3f66d6d..a1078de 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerService.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerService.java @@ -5,7 +5,7 @@ import java.util.List; import java.util.Map; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory; import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; @@ -34,7 +34,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @throws Exception * the exception */ - List getBreadcrumbsByItemIdentifier( + List getBreadcrumbsByItemIdentifier( String itemIdentifier, boolean includeItemAsParent) throws Exception; @@ -61,7 +61,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @return the folder * @throws WorkspaceNavigatorServiceException the workspace navigator service exception */ - Item getFolder( + ItemDTO getFolder( ItemInterface item, List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties) @@ -80,7 +80,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @throws WorkspaceNavigatorServiceException * the workspace navigator service exception */ - Item getRoot( + ItemDTO getRoot( List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException; @@ -98,7 +98,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @throws WorkspaceNavigatorServiceException * the workspace navigator service exception */ - Item getMySpecialFolder( + ItemDTO getMySpecialFolder( List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException; @@ -112,7 +112,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @throws WorkspaceNavigatorServiceException * the workspace navigator service exception */ - Item getItemByCategory(ItemCategory category) + ItemDTO getItemByCategory(ItemCategory category) throws WorkspaceNavigatorServiceException; /** @@ -172,7 +172,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @return the breadcrumbs by item identifier to parent limit * @throws Exception the exception */ - List getBreadcrumbsByItemIdentifierToParentLimit( + List getBreadcrumbsByItemIdentifierToParentLimit( String itemIdentifier, String parentLimit, boolean includeItemAsParent) throws Exception; @@ -185,7 +185,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @return the item * @throws Exception the exception */ - Item createFolder(String nameFolder, String description, String parentId) + ItemDTO createFolder(String nameFolder, String description, String parentId) throws Exception; @@ -215,7 +215,7 @@ public interface WorkspaceExplorerService extends RemoteService { * @throws WorkspaceNavigatorServiceException the workspace navigator service exception */ SearchedFolder getFolder( - Item item, List showableTypesParam, boolean purgeEmpyFolders, + ItemDTO item, List showableTypesParam, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties, int startIndex, int limit, int serverStartIndex) throws WorkspaceNavigatorServiceException; @@ -226,6 +226,6 @@ public interface WorkspaceExplorerService extends RemoteService { * @return the folder children count * @throws WorkspaceNavigatorServiceException the workspace navigator service exception */ - int getFolderChildrenCount(Item item) throws WorkspaceNavigatorServiceException; + int getFolderChildrenCount(ItemDTO item) throws WorkspaceNavigatorServiceException; } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerServiceAsync.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerServiceAsync.java index ae3b83a..24f0ac7 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerServiceAsync.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/rpc/WorkspaceExplorerServiceAsync.java @@ -8,7 +8,7 @@ import java.util.List; import java.util.Map; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory; import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; @@ -38,7 +38,7 @@ public interface WorkspaceExplorerServiceAsync { */ public void getRoot( List showableTypes, boolean purgeEmpyFolders, - FilterCriteria filterCriteria, AsyncCallback callback); + FilterCriteria filterCriteria, AsyncCallback callback); /** * Check name. @@ -64,7 +64,7 @@ public interface WorkspaceExplorerServiceAsync { void getFolder( ItemInterface item, List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, - boolean loadGcubeProperties, AsyncCallback callback); + boolean loadGcubeProperties, AsyncCallback callback); /** * Gets the breadcrumbs by item identifier. @@ -79,7 +79,7 @@ public interface WorkspaceExplorerServiceAsync { */ public void getBreadcrumbsByItemIdentifier( String itemIdentifier, boolean includeItemAsParent, - AsyncCallback> asyncCallback); + AsyncCallback> asyncCallback); /** * Gets the my special folder. @@ -96,7 +96,7 @@ public interface WorkspaceExplorerServiceAsync { */ public void getMySpecialFolder( List showableTypes, boolean purgeEmpyFolders, - FilterCriteria filterCriteria, AsyncCallback asyncCallback); + FilterCriteria filterCriteria, AsyncCallback asyncCallback); /** * Gets the item by category. @@ -108,7 +108,7 @@ public interface WorkspaceExplorerServiceAsync { * @return the item by category */ public void getItemByCategory( - ItemCategory category, AsyncCallback asyncCallback); + ItemCategory category, AsyncCallback asyncCallback); /** * Gets the size by item id. @@ -171,7 +171,7 @@ public interface WorkspaceExplorerServiceAsync { */ void getBreadcrumbsByItemIdentifierToParentLimit( String itemIdentifier, String parentLimit, boolean includeItemAsParent, - AsyncCallback> callback); + AsyncCallback> callback); /** * Creates the folder. @@ -187,7 +187,7 @@ public interface WorkspaceExplorerServiceAsync { */ void createFolder( String nameFolder, String description, String parentId, - AsyncCallback callback); + AsyncCallback callback); /** @@ -216,7 +216,7 @@ public interface WorkspaceExplorerServiceAsync { * @return the folder */ void getFolder( - Item item, List showableTypesParam, boolean purgeEmpyFolders, + ItemDTO item, List showableTypesParam, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties, int startIndex, int limit, int serverStartIndex, AsyncCallback asyncCallback); @@ -227,6 +227,6 @@ public interface WorkspaceExplorerServiceAsync { * @param asyncCallback the async callback * @return the folder children count */ - public void getFolderChildrenCount(Item item, AsyncCallback asyncCallback); + public void getFolderChildrenCount(ItemDTO item, AsyncCallback asyncCallback); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSaveDialog.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSaveDialog.java index fc17df3..1213d8f 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSaveDialog.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSaveDialog.java @@ -11,7 +11,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.HasWorskpaceExplorerSaveNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.WorskpaceExplorerSaveNotificationListener; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.Button; @@ -195,7 +195,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx public void onClick(ClickEvent event) { isSave = false; - Item item = controller.getWsExplorer().getItemSelected(); + ItemDTO item = controller.getWsExplorer().getItemSelected(); //A FOLDER IS SELECTED if (item != null && item.isFolder()) { @@ -222,7 +222,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx return; } - Item itemB = controller.getBreadcrumbs().getLastParent(); + ItemDTO itemB = controller.getBreadcrumbs().getLastParent(); GWT.log("last parent: "+itemB); if (itemB != null) { if(itemB.isSpecialFolder()){ @@ -262,8 +262,8 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx public void onClick(final ClickItemEvent clickItemEvent) { if(clickItemEvent.getItem()!=null){ - if (clickItemEvent.getItem() instanceof Item) { - Item item = (Item) clickItemEvent.getItem(); + if (clickItemEvent.getItem() instanceof ItemDTO) { + ItemDTO item = (ItemDTO) clickItemEvent.getItem(); if(item!=null && !item.isFolder()) setFileName("New_"+item.getName()); } @@ -318,7 +318,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx * @param parent the parent * @param fileName the file name */ - private void notifySaving(Item parent, String fileName) { + private void notifySaving(ItemDTO parent, String fileName) { for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onSaving(parent, fileName); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSavePanel.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSavePanel.java index c46cb31..2c6618d 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSavePanel.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/save/WorkspaceExplorerSavePanel.java @@ -15,7 +15,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.HasWorskpaceExplorerSaveNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.WorskpaceExplorerSaveNotificationListener; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.Button; @@ -161,7 +161,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp public void onClick(ClickEvent event) { isSave = false; - Item item = controller.getWsExplorer().getItemSelected(); + ItemDTO item = controller.getWsExplorer().getItemSelected(); if (item != null && item.isFolder()) { @@ -186,7 +186,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp return; } - Item itemB = controller.getBreadcrumbs().getLastParent(); + ItemDTO itemB = controller.getBreadcrumbs().getLastParent(); GWT.log("last parent: "+itemB); if (itemB != null) { if(itemB.isSpecialFolder()){ @@ -231,8 +231,8 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp public void onClick(final ClickItemEvent clickItemEvent) { if(clickItemEvent.getItem()!=null){ - if (clickItemEvent.getItem() instanceof Item) { - Item item = (Item) clickItemEvent.getItem(); + if (clickItemEvent.getItem() instanceof ItemDTO) { + ItemDTO item = (ItemDTO) clickItemEvent.getItem(); if(item!=null && !item.isFolder()) setFileName("New_"+item.getName()); } @@ -276,7 +276,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp * @param parent the parent * @param fileName the file name */ - private void notifySaving(Item parent, String fileName) { + private void notifySaving(ItemDTO parent, String fileName) { for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onSaving(parent, fileName); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectDialog.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectDialog.java index 99586d1..ed58f4c 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectDialog.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/select/WorkspaceExplorerSelectDialog.java @@ -13,7 +13,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.HasWorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.Alert; @@ -180,8 +180,8 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace if(folderId==null || folderId.isEmpty()) controller.getEventBus().fireEvent(new LoadRootEvent()); else{ - Item item = new Item(folderId, "", true); - controller.getEventBus().fireEvent(new LoadFolderEvent(item)); + ItemDTO item = new ItemDTO(folderId, "", true); + controller.getEventBus().fireEvent(new LoadFolderEvent(item)); } initDialog(captionTxt); } @@ -217,7 +217,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace @Override public void onClick(ClickEvent event) { isSelect = false; - Item item = controller.getWsExplorer().getItemSelected(); + ItemDTO item = controller.getWsExplorer().getItemSelected(); boolean isSelectable = controller.itemIsSelectable(item); GWT.log("Item is selectable? "+isSelectable); if(item!=null && isSelectable){ @@ -225,7 +225,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace INSTANCE.hide(); notifySelectedItem(item); }else if(item==null){ //IGNORING ITEM SELECT, CAN USE BREADCRUMBS? - Item itemB = controller.getBreadcrumbs().getLastParent(); + ItemDTO itemB = controller.getBreadcrumbs().getLastParent(); if(itemB!=null){ isSelectable = controller.itemIsSelectable(itemB); //BREADCRUMB IS SELECTABLE? if(isSelectable) @@ -247,7 +247,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace * @param show the show * @param item the item */ - private void setAlertConfirm(String html, boolean show, final Item item){ + private void setAlertConfirm(String html, boolean show, final ItemDTO item){ try{ footer.remove(alertConfirm); }catch(Exception e){ @@ -292,7 +292,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace * * @param selected the selected */ - private void notifySelectedItem(Item selected){ + private void notifySelectedItem(ItemDTO selected){ for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onSelectedItem(selected); 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..ebe9341 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 @@ -22,7 +22,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.event.RootLoadedEventHandler import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.HasWorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.Alert; @@ -172,7 +172,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors @Override public void onClick(final ClickItemEvent clickItemEvent) { isSelect = false; - Item item = controller.getWsExplorer().getItemSelected(); + ItemDTO item = controller.getWsExplorer().getItemSelected(); //Return if item is not selectable if(!controller.itemIsSelectable(item)){ @@ -190,7 +190,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors @Override public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { isSelect = false; - Item item = breadcrumbClickEvent.getTargetItem(); + ItemDTO item = breadcrumbClickEvent.getTargetItem(); GWT.log("BreadcrumbClickEvent: "+item); //Return if item is not selectable @@ -278,8 +278,8 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors if(folderId==null || folderId.isEmpty()) controller.getEventBus().fireEvent(new LoadRootEvent()); else{ - Item item = new Item(folderId, "", true); - controller.getEventBus().fireEvent(new LoadFolderEvent(item)); + ItemDTO item = new ItemDTO(folderId, "", true); + controller.getEventBus().fireEvent(new LoadFolderEvent(item)); } bindEvents(); initPanel(captionTxt); @@ -312,7 +312,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors * @param show the show * @param item the item */ - private void setAlertConfirm(String html, boolean show, final Item item){ + private void setAlertConfirm(String html, boolean show, final ItemDTO item){ try{ footerHP.remove(alertConfirm); }catch(Exception e){ @@ -356,7 +356,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors * * @param selected the selected */ - private void notifySelectedItem(Item selected){ + private void notifySelectedItem(ItemDTO selected){ for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) { worskpaceExplorerNotificationListener.onSelectedItem(selected); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java index fc90306..e7b35da 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Breadcrumbs.java @@ -8,7 +8,7 @@ import java.util.List; import org.gcube.portlets.widgets.wsexplorer.client.event.BreadcrumbClickEvent; import org.gcube.portlets.widgets.wsexplorer.client.event.BreadcrumbInitEvent; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import com.github.gwtbootstrap.client.ui.NavLink; import com.google.gwt.core.client.GWT; @@ -28,8 +28,8 @@ import com.google.gwt.user.client.ui.Widget; public class Breadcrumbs extends Composite { public static final String DIVIDER = "/"; - private LinkedHashMap hashListItems = new LinkedHashMap();// Ordered-HashMap - private Item lastParent; + private LinkedHashMap hashListItems = new LinkedHashMap();// Ordered-HashMap + private ItemDTO lastParent; private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class); @UiField @@ -82,10 +82,10 @@ public class Breadcrumbs extends Composite { * @param parents * the new path */ - public void setPath(List parents) { + public void setPath(List parents) { resetBreadcrumbs(); if (parents != null && parents.size() > 0) { - for (Item parent : parents) { + for (ItemDTO parent : parents) { GWT.log("parent is: "+parent); if(parent!=null){ addNavigationLink(parent); @@ -102,7 +102,7 @@ public class Breadcrumbs extends Composite { * @param item the item * @return true, if is root or special folder */ - private boolean isRootOrSpecialFolder(Item item){ + private boolean isRootOrSpecialFolder(ItemDTO item){ GWT.log(item.getName() +" is root "+(item.getParent()==null)); GWT.log(item.getName() +" is special folder "+item.isSpecialFolder()); return item.getParent()==null || item.isSpecialFolder(); @@ -123,7 +123,7 @@ public class Breadcrumbs extends Composite { * * @param parent the parent */ - private void addNavigationLink(Item parent) { + private void addNavigationLink(ItemDTO parent) { if(parent==null) return; @@ -135,7 +135,7 @@ public class Breadcrumbs extends Composite { @Override public void onClick(ClickEvent event) { - Item target = hashListItems.get(navLink.getName()); + ItemDTO target = hashListItems.get(navLink.getName()); // WorkspaceExplorerController.eventBus.fireEvent(new LoadFolderEvent(target)); eventBus.fireEvent(new BreadcrumbClickEvent(target)); } @@ -160,7 +160,7 @@ public class Breadcrumbs extends Composite { * * @return the last parent */ - public Item getLastParent() { + public ItemDTO getLastParent() { return lastParent; } @@ -170,7 +170,7 @@ public class Breadcrumbs extends Composite { * * @param item the item */ - public void init(Item item) { + public void init(ItemDTO item) { resetBreadcrumbs(); addNavigationLink(item); hashListItems.put(item.getId(), item); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/FolderLoader.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/FolderLoader.java index e4fde2a..a283f2b 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/FolderLoader.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/FolderLoader.java @@ -3,7 +3,7 @@ */ package org.gcube.portlets.widgets.wsexplorer.client.view; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; /** @@ -24,5 +24,5 @@ public interface FolderLoader { * @param resetStore the reset store. Used for pagination * @throws Exception the exception */ - public void loadFolder(final Item item, boolean loadGcubeProperties, int startIdx, int limit, boolean resetStore) throws Exception; + public void loadFolder(final ItemDTO item, boolean loadGcubeProperties, int startIdx, int limit, boolean resetStore) throws Exception; } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java index f2cb622..63e8d58 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/Navigation.java @@ -8,7 +8,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.event.CreateFolderClickEvent import org.gcube.portlets.widgets.wsexplorer.client.event.LoadMySpecialFolderEvent; import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent; import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory; import com.github.gwtbootstrap.client.ui.NavWidget; @@ -65,10 +65,10 @@ public class Navigation extends Composite{ // getElement().getStyle().setMarginLeft(5.0, Unit.PX); home.setActive(true); - WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback() { @Override - public void onSuccess(Item result) { + public void onSuccess(ItemDTO result) { home.setText(result.getName()); } @@ -93,10 +93,10 @@ public class Navigation extends Composite{ vre_folder.setActive(true); vre_folder.setBaseIcon(WorkspaceExplorerResources.CustomIconType.vre_folder); - WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback() { @Override - public void onSuccess(Item result) { + public void onSuccess(ItemDTO result) { vre_folder.setText(result.getName()); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorer.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorer.java index 1c6186e..2cb8bad 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorer.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorer.java @@ -11,7 +11,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerR import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import com.github.gwtbootstrap.client.ui.Alert; @@ -55,16 +55,16 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder protected FilterCriteria filterCriteria = null; protected boolean showEmptyFolders = true; protected ScrollPanel explorerPanel; - private ItemsTable itTables; + private ItemsTable itTables; private DISPLAY_FIELD[] displayFields; private DISPLAY_FIELD sortByColumn; private HandlerManager eventBus; - private Item displayingFolderItem; + private ItemDTO displayingFolderItem; private boolean showGcubeItemsInfo; private List displayProperties; - private AbstractDataProvider dataProvider; + private AbstractDataProvider dataProvider; /** * Instantiates a new workspace explorer - This is the base constructor. @@ -94,9 +94,9 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @param dataProvider the new data provider table */ - public void initTable(AbstractDataProvider dataProvider){ + public void initTable(AbstractDataProvider dataProvider){ this.dataProvider = dataProvider; - this.itTables = new ItemsTable(eventBus, true, displayFields, displayProperties, showGcubeItemsInfo, sortByColumn); + this.itTables = new ItemsTable(eventBus, true, displayFields, displayProperties, showGcubeItemsInfo, sortByColumn); this.itTables.initTable(null, null, dataProvider); } @@ -189,7 +189,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder GWT.log("loading workspace tree from server"); - WorkspaceExplorerConstants.workspaceNavigatorService.getRoot(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getRoot(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback() { public void onFailure(Throwable caught) { Window.alert(caught.getMessage()); @@ -197,7 +197,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder GWT.log("Error loading workspace tree from server",caught); } - public void onSuccess(Item item) { + public void onSuccess(ItemDTO item) { eventBus.fireEvent(new RootLoadedEvent(item)); updateExplorer(item.getChildren()); @@ -212,7 +212,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @param item the new displaying folder item */ - protected void setDisplayingFolderItem(Item item) { + protected void setDisplayingFolderItem(ItemDTO item) { this.displayingFolderItem = item; } @@ -237,7 +237,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder // FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,requiredProperties, allowedFileExtensions); GWT.log("loading workspace tree from server"); - WorkspaceExplorerConstants.workspaceNavigatorService.getMySpecialFolder(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getMySpecialFolder(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -247,7 +247,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder } @Override - public void onSuccess(Item item) { + public void onSuccess(ItemDTO item) { updateExplorer(item.getChildren()); setDisplayingFolderItem(item); @@ -261,7 +261,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @param items the items */ - protected void updateExplorer(ArrayList items){ + protected void updateExplorer(ArrayList items){ GWT.log("workspace explorer updating.."); explorerPanel.clear(); // itTables = new ItemsTable(true, displayFields); @@ -276,7 +276,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @param item the item */ - public void addItemToExplorer(Item item){ + public void addItemToExplorer(ItemDTO item){ GWT.log("workspace explorer add item.."+item); // itTables = new ItemsTable(true, displayFields); // explorerPanel.clear(); @@ -321,7 +321,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @return the itTables */ - public ItemsTable getItTables() { + public ItemsTable getItTables() { return itTables; } @@ -331,7 +331,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @return the item selected */ - public Item getItemSelected(){ + public ItemDTO getItemSelected(){ return itTables.getSelectedItem(); } @@ -392,7 +392,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @return the displayingFolderItem */ - public Item getDisplayingFolderItem() { + public ItemDTO getDisplayingFolderItem() { return displayingFolderItem; } @@ -403,7 +403,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder * * @return the dataProvider */ - public AbstractDataProvider getDataProvider() { + public AbstractDataProvider getDataProvider() { return dataProvider; } @@ -426,7 +426,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder */ @Override public void loadFolder( - final Item item, boolean loadGcubeProperties, int startIdx, int limit, + final ItemDTO item, boolean loadGcubeProperties, int startIdx, int limit, boolean resetStore) throws Exception { @@ -452,7 +452,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder // FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,requiredProperties, allowedFileExtensions); GWT.log("loading workspace folder by item id from server: "+item.getId()); - WorkspaceExplorerConstants.workspaceNavigatorService.getFolder(item, showableTypesParam, purgeEmpyFolders, filterCriteria, loadGcubeProperties, new AsyncCallback() { + WorkspaceExplorerConstants.workspaceNavigatorService.getFolder(item, showableTypesParam, purgeEmpyFolders, filterCriteria, loadGcubeProperties, new AsyncCallback() { @Override public void onFailure(Throwable caught) { @@ -462,7 +462,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder } @Override - public void onSuccess(Item result) { + public void onSuccess(ItemDTO result) { if(item.getName()==null || item.getName().isEmpty()) item.setName(result.getName()); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorerPaginated.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorerPaginated.java index e133603..66629d5 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorerPaginated.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/WorkspaceExplorerPaginated.java @@ -12,7 +12,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.SortedCellTable; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.gcube.portlets.widgets.wsexplorer.shared.SearchedFolder; @@ -48,7 +48,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ private Boolean newLoading = false; - private MyCustomDataProvider dataProvider = new MyCustomDataProvider(); + private MyCustomDataProvider dataProvider = new MyCustomDataProvider(); protected boolean loadGcubeProperties = false; @@ -87,8 +87,8 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ * * @return the asycn data provider */ - public AsyncDataProvider getAsycnDataProvider(){ - return (AsyncDataProvider) getCellTable().getDataProvider(); + public AsyncDataProvider getAsycnDataProvider(){ + return (AsyncDataProvider) getCellTable().getDataProvider(); } /** @@ -96,7 +96,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ * * @return the cell tale */ - public SortedCellTable getCellTable(){ + public SortedCellTable getCellTable(){ return getItTables().getCellTable(); } @@ -104,7 +104,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ /* (non-Javadoc) * @see org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer#loadFolder(org.gcube.portlets.widgets.wsexplorer.shared.Item, boolean, int, int, boolean) */ - public void loadFolder(final Item item, final boolean loadGcubeProperties, final int startIdx, final int limit, final boolean resetStore) throws Exception { + public void loadFolder(final ItemDTO item, final boolean loadGcubeProperties, final int startIdx, final int limit, final boolean resetStore) throws Exception { newLoading = resetStore; GWT.log("loading folder data for Item: "+item.getId()+" [startIdx: "+startIdx +", limit: "+limit+", resetStore:"+resetStore+"]"); //super.loadFolder(item, loadGcubeProperties); @@ -182,7 +182,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ * @param purgeEmpyFolders the purge empy folders * @param showableTypesParam the showable types param */ - private void perfomGetFolderChildren(final Item item, boolean loadGcubeProperties, final int startIdx, final int limit, final int serSI, boolean purgeEmpyFolders, List showableTypesParam){ + private void perfomGetFolderChildren(final ItemDTO item, boolean loadGcubeProperties, final int startIdx, final int limit, final int serSI, boolean purgeEmpyFolders, List showableTypesParam){ GWT.log("loading workspace folder by item id from server: "+item.getId()); SearchedFolder page = getCachePage(item, startIdx, limit); @@ -228,10 +228,10 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ getCellTable().setVisibleRangeAndClearData(new Range(result.getClientStartIndex(), WorkspaceExplorerConstants.ITEMS_PER_PAGE), false); } - SelectionModel sm = getCellTable().getSelectionModel(); + SelectionModel sm = getCellTable().getSelectionModel(); if(sm instanceof SingleSelectionModel){ - SingleSelectionModel ssm = (SingleSelectionModel) sm; + SingleSelectionModel ssm = (SingleSelectionModel) sm; ssm.clear(); } @@ -268,7 +268,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ * @param item the item * @param result the result */ - private void setCachePage(Item item, SearchedFolder result){ + private void setCachePage(ItemDTO item, SearchedFolder result){ String key = getCacheKey(item, result.getClientStartIndex(), result.getLimit()); @@ -287,7 +287,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ * @param limit the limit * @return the cache page */ - private SearchedFolder getCachePage(Item item, int startIdx, int limit){ + private SearchedFolder getCachePage(ItemDTO item, int startIdx, int limit){ String key = getCacheKey(item, startIdx, limit); @@ -303,7 +303,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{ * @param limit the limit * @return the cache key */ - private String getCacheKey(Item item, int startIdx, int limit){ + private String getCacheKey(ItemDTO item, int startIdx, int limit){ if(item==null || startIdx<0 || limit< 0) return null; diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/gcubeitem/DialogShowGcubeItem.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/gcubeitem/DialogShowGcubeItem.java index a8a3c2b..adedf23 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/gcubeitem/DialogShowGcubeItem.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/gcubeitem/DialogShowGcubeItem.java @@ -8,7 +8,7 @@ import java.util.Map; import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import com.google.gwt.core.shared.GWT; import com.google.gwt.dom.client.Style.Unit; @@ -54,7 +54,7 @@ public class DialogShowGcubeItem extends DialogBox implements ClickHandler { * @param item the worksapce item id * @param autoHide the auto hide */ - public DialogShowGcubeItem(String caption, String text, Item item, boolean autoHide) { + public DialogShowGcubeItem(String caption, String text, ItemDTO item, boolean autoHide) { getElement().setClassName("gwt-DialogBoxNew"); dock.setSpacing(4); dock.setWidth("100%"); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/grid/ItemsTable.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/grid/ItemsTable.java index 25f3416..d4e8355 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/grid/ItemsTable.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/client/view/grid/ItemsTable.java @@ -15,7 +15,7 @@ import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources; import org.gcube.portlets.widgets.wsexplorer.client.view.SelectionItem; import org.gcube.portlets.widgets.wsexplorer.client.view.gcubeitem.DialogShowGcubeItem; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import com.github.gwtbootstrap.client.ui.Pagination; import com.google.gwt.cell.client.ButtonCell; @@ -49,7 +49,7 @@ import com.google.gwt.view.client.ListDataProvider; * Feb 19, 2015 * @param the generic type */ -public class ItemsTable extends AbstractItemsCellTable implements SelectionItem{ +public class ItemsTable extends AbstractItemsCellTable implements SelectionItem{ private Column icon; private TextColumn name; @@ -173,7 +173,7 @@ public class ItemsTable extends AbstractItemsCellTable implem public String getValue(T object) { if(object==null) return ""; - return ((Item) object).getName(); + return ((ItemDTO) object).getName(); } //ADDING TOOLTIP @@ -181,7 +181,7 @@ public class ItemsTable extends AbstractItemsCellTable implem public void render(com.google.gwt.cell.client.Cell.Context context, T object, SafeHtmlBuilder sb) { if(object == null) return; - sb.appendHtmlConstant("
"); + sb.appendHtmlConstant("
"); super.render(context, object, sb); sb.appendHtmlConstant("
"); }; @@ -193,7 +193,7 @@ public class ItemsTable extends AbstractItemsCellTable implem Comparator c = new Comparator() { @Override public int compare(T o1, T o2) { - return ((Item) o1).getName().compareTo(((Item) o2).getName()); + return ((ItemDTO) o1).getName().compareTo(((ItemDTO) o2).getName()); } }; @@ -209,7 +209,7 @@ public class ItemsTable extends AbstractItemsCellTable implem public String getValue(T object) { if(object==null) return ""; - return ((Item) object).getOwner() != null ? ((Item) object).getOwner() : ""; + return ((ItemDTO) object).getOwner() != null ? ((ItemDTO) object).getOwner() : ""; } }; @@ -219,7 +219,7 @@ public class ItemsTable extends AbstractItemsCellTable implem Comparator c = new Comparator() { @Override public int compare(T o1, T o2) { - return ((Item) o1).getOwner().compareTo(((Item) o2).getOwner()); + return ((ItemDTO) o1).getOwner().compareTo(((ItemDTO) o2).getOwner()); } }; sortedCellTable.setComparator(owner, c); @@ -236,7 +236,7 @@ public class ItemsTable extends AbstractItemsCellTable implem public Date getValue(T object) { if(object==null) return null; - return ((Item) object).getCreationDate(); + return ((ItemDTO) object).getCreationDate(); } }; sortedCellTable.addColumn(dateColumn, "Created", true); @@ -251,8 +251,8 @@ public class ItemsTable extends AbstractItemsCellTable implem if(o2 == null || o2.getCreationDate()==null) return 1; - Date d1 = ((Item) o1).getCreationDate(); - Date d2 = ((Item) o2).getCreationDate(); + Date d1 = ((ItemDTO) o1).getCreationDate(); + Date d2 = ((ItemDTO) o2).getCreationDate(); // GWT.log(d1.toString() + "is after "+d2.toString() +" ? "+d2.after(d1)); @@ -276,9 +276,9 @@ public class ItemsTable extends AbstractItemsCellTable implem TextColumn textColumn = new TextColumn() { @Override public String getValue(T object) { - Item extensionItem; + ItemDTO extensionItem; String value = null; - if(object instanceof Item){ + if(object instanceof ItemDTO){ extensionItem = object; value = extensionItem.getGcubeProperties().get(column); } @@ -292,14 +292,14 @@ public class ItemsTable extends AbstractItemsCellTable implem @Override public int compare(T o1, T o2) { - if(!(o1 instanceof Item)) + if(!(o1 instanceof ItemDTO)) return -1; - if(!(o2 instanceof Item)) + if(!(o2 instanceof ItemDTO)) return 1; - Item e1 = o1; - Item e2 = o2; + ItemDTO e1 = o1; + ItemDTO e2 = o2; String v1 = e1.getGcubeProperties().get(column); String v2 = e2.getGcubeProperties().get(column); @@ -348,7 +348,7 @@ public class ItemsTable extends AbstractItemsCellTable implem Context context, Element elem, T object, NativeEvent event) { super.onBrowserEvent(context, elem, object, event); if ("click".equals(event.getType())) { - Item item = object; + ItemDTO item = object; DialogShowGcubeItem dg = new DialogShowGcubeItem("Gcube Properties for: "+item.getName(), null, item, true); // dg.setPopupPosition(event.getClientX()-Integer.parseInt(dg.getElement().getStyle().getWidth()), event.getClientY()); dg.center(); diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java index 8d2dde9..84c3097 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemBuilder.java @@ -10,17 +10,18 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import org.gcube.common.homelibary.model.items.type.WorkspaceItemType; -import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; -import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; -import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder; -import org.gcube.common.homelibrary.home.workspace.folder.FolderItem; -import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile; +import org.gcube.common.storagehub.client.plugins.AbstractPlugin; +import org.gcube.common.storagehub.client.proxies.ItemManagerClient; +import org.gcube.common.storagehub.model.items.AbstractFileItem; +import org.gcube.common.storagehub.model.items.FolderItem; +import org.gcube.common.storagehub.model.items.Item; +import org.gcube.common.storagehub.model.items.SharedFolder; +import org.gcube.common.storagehub.model.items.VreFolder; import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; +import org.gcube.portlets.widgets.wsexplorer.server.stohub.Whorespace; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,18 +41,18 @@ public class ItemBuilder { * @param item the item * @return the item */ - public static Item purgeEmptyFolders(Item item) + public static ItemDTO purgeEmptyFolders(ItemDTO item) { //for (Item child:item.getChildren()) purgeEmptyFolders(child); ONLY FIRST LEVEL - List toRemoveList = new LinkedList(); - for (Item child:item.getChildren()) { + List toRemoveList = new LinkedList(); + for (ItemDTO child:item.getChildren()) { boolean toRemove = isAnEmptyFolder(child); if (toRemove) { toRemoveList.add(child); } } - for (Item child:toRemoveList) { + for (ItemDTO child:toRemoveList) { item.removeChild(child); } @@ -65,7 +66,7 @@ public class ItemBuilder { * @param item the item * @return true, if is an empty folder */ - protected static boolean isAnEmptyFolder(Item item) + protected static boolean isAnEmptyFolder(ItemDTO item) { return Util.isFolder(item.getType()) && item.getChildren().size() == 0; } @@ -84,8 +85,9 @@ public class ItemBuilder { * @return the item * @throws InternalErrorException the internal error exception */ - public static Item getItem(Item parent, WorkspaceItem workspaceItem, String workspaceItemPath, List showableTypes, FilterCriteria filterCriteria, boolean loadChildren, boolean loadGcubeProperties) throws InternalErrorException - { + public static ItemDTO getItem(ItemDTO parent, Item workspaceItem, String workspaceItemPath, + List showableTypes, FilterCriteria filterCriteria, + boolean loadChildren, boolean loadGcubeProperties) { ItemType type = getItemType(workspaceItem); @@ -96,30 +98,25 @@ public class ItemBuilder { return null; } -// //TODO ADD CONTROL ON THE PATH WHEN WILL BE MORE FAST -// if (itemName.equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL)) -// itemName = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL; + // //TODO ADD CONTROL ON THE PATH WHEN WILL BE MORE FAST + // if (itemName.equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL)) + // itemName = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL; - boolean isFolder = type.equals(ItemType.FOLDER)?true:false; - boolean isSharedFolder = workspaceItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)?true:false; + boolean isFolder = type.equals(ItemType.PRIVATE_FOLDER)?true:false; + boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false; String itemName = workspaceItem.getName(); if(isSharedFolder){ - logger.debug("Is shared folder: "+workspaceItem.getName()); - WorkspaceSharedFolder shared = (WorkspaceSharedFolder) workspaceItem; - itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getName(); + logger.info("Is shared folder: "+workspaceItem.getTitle()); + SharedFolder shared = (SharedFolder) workspaceItem; + itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getTitle(); } -// _log.debug("Building Item for: "+itemName); - Item item = null; + // _log.debug("Building Item for: "+itemName); + ItemDTO item = null; try{ - //THIS CALL IS VERY SLOW!! -// String storageID = null; -// if(workspaceItem instanceof FolderItem){ -// storageID = workspaceItem.getStorageID(); -// } - item = new Item(parent, workspaceItem.getId(), itemName, type, workspaceItemPath, UserUtil.getUserFullName(workspaceItem.getOwner().getPortalLogin()), toDate(workspaceItem.getCreationTime()), isFolder, false); + item = new ItemDTO(parent, workspaceItem.getId(), itemName, type, workspaceItemPath, UserUtil.getUserFullName(workspaceItem.getOwner()), toDate(workspaceItem.getCreationTime()), isFolder, false); item.setSharedFolder(isSharedFolder); if(loadGcubeProperties){ @@ -132,16 +129,14 @@ public class ItemBuilder { } if(loadChildren){ - //TODO A PATCH TO AVOID A SLOW GETPATH -// workspaceItemPath = workspaceItem.getPath(); - for (WorkspaceItem child: workspaceItem.getChildren()){ + String itemId = item.getId(); + ItemManagerClient client = AbstractPlugin.item().build(); + List theChildren = null; + theChildren = client.getChildren(itemId, Whorespace.ACCOUNTING_HL_NODE_NAME); + for (Item child : theChildren) { String itemPath = workspaceItemPath+"/"+child.getName(); -// if(child.isFolder()) -// itemPath+="/"+child.getName(); - -// _log.trace("\nConverting child item: "+child.getName()); - Item itemChild = getItem(item, child, itemPath, showableTypes, filterCriteria, false, loadGcubeProperties); -// _log.trace("Item: "+child.getName() +" converted!!!"); + ItemDTO itemChild = getItem(item, child, itemPath, showableTypes, filterCriteria, false, loadGcubeProperties); + logger.trace("Item: "+child.getName() +" converted!!!"); if (itemChild!=null){ item.addChild(itemChild); } @@ -168,7 +163,9 @@ public class ItemBuilder { * @return the item * @throws InternalErrorException the internal error exception */ - public static Item getItem(Item parent, WorkspaceItem workspaceItem, String workspaceItemPath, List showableTypes, FilterCriteria filterCriteria, boolean loadChildren, boolean loadGcubeProperties, int startIdx, int limit) throws InternalErrorException { + public static ItemDTO getItem(ItemDTO parent, Item workspaceItem, String workspaceItemPath, + List showableTypes, FilterCriteria filterCriteria, + boolean loadChildren, boolean loadGcubeProperties, int startIdx, int limit) { ItemType type = getItemType(workspaceItem); @@ -178,31 +175,27 @@ public class ItemBuilder { if (!filterItem(type, workspaceItem, filterCriteria)) { return null; } - -// //TODO ADD CONTROL ON THE PATH WHEN WILL BE MORE FAST -// if (itemName.equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL)) -// itemName = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL; - - boolean isFolder = type.equals(ItemType.FOLDER)?true:false; - boolean isSharedFolder = workspaceItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)?true:false; + boolean isFolder = type.equals(ItemType.PRIVATE_FOLDER)?true:false; + boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false; String itemName = workspaceItem.getName(); if(isSharedFolder){ - logger.debug("Is shared folder: "+workspaceItem.getName()); - WorkspaceSharedFolder shared = (WorkspaceSharedFolder) workspaceItem; - itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getName(); + logger.info("Is shared folder: "+workspaceItem.getTitle()); + SharedFolder shared = (SharedFolder) workspaceItem; + itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getTitle(); } -// _log.debug("Building Item for: "+itemName); - Item item = null; + + // _log.debug("Building Item for: "+itemName); + ItemDTO item = null; try{ //THIS CALL IS VERY SLOW!! -// String storageID = null; -// if(workspaceItem instanceof FolderItem){ -// storageID = workspaceItem.getStorageID(); -// } - item = new Item(parent, workspaceItem.getId(), itemName, type, workspaceItemPath, UserUtil.getUserFullName(workspaceItem.getOwner().getPortalLogin()), toDate(workspaceItem.getCreationTime()), isFolder, false); + // String storageID = null; + // if(workspaceItem instanceof FolderItem){ + // storageID = workspaceItem.getStorageID(); + // } + item = new ItemDTO(parent, workspaceItem.getId(), itemName, type, workspaceItemPath, UserUtil.getUserFullName(workspaceItem.getOwner()), toDate(workspaceItem.getCreationTime()), isFolder, false); item.setSharedFolder(isSharedFolder); if(loadGcubeProperties){ @@ -215,10 +208,14 @@ public class ItemBuilder { } if(loadChildren){ - WorkspaceFolder folder = (WorkspaceFolder) workspaceItem; - for (WorkspaceItem child: folder.getChildren(limit, startIdx, false)){ + String itemId = item.getId(); + ItemManagerClient client = AbstractPlugin.item().build(); + List theChildren = null; + theChildren = client.getChildren(itemId, Whorespace.ACCOUNTING_HL_NODE_NAME); + for (Item child : theChildren) { String itemPath = workspaceItemPath+"/"+child.getName(); - Item itemChild = getItem(item, child, itemPath, showableTypes, filterCriteria, false, loadGcubeProperties, startIdx, limit); + ItemDTO itemChild = getItem(item, child, itemPath, showableTypes, filterCriteria, false, loadGcubeProperties); + logger.trace("Item: "+child.getName() +" converted!!!"); if (itemChild!=null){ item.addChild(itemChild); } @@ -235,20 +232,16 @@ public class ItemBuilder { * @return the item type * @throws InternalErrorException the internal error exception */ - protected static ItemType getItemType(WorkspaceItem item) throws InternalErrorException - { - switch(item.getType()) - { - case SHARED_FOLDER: - case FOLDER:{ -// if (item.isRoot()) return ItemType.ROOT; - return ItemType.FOLDER; - } - case FOLDER_ITEM: return getFolderItemType((FolderItem) item); - - default: - return null; + protected static ItemType getItemType(Item item) { + if (item instanceof AbstractFileItem) { + return ItemType.EXTERNAL_FILE; } + else if (item instanceof FolderItem) { + return getFolderItemType(item); + } + logger.warn("Item Type non found: "); + return ItemType.UNKNOWN_TYPE; + } /** @@ -257,14 +250,17 @@ public class ItemBuilder { * @param item the item * @return the folder item type */ - protected static ItemType getFolderItemType(FolderItem item){ - - try{ - return ItemType.valueOf(item.getFolderItemType().toString()); - }catch (Exception e) { - logger.warn("Item Type non found: ", e.getMessage()); - return ItemType.UNKNOWN_TYPE; + protected static ItemType getFolderItemType(Item item){ + if (item instanceof SharedFolder || item instanceof VreFolder) { + SharedFolder folder = (SharedFolder) item; + if (folder.isVreFolder()) + return ItemType.VRE_FOLDER; + return ItemType.SHARED_FOLDER; + } else if (item instanceof FolderItem) { + return ItemType.PRIVATE_FOLDER; } + logger.warn("Item Type non found: "); + return ItemType.UNKNOWN_TYPE; } @@ -277,7 +273,7 @@ public class ItemBuilder { * @return true, if successful * @throws InternalErrorException the internal error exception */ - protected static boolean filterItem(ItemType type, WorkspaceItem item, FilterCriteria filterCriteria) throws InternalErrorException { + protected static boolean filterItem(ItemType type, Item item, FilterCriteria filterCriteria) { if(filterCriteria==null) { return true; } @@ -304,14 +300,13 @@ public class ItemBuilder { * @param allowedMimeTypes the allowed mime types * @return true, if successful */ - protected static boolean checkAllowedMimeTypes(ItemType type, WorkspaceItem item, List allowedMimeTypes){ + protected static boolean checkAllowedMimeTypes(ItemType type, Item item, List allowedMimeTypes){ if (allowedMimeTypes==null || allowedMimeTypes.size()==0) { return true; } - if (type == ItemType.EXTERNAL_FILE || type == ItemType.EXTERNAL_IMAGE || type == ItemType.EXTERNAL_PDF_FILE) { - ExternalFile externalFile = (ExternalFile)item; - String mimeType = externalFile.getMimeType(); + if (type == ItemType.EXTERNAL_FILE) { + String mimeType = "unknown"; //TODO return allowedMimeTypes.contains(mimeType); } return true; @@ -328,18 +323,18 @@ public class ItemBuilder { * @param allowedFileExtension the allowed mime types * @return true, if successful */ - protected static boolean checkAllowedFileExtension(ItemType type, WorkspaceItem item, List allowedFileExtension){ + protected static boolean checkAllowedFileExtension(ItemType type, Item item, List allowedFileExtension){ if (allowedFileExtension==null || allowedFileExtension.size()==0) { return true; } try { - if (type != ItemType.FOLDER) { + if (item instanceof FolderItem) { String name = item.getName(); return checkFileExtension(name, allowedFileExtension); } return true; - } catch (InternalErrorException e) { + } catch (Exception e) { logger.error("checkAllowedFileExtension, InternalErrorException: ",e); return false; } @@ -363,8 +358,8 @@ public class ItemBuilder { String ext = fileName.substring(dot+1, fileName.length()); logger.trace("Extension found: "+ext +" for: "+fileName); -// if(ext.isEmpty()) -// return false; + // if(ext.isEmpty()) + // return false; for (String fe : allowedFileExtension) { if(ext.compareTo(fe)==0) { return true; @@ -385,9 +380,9 @@ public class ItemBuilder { * @return true, if successful * @throws InternalErrorException the internal error exception */ - protected static boolean checkProperties(WorkspaceItem item, Map requestedProperties) throws InternalErrorException + protected static boolean checkProperties(Item item, Map requestedProperties) { - if (requestedProperties==null || requestedProperties.size()==0 || item.getType()!=WorkspaceItemType.FOLDER_ITEM) { + if (requestedProperties==null || requestedProperties.size()==0 || (item instanceof FolderItem)) { return true; } @@ -417,15 +412,16 @@ public class ItemBuilder { * @return the gcube properties for item * @throws InternalErrorException the internal error exception */ - protected static Map getGcubePropertiesForItem(WorkspaceItem item) throws InternalErrorException{ - - try { - return item.getProperties().getProperties(); - } - catch (InternalErrorException e) { - logger.warn("An error occurred during get properties for item: "+item.getId()+", returning null"); - return null; - } + protected static Map getGcubePropertiesForItem(Item item) { + return null; + //TODO: see how to return this later + // try { + // return item.getProperties().getProperties(); + // } + // catch (InternalErrorException e) { + // logger.warn("An error occurred during get properties for item: "+item.getId()+", returning null"); + // return null; + // } } @@ -438,19 +434,19 @@ public class ItemBuilder { * @return the item * @throws InternalErrorException the internal error exception */ - public static Item buildFolderForBreadcrumbs(WorkspaceFolder wsFolder, Item parent) throws InternalErrorException { + public static ItemDTO buildFolderForBreadcrumbs(FolderItem wsFolder, ItemDTO parent){ String name = ""; boolean isSpecialFolder = false; boolean isRoot = false; - if(wsFolder.isRoot()){ //IS ROOT + if(wsFolder.getParentId() == null){ //IS ROOT name = WorkspaceExplorerConstants.HOME_LABEL; isRoot = true; - }else if(wsFolder.isShared() && wsFolder.getType().equals(WorkspaceItemType.SHARED_FOLDER)){ //MANAGEMENT SHARED FOLDER NAME - WorkspaceSharedFolder shared = (WorkspaceSharedFolder) wsFolder; - name = shared.isVreFolder()?shared.getDisplayName():wsFolder.getName(); - //MANAGEMENT SPECIAL FOLDER + }else if(wsFolder.isShared()){ //MANAGEMENT SHARED FOLDER NAME + SharedFolder shared = (SharedFolder) wsFolder; + name = shared.isVreFolder()?shared.getDisplayName():shared.getTitle(); + //MANAGEMENT SPECIAL FOLDER }else if(isSpecialFolder(wsFolder)){ name = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL; isSpecialFolder = true; @@ -461,7 +457,7 @@ public class ItemBuilder { //BUILDS A SIMPLE ITEM FOR BREADCRUMB String path = null; //wsFolder.getPath(); FORCED TO NULL BECAUSE IS SLOW CALL - Item item = new Item(null, wsFolder.getId(), name, ItemType.FOLDER, path, null, null, true, isRoot); + ItemDTO item = new ItemDTO(null, wsFolder.getId(), name, ItemType.FOLDER, path, null, null, true, isRoot); item.setSpecialFolder(isSpecialFolder); logger.debug("breadcrumb returning: "+item); @@ -474,14 +470,8 @@ public class ItemBuilder { * @param wsFolder the ws folder * @return true, if is special folder */ - public static boolean isSpecialFolder(WorkspaceFolder wsFolder){ - - try { - return wsFolder.getName().compareTo(WorkspaceExplorerConstants.SPECIAL_FOLDERS_NAME)==0 && wsFolder.getParent()!=null && wsFolder.getParent().isRoot(); - } catch (InternalErrorException e) { - logger.warn("isSpecialFolder exception, returning false"); - return false; - } + public static boolean isSpecialFolder(FolderItem wsFolder){ + return (wsFolder.getName().compareTo("MySpecialFolder") == 0); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemComparator.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemComparator.java index 14fa9d2..91a465f 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemComparator.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/ItemComparator.java @@ -7,20 +7,20 @@ import java.util.Comparator; import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; /** * A comparator that sorts the items first by type, folder up others down, the each group alphabetically on the item name. * @author "Federico De Faveri defaveri@isti.cnr.it" */ -public class ItemComparator implements Comparator { +public class ItemComparator implements Comparator { /** * {@inheritDoc} */ @Override - public int compare(Item item1, Item item2) { + public int compare(ItemDTO item1, ItemDTO item2) { //if one of the item is folder and the other one not, we move up the folder boolean isItem1Folder = Util.isFolder(item1.getType()); @@ -36,7 +36,7 @@ public class ItemComparator implements Comparator { return String.CASE_INSENSITIVE_ORDER.compare(item1.getName(), item2.getName()); } - private boolean isSpecialFolder(Item item) { + private boolean isSpecialFolder(ItemDTO item) { // return item.getName().equals(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL) && item.getParent()!=null && item.getParent().isRoot(); return item.getName().equals(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL) && item.isSpecialFolder(); } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java index 5d39253..88df645 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/WorkspaceExplorerServiceImpl.java @@ -3,30 +3,24 @@ package org.gcube.portlets.widgets.wsexplorer.server; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -import org.gcube.common.homelibary.model.items.type.WorkspaceItemType; -import org.gcube.common.homelibrary.home.HomeLibrary; -import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException; -import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; -import org.gcube.common.homelibrary.home.workspace.Workspace; -import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; -import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder; -import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException; -import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException; -import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException; -import org.gcube.common.homelibrary.home.workspace.folder.FolderItem; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.portal.PortalContext; -import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.storagehub.client.plugins.AbstractPlugin; +import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient; +import org.gcube.common.storagehub.model.items.FolderItem; +import org.gcube.common.storagehub.model.items.Item; +import org.gcube.common.storagehub.model.items.SharedFolder; +import org.gcube.common.storagehub.model.items.VreFolder; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; import org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService; +import org.gcube.portlets.widgets.wsexplorer.server.stohub.Whorespace; import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory; +import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO; import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.gcube.portlets.widgets.wsexplorer.shared.SearchedFolder; @@ -47,60 +41,31 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet; public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implements WorkspaceExplorerService { public static final Logger logger = LoggerFactory.getLogger(WorkspaceExplorerServiceImpl.class); - //public static final String USERNAME_ATTRIBUTE = "username"; - //public static final String TEST_USER = "test.user"; - //public static final String TEST_SCOPE = "/gcube"; //DEV -// public static final String PRODUCTION_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps"; //PRODUCTION - - /** - - /** - * Gets the workspace. - * - * @return the workspace - * @throws Exception the exception - */ - protected Workspace getWorkspace() throws Exception { - PortalContext pContext = PortalContext.getConfiguration(); - Workspace workspace; - try{ - ScopeProvider.instance.set(pContext.getCurrentScope(getThreadLocalRequest())); - workspace = HomeLibrary.getUserWorkspace(pContext.getCurrentUser(getThreadLocalRequest()).getUsername()); - }catch(InternalErrorException | HomeNotFoundException | WorkspaceFolderNotFoundException e){ - String msg = "Sorry, an error occurred when retrieving workspace item, Refresh an try again"; - logger.error("HL error: ",e); - throw new Exception(msg); - } - return workspace; - } - /** * {@inheritDoc} */ @Override - public Item getRoot(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { + public ItemDTO getRoot(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { logger.trace("getRoot showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+ filterCriteria); try { - - Workspace workspace = getWorkspace(); + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(getThreadLocalRequest()).getUsername(); + String scope = pContext.getCurrentScope(getThreadLocalRequest()); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + SecurityTokenProvider.instance.set(authorizationToken); + logger.trace("Start getRoot..."); - - WorkspaceItem root = workspace.getRoot(); + Item root = Whorespace.getRoot(getThreadLocalRequest()); logger.trace("GetRoot - Replyiing root"); long startTime = System.currentTimeMillis(); logger.trace("start time - " + startTime); - Item rootItem = ItemBuilder.getItem(null, root, root.getPath(), showableTypes, filterCriteria, true, false); + ItemDTO rootItem = ItemBuilder.getItem(null, root, root.getPath(), showableTypes, filterCriteria, true, false); rootItem.setName(WorkspaceExplorerConstants.HOME_LABEL); rootItem.setIsRoot(true); - /* SPECIAL FOLDERS - Item specialFolders = ItemBuilder.getItem(null, specials, showableTypes, filterCriteria, 2); - specialFolders.setShared(true); - rootItem.addChild(specialFolders); - */ if (purgeEmpyFolders) { rootItem = ItemBuilder.purgeEmptyFolders(rootItem); } @@ -124,20 +89,22 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * {@inheritDoc} */ @Override - public Item getFolder(ItemInterface item, List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties) throws WorkspaceNavigatorServiceException { + public ItemDTO getFolder(ItemInterface item, List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties) throws WorkspaceNavigatorServiceException { logger.trace("getFolder folderId: "+item.getId()+" showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria); try { - Workspace workspace = getWorkspace(); - WorkspaceItem folder = workspace.getItem(item.getId()); + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(getThreadLocalRequest()).getUsername(); + String scope = pContext.getCurrentScope(getThreadLocalRequest()); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + SecurityTokenProvider.instance.set(authorizationToken); + Item folder = Whorespace.getItem(getThreadLocalRequest(), item.getId()); logger.trace("GetFolder - Replying folder"); - long startTime = System.currentTimeMillis(); - logger.trace("start time - " + startTime); - + //TO AVOID SLOW CALL getPATH() String folderPath = item.getPath()!=null && !item.getPath().isEmpty()?item.getPath():folder.getPath(); - Item itemFolder = ItemBuilder.getItem(null, folder, folderPath, showableTypes, filterCriteria, true, loadGcubeProperties); + ItemDTO itemFolder = ItemBuilder.getItem(null, folder, folderPath, showableTypes, filterCriteria, true, loadGcubeProperties); // _log.trace("Only showable types:"); if (purgeEmpyFolders) { @@ -145,9 +112,6 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement } Collections.sort(itemFolder.getChildren(), new ItemComparator()); - - Long endTime = System.currentTimeMillis() - startTime; - logger.debug("end time - " + String.format("%d msc %d sec", endTime - startTime, TimeUnit.MILLISECONDS.toSeconds(endTime))); logger.info("Returning children size: "+itemFolder.getChildren().size()); return itemFolder; @@ -169,28 +133,34 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * @throws WorkspaceNavigatorServiceException the workspace navigator service exception */ @Override - public Item getItemByCategory(ItemCategory category) throws WorkspaceNavigatorServiceException{ + public ItemDTO getItemByCategory(ItemCategory category) throws WorkspaceNavigatorServiceException{ logger.trace("GetItemByCategory category: "+category); + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(getThreadLocalRequest()).getUsername(); + String scope = pContext.getCurrentScope(getThreadLocalRequest()); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + SecurityTokenProvider.instance.set(authorizationToken); + try { - Workspace workspace = getWorkspace(); - Item item = null; + + ItemDTO item = null; switch(category){ case HOME:{ - WorkspaceItem root = workspace.getRoot(); - PortalContext pContext = PortalContext.getConfiguration(); + Item root = Whorespace.getRoot(getThreadLocalRequest()); String fullName = pContext.getCurrentUser(getThreadLocalRequest()).getFullname(); if(fullName.indexOf(" ")>0){ fullName = fullName.substring(0, fullName.indexOf(" ")); }else if(fullName.indexOf(".")>0){ fullName = fullName.substring(0, fullName.indexOf(".")); } - item = new Item(null, root.getId(), fullName+"'s", ItemType.FOLDER, root.getPath(), root.getOwner().getPortalLogin(), null, true, true); + item = new ItemDTO(null, root.getId(), fullName+"'s", ItemType.FOLDER, root.getPath(), root.getOwner(), null, true, true); break; } case VRE_FOLDER:{ - WorkspaceItem folder = workspace.getMySpecialFolders(); - item = new Item(null, folder.getId(), WorkspaceExplorerConstants.VRE_FOLDERS_LABEL, ItemType.FOLDER, folder.getPath(), folder.getOwner().getPortalLogin(), null, true, false); + String vreFolderId = Whorespace.getVREFoldersId(getThreadLocalRequest()); + Item folder = Whorespace.getItem(getThreadLocalRequest(), vreFolderId); + item = new ItemDTO(null, folder.getId(), WorkspaceExplorerConstants.VRE_FOLDERS_LABEL, ItemType.FOLDER, folder.getPath(), folder.getOwner(), null, true, false); //SET SPECIAL FOLDER /Workspace/MySpecialFolders item.setSpecialFolder(true); break; @@ -207,18 +177,22 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * {@inheritDoc} */ @Override - public Item getMySpecialFolder(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { + public ItemDTO getMySpecialFolder(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { logger.trace("GetMySpecialFolder showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria); try { - - Workspace workspace = getWorkspace(); - WorkspaceItem folder = workspace.getMySpecialFolders(); + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(getThreadLocalRequest()).getUsername(); + String scope = pContext.getCurrentScope(getThreadLocalRequest()); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + SecurityTokenProvider.instance.set(authorizationToken); + String vreFolderId = Whorespace.getVREFoldersId(getThreadLocalRequest()); + Item folder = Whorespace.getItem(getThreadLocalRequest(), vreFolderId); long startTime = System.currentTimeMillis(); logger.trace("start time - " + startTime); - Item itemFolder = ItemBuilder.getItem(null, folder, folder.getPath(), showableTypes, filterCriteria, true, false); + ItemDTO itemFolder = ItemBuilder.getItem(null, folder, folder.getPath(), showableTypes, filterCriteria, true, false); //OVERRIDING VRE FOLDERS NAME - SET SPECIAL FOLDER /Workspace/MySpecialFolders itemFolder.setName(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL); itemFolder.setSpecialFolder(true); @@ -254,15 +228,8 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement */ @Override public boolean checkName(String name) throws WorkspaceNavigatorServiceException { - logger.trace("checkName name: "+name); - try { - PortalContext pContext = PortalContext.getConfiguration(); - Workspace workspace = HomeLibrary.getUserWorkspace(pContext.getCurrentUser(getThreadLocalRequest()).getUsername()); - return workspace.isValidName(name); - } catch (Exception e) { - logger.error("Error during folder retrieving", e); - throw new WorkspaceNavigatorServiceException(e.getMessage()); - } + logger.warn("checkName name NOT IMPLEMENTED: "+name); + return true; //TODO: } /*protected void printName(String indentation, Item item) @@ -282,38 +249,42 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * @throws Exception the exception */ @Override - public List getBreadcrumbsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception { + public List getBreadcrumbsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception { logger.trace("ListParents By Item Identifier "+ itemIdentifier); try { - Workspace workspace = getWorkspace(); - WorkspaceItem wsItem = workspace.getItem(itemIdentifier); + Item wsItem = Whorespace.getItem(getThreadLocalRequest(), itemIdentifier); logger.trace("workspace retrieve item name: "+wsItem.getName()); - List parents = workspace.getParentsById(itemIdentifier); + List parents = new ArrayList<>(); + Item whileItem = wsItem; + while (whileItem.getParentId() != null) { + parents.add(whileItem); + whileItem = Whorespace.getItem(getThreadLocalRequest(), whileItem.getParentId()); + } + // List parents = workspace.getParentsById(itemIdentifier); logger.trace("parents size: "+parents.size()); - Item[] arrayParents; - - if(includeItemAsParent==true && wsItem.isFolder()){ - arrayParents = new Item[parents.size()]; - arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null); + ItemDTO[] arrayParents; + if(includeItemAsParent==true && wsItem instanceof FolderItem){ + arrayParents = new ItemDTO[parents.size()]; + arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((FolderItem) wsItem, null); } else { - arrayParents = new Item[parents.size()-1]; + arrayParents = new ItemDTO[parents.size()-1]; } /** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER * BUT RETURNING ONLY /MY_SPECIAL_FOLDER */ - if(wsItem.isFolder()){ - if(ItemBuilder.isSpecialFolder((WorkspaceFolder) wsItem)){ - return new ArrayList(Arrays.asList(arrayParents)); + if(wsItem instanceof FolderItem){ + if(ItemBuilder.isSpecialFolder((FolderItem) wsItem)){ + return new ArrayList(Arrays.asList(arrayParents)); } } //CONVERTING PATH logger.trace("converting path from second-last.."); for (int i = parents.size()-2; i >= 0; i--) { - WorkspaceFolder wsParentFolder = (WorkspaceFolder) parents.get(i); + FolderItem wsParentFolder = (FolderItem) parents.get(i); arrayParents[i] = ItemBuilder.buildFolderForBreadcrumbs(wsParentFolder, null); if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER logger.info("arrayParents index "+i+" is special folder, exit"); @@ -325,21 +296,21 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement logger.trace("setting parents.."); for(int i=0; i breadcrumbs = new ArrayList(arrayParents.length-1); + List breadcrumbs = new ArrayList(arrayParents.length-1); for (int i=1; i(Arrays.asList(arrayParents)); + return new ArrayList(Arrays.asList(arrayParents)); } } catch (Exception e) { @@ -358,23 +329,29 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * @throws Exception the exception */ @Override - public List getBreadcrumbsByItemIdentifierToParentLimit(String itemIdentifier, String parentLimit, boolean includeItemAsParent) throws Exception { + public List getBreadcrumbsByItemIdentifierToParentLimit(String itemIdentifier, String parentLimit, boolean includeItemAsParent) throws Exception { logger.trace("getBreadcrumbsByItemIdentifierToParentLimit by Item Identifier " + itemIdentifier +" and limit: "+parentLimit); try { - Workspace workspace = getWorkspace(); - WorkspaceItem wsItem = workspace.getItem(itemIdentifier); + Item wsItem = Whorespace.getItem(getThreadLocalRequest(), itemIdentifier); logger.trace("workspace retrieve item name: "+wsItem.getName()); - List parents = workspace.getParentsById(itemIdentifier); + List parents = new ArrayList<>(); + Item whileItem = wsItem; + while (whileItem.getParentId() != null) { + parents.add(whileItem); + whileItem = Whorespace.getItem(getThreadLocalRequest(), whileItem.getParentId()); + } + logger.trace("workspace retrieve item name: "+wsItem.getName()); + //List parents = workspace.getParentsById(itemIdentifier); logger.trace("parents size: "+parents.size()); - Item[] arrayParents; + ItemDTO[] arrayParents; - if(includeItemAsParent==true && wsItem.isFolder()){ - arrayParents = new Item[parents.size()]; - arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null); + if(includeItemAsParent==true && wsItem instanceof FolderItem){ + arrayParents = new ItemDTO[parents.size()]; + arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((FolderItem) wsItem, null); } else { - arrayParents = new Item[parents.size()-1]; + arrayParents = new ItemDTO[parents.size()-1]; } parentLimit = parentLimit!=null?parentLimit:""; @@ -382,15 +359,15 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement /** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER * BUT RETURNING ONLY /MY_SPECIAL_FOLDER */ - if(wsItem.isFolder()){ - if(ItemBuilder.isSpecialFolder((WorkspaceFolder) wsItem)){ + if( wsItem instanceof FolderItem){ + if(ItemBuilder.isSpecialFolder((FolderItem) wsItem)){ logger.debug("item id is special folder, returning"); - return new ArrayList(Arrays.asList(arrayParents)); + return new ArrayList(Arrays.asList(arrayParents)); } if(itemIdentifier.compareTo(parentLimit)==0){ logger.debug("item and parent limit are identical element, returning"); - return new ArrayList(Arrays.asList(arrayParents)); + return new ArrayList(Arrays.asList(arrayParents)); } } @@ -398,7 +375,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement //CONVERTING PATH logger.trace("converting path from second-last.."); for (int i = parents.size()-2; i >= 0; i--) { - WorkspaceFolder wsParentFolder = (WorkspaceFolder) parents.get(i); + FolderItem wsParentFolder = (FolderItem) parents.get(i); arrayParents[i] = ItemBuilder.buildFolderForBreadcrumbs(wsParentFolder, null); if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER logger.info("arrayParents index "+i+" is special folder, break"); @@ -413,8 +390,8 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement logger.trace("setting parents.."); for(int i=0; i breadcrumbs = new ArrayList(); + List breadcrumbs = new ArrayList(); for (int i=1; i(Arrays.asList(arrayParents)); + return new ArrayList(Arrays.asList(arrayParents)); } } catch (Exception e) { @@ -453,31 +430,32 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement */ @Override public Long getSizeByItemId(String itemId) throws Exception { - - logger.info("get Size By ItemId "+ itemId); - try { - - Workspace workspace = getWorkspace(); - WorkspaceItem wsItem = workspace.getItem(itemId); - Long size = new Long(-1); - - if(wsItem instanceof FolderItem){ //ITEM - FolderItem folderItem = (FolderItem) wsItem; - size = new Long(folderItem.getLength()); - } else if (wsItem instanceof WorkspaceFolder ){ //FOLDER - WorkspaceFolder theFolder = (WorkspaceFolder) wsItem; - size = theFolder.getSize(); - } else if (wsItem instanceof WorkspaceSharedFolder){ //SHARED FOLDER - WorkspaceSharedFolder theFolder = (WorkspaceSharedFolder) wsItem; - size = theFolder.getSize(); - } - logger.info("returning size: " +size); - return size; - - } catch (Exception e) { - logger.error("get Size By ItemId ", e); - throw new Exception(e.getMessage()); - } + //TODO: implementation missing + return 0L; +// logger.info("get Size By ItemId "+ itemId); +// try { +// +// Workspace workspace = getWorkspace(); +// WorkspaceItem wsItem = workspace.getItem(itemId); +// Long size = new Long(-1); +// +// if(wsItem instanceof FolderItem){ //ITEM +// FolderItem folderItem = (FolderItem) wsItem; +// size = new Long(folderItem.getLength()); +// } else if (wsItem instanceof WorkspaceFolder ){ //FOLDER +// WorkspaceFolder theFolder = (WorkspaceFolder) wsItem; +// size = theFolder.getSize(); +// } else if (wsItem instanceof WorkspaceSharedFolder){ //SHARED FOLDER +// WorkspaceSharedFolder theFolder = (WorkspaceSharedFolder) wsItem; +// size = theFolder.getSize(); +// } +// logger.info("returning size: " +size); +// return size; +// +// } catch (Exception e) { +// logger.error("get Size By ItemId ", e); +// throw new Exception(e.getMessage()); +// } } /* (non-Javadoc) @@ -495,17 +473,17 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement logger.info("get MimeType By ItemId "+ itemId); try { + Item wsItem = Whorespace.getItem(getThreadLocalRequest(), itemId); + logger.trace("workspace retrieve item name: "+wsItem.getName()); + - Workspace workspace = getWorkspace(); - WorkspaceItem wsItem = workspace.getItem(itemId); - - if(!wsItem.getType().equals(WorkspaceItemType.FOLDER_ITEM)) { + if(! (wsItem instanceof FolderItem)) { return null; } FolderItem folderItem = (FolderItem) wsItem; - - return folderItem.getMimeType(); + //TODO:folderItem.getMimeType(); + return "unknown"; } catch (Exception e) { logger.error("get MimeType By ItemId ", e); @@ -525,14 +503,14 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement public String getUserACLForFolderId(String folderId) throws Exception{ try { logger.info("Get user ACL to FOLDER id: "+folderId); - Workspace workspace = getWorkspace(); - WorkspaceItem wsItem = workspace.getItem(folderId); + Item wsItem = Whorespace.getItem(getThreadLocalRequest(), folderId); + logger.trace("workspace retrieve item name: "+wsItem.getName()); if(!isASharedFolder(wsItem, false)) { return "OWNER"; } else { - return wsItem.getACLUser().toString(); + return "NOT IMPLEMENTED";//TODO } } catch (Exception e) { logger.error("Error in server get UserACLForFolderId", e); @@ -549,16 +527,15 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * @param asRoot the as root * @return true, if is a shared folder */ - private boolean isASharedFolder(WorkspaceItem item, boolean asRoot){ + private boolean isASharedFolder(Item item, boolean asRoot){ try { - - if(item!=null && item.isFolder() && item.isShared()){ //IS A SHARED SUB-FOLDER - if(asRoot) - { - return item.getType().equals(WorkspaceItemType.SHARED_FOLDER); //IS ROOT? - } - + if (item instanceof SharedFolder || item instanceof VreFolder) { + SharedFolder folder = (SharedFolder) item; + if (folder.isVreFolder()) + return true; return true; + } else if (item instanceof FolderItem) { + return false; } return false; }catch(Exception e){ @@ -601,61 +578,62 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement * @throws Exception the exception */ @Override - public Item createFolder(String nameFolder, String description, String parentId) throws Exception { + public ItemDTO createFolder(String nameFolder, String description, String parentId) throws Exception { logger.debug("creating folder: "+nameFolder +", parent id: "+parentId); - - try { - - if(parentId==null || parentId.isEmpty()) - throw new Exception("Parent id is null or empty"); - - if(nameFolder == null) - nameFolder = "Empty Folder"; - - Workspace workspace = getWorkspace(); - WorkspaceFolder wsFolder = workspace.createFolder(nameFolder, description, parentId); - -// _log.info("Path returned by HL: "+wsFolder.getPath()); - - List allTypes = Arrays.asList(ItemType.values()); - - Item parent = null; - try{ - String parentPath = wsFolder.getParent()!=null?wsFolder.getParent().getPath():""; - parent = ItemBuilder.getItem(null, wsFolder.getParent(), parentPath, allTypes, null, false, false); - }catch(Exception e){ - logger.error("Get parent thown an exception, is it the root id? "+parentId); - } - - //TODO PATCH TO AVOID PROBLEM ON GETPATH. FOR EXAMPLE WHEN PARENT IS ROOT - String itemPath = null; - try{ - itemPath = wsFolder.getPath(); - logger.info("itemPath: "+itemPath); - }catch(Exception e){ - logger.error("Get path thrown an exception, for id: "+wsFolder.getId() +" name: "+wsFolder.getName(), e); -// itemPath= wsFolder.isFolder()?workspace.getRoot().getPath()+"/"+wsFolder.getName():workspace.getRoot().getPath(); - //PATCH TO RETURN ABSOLUTE PATH - itemPath= workspace.getRoot().getPath()+"/"+wsFolder.getName(); - logger.warn("returning base path: "+itemPath); - } - - return ItemBuilder.getItem(parent, wsFolder, itemPath, allTypes, null, false, false); - - } catch(InsufficientPrivilegesException e){ - String error = "Insufficient Privileges to create the folder"; - logger.error(error, e); - throw new Exception(error); - } catch (ItemAlreadyExistException e) { - String error = "An error occurred on creating folder, " +e.getMessage(); - logger.error(error, e); - throw new Exception(error); - } catch (Exception e) { - String error = "An error occurred on the sever during creating folder. Try again"; - logger.error(error, e); - throw new Exception(error); - } + //TODO + return null; +// try { +// +// if(parentId==null || parentId.isEmpty()) +// throw new Exception("Parent id is null or empty"); +// +// if(nameFolder == null) +// nameFolder = "Empty Folder"; +// +// Workspace workspace = getWorkspace(); +// WorkspaceFolder wsFolder = workspace.createFolder(nameFolder, description, parentId); +// +//// _log.info("Path returned by HL: "+wsFolder.getPath()); +// +// List allTypes = Arrays.asList(ItemType.values()); +// +// ItemDTO parent = null; +// try{ +// String parentPath = wsFolder.getParent()!=null?wsFolder.getParent().getPath():""; +// parent = ItemBuilder.getItem(null, wsFolder.getParent(), parentPath, allTypes, null, false, false); +// }catch(Exception e){ +// logger.error("Get parent thown an exception, is it the root id? "+parentId); +// } +// +// //TODO PATCH TO AVOID PROBLEM ON GETPATH. FOR EXAMPLE WHEN PARENT IS ROOT +// String itemPath = null; +// try{ +// itemPath = wsFolder.getPath(); +// logger.info("itemPath: "+itemPath); +// }catch(Exception e){ +// logger.error("Get path thrown an exception, for id: "+wsFolder.getId() +" name: "+wsFolder.getName(), e); +//// itemPath= wsFolder.isFolder()?workspace.getRoot().getPath()+"/"+wsFolder.getName():workspace.getRoot().getPath(); +// //PATCH TO RETURN ABSOLUTE PATH +// itemPath= workspace.getRoot().getPath()+"/"+wsFolder.getName(); +// logger.warn("returning base path: "+itemPath); +// } +// +// return ItemBuilder.getItem(parent, wsFolder, itemPath, allTypes, null, false, false); +// +// } catch(InsufficientPrivilegesException e){ +// String error = "Insufficient Privileges to create the folder"; +// logger.error(error, e); +// throw new Exception(error); +// } catch (ItemAlreadyExistException e) { +// String error = "An error occurred on creating folder, " +e.getMessage(); +// logger.error(error, e); +// throw new Exception(error); +// } catch (Exception e) { +// String error = "An error occurred on the sever during creating folder. Try again"; +// logger.error(error, e); +// throw new Exception(error); +// } } @@ -673,22 +651,24 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement @Override public Map getGcubePropertiesForWorspaceId(String id) throws Exception { logger.trace("getGcubePropertiesForWorspaceId "+id); - try { - - if(id==null || id.isEmpty()){ - logger.info(id +" is null or empty returing empty map as GcubeProperties"); - return new HashMap(1); - } - - Workspace workspace = getWorkspace(); - WorkspaceItem item = workspace.getItem(id); - - return ItemBuilder.getGcubePropertiesForItem(item); - - } catch (Exception e) { - logger.error("Error during folder retrieving", e); - throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get folder"); - } + //TODO + return null; +// try { +// +// if(id==null || id.isEmpty()){ +// logger.info(id +" is null or empty returing empty map as GcubeProperties"); +// return new HashMap(1); +// } +// +// Workspace workspace = getWorkspace(); +// WorkspaceItem item = workspace.getItem(id); +// +// return ItemBuilder.getGcubePropertiesForItem(item); +// +// } catch (Exception e) { +// logger.error("Error during folder retrieving", e); +// throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get folder"); +// } } /* (non-Javadoc) @@ -696,7 +676,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement */ @Override public SearchedFolder getFolder( - Item item, List showableTypes, boolean purgeEmpyFolders, + ItemDTO item, List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties, final int startIndex, final int limit, final int serverStartIndex) throws WorkspaceNavigatorServiceException { @@ -704,8 +684,8 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement try { - Workspace workspace = getWorkspace(); - WorkspaceItem folder = workspace.getItem(item.getId()); + Item folder = Whorespace.getItem(getThreadLocalRequest(), item.getId()); + int searchStartIndex = startIndex < serverStartIndex? serverStartIndex : startIndex; //logger.trace("GetFolder - Replyiing folder"); logger.debug("MyLg getFolder searchIndex: "+searchStartIndex+", limit: "+limit); @@ -714,14 +694,14 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement //TO AVOID SLOW CALL getPATH() String folderPath = item.getPath()!=null && !item.getPath().isEmpty()?item.getPath():folder.getPath(); - Item itemFolderToReturn = ItemBuilder.getItem(null, folder, folderPath, showableTypes, filterCriteria, true, loadGcubeProperties, searchStartIndex, limit); + ItemDTO itemFolderToReturn = ItemBuilder.getItem(null, folder, folderPath, showableTypes, filterCriteria, true, loadGcubeProperties, searchStartIndex, limit); SearchedFolder sf = new SearchedFolder(itemFolderToReturn, startIndex, limit, searchStartIndex, false); int currentListCount = sf.getFolder().getChildren().size(); logger.debug("MyLg Total item returning is: "+currentListCount); - WorkspaceFolder hlFolder = (WorkspaceFolder) folder; - int folderChildrenCount = hlFolder.getChildrenCount(false); + FolderItem hlFolder = (FolderItem) folder; + int folderChildrenCount = Whorespace.getItemChildrenCount(getThreadLocalRequest(), hlFolder.getId()); logger.debug("MyLg Folder children count is: "+folderChildrenCount); if(currentListCount == limit || folderChildrenCount==0){ @@ -733,7 +713,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement return sf; } - ArrayList childrenToReturn = new ArrayList(limit); + ArrayList childrenToReturn = new ArrayList(limit); childrenToReturn.addAll(sf.getFolder().getChildren()); int offsetStartIndex = searchStartIndex; @@ -748,7 +728,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement if(newstartIndex < folderChildrenCount){ //newLimit = limit - childrenToReturn.size(); logger.debug("MyLg getting items with index start: "+newstartIndex + ", limit: "+limit); - Item newItemFolder = ItemBuilder.getItem(null, folder, folderPath, showableTypes, filterCriteria, true, loadGcubeProperties, newstartIndex, limit); + ItemDTO newItemFolder = ItemBuilder.getItem(null, folder, folderPath, showableTypes, filterCriteria, true, loadGcubeProperties, newstartIndex, limit); int diff = limit - currentListCount; //How items are remaining //int offset = 0; logger.debug("MyLg new search start: "+newstartIndex + ", diff: "+diff+ ", retrieved: "+newItemFolder.getChildren().size()); @@ -800,31 +780,11 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement } } - /* (non-Javadoc) - * @see org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService#getFolderChildrenCount(org.gcube.portlets.widgets.wsexplorer.shared.Item) - */ + @Override - public int getFolderChildrenCount(Item item) throws WorkspaceNavigatorServiceException { - - try { - - Workspace workspace = getWorkspace(); - WorkspaceItem wsItem = workspace.getItem(item.getId()); - - if(wsItem.isFolder()){ - WorkspaceFolder folder = (WorkspaceFolder) wsItem; - int count = folder.getChildrenCount(false); - //count = folder.getChildrenCount(); - logger.debug("returning children count time - " + count); - //return count = 100; - return count; - } - - return 0; - - } catch (Exception e) { - logger.error("Error during folder retrieving", e); - throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get count on folder children"); - } + public int getFolderChildrenCount(ItemDTO item){ + return Whorespace.getItemChildrenCount(getThreadLocalRequest(), item.getId()); } + + } diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/stohub/AuthorizedUser.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/stohub/AuthorizedUser.java new file mode 100644 index 0000000..7550cd9 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/stohub/AuthorizedUser.java @@ -0,0 +1,45 @@ +package org.gcube.portlets.widgets.wsexplorer.server.stohub; + +import org.gcube.vomanagement.usermanagement.model.GCubeUser; + +public class AuthorizedUser { + private GCubeUser user; + private String token; + private String context; + public AuthorizedUser(GCubeUser user, String token, String context) { + super(); + this.user = user; + this.token = token; + this.context = context; + } + public GCubeUser getUser() { + return user; + } + public void setUser(GCubeUser user) { + this.user = user; + } + public String getSecurityToken() { + return token; + } + public void setSecurityToken(String token) { + this.token = token; + } + public String getContext() { + return context; + } + public void setContext(String context) { + this.context = context; + } + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("AuthorizedUser [user="); + builder.append(user); + builder.append(", token="); + builder.append(token); + builder.append(", context="); + builder.append(context); + builder.append("]"); + return builder.toString(); + } +} diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/stohub/Whorespace.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/stohub/Whorespace.java new file mode 100644 index 0000000..95eb84a --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/server/stohub/Whorespace.java @@ -0,0 +1,88 @@ +package org.gcube.portlets.widgets.wsexplorer.server.stohub; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.portal.PortalContext; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.common.storagehub.client.plugins.AbstractPlugin; +import org.gcube.common.storagehub.client.proxies.ItemManagerClient; +import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient; +import org.gcube.common.storagehub.model.items.Item; + +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; + + +public class Whorespace { + private static Log _log = LogFactoryUtil.getLog(Whorespace.class); + public static final String ACCOUNTING_HL_NODE_NAME = "hl:accounting"; + + public static Item getRoot(HttpServletRequest request) { + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(request).getUsername(); + String scope = pContext.getCurrentScope(request); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + ScopeProvider.instance.set(scope); + SecurityTokenProvider.instance.set(authorizationToken); + WorkspaceManagerClient client = AbstractPlugin.workspace().build(); + Item itemRoot = client.getWorkspace(ACCOUNTING_HL_NODE_NAME); + return itemRoot; + } + + public static Item getItem(HttpServletRequest request, String itemId) { + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(request).getUsername(); + String scope = pContext.getCurrentScope(request); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + ScopeProvider.instance.set(scope); + SecurityTokenProvider.instance.set(authorizationToken); + ItemManagerClient client = AbstractPlugin.item().build(); + Item toReturn = client.get(itemId, ACCOUNTING_HL_NODE_NAME); + return toReturn; + } + + /** + * + * @param request + * @return the VRE Folders Id + */ + public static String getVREFoldersId(HttpServletRequest request) { + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(request).getUsername(); + String scope = pContext.getCurrentScope(request); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + ScopeProvider.instance.set(scope); + SecurityTokenProvider.instance.set(authorizationToken); + String toReturn = ""; + try { + WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); + try { + List list = wsclient.getVreFolders("hl:accounting"); + toReturn =list.iterator().next().getParentId(); + } catch (Exception e) { + _log.info("This user has no VRE Folders", e); + return null; + } + }catch (Exception e) { + e.printStackTrace(); + } + return toReturn; + } + + /** + * + */ + public static int getItemChildrenCount(HttpServletRequest request, String itemId) { + PortalContext pContext = PortalContext.getConfiguration(); + String userName = pContext.getCurrentUser(request).getUsername(); + String scope = pContext.getCurrentScope(request); + String authorizationToken = pContext.getCurrentUserToken(scope, userName); + ScopeProvider.instance.set(scope); + SecurityTokenProvider.instance.set(authorizationToken); + ItemManagerClient client = AbstractPlugin.item().build(); + return client.childrenCount(itemId); + } +} diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemDTO.java similarity index 88% rename from src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java rename to src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemDTO.java index 3c98f9d..bafc550 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/Item.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemDTO.java @@ -16,15 +16,15 @@ import com.google.gwt.user.client.rpc.IsSerializable; * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * Dec 2, 2015 */ -public class Item implements IsSerializable, ItemInterface{ +public class ItemDTO implements IsSerializable, ItemInterface{ - protected Item parent; + protected ItemDTO parent; protected String id; protected String name; protected ItemType type; protected String path; - protected ArrayList children; + protected ArrayList children; private String owner; private boolean isFolder; private boolean isSpecialFolder = false; @@ -37,7 +37,7 @@ public class Item implements IsSerializable, ItemInterface{ /** * Instantiates a new item. */ - public Item() { + public ItemDTO() { } /** * Instantiates a new item. @@ -46,12 +46,12 @@ public class Item implements IsSerializable, ItemInterface{ * @param name the name * @param isFolder the is folder */ - public Item(String id, String name, boolean isFolder) { + public ItemDTO(String id, String name, boolean isFolder) { this.id = id; this.isFolder = isFolder; this.name = name; this.type = isFolder?ItemType.FOLDER:ItemType.UNKNOWN_TYPE; - this.children = new ArrayList(); + this.children = new ArrayList(); } @@ -68,7 +68,7 @@ public class Item implements IsSerializable, ItemInterface{ * @param isFolder the is folder * @param isRoot the is root */ - public Item(Item parent, String id, String name, ItemType type, String path, String owner, Date creationDate, boolean isFolder, boolean isRoot) { + public ItemDTO(ItemDTO parent, String id, String name, ItemType type, String path, String owner, Date creationDate, boolean isFolder, boolean isRoot) { this(parent, id, name, type, path, owner, isFolder, isRoot); this.creationDate = creationDate; } @@ -86,12 +86,12 @@ public class Item implements IsSerializable, ItemInterface{ * @param isFolder the is folder * @param isRoot the is root */ - public Item(Item parent, String id, String name, ItemType type, String path, String owner, boolean isFolder, boolean isRoot) { + public ItemDTO(ItemDTO parent, String id, String name, ItemType type, String path, String owner, boolean isFolder, boolean isRoot) { this(id, name, isFolder); this.parent = parent; this.type = type; this.path = path; - this.children = new ArrayList(); + this.children = new ArrayList(); this.owner = owner; this.isRoot = isRoot; } @@ -102,7 +102,7 @@ public class Item implements IsSerializable, ItemInterface{ * * @param children the new children */ - public void setChildren(ArrayList children) { + public void setChildren(ArrayList children) { this.children = children; } @@ -177,7 +177,7 @@ public class Item implements IsSerializable, ItemInterface{ * * @return the item parent. */ - public Item getParent() { + public ItemDTO getParent() { return parent; } @@ -213,7 +213,7 @@ public class Item implements IsSerializable, ItemInterface{ * * @return the children. */ - public ArrayList getChildren() { + public ArrayList getChildren() { return children; } @@ -252,7 +252,7 @@ public class Item implements IsSerializable, ItemInterface{ * the index * @return the child at the specific position. */ - public Item getChild(int index) { + public ItemDTO getChild(int index) { return children.get(index); } @@ -262,7 +262,7 @@ public class Item implements IsSerializable, ItemInterface{ * @param child * the child to add. */ - public void addChild(Item child) { + public void addChild(ItemDTO child) { children.add(child); } @@ -272,7 +272,7 @@ public class Item implements IsSerializable, ItemInterface{ * @param child * the child */ - public void removeChild(Item child) { + public void removeChild(ItemDTO child) { children.remove(child); } @@ -328,7 +328,7 @@ public class Item implements IsSerializable, ItemInterface{ if (getClass() != obj.getClass()) { return false; } - Item other = (Item) obj; + ItemDTO other = (ItemDTO) obj; if (id == null) { if (other.id != null) { return false; @@ -375,7 +375,7 @@ public class Item implements IsSerializable, ItemInterface{ * @param parent * the new parent */ - public void setParent(Item parent) { + public void setParent(ItemDTO parent) { this.parent = parent; } /* (non-Javadoc) diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java index 8f7643b..2e43303 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/ItemType.java @@ -11,7 +11,9 @@ package org.gcube.portlets.widgets.wsexplorer.shared; * Jun 18, 2015 */ public enum ItemType { - + PRIVATE_FOLDER, //MANDATORY + SHARED_FOLDER, + VRE_FOLDER, FOLDER, //MANDATORY EXTERNAL_IMAGE, EXTERNAL_FILE, diff --git a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/SearchedFolder.java b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/SearchedFolder.java index 7ca5be8..d19dfd3 100644 --- a/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/SearchedFolder.java +++ b/src/main/java/org/gcube/portlets/widgets/wsexplorer/shared/SearchedFolder.java @@ -15,7 +15,7 @@ import com.google.gwt.user.client.rpc.IsSerializable; public class SearchedFolder implements IsSerializable{ - private Item folder; + private ItemDTO folder; private int clientStartIndex = 0; private int limit; private int serverEndIndex = 0; @@ -35,7 +35,7 @@ public class SearchedFolder implements IsSerializable{ * @param serverEndIndex * @param isServerSearchFinished */ - public SearchedFolder(Item folder, int clientStartIndex, int limit, int serverEndIndex, boolean isServerSearchFinished) { + public SearchedFolder(ItemDTO folder, int clientStartIndex, int limit, int serverEndIndex, boolean isServerSearchFinished) { super(); this.folder = folder; @@ -50,7 +50,7 @@ public class SearchedFolder implements IsSerializable{ /** * @return the folder */ - public Item getFolder() { + public ItemDTO getFolder() { return folder; } @@ -100,7 +100,7 @@ public class SearchedFolder implements IsSerializable{ /** * @param folder the folder to set */ - public void setFolder(Item folder) { + public void setFolder(ItemDTO folder) { this.folder = folder; } diff --git a/src/main/resources/clientlog4j.properties b/src/main/resources/clientlog4j.properties new file mode 100644 index 0000000..03ab7ba --- /dev/null +++ b/src/main/resources/clientlog4j.properties @@ -0,0 +1,40 @@ +# gCube Portal custom log4j Logger +#Author: Massimiliano Assante, ISTI-CNR + +log4j.rootLogger=INFO, CA + +log4j.appender.CA=org.apache.log4j.ConsoleAppender + +log4j.appender.CA.layout=org.apache.log4j.PatternLayout +log4j.appender.CA.layout.ConversionPattern=[PORTAL] %-4r [%t] %-5p %c %x - %m%n + +# Display any warnings generated by our code +#log4j.category.org.globus=WARN + +# Comment out the line below if you want to log every authorization +# decision the notification consumer makes. +#log4j.category.org.globus.wsrf.impl.security.authorization.ServiceAuthorizationChain=ERROR + +log4j.logger.org.gcube=TRACE, GCUBE +log4j.appender.GCUBE.threshold=DEBUG +log4j.appender.GCUBE=org.apache.log4j.ConsoleAppender +log4j.appender.GCUBE.layout=org.apache.log4j.PatternLayout +log4j.appender.GCUBE.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} [%t,%M:%L] % +m%n + +log4j.logger.org.apache.jasper.compiler.TldLocationsCache.level=ERROR, CA +#AVOID LOGGING EHCACHE Hearbeat problem +log4j.logger.net.sf.ehcache.distribution.PayloadUtil=OFF, CA + +log4j.logger.org.gcube.portal.notifications=INFO, CA +log4j.logger.org.gcube.common.scope.impl=INFO, CA +log4j.logger.org.gcube.common.core.utils.events=INFO, CA +log4j.logger.org.gcube.portlets.user.homelibrary=INFO CA +log4j.logger.org.gcube.common.resources.kxml=ERROR, CA +log4j.logger.org.gcube.application.aquamaps.enhabling.Impl.ISCrawler=ERROR, CA +log4j.logger.com.netflix.astyanax.connectionpool.impl=ERROR, CA +log4j.logger.org.gcube.common.scope.impl=INFO, CA +log4j.logger.com.couchbase.client=ERROR, CA +log4j.logger.org.gcube.smartgears.handlers=INFO, CA +log4j.logger.org.gcube.informationsystem.publisher=INFO, CA +log4j.logger.org.gcube.application.framework.core.session=INFO, CA diff --git a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetBreadcrumbs.java b/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetBreadcrumbs.java deleted file mode 100644 index 97e0931..0000000 --- a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetBreadcrumbs.java +++ /dev/null @@ -1,228 +0,0 @@ -/** - * - */ -package org.gcube.portlets.widgets.wsexplorer.client; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.gcube.common.homelibrary.home.HomeLibrary; -import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException; -import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; -import org.gcube.common.homelibrary.home.exceptions.UserNotFoundException; -import org.gcube.common.homelibrary.home.workspace.Workspace; -import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; -import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.common.scope.impl.ScopeBean; -import org.gcube.portlets.widgets.wsexplorer.server.ItemBuilder; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; -import org.gcube.portlets.widgets.wsexplorer.shared.WorkspaceNavigatorServiceException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Jul 6, 2015 - */ -public class TestGetBreadcrumbs { - public static final Logger _log = LoggerFactory.getLogger(TestGetBreadcrumbs.class); - static Workspace workspace; - - public static void main(String[] args) throws WorkspaceNavigatorServiceException { - - ScopeBean scope = new ScopeBean("/gcube/devsec"); - ScopeProvider.instance.set(scope.toString()); - - try { - workspace = HomeLibrary - .getHomeManagerFactory() - .getHomeManager() - .getHome("francesco.mangiacrapa") - .getWorkspace(); - - System.out.println("Start get breadcrumb"); - - String parentLimit = "bef9b6b6-8479-4077-9f30-8dda8ed99180"; - -// 47494ea7-a095-41a0-9037-2a62611c410b - List parents = getBreadcrumbsByItemIdentifierToParentLimit("47494ea7-a095-41a0-9037-2a62611c410b", parentLimit, true); - - for (Item item : parents) { -// System.out.println(item); - System.out.println(item.getId() +" "+item.getName()); - } - - - } catch (WorkspaceFolderNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InternalErrorException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (HomeNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (UserNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - - public static List getBreadcrumbsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception { -// List listParents = new ArrayList(); - _log.trace("ListParents By Item Identifier "+ itemIdentifier); - try { - - WorkspaceItem wsItem = workspace.getItem(itemIdentifier); - _log.trace("workspace retrieve item name: "+wsItem.getName()); - List parents = workspace.getParentsById(itemIdentifier); - _log.trace("parents size: "+parents.size()); - Item[] arrayParents; - - if(includeItemAsParent==true && wsItem.isFolder()){ - arrayParents = new Item[parents.size()]; - arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null); - }else - arrayParents = new Item[parents.size()-1]; - - /** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER - * BUT RETURNING ONLY /MY_SPECIAL_FOLDER - */ - if(wsItem.isFolder()){ - if(ItemBuilder.isSpecialFolder((WorkspaceFolder) wsItem)) - return new ArrayList(Arrays.asList(arrayParents)); -// return listParents; - } - - //CONVERTING PATH - _log.trace("converting path from second-last.."); - for (int i = parents.size()-2; i >= 0; i--) { - WorkspaceFolder wsParentFolder = (WorkspaceFolder) parents.get(i); - arrayParents[i] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsParentFolder, null); - if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER - _log.info("arrayParents i-mo is special folder, exit"); - break; - } -// wsItem = wsParentFolder; - } - - //SET PARENTS - _log.trace("setting parents.."); - for(int i=0; i breadcrumbs = new ArrayList(arrayParents.length-1); - for (int i=1; i(Arrays.asList(arrayParents)); - - } catch (Exception e) { - _log.error("Error in get List Parents By Item Identifier ", e); - throw new Exception("Sorry, an error occurred during path retrieving!"); - } - } - - - /** - * Gets the parents by item identifier to limit. - * - * @param itemIdentifier - * the item identifier - * @param includeItemAsParent - * the include item as parent - * @return the parents by item identifier to limit - * @throws Exception - * the exception - */ - public static List getBreadcrumbsByItemIdentifierToParentLimit(String itemIdentifier, String parentLimit, boolean includeItemAsParent) throws Exception { - _log.trace("ListParents By Item Identifier " + itemIdentifier); - try { - - WorkspaceItem wsItem = workspace.getItem(itemIdentifier); - _log.trace("workspace retrieve item name: "+wsItem.getName()); - List parents = workspace.getParentsById(itemIdentifier); - _log.trace("parents size: "+parents.size()); - Item[] arrayParents; - - if(includeItemAsParent==true && wsItem.isFolder()){ - arrayParents = new Item[parents.size()]; - arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null); - }else - arrayParents = new Item[parents.size()-1]; - - /** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER - * BUT RETURNING ONLY /MY_SPECIAL_FOLDER - */ - if(wsItem.isFolder()){ - if(ItemBuilder.isSpecialFolder((WorkspaceFolder) wsItem)) - return new ArrayList(Arrays.asList(arrayParents)); -// return listParents; - } - - parentLimit = parentLimit!=null?parentLimit:""; - - //CONVERTING PATH - _log.trace("converting path from second-last.."); - for (int i = parents.size()-2; i >= 0; i--) { - WorkspaceFolder wsParentFolder = (WorkspaceFolder) parents.get(i); - arrayParents[i] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsParentFolder, null); - if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER - _log.info("arrayParents index "+i+" is special folder, break"); - break; - }else if(parentLimit.compareTo(arrayParents[i].getId())==0){ - _log.info("reached parent limit "+parentLimit+", break"); - break; - } - } - - //SET PARENTS - _log.trace("setting parents.."); - for(int i=0; i breadcrumbs = new ArrayList(); - for (int i=1; i(Arrays.asList(arrayParents)); - - } catch (Exception e) { - _log.error("Error in get List Parents By Item Identifier ", e); - throw new Exception("Sorry, an error occurred during path retrieving!"); - } - } - - - - -} diff --git a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java b/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java deleted file mode 100644 index bb63a22..0000000 --- a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetChildren.java +++ /dev/null @@ -1,98 +0,0 @@ -/** - * - */ -package org.gcube.portlets.widgets.wsexplorer.client; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import org.gcube.common.homelibrary.home.HomeLibrary; -import org.gcube.common.homelibrary.home.workspace.Workspace; -import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.common.scope.impl.ScopeBean; -import org.gcube.portlets.widgets.wsexplorer.server.ItemBuilder; -import org.gcube.portlets.widgets.wsexplorer.server.ItemComparator; -import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; -import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; -import org.gcube.portlets.widgets.wsexplorer.shared.WorkspaceNavigatorServiceException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Jul 6, 2015 - */ -public class TestGetChildren { - public static final Logger _log = LoggerFactory.getLogger(TestGetChildren.class); - - public static void main(String[] args) throws WorkspaceNavigatorServiceException { - List showableTypes = new ArrayList(); - showableTypes.addAll(Arrays.asList(ItemType.values())); - boolean purgeEmpyFolders = false; - List allowedMimeTypes = new ArrayList(); - Map requiredProperties = new HashMap(); - FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,null,null); - Item item = getRoot(showableTypes, purgeEmpyFolders, filterCriteria); - - for (Item child : item.getChildren()) { - System.out.println(child); - } - - } - - public static Item getRoot(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { - _log.trace("getRoot showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+ filterCriteria); - - try { - - ScopeBean scope = new ScopeBean("/gcube/devsec"); - ScopeProvider.instance.set(scope.toString()); - - Workspace workspace = HomeLibrary - .getHomeManagerFactory() - .getHomeManager() - .getHome("francesco.mangiacrapa") - .getWorkspace(); - // - _log.debug("Start getRoot..."); - - WorkspaceItem root = workspace.getRoot(); - - _log.debug("GetRoot - Replyiing root"); - long startTime = System.currentTimeMillis(); - _log.debug("start time - " + startTime); - - Item rootItem = ItemBuilder.getItem(null, root, root.getPath(),showableTypes, filterCriteria, true, false); - - if(rootItem==null) - throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get root"); - - rootItem.setName(WorkspaceExplorerConstants.HOME_LABEL); - - if (purgeEmpyFolders) rootItem = ItemBuilder.purgeEmptyFolders(rootItem); - - _log.debug("Returning:"); - Long endTime = System.currentTimeMillis() - startTime; - String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime)); - _log.debug("end time - " + time); - - Collections.sort(rootItem.getChildren(), new ItemComparator()); - _log.debug("Returning children size: "+rootItem.getChildren().size()); - - return rootItem; - - } catch (Exception e) { - _log.error("Error during root retrieving", e); - throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get root"); - } - } - -} diff --git a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetSize.java b/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetSize.java deleted file mode 100644 index 7b2d78b..0000000 --- a/src/test/java/org/gcube/portlets/widgets/wsexplorer/client/TestGetSize.java +++ /dev/null @@ -1,222 +0,0 @@ -/** - * - */ -package org.gcube.portlets.widgets.wsexplorer.client; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import org.gcube.common.homelibrary.home.HomeLibrary; -import org.gcube.common.homelibrary.home.workspace.Workspace; -import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; -import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; -import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder; -import org.gcube.common.homelibrary.home.workspace.folder.FolderItem; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.common.scope.impl.ScopeBean; -import org.gcube.portlets.widgets.wsexplorer.server.ItemBuilder; -import org.gcube.portlets.widgets.wsexplorer.server.ItemComparator; -import org.gcube.portlets.widgets.wsexplorer.server.StringUtil; -import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; -import org.gcube.portlets.widgets.wsexplorer.shared.Item; -import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; -import org.gcube.portlets.widgets.wsexplorer.shared.WorkspaceNavigatorServiceException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Jul 6, 2015 - */ -public class TestGetSize { - /** - * - */ - private static final String TEST_SCOPE = "/gcube/devsec"; - /** - * - */ - public static final String TEST_USER = "francesco.mangiacrapa"; - public static final Logger _log = LoggerFactory.getLogger(TestGetSize.class); - private static Workspace workspace; - - - - public static void main(String[] args) throws WorkspaceNavigatorServiceException { - List showableTypes = new ArrayList(); - showableTypes.addAll(Arrays.asList(ItemType.values())); - boolean purgeEmpyFolders = false; - List allowedMimeTypes = new ArrayList(); - Map requiredProperties = new HashMap(); - FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,null,null); - - - try { - - ScopeBean scope = new ScopeBean(TEST_SCOPE); - ScopeProvider.instance.set(scope.toString()); - workspace = HomeLibrary - .getHomeManagerFactory() - .getHomeManager() - .getHome(TEST_USER) - .getWorkspace(); - - for (WorkspaceItem child: workspace.getRoot().getChildren()){ - _log.debug("Child item: "+child); -// Item itemChild = getItem(item, child, showableTypes, filterCriteria, false); -// _log.debug("Item: "+itemName +" converted!!!"); -// if (itemChild!=null){ -// item.addChild(itemChild); -// } - } - - /* - Item mySpecial = getMySpecialFolder(showableTypes, false, filterCriteria); - - for (Item spf : mySpecial.getChildren()) { - String size = getReadableSizeByItemId(spf.getId()); - System.out.println(spf.getName() + ", size: "+size); - }*/ - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - getRoot(showableTypes, purgeEmpyFolders, filterCriteria); - - } - - - public static Item getRoot(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { - _log.trace("getRoot showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+ filterCriteria); - - try { - - _log.trace("Start getRoot..."); - - WorkspaceItem root = workspace.getRoot(); - - _log.trace("GetRoot - Replyiing root"); - long startTime = System.currentTimeMillis(); - _log.trace("start time - " + startTime); - - Item rootItem = ItemBuilder.getItem(null, root, root.getPath(), showableTypes, filterCriteria, true, false); - rootItem.setName(WorkspaceExplorerConstants.HOME_LABEL); - - /* SPECIAL FOLDERS - Item specialFolders = ItemBuilder.getItem(null, specials, showableTypes, filterCriteria, 2); - specialFolders.setShared(true); - rootItem.addChild(specialFolders); - */ - if (purgeEmpyFolders) rootItem = ItemBuilder.purgeEmptyFolders(rootItem); - - _log.trace("Returning:"); - Long endTime = System.currentTimeMillis() - startTime; - String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime)); - _log.info("end time - " + time); - - Collections.sort(rootItem.getChildren(), new ItemComparator()); - _log.info("Returning children size: "+rootItem.getChildren().size()); - - return rootItem; - - } catch (Exception e) { - _log.error("Error during root retrieving", e); - throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get root"); - } - } - - /** - * {@inheritDoc} - */ - - public static Item getMySpecialFolder(List showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { - _log.trace("GetMySpecialFolder showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria); - - try { - - WorkspaceItem folder = workspace.getMySpecialFolders(); - - long startTime = System.currentTimeMillis(); - _log.trace("start time - " + startTime); - - Item itemFolder = ItemBuilder.getItem(null, folder, folder.getPath(), showableTypes, filterCriteria, true, false); - itemFolder.setName(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL); - itemFolder.setSpecialFolder(true); - - _log.trace("Builded MySpecialFolder: "+itemFolder); - - _log.trace("Only showable types:"); - //printName("", folderItem); - - if (purgeEmpyFolders) itemFolder = ItemBuilder.purgeEmptyFolders(itemFolder); - - _log.trace("Returning:"); - - Long endTime = System.currentTimeMillis() - startTime; - String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime)); - _log.trace("end time - " + time); - - //printName("", folderItem); - - Collections.sort(itemFolder.getChildren(), new ItemComparator()); - - return itemFolder; - - } catch (Exception e) { - _log.error("Error during special folders retrieving", e); - throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get My Special Folder"); - } - } - - /* (non-Javadoc) - * @see org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService#loadSizeByItemId(java.lang.String) - */ - - public static Long getSizeByItemId(String itemId) throws Exception { - - _log.info("get Size By ItemId "+ itemId); - try { - - WorkspaceItem wsItem = workspace.getItem(itemId); - Long size = new Long(-1); - - if(wsItem instanceof FolderItem){ //ITEM - FolderItem folderItem = (FolderItem) wsItem; - size = new Long(folderItem.getLength()); - } else if (wsItem instanceof WorkspaceFolder ){ //FOLDER - WorkspaceFolder theFolder = (WorkspaceFolder) wsItem; - size = theFolder.getSize(); - } else if (wsItem instanceof WorkspaceSharedFolder){ //SHARED FOLDER - WorkspaceSharedFolder theFolder = (WorkspaceSharedFolder) wsItem; - size = theFolder.getSize(); - } - _log.info("returning size: " +size); - return size; - - } catch (Exception e) { - _log.error("get Size By ItemId ", e); - throw new Exception(e.getMessage()); - } - } - - - public static String getReadableSizeByItemId(String itemId) throws Exception { - - try{ - _log.info("getFormattedSize ByItemId "+ itemId); - long size = getSizeByItemId(itemId); - return StringUtil.readableFileSize(size); - } catch (Exception e) { - _log.error("getFormattedSize By ItemId ", e); - throw new Exception(e.getMessage()); - } - } - -}