draft working

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@167630 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2018-05-18 16:31:46 +00:00
parent f94e113479
commit 40572a77a4
40 changed files with 787 additions and 1219 deletions

View File

@ -28,5 +28,7 @@
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER/gwt-2.7.0"/>
<classpathentry kind="lib" path="/Users/massi/portal/liferay-portal-6.2-ce-ga6/gCube/lib/_fws/common-scope-maps-1.0.7-SNAPSHOT.jar"/>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>

29
pom.xml
View File

@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>workspace-explorer</artifactId> <artifactId>workspace-explorer</artifactId>
<version>1.8.0-SNAPSHOT</version> <version>2.0.0-SNAPSHOT</version>
<name>gCube Workspace Explorer</name> <name>gCube Workspace Explorer</name>
<description> <description>
gCube Workspace Explorer widget allows to navigate (gCube) Workspace gCube Workspace Explorer widget allows to navigate (gCube) Workspace
@ -23,12 +23,12 @@
</scm> </scm>
<properties> <properties>
<!-- Convenience property to set the GWT version --> <!-- Convenience property to set the GWT version -->
<gwtVersion>2.6.1</gwtVersion> <gwtVersion>2.7.0</gwtVersion>
<distroDirectory>distro</distroDirectory> <distroDirectory>distro</distroDirectory>
<!-- GWT needs at least java 1.6 --> <!-- GWT needs at least java 1.6 -->
<maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
<additionalparam>-Xdoclint:none</additionalparam>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -53,7 +53,11 @@
</dependencyManagement> </dependencyManagement>
<dependencies> <dependencies>
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>storagehub-client-library</artifactId>
<version>[1.0.0-SNAPSHOT,)</version>
</dependency>
<!-- Google Web Toolkit (GWT) --> <!-- Google Web Toolkit (GWT) -->
<dependency> <dependency>
<groupId>com.google.gwt</groupId> <groupId>com.google.gwt</groupId>
@ -87,22 +91,7 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- HOME LIBRARY -->
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>home-library-model</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>home-library-jcr</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>home-library</artifactId>
<scope>provided</scope>
</dependency>
<dependency> <dependency>
<groupId>org.gcube.dvos</groupId> <groupId>org.gcube.dvos</groupId>

View File

@ -16,7 +16,7 @@
<inherits name="com.github.gwtbootstrap.Bootstrap" /> <inherits name="com.github.gwtbootstrap.Bootstrap" />
<!-- Specify the app entry point class. --> <!-- Specify the app entry point class. -->
<!-- <entry-point class='org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerEntryPoint'/> --> <entry-point class='org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerEntryPoint'/>
<!-- Specify the paths for translatable code --> <!-- Specify the paths for translatable code -->
<source path='client' /> <source path='client' />

View File

@ -4,7 +4,7 @@
package org.gcube.portlets.widgets.wsexplorer.client; package org.gcube.portlets.widgets.wsexplorer.client;
import org.gcube.portlets.widgets.wsexplorer.client.resources.old.WorkspaceLightTreeResources; 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 org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.google.gwt.core.shared.GWT; import com.google.gwt.core.shared.GWT;
@ -67,7 +67,7 @@ public class Util {
* @param type the item type. * @param type the item type.
* @return the image. * @return the image.
*/ */
public static ImageResource getImage(Item item) public static ImageResource getImage(ItemDTO item)
{ {
if(item==null) if(item==null)
return null; return null;

View File

@ -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.Navigation;
import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer; import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; 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.ItemCategory;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
@ -70,7 +70,7 @@ public class WorkspaceExplorerController implements EventHandler {
bindEvents(); bindEvents();
//As default all items are showable and selectable //As default all items are showable and selectable
wsExplorer = new WorkspaceExplorer(eventBus, ItemType.values(), ItemType.values()); wsExplorer = new WorkspaceExplorer(eventBus, ItemType.values(), ItemType.values());
wsExplorer.initTable(new ListDataProvider<Item>()); wsExplorer.initTable(new ListDataProvider<ItemDTO>());
initExplorerPanel(heightPanel); initExplorerPanel(heightPanel);
} }
@ -86,7 +86,7 @@ public class WorkspaceExplorerController implements EventHandler {
bindEvents(); bindEvents();
//As default all items are showable and selectable //As default all items are showable and selectable
wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values(), null, false, null); wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values(), null, false, null);
wsExplorer.initTable(new ListDataProvider<Item>()); wsExplorer.initTable(new ListDataProvider<ItemDTO>());
initExplorerPanel(heightPanel); initExplorerPanel(heightPanel);
} }
@ -105,7 +105,7 @@ public class WorkspaceExplorerController implements EventHandler {
bindEvents(); bindEvents();
//As default all items are showable and selectable //As default all items are showable and selectable
wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values(), showProperties, false, null); wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values(), showProperties, false, null);
wsExplorer.initTable(new ListDataProvider<Item>()); wsExplorer.initTable(new ListDataProvider<ItemDTO>());
initExplorerPanel(heightPanel); initExplorerPanel(heightPanel);
} }
@ -133,8 +133,8 @@ public class WorkspaceExplorerController implements EventHandler {
if(loadFolderEvent.getTargetItem()!=null){ if(loadFolderEvent.getTargetItem()!=null){
if(loadFolderEvent.getTargetItem() instanceof Item){ if(loadFolderEvent.getTargetItem() instanceof ItemDTO){
Item item = (Item) loadFolderEvent.getTargetItem(); ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem();
if(item.isFolder()){ if(item.isFolder()){
try { try {
@ -168,7 +168,7 @@ public class WorkspaceExplorerController implements EventHandler {
@Override @Override
public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) {
eventBus.fireEvent(new LoadFolderEvent<Item>(breadcrumbClickEvent.getTargetItem())); eventBus.fireEvent(new LoadFolderEvent<ItemDTO>(breadcrumbClickEvent.getTargetItem()));
} }
}); });
@ -178,7 +178,7 @@ public class WorkspaceExplorerController implements EventHandler {
public void onLoadRoot(LoadRootEvent loadRootEvent) { public void onLoadRoot(LoadRootEvent loadRootEvent) {
wsExplorer.loadRoot(); wsExplorer.loadRoot();
WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback<ItemDTO>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -188,7 +188,7 @@ public class WorkspaceExplorerController implements EventHandler {
} }
@Override @Override
public void onSuccess(Item result) { public void onSuccess(ItemDTO result) {
result.setName(WorkspaceExplorerConstants.HOME_LABEL); //FORCE SET NAME LIKE "HOME_LABEL" result.setName(WorkspaceExplorerConstants.HOME_LABEL); //FORCE SET NAME LIKE "HOME_LABEL"
breadcrumbs.init(result); breadcrumbs.init(result);
navigation.setVisibleNewFolderFacility(true); navigation.setVisibleNewFolderFacility(true);
@ -212,8 +212,8 @@ public class WorkspaceExplorerController implements EventHandler {
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) { public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
if(clickItemEvent.getItem()!=null){ if(clickItemEvent.getItem()!=null){
if (clickItemEvent.getItem() instanceof Item) { if (clickItemEvent.getItem() instanceof ItemDTO) {
Item item = (Item) clickItemEvent.getItem(); ItemDTO item = (ItemDTO) clickItemEvent.getItem();
updateMoreInfo(item); updateMoreInfo(item);
} }
} }
@ -226,7 +226,7 @@ public class WorkspaceExplorerController implements EventHandler {
public void onLoadMySpecialFolder(LoadMySpecialFolderEvent loadMySpecialFolderEvent) { public void onLoadMySpecialFolder(LoadMySpecialFolderEvent loadMySpecialFolderEvent) {
wsExplorer.loadMySpecialFolder(); wsExplorer.loadMySpecialFolder();
WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback<ItemDTO>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -235,7 +235,7 @@ public class WorkspaceExplorerController implements EventHandler {
} }
@Override @Override
public void onSuccess(Item result) { public void onSuccess(ItemDTO result) {
breadcrumbs.init(result); breadcrumbs.init(result);
navigation.setVisibleNewFolderFacility(false); navigation.setVisibleNewFolderFacility(false);
clearMoreInfo(); clearMoreInfo();
@ -256,7 +256,7 @@ public class WorkspaceExplorerController implements EventHandler {
showMessage(AlertType.INFO, "Creating folder \""+folderName+"\""); showMessage(AlertType.INFO, "Creating folder \""+folderName+"\"");
WorkspaceExplorerConstants.workspaceNavigatorService.createFolder(folderName, "", breadcrumbs.getLastParent().getId(), new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.createFolder(folderName, "", breadcrumbs.getLastParent().getId(), new AsyncCallback<ItemDTO>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -267,7 +267,7 @@ public class WorkspaceExplorerController implements EventHandler {
} }
@Override @Override
public void onSuccess(Item result) { public void onSuccess(ItemDTO result) {
hideMessage(); hideMessage();
if(result!=null){ if(result!=null){
wsExplorer.addItemToExplorer(result); wsExplorer.addItemToExplorer(result);
@ -300,7 +300,7 @@ public class WorkspaceExplorerController implements EventHandler {
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]"); GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifier(itemIdentifier, includeItemAsParent, new AsyncCallback<List<Item>>() { WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifier(itemIdentifier, includeItemAsParent, new AsyncCallback<List<ItemDTO>>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -309,7 +309,7 @@ public class WorkspaceExplorerController implements EventHandler {
} }
@Override @Override
public void onSuccess(List<Item> result) { public void onSuccess(List<ItemDTO> result) {
if(result!=null){ if(result!=null){
breadcrumbs.setPath(result); breadcrumbs.setPath(result);
clearMoreInfo(); clearMoreInfo();
@ -330,7 +330,7 @@ public class WorkspaceExplorerController implements EventHandler {
* *
* @param item the item * @param item the item
*/ */
private void updateMoreInfo(Item item){ private void updateMoreInfo(ItemDTO item){
if(item!=null){ if(item!=null){
workspaceExplorerPanel.getSouthPanel().clear(); workspaceExplorerPanel.getSouthPanel().clear();
@ -469,7 +469,7 @@ public class WorkspaceExplorerController implements EventHandler {
* @param item the item * @param item the item
* @return true, if successful * @return true, if successful
*/ */
public boolean itemIsSelectable(Item item){ public boolean itemIsSelectable(ItemDTO item){
GWT.log("Selectable type: "+wsExplorer.getSelectableTypes()); GWT.log("Selectable type: "+wsExplorer.getSelectableTypes());
GWT.log("item: "+item); GWT.log("item: "+item);
if (item!=null){ if (item!=null){

View File

@ -1,53 +1,53 @@
//package org.gcube.portlets.widgets.wsexplorer.client; package org.gcube.portlets.widgets.wsexplorer.client;
//
//import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; 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.client.select.WorkspaceExplorerSelectDialog;
//import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
//
//import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.EntryPoint;
//import com.google.gwt.core.shared.GWT; import com.google.gwt.core.shared.GWT;
//
//
///** /**
// * Entry point classes define <code>onModuleLoad()</code>. * Entry point classes define <code>onModuleLoad()</code>.
// */ */
//public class WorkspaceExplorerEntryPoint implements EntryPoint { public class WorkspaceExplorerEntryPoint implements EntryPoint {
//
// /** /**
// * This is the entry point method. * This is the entry point method.
// */ */
// public void onModuleLoad() { public void onModuleLoad() {
//
// final WorkspaceExplorerSelectDialog navigator = new WorkspaceExplorerSelectDialog("WorkpspaceExplorer", false); final WorkspaceExplorerSelectDialog navigator = new WorkspaceExplorerSelectDialog("WorkpspaceExplorer", false);
//
// WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() { WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() {
//
// @Override @Override
// public void onSelectedItem(Item item) { public void onSelectedItem(ItemDTO item) {
// GWT.log("onSelectedItem: "+item); GWT.log("onSelectedItem: "+item);
// navigator.hide(); navigator.hide();
// } }
//
// @Override @Override
// public void onFailed(Throwable throwable) { public void onFailed(Throwable throwable) {
// GWT.log("onFailed.."); GWT.log("onFailed..");
//
// } }
//
// @Override @Override
// public void onAborted() { public void onAborted() {
// GWT.log("onAborted.."); GWT.log("onAborted..");
//
// } }
//
// @Override @Override
// public void onNotValidSelection() { public void onNotValidSelection() {
// GWT.log("onNotValidSelection.."); GWT.log("onNotValidSelection..");
//
// } }
// }; };
//
// navigator.addWorkspaceExplorerSelectNotificationListener(listener); navigator.addWorkspaceExplorerSelectNotificationListener(listener);
// navigator.show(); navigator.show();
// } }
//} }

View File

@ -1,6 +1,6 @@
package org.gcube.portlets.widgets.wsexplorer.client.event; 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; import com.google.gwt.event.shared.GwtEvent;
@ -13,7 +13,7 @@ import com.google.gwt.event.shared.GwtEvent;
*/ */
public class BreadcrumbClickEvent extends GwtEvent<BreadcrumbClickEventHandler> { public class BreadcrumbClickEvent extends GwtEvent<BreadcrumbClickEventHandler> {
public static Type<BreadcrumbClickEventHandler> TYPE = new Type<BreadcrumbClickEventHandler>(); public static Type<BreadcrumbClickEventHandler> TYPE = new Type<BreadcrumbClickEventHandler>();
private Item targetItem; private ItemDTO targetItem;
/** /**
@ -21,7 +21,7 @@ public class BreadcrumbClickEvent extends GwtEvent<BreadcrumbClickEventHandler>
* *
* @param target the target * @param target the target
*/ */
public BreadcrumbClickEvent(Item target) { public BreadcrumbClickEvent(ItemDTO target) {
this.targetItem = target; this.targetItem = target;
} }
@ -46,7 +46,7 @@ public class BreadcrumbClickEvent extends GwtEvent<BreadcrumbClickEventHandler>
* *
* @return the targetItem * @return the targetItem
*/ */
public Item getTargetItem() { public ItemDTO getTargetItem() {
return targetItem; return targetItem;
} }
@ -55,7 +55,7 @@ public class BreadcrumbClickEvent extends GwtEvent<BreadcrumbClickEventHandler>
* *
* @param targetItem the targetItem to set * @param targetItem the targetItem to set
*/ */
public void setTargetItem(Item targetItem) { public void setTargetItem(ItemDTO targetItem) {
this.targetItem = targetItem; this.targetItem = targetItem;
} }
} }

View File

@ -1,6 +1,6 @@
package org.gcube.portlets.widgets.wsexplorer.client.event; 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; import com.google.gwt.event.shared.GwtEvent;
@ -13,7 +13,7 @@ import com.google.gwt.event.shared.GwtEvent;
*/ */
public class BreadcrumbInitEvent extends GwtEvent<BreadcrumbInitEventHandler> { public class BreadcrumbInitEvent extends GwtEvent<BreadcrumbInitEventHandler> {
public static Type<BreadcrumbInitEventHandler> TYPE = new Type<BreadcrumbInitEventHandler>(); public static Type<BreadcrumbInitEventHandler> TYPE = new Type<BreadcrumbInitEventHandler>();
private Item targetItem; private ItemDTO targetItem;
/** /**
@ -21,7 +21,7 @@ public class BreadcrumbInitEvent extends GwtEvent<BreadcrumbInitEventHandler> {
* *
* @param target the target * @param target the target
*/ */
public BreadcrumbInitEvent(Item target) { public BreadcrumbInitEvent(ItemDTO target) {
this.targetItem = target; this.targetItem = target;
} }
@ -46,7 +46,7 @@ public class BreadcrumbInitEvent extends GwtEvent<BreadcrumbInitEventHandler> {
* *
* @return the targetItem * @return the targetItem
*/ */
public Item getTargetItem() { public ItemDTO getTargetItem() {
return targetItem; return targetItem;
} }
@ -55,7 +55,7 @@ public class BreadcrumbInitEvent extends GwtEvent<BreadcrumbInitEventHandler> {
* *
* @param targetItem the targetItem to set * @param targetItem the targetItem to set
*/ */
public void setTargetItem(Item targetItem) { public void setTargetItem(ItemDTO targetItem) {
this.targetItem = targetItem; this.targetItem = targetItem;
} }
} }

View File

@ -1,6 +1,6 @@
package org.gcube.portlets.widgets.wsexplorer.client.event; 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; import com.google.gwt.event.shared.GwtEvent;
@ -13,9 +13,9 @@ import com.google.gwt.event.shared.GwtEvent;
public class RootLoadedEvent extends GwtEvent<RootLoadedEventHandler> { public class RootLoadedEvent extends GwtEvent<RootLoadedEventHandler> {
public static Type<RootLoadedEventHandler> TYPE = new Type<RootLoadedEventHandler>(); public static Type<RootLoadedEventHandler> TYPE = new Type<RootLoadedEventHandler>();
private Item root; private ItemDTO root;
public RootLoadedEvent(Item root) { public RootLoadedEvent(ItemDTO root) {
this.root = root; this.root = root;
} }
@ -38,7 +38,7 @@ public class RootLoadedEvent extends GwtEvent<RootLoadedEventHandler> {
/** /**
* @return the root * @return the root
*/ */
public Item getRoot() { public ItemDTO getRoot() {
return root; return root;
} }

View File

@ -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.WorkspaceExplorer;
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.github.gwtbootstrap.client.ui.constants.AlertType;
@ -241,8 +241,8 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
setParameters(folderId, folderName, showProperties, filter); setParameters(folderId, folderName, showProperties, filter);
bindEvents(); 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 = 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>()); wsExplorer.initTable(new ListDataProvider<ItemDTO>());
Item item = new Item(folderId, folderName, true); ItemDTO item = new ItemDTO(folderId, folderName, true);
wsExplorer.loadFolder(item, true, -1, -1, false); wsExplorer.loadFolder(item, true, -1, -1, false);
initPanel(""); initPanel("");
} }
@ -274,7 +274,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
@Override @Override
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) { public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
isSelect = false; isSelect = false;
Item item = wsExplorer.getItemSelected(); ItemDTO item = wsExplorer.getItemSelected();
//Return if item is not selectable //Return if item is not selectable
if(!itemIsSelectable(item)){ if(!itemIsSelectable(item)){
@ -294,8 +294,8 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
if(loadFolderEvent.getTargetItem()!=null){ if(loadFolderEvent.getTargetItem()!=null){
if(loadFolderEvent.getTargetItem() instanceof Item){ if(loadFolderEvent.getTargetItem() instanceof ItemDTO){
Item item = (Item) loadFolderEvent.getTargetItem(); ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem();
if(item.isFolder()){ if(item.isFolder()){
try { try {
wsExplorer.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); wsExplorer.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true);
@ -315,7 +315,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
@Override @Override
public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) {
eventBus.fireEvent(new LoadFolderEvent<Item>(breadcrumbClickEvent.getTargetItem())); eventBus.fireEvent(new LoadFolderEvent<ItemDTO>(breadcrumbClickEvent.getTargetItem()));
} }
}); });
} }
@ -331,7 +331,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]"); GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback<List<Item>>() { WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback<List<ItemDTO>>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -340,7 +340,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
} }
@Override @Override
public void onSuccess(List<Item> result) { public void onSuccess(List<ItemDTO> result) {
if(result!=null){ if(result!=null){
notifyOnBreadcrumbChanged(result.get(result.size()-1)); notifyOnBreadcrumbChanged(result.get(result.size()-1));
breadcrumbs.setPath(result); breadcrumbs.setPath(result);
@ -355,8 +355,8 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
* Refresh root folder view. * Refresh root folder view.
*/ */
public void refreshRootFolderView(){ public void refreshRootFolderView(){
Item item = new Item(folderId, folderName, true); ItemDTO item = new ItemDTO(folderId, folderName, true);
eventBus.fireEvent(new LoadFolderEvent<Item>(item)); eventBus.fireEvent(new LoadFolderEvent<ItemDTO>(item));
} }
/** /**
@ -395,7 +395,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
* *
* @param selected the selected * @param selected the selected
*/ */
protected void notifySelectedItem(Item selected){ protected void notifySelectedItem(ItemDTO selected){
for (WorskpaceExplorerSelectBNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSelectBNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSelectedItem(selected); worskpaceExplorerNotificationListener.onSelectedItem(selected);
@ -408,7 +408,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
* *
* @param selected the selected * @param selected the selected
*/ */
protected void notifyOnBreadcrumbChanged(Item selected){ protected void notifyOnBreadcrumbChanged(ItemDTO selected){
for (WorskpaceExplorerSelectBNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSelectBNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onBreadcrumbChanged(selected); worskpaceExplorerNotificationListener.onBreadcrumbChanged(selected);
@ -495,7 +495,7 @@ public class WorkspaceResourcesBExplorerPanel extends DockPanel implements HasWo
* @param item the item * @param item the item
* @return true, if successful * @return true, if successful
*/ */
public boolean itemIsSelectable(Item item){ public boolean itemIsSelectable(ItemDTO item){
//GWT.log("Selectable type: "+wsExplorer.getSelectableTypes()); //GWT.log("Selectable type: "+wsExplorer.getSelectableTypes());
//GWT.log("item: "+item); //GWT.log("item: "+item);
if (item!=null){ if (item!=null){

View File

@ -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.WorkspaceExplorer;
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.github.gwtbootstrap.client.ui.constants.AlertType;
@ -212,8 +212,8 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
setParameters(folderId, folderName, showProperties, filter); setParameters(folderId, folderName, showProperties, filter);
bindEvents(); 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 = 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>()); wsExplorer.initTable(new ListDataProvider<ItemDTO>());
Item item = new Item(folderId, folderName, true); ItemDTO item = new ItemDTO(folderId, folderName, true);
wsExplorer.loadFolder(item, true, -1, -1, false); wsExplorer.loadFolder(item, true, -1, -1, false);
initPanel(""); initPanel("");
} }
@ -245,7 +245,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
@Override @Override
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) { public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
isSelect = false; isSelect = false;
Item item = wsExplorer.getItemSelected(); ItemDTO item = wsExplorer.getItemSelected();
//Return if item is not selectable //Return if item is not selectable
if(!itemIsSelectable(item)){ if(!itemIsSelectable(item)){
@ -265,8 +265,8 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
if(loadFolderEvent.getTargetItem()!=null){ if(loadFolderEvent.getTargetItem()!=null){
if(loadFolderEvent.getTargetItem() instanceof Item){ if(loadFolderEvent.getTargetItem() instanceof ItemDTO){
Item item = (Item) loadFolderEvent.getTargetItem(); ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem();
if(item.isFolder()){ if(item.isFolder()){
try { try {
wsExplorer.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); wsExplorer.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true);
@ -286,7 +286,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
@Override @Override
public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) {
eventBus.fireEvent(new LoadFolderEvent<Item>(breadcrumbClickEvent.getTargetItem())); eventBus.fireEvent(new LoadFolderEvent<ItemDTO>(breadcrumbClickEvent.getTargetItem()));
} }
}); });
} }
@ -302,7 +302,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]"); GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback<List<Item>>() { WorkspaceExplorerConstants.workspaceNavigatorService.getBreadcrumbsByItemIdentifierToParentLimit(itemIdentifier, folderId, includeItemAsParent, new AsyncCallback<List<ItemDTO>>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -311,7 +311,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
} }
@Override @Override
public void onSuccess(List<Item> result) { public void onSuccess(List<ItemDTO> result) {
if(result!=null){ if(result!=null){
breadcrumbs.setPath(result); breadcrumbs.setPath(result);
clearMoreInfo(); clearMoreInfo();
@ -325,8 +325,8 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
* Refresh root folder view. * Refresh root folder view.
*/ */
public void refreshRootFolderView(){ public void refreshRootFolderView(){
Item item = new Item(folderId, folderName, true); ItemDTO item = new ItemDTO(folderId, folderName, true);
eventBus.fireEvent(new LoadFolderEvent<Item>(item)); eventBus.fireEvent(new LoadFolderEvent<ItemDTO>(item));
} }
/** /**
@ -365,7 +365,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
* *
* @param selected the selected * @param selected the selected
*/ */
protected void notifySelectedItem(Item selected){ protected void notifySelectedItem(ItemDTO selected){
for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSelectedItem(selected); worskpaceExplorerNotificationListener.onSelectedItem(selected);
@ -451,7 +451,7 @@ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWor
* @param item the item * @param item the item
* @return true, if successful * @return true, if successful
*/ */
public boolean itemIsSelectable(Item item){ public boolean itemIsSelectable(ItemDTO item){
//GWT.log("Selectable type: "+wsExplorer.getSelectableTypes()); //GWT.log("Selectable type: "+wsExplorer.getSelectableTypes());
//GWT.log("item: "+item); //GWT.log("item: "+item);
if (item!=null){ if (item!=null){

View File

@ -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.WorkspaceExplorerPaginated;
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; 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.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.ItemType;
import com.google.gwt.core.shared.GWT; 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 = 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); wsExplorerPaginated.initPagination(ITEMS_PER_PAGE);
//wsExplorer.initTable(dataProvider); //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); wsExplorerPaginated.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true);
initPanel(""); initPanel("");
super.wsExplorer = wsExplorerPaginated; super.wsExplorer = wsExplorerPaginated;
@ -159,7 +159,7 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources
@Override @Override
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) { public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
isSelect = false; isSelect = false;
Item item = wsExplorerPaginated.getItemSelected(); ItemDTO item = wsExplorerPaginated.getItemSelected();
//Return if item is not selectable //Return if item is not selectable
if(!itemIsSelectable(item)){ if(!itemIsSelectable(item)){
notifyNotValidSelection(); notifyNotValidSelection();
@ -178,8 +178,8 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources
if(loadFolderEvent.getTargetItem()!=null){ if(loadFolderEvent.getTargetItem()!=null){
if(loadFolderEvent.getTargetItem() instanceof Item){ if(loadFolderEvent.getTargetItem() instanceof ItemDTO){
Item item = (Item) loadFolderEvent.getTargetItem(); ItemDTO item = (ItemDTO) loadFolderEvent.getTargetItem();
if(item.isFolder()){ if(item.isFolder()){
try { try {
wsExplorerPaginated.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true); wsExplorerPaginated.loadFolder(item, true, ITEM_START_INDEX, ITEMS_PER_PAGE, true);
@ -199,7 +199,7 @@ public class WorkspaceResourcesExplorerPanelPaginated extends WorkspaceResources
@Override @Override
public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) {
eventBus.fireEvent(new LoadFolderEvent<Item>(breadcrumbClickEvent.getTargetItem())); eventBus.fireEvent(new LoadFolderEvent<ItemDTO>(breadcrumbClickEvent.getTargetItem()));
} }
}); });
} }

View File

@ -3,7 +3,7 @@
*/ */
package org.gcube.portlets.widgets.wsexplorer.client.notification; 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 parent the parent
* @param fileName the file name * @param fileName the file name
*/ */
void onSaving(Item parent,String fileName); void onSaving(ItemDTO parent,String fileName);
/** /**
* On aborted. * On aborted.

View File

@ -3,7 +3,7 @@
*/ */
package org.gcube.portlets.widgets.wsexplorer.client.notification; 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 * @param item the item
*/ */
void onSelectedItem(Item item); void onSelectedItem(ItemDTO item);
/** /**
@ -62,7 +62,7 @@ public class WorkspaceExplorerSelectBNotification {
* *
* @param item the item * @param item the item
*/ */
void onBreadcrumbChanged(Item item); void onBreadcrumbChanged(ItemDTO item);
} }

View File

@ -3,7 +3,7 @@
*/ */
package org.gcube.portlets.widgets.wsexplorer.client.notification; 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 * @param item the item
*/ */
void onSelectedItem(Item item); void onSelectedItem(ItemDTO item);
/** /**

View File

@ -5,7 +5,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; 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.ItemCategory;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface; import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
@ -34,7 +34,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @throws Exception * @throws Exception
* the exception * the exception
*/ */
List<Item> getBreadcrumbsByItemIdentifier( List<ItemDTO> getBreadcrumbsByItemIdentifier(
String itemIdentifier, boolean includeItemAsParent) String itemIdentifier, boolean includeItemAsParent)
throws Exception; throws Exception;
@ -61,7 +61,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @return the folder * @return the folder
* @throws WorkspaceNavigatorServiceException the workspace navigator service exception * @throws WorkspaceNavigatorServiceException the workspace navigator service exception
*/ */
Item getFolder( ItemDTO getFolder(
ItemInterface item, List<ItemType> showableTypes, ItemInterface item, List<ItemType> showableTypes,
boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean purgeEmpyFolders, FilterCriteria filterCriteria,
boolean loadGcubeProperties) boolean loadGcubeProperties)
@ -80,7 +80,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @throws WorkspaceNavigatorServiceException * @throws WorkspaceNavigatorServiceException
* the workspace navigator service exception * the workspace navigator service exception
*/ */
Item getRoot( ItemDTO getRoot(
List<ItemType> showableTypes, boolean purgeEmpyFolders, List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria) FilterCriteria filterCriteria)
throws WorkspaceNavigatorServiceException; throws WorkspaceNavigatorServiceException;
@ -98,7 +98,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @throws WorkspaceNavigatorServiceException * @throws WorkspaceNavigatorServiceException
* the workspace navigator service exception * the workspace navigator service exception
*/ */
Item getMySpecialFolder( ItemDTO getMySpecialFolder(
List<ItemType> showableTypes, boolean purgeEmpyFolders, List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria) FilterCriteria filterCriteria)
throws WorkspaceNavigatorServiceException; throws WorkspaceNavigatorServiceException;
@ -112,7 +112,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @throws WorkspaceNavigatorServiceException * @throws WorkspaceNavigatorServiceException
* the workspace navigator service exception * the workspace navigator service exception
*/ */
Item getItemByCategory(ItemCategory category) ItemDTO getItemByCategory(ItemCategory category)
throws WorkspaceNavigatorServiceException; throws WorkspaceNavigatorServiceException;
/** /**
@ -172,7 +172,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @return the breadcrumbs by item identifier to parent limit * @return the breadcrumbs by item identifier to parent limit
* @throws Exception the exception * @throws Exception the exception
*/ */
List<Item> getBreadcrumbsByItemIdentifierToParentLimit( List<ItemDTO> getBreadcrumbsByItemIdentifierToParentLimit(
String itemIdentifier, String parentLimit, boolean includeItemAsParent) String itemIdentifier, String parentLimit, boolean includeItemAsParent)
throws Exception; throws Exception;
@ -185,7 +185,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @return the item * @return the item
* @throws Exception the exception * @throws Exception the exception
*/ */
Item createFolder(String nameFolder, String description, String parentId) ItemDTO createFolder(String nameFolder, String description, String parentId)
throws Exception; throws Exception;
@ -215,7 +215,7 @@ public interface WorkspaceExplorerService extends RemoteService {
* @throws WorkspaceNavigatorServiceException the workspace navigator service exception * @throws WorkspaceNavigatorServiceException the workspace navigator service exception
*/ */
SearchedFolder getFolder( SearchedFolder getFolder(
Item item, List<ItemType> showableTypesParam, boolean purgeEmpyFolders, ItemDTO item, List<ItemType> showableTypesParam, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, boolean loadGcubeProperties, FilterCriteria filterCriteria, boolean loadGcubeProperties,
int startIndex, int limit, int serverStartIndex) throws WorkspaceNavigatorServiceException; int startIndex, int limit, int serverStartIndex) throws WorkspaceNavigatorServiceException;
@ -226,6 +226,6 @@ public interface WorkspaceExplorerService extends RemoteService {
* @return the folder children count * @return the folder children count
* @throws WorkspaceNavigatorServiceException the workspace navigator service exception * @throws WorkspaceNavigatorServiceException the workspace navigator service exception
*/ */
int getFolderChildrenCount(Item item) throws WorkspaceNavigatorServiceException; int getFolderChildrenCount(ItemDTO item) throws WorkspaceNavigatorServiceException;
} }

View File

@ -8,7 +8,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria; 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.ItemCategory;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface; import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
@ -38,7 +38,7 @@ public interface WorkspaceExplorerServiceAsync {
*/ */
public void getRoot( public void getRoot(
List<ItemType> showableTypes, boolean purgeEmpyFolders, List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, AsyncCallback<Item> callback); FilterCriteria filterCriteria, AsyncCallback<ItemDTO> callback);
/** /**
* Check name. * Check name.
@ -64,7 +64,7 @@ public interface WorkspaceExplorerServiceAsync {
void getFolder( void getFolder(
ItemInterface item, List<ItemType> showableTypes, ItemInterface item, List<ItemType> showableTypes,
boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean purgeEmpyFolders, FilterCriteria filterCriteria,
boolean loadGcubeProperties, AsyncCallback<Item> callback); boolean loadGcubeProperties, AsyncCallback<ItemDTO> callback);
/** /**
* Gets the breadcrumbs by item identifier. * Gets the breadcrumbs by item identifier.
@ -79,7 +79,7 @@ public interface WorkspaceExplorerServiceAsync {
*/ */
public void getBreadcrumbsByItemIdentifier( public void getBreadcrumbsByItemIdentifier(
String itemIdentifier, boolean includeItemAsParent, String itemIdentifier, boolean includeItemAsParent,
AsyncCallback<List<Item>> asyncCallback); AsyncCallback<List<ItemDTO>> asyncCallback);
/** /**
* Gets the my special folder. * Gets the my special folder.
@ -96,7 +96,7 @@ public interface WorkspaceExplorerServiceAsync {
*/ */
public void getMySpecialFolder( public void getMySpecialFolder(
List<ItemType> showableTypes, boolean purgeEmpyFolders, List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, AsyncCallback<Item> asyncCallback); FilterCriteria filterCriteria, AsyncCallback<ItemDTO> asyncCallback);
/** /**
* Gets the item by category. * Gets the item by category.
@ -108,7 +108,7 @@ public interface WorkspaceExplorerServiceAsync {
* @return the item by category * @return the item by category
*/ */
public void getItemByCategory( public void getItemByCategory(
ItemCategory category, AsyncCallback<Item> asyncCallback); ItemCategory category, AsyncCallback<ItemDTO> asyncCallback);
/** /**
* Gets the size by item id. * Gets the size by item id.
@ -171,7 +171,7 @@ public interface WorkspaceExplorerServiceAsync {
*/ */
void getBreadcrumbsByItemIdentifierToParentLimit( void getBreadcrumbsByItemIdentifierToParentLimit(
String itemIdentifier, String parentLimit, boolean includeItemAsParent, String itemIdentifier, String parentLimit, boolean includeItemAsParent,
AsyncCallback<List<Item>> callback); AsyncCallback<List<ItemDTO>> callback);
/** /**
* Creates the folder. * Creates the folder.
@ -187,7 +187,7 @@ public interface WorkspaceExplorerServiceAsync {
*/ */
void createFolder( void createFolder(
String nameFolder, String description, String parentId, String nameFolder, String description, String parentId,
AsyncCallback<Item> callback); AsyncCallback<ItemDTO> callback);
/** /**
@ -216,7 +216,7 @@ public interface WorkspaceExplorerServiceAsync {
* @return the folder * @return the folder
*/ */
void getFolder( void getFolder(
Item item, List<ItemType> showableTypesParam, boolean purgeEmpyFolders, ItemDTO item, List<ItemType> showableTypesParam, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, boolean loadGcubeProperties, FilterCriteria filterCriteria, boolean loadGcubeProperties,
int startIndex, int limit, int serverStartIndex, AsyncCallback<SearchedFolder> asyncCallback); int startIndex, int limit, int serverStartIndex, AsyncCallback<SearchedFolder> asyncCallback);
@ -227,6 +227,6 @@ public interface WorkspaceExplorerServiceAsync {
* @param asyncCallback the async callback * @param asyncCallback the async callback
* @return the folder children count * @return the folder children count
*/ */
public void getFolderChildrenCount(Item item, AsyncCallback<Integer> asyncCallback); public void getFolderChildrenCount(ItemDTO item, AsyncCallback<Integer> asyncCallback);
} }

View File

@ -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.HasWorskpaceExplorerSaveNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.WorskpaceExplorerSaveNotificationListener; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.Button;
@ -195,7 +195,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
isSave = false; isSave = false;
Item item = controller.getWsExplorer().getItemSelected(); ItemDTO item = controller.getWsExplorer().getItemSelected();
//A FOLDER IS SELECTED //A FOLDER IS SELECTED
if (item != null && item.isFolder()) { if (item != null && item.isFolder()) {
@ -222,7 +222,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
return; return;
} }
Item itemB = controller.getBreadcrumbs().getLastParent(); ItemDTO itemB = controller.getBreadcrumbs().getLastParent();
GWT.log("last parent: "+itemB); GWT.log("last parent: "+itemB);
if (itemB != null) { if (itemB != null) {
if(itemB.isSpecialFolder()){ if(itemB.isSpecialFolder()){
@ -262,8 +262,8 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) { public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
if(clickItemEvent.getItem()!=null){ if(clickItemEvent.getItem()!=null){
if (clickItemEvent.getItem() instanceof Item) { if (clickItemEvent.getItem() instanceof ItemDTO) {
Item item = (Item) clickItemEvent.getItem(); ItemDTO item = (ItemDTO) clickItemEvent.getItem();
if(item!=null && !item.isFolder()) if(item!=null && !item.isFolder())
setFileName("New_"+item.getName()); setFileName("New_"+item.getName());
} }
@ -318,7 +318,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
* @param parent the parent * @param parent the parent
* @param fileName the file name * @param fileName the file name
*/ */
private void notifySaving(Item parent, String fileName) { private void notifySaving(ItemDTO parent, String fileName) {
for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSaving(parent, fileName); worskpaceExplorerNotificationListener.onSaving(parent, fileName);

View File

@ -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.HasWorskpaceExplorerSaveNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.WorskpaceExplorerSaveNotificationListener; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.Button;
@ -161,7 +161,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
isSave = false; isSave = false;
Item item = controller.getWsExplorer().getItemSelected(); ItemDTO item = controller.getWsExplorer().getItemSelected();
if (item != null && item.isFolder()) { if (item != null && item.isFolder()) {
@ -186,7 +186,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp
return; return;
} }
Item itemB = controller.getBreadcrumbs().getLastParent(); ItemDTO itemB = controller.getBreadcrumbs().getLastParent();
GWT.log("last parent: "+itemB); GWT.log("last parent: "+itemB);
if (itemB != null) { if (itemB != null) {
if(itemB.isSpecialFolder()){ if(itemB.isSpecialFolder()){
@ -231,8 +231,8 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) { public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
if(clickItemEvent.getItem()!=null){ if(clickItemEvent.getItem()!=null){
if (clickItemEvent.getItem() instanceof Item) { if (clickItemEvent.getItem() instanceof ItemDTO) {
Item item = (Item) clickItemEvent.getItem(); ItemDTO item = (ItemDTO) clickItemEvent.getItem();
if(item!=null && !item.isFolder()) if(item!=null && !item.isFolder())
setFileName("New_"+item.getName()); setFileName("New_"+item.getName());
} }
@ -276,7 +276,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp
* @param parent the parent * @param parent the parent
* @param fileName the file name * @param fileName the file name
*/ */
private void notifySaving(Item parent, String fileName) { private void notifySaving(ItemDTO parent, String fileName) {
for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSaving(parent, fileName); worskpaceExplorerNotificationListener.onSaving(parent, fileName);

View File

@ -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.HasWorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.Alert; import com.github.gwtbootstrap.client.ui.Alert;
@ -180,8 +180,8 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace
if(folderId==null || folderId.isEmpty()) if(folderId==null || folderId.isEmpty())
controller.getEventBus().fireEvent(new LoadRootEvent()); controller.getEventBus().fireEvent(new LoadRootEvent());
else{ else{
Item item = new Item(folderId, "", true); ItemDTO item = new ItemDTO(folderId, "", true);
controller.getEventBus().fireEvent(new LoadFolderEvent<Item>(item)); controller.getEventBus().fireEvent(new LoadFolderEvent<ItemDTO>(item));
} }
initDialog(captionTxt); initDialog(captionTxt);
} }
@ -217,7 +217,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
isSelect = false; isSelect = false;
Item item = controller.getWsExplorer().getItemSelected(); ItemDTO item = controller.getWsExplorer().getItemSelected();
boolean isSelectable = controller.itemIsSelectable(item); boolean isSelectable = controller.itemIsSelectable(item);
GWT.log("Item is selectable? "+isSelectable); GWT.log("Item is selectable? "+isSelectable);
if(item!=null && isSelectable){ if(item!=null && isSelectable){
@ -225,7 +225,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace
INSTANCE.hide(); INSTANCE.hide();
notifySelectedItem(item); notifySelectedItem(item);
}else if(item==null){ //IGNORING ITEM SELECT, CAN USE BREADCRUMBS? }else if(item==null){ //IGNORING ITEM SELECT, CAN USE BREADCRUMBS?
Item itemB = controller.getBreadcrumbs().getLastParent(); ItemDTO itemB = controller.getBreadcrumbs().getLastParent();
if(itemB!=null){ if(itemB!=null){
isSelectable = controller.itemIsSelectable(itemB); //BREADCRUMB IS SELECTABLE? isSelectable = controller.itemIsSelectable(itemB); //BREADCRUMB IS SELECTABLE?
if(isSelectable) if(isSelectable)
@ -247,7 +247,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace
* @param show the show * @param show the show
* @param item the item * @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{ try{
footer.remove(alertConfirm); footer.remove(alertConfirm);
}catch(Exception e){ }catch(Exception e){
@ -292,7 +292,7 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace
* *
* @param selected the selected * @param selected the selected
*/ */
private void notifySelectedItem(Item selected){ private void notifySelectedItem(ItemDTO selected){
for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSelectedItem(selected); worskpaceExplorerNotificationListener.onSelectedItem(selected);

View File

@ -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.HasWorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.Alert; import com.github.gwtbootstrap.client.ui.Alert;
@ -172,7 +172,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
@Override @Override
public void onClick(final ClickItemEvent clickItemEvent) { public void onClick(final ClickItemEvent clickItemEvent) {
isSelect = false; isSelect = false;
Item item = controller.getWsExplorer().getItemSelected(); ItemDTO item = controller.getWsExplorer().getItemSelected();
//Return if item is not selectable //Return if item is not selectable
if(!controller.itemIsSelectable(item)){ if(!controller.itemIsSelectable(item)){
@ -190,7 +190,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
@Override @Override
public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) { public void onBreadcrumbClick(BreadcrumbClickEvent breadcrumbClickEvent) {
isSelect = false; isSelect = false;
Item item = breadcrumbClickEvent.getTargetItem(); ItemDTO item = breadcrumbClickEvent.getTargetItem();
GWT.log("BreadcrumbClickEvent: "+item); GWT.log("BreadcrumbClickEvent: "+item);
//Return if item is not selectable //Return if item is not selectable
@ -278,8 +278,8 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
if(folderId==null || folderId.isEmpty()) if(folderId==null || folderId.isEmpty())
controller.getEventBus().fireEvent(new LoadRootEvent()); controller.getEventBus().fireEvent(new LoadRootEvent());
else{ else{
Item item = new Item(folderId, "", true); ItemDTO item = new ItemDTO(folderId, "", true);
controller.getEventBus().fireEvent(new LoadFolderEvent<Item>(item)); controller.getEventBus().fireEvent(new LoadFolderEvent<ItemDTO>(item));
} }
bindEvents(); bindEvents();
initPanel(captionTxt); initPanel(captionTxt);
@ -312,7 +312,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
* @param show the show * @param show the show
* @param item the item * @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{ try{
footerHP.remove(alertConfirm); footerHP.remove(alertConfirm);
}catch(Exception e){ }catch(Exception e){
@ -356,7 +356,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
* *
* @param selected the selected * @param selected the selected
*/ */
private void notifySelectedItem(Item selected){ private void notifySelectedItem(ItemDTO selected){
for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) { for (WorskpaceExplorerSelectNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSelectedItem(selected); worskpaceExplorerNotificationListener.onSelectedItem(selected);

View File

@ -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.BreadcrumbClickEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.BreadcrumbInitEvent; 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.github.gwtbootstrap.client.ui.NavLink;
import com.google.gwt.core.client.GWT; 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 class Breadcrumbs extends Composite {
public static final String DIVIDER = "/"; public static final String DIVIDER = "/";
private LinkedHashMap<String, Item> hashListItems = new LinkedHashMap<String, Item>();// Ordered-HashMap private LinkedHashMap<String, ItemDTO> hashListItems = new LinkedHashMap<String, ItemDTO>();// Ordered-HashMap
private Item lastParent; private ItemDTO lastParent;
private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class); private static BreadcrumbsUiBinder uiBinder = GWT.create(BreadcrumbsUiBinder.class);
@UiField @UiField
@ -82,10 +82,10 @@ public class Breadcrumbs extends Composite {
* @param parents * @param parents
* the new path * the new path
*/ */
public void setPath(List<Item> parents) { public void setPath(List<ItemDTO> parents) {
resetBreadcrumbs(); resetBreadcrumbs();
if (parents != null && parents.size() > 0) { if (parents != null && parents.size() > 0) {
for (Item parent : parents) { for (ItemDTO parent : parents) {
GWT.log("parent is: "+parent); GWT.log("parent is: "+parent);
if(parent!=null){ if(parent!=null){
addNavigationLink(parent); addNavigationLink(parent);
@ -102,7 +102,7 @@ public class Breadcrumbs extends Composite {
* @param item the item * @param item the item
* @return true, if is root or special folder * @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 root "+(item.getParent()==null));
GWT.log(item.getName() +" is special folder "+item.isSpecialFolder()); GWT.log(item.getName() +" is special folder "+item.isSpecialFolder());
return item.getParent()==null || item.isSpecialFolder(); return item.getParent()==null || item.isSpecialFolder();
@ -123,7 +123,7 @@ public class Breadcrumbs extends Composite {
* *
* @param parent the parent * @param parent the parent
*/ */
private void addNavigationLink(Item parent) { private void addNavigationLink(ItemDTO parent) {
if(parent==null) if(parent==null)
return; return;
@ -135,7 +135,7 @@ public class Breadcrumbs extends Composite {
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
Item target = hashListItems.get(navLink.getName()); ItemDTO target = hashListItems.get(navLink.getName());
// WorkspaceExplorerController.eventBus.fireEvent(new LoadFolderEvent(target)); // WorkspaceExplorerController.eventBus.fireEvent(new LoadFolderEvent(target));
eventBus.fireEvent(new BreadcrumbClickEvent(target)); eventBus.fireEvent(new BreadcrumbClickEvent(target));
} }
@ -160,7 +160,7 @@ public class Breadcrumbs extends Composite {
* *
* @return the last parent * @return the last parent
*/ */
public Item getLastParent() { public ItemDTO getLastParent() {
return lastParent; return lastParent;
} }
@ -170,7 +170,7 @@ public class Breadcrumbs extends Composite {
* *
* @param item the item * @param item the item
*/ */
public void init(Item item) { public void init(ItemDTO item) {
resetBreadcrumbs(); resetBreadcrumbs();
addNavigationLink(item); addNavigationLink(item);
hashListItems.put(item.getId(), item); hashListItems.put(item.getId(), item);

View File

@ -3,7 +3,7 @@
*/ */
package org.gcube.portlets.widgets.wsexplorer.client.view; 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 * @param resetStore the reset store. Used for pagination
* @throws Exception the exception * @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;
} }

View File

@ -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.LoadMySpecialFolderEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent; import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent;
import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources; 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 org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory;
import com.github.gwtbootstrap.client.ui.NavWidget; import com.github.gwtbootstrap.client.ui.NavWidget;
@ -65,10 +65,10 @@ public class Navigation extends Composite{
// getElement().getStyle().setMarginLeft(5.0, Unit.PX); // getElement().getStyle().setMarginLeft(5.0, Unit.PX);
home.setActive(true); home.setActive(true);
WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.HOME, new AsyncCallback<ItemDTO>() {
@Override @Override
public void onSuccess(Item result) { public void onSuccess(ItemDTO result) {
home.setText(result.getName()); home.setText(result.getName());
} }
@ -93,10 +93,10 @@ public class Navigation extends Composite{
vre_folder.setActive(true); vre_folder.setActive(true);
vre_folder.setBaseIcon(WorkspaceExplorerResources.CustomIconType.vre_folder); vre_folder.setBaseIcon(WorkspaceExplorerResources.CustomIconType.vre_folder);
WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getItemByCategory(ItemCategory.VRE_FOLDER, new AsyncCallback<ItemDTO>() {
@Override @Override
public void onSuccess(Item result) { public void onSuccess(ItemDTO result) {
vre_folder.setText(result.getName()); vre_folder.setText(result.getName());
} }

View File

@ -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;
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; 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.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.ItemType;
import com.github.gwtbootstrap.client.ui.Alert; import com.github.gwtbootstrap.client.ui.Alert;
@ -55,16 +55,16 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
protected FilterCriteria filterCriteria = null; protected FilterCriteria filterCriteria = null;
protected boolean showEmptyFolders = true; protected boolean showEmptyFolders = true;
protected ScrollPanel explorerPanel; protected ScrollPanel explorerPanel;
private ItemsTable<Item> itTables; private ItemsTable<ItemDTO> itTables;
private DISPLAY_FIELD[] displayFields; private DISPLAY_FIELD[] displayFields;
private DISPLAY_FIELD sortByColumn; private DISPLAY_FIELD sortByColumn;
private HandlerManager eventBus; private HandlerManager eventBus;
private Item displayingFolderItem; private ItemDTO displayingFolderItem;
private boolean showGcubeItemsInfo; private boolean showGcubeItemsInfo;
private List<String> displayProperties; private List<String> displayProperties;
private AbstractDataProvider<Item> dataProvider; private AbstractDataProvider<ItemDTO> dataProvider;
/** /**
* Instantiates a new workspace explorer - This is the base constructor. * 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 * @param dataProvider the new data provider table
*/ */
public void initTable(AbstractDataProvider<Item> dataProvider){ public void initTable(AbstractDataProvider<ItemDTO> dataProvider){
this.dataProvider = dataProvider; this.dataProvider = dataProvider;
this.itTables = new ItemsTable<Item>(eventBus, true, displayFields, displayProperties, showGcubeItemsInfo, sortByColumn); this.itTables = new ItemsTable<ItemDTO>(eventBus, true, displayFields, displayProperties, showGcubeItemsInfo, sortByColumn);
this.itTables.initTable(null, null, dataProvider); this.itTables.initTable(null, null, dataProvider);
} }
@ -189,7 +189,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
GWT.log("loading workspace tree from server"); GWT.log("loading workspace tree from server");
WorkspaceExplorerConstants.workspaceNavigatorService.getRoot(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getRoot(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback<ItemDTO>() {
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
Window.alert(caught.getMessage()); Window.alert(caught.getMessage());
@ -197,7 +197,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
GWT.log("Error loading workspace tree from server",caught); GWT.log("Error loading workspace tree from server",caught);
} }
public void onSuccess(Item item) { public void onSuccess(ItemDTO item) {
eventBus.fireEvent(new RootLoadedEvent(item)); eventBus.fireEvent(new RootLoadedEvent(item));
updateExplorer(item.getChildren()); updateExplorer(item.getChildren());
@ -212,7 +212,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @param item the new displaying folder item * @param item the new displaying folder item
*/ */
protected void setDisplayingFolderItem(Item item) { protected void setDisplayingFolderItem(ItemDTO item) {
this.displayingFolderItem = item; this.displayingFolderItem = item;
} }
@ -237,7 +237,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
// FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,requiredProperties, allowedFileExtensions); // FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,requiredProperties, allowedFileExtensions);
GWT.log("loading workspace tree from server"); GWT.log("loading workspace tree from server");
WorkspaceExplorerConstants.workspaceNavigatorService.getMySpecialFolder(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getMySpecialFolder(showableTypesParam, purgeEmpyFolders, filterCriteria, new AsyncCallback<ItemDTO>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -247,7 +247,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
} }
@Override @Override
public void onSuccess(Item item) { public void onSuccess(ItemDTO item) {
updateExplorer(item.getChildren()); updateExplorer(item.getChildren());
setDisplayingFolderItem(item); setDisplayingFolderItem(item);
@ -261,7 +261,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @param items the items * @param items the items
*/ */
protected void updateExplorer(ArrayList<Item> items){ protected void updateExplorer(ArrayList<ItemDTO> items){
GWT.log("workspace explorer updating.."); GWT.log("workspace explorer updating..");
explorerPanel.clear(); explorerPanel.clear();
// itTables = new ItemsTable(true, displayFields); // itTables = new ItemsTable(true, displayFields);
@ -276,7 +276,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @param item the item * @param item the item
*/ */
public void addItemToExplorer(Item item){ public void addItemToExplorer(ItemDTO item){
GWT.log("workspace explorer add item.."+item); GWT.log("workspace explorer add item.."+item);
// itTables = new ItemsTable(true, displayFields); // itTables = new ItemsTable(true, displayFields);
// explorerPanel.clear(); // explorerPanel.clear();
@ -321,7 +321,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @return the itTables * @return the itTables
*/ */
public ItemsTable<Item> getItTables() { public ItemsTable<ItemDTO> getItTables() {
return itTables; return itTables;
} }
@ -331,7 +331,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @return the item selected * @return the item selected
*/ */
public Item getItemSelected(){ public ItemDTO getItemSelected(){
return itTables.getSelectedItem(); return itTables.getSelectedItem();
} }
@ -392,7 +392,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @return the displayingFolderItem * @return the displayingFolderItem
*/ */
public Item getDisplayingFolderItem() { public ItemDTO getDisplayingFolderItem() {
return displayingFolderItem; return displayingFolderItem;
} }
@ -403,7 +403,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
* *
* @return the dataProvider * @return the dataProvider
*/ */
public AbstractDataProvider<Item> getDataProvider() { public AbstractDataProvider<ItemDTO> getDataProvider() {
return dataProvider; return dataProvider;
} }
@ -426,7 +426,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
*/ */
@Override @Override
public void loadFolder( public void loadFolder(
final Item item, boolean loadGcubeProperties, int startIdx, int limit, final ItemDTO item, boolean loadGcubeProperties, int startIdx, int limit,
boolean resetStore) boolean resetStore)
throws Exception { throws Exception {
@ -452,7 +452,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
// FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,requiredProperties, allowedFileExtensions); // FilterCriteria filterCriteria = new FilterCriteria(allowedMimeTypes,requiredProperties, allowedFileExtensions);
GWT.log("loading workspace folder by item id from server: "+item.getId()); GWT.log("loading workspace folder by item id from server: "+item.getId());
WorkspaceExplorerConstants.workspaceNavigatorService.getFolder(item, showableTypesParam, purgeEmpyFolders, filterCriteria, loadGcubeProperties, new AsyncCallback<Item>() { WorkspaceExplorerConstants.workspaceNavigatorService.getFolder(item, showableTypesParam, purgeEmpyFolders, filterCriteria, loadGcubeProperties, new AsyncCallback<ItemDTO>() {
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
@ -462,7 +462,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes, Folder
} }
@Override @Override
public void onSuccess(Item result) { public void onSuccess(ItemDTO result) {
if(item.getName()==null || item.getName().isEmpty()) if(item.getName()==null || item.getName().isEmpty())
item.setName(result.getName()); item.setName(result.getName());

View File

@ -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.ItemsTable.DISPLAY_FIELD;
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.SortedCellTable; 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.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.ItemType;
import org.gcube.portlets.widgets.wsexplorer.shared.SearchedFolder; import org.gcube.portlets.widgets.wsexplorer.shared.SearchedFolder;
@ -48,7 +48,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
private Boolean newLoading = false; private Boolean newLoading = false;
private MyCustomDataProvider<Item> dataProvider = new MyCustomDataProvider<Item>(); private MyCustomDataProvider<ItemDTO> dataProvider = new MyCustomDataProvider<ItemDTO>();
protected boolean loadGcubeProperties = false; protected boolean loadGcubeProperties = false;
@ -87,8 +87,8 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
* *
* @return the asycn data provider * @return the asycn data provider
*/ */
public AsyncDataProvider<Item> getAsycnDataProvider(){ public AsyncDataProvider<ItemDTO> getAsycnDataProvider(){
return (AsyncDataProvider<Item>) getCellTable().getDataProvider(); return (AsyncDataProvider<ItemDTO>) getCellTable().getDataProvider();
} }
/** /**
@ -96,7 +96,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
* *
* @return the cell tale * @return the cell tale
*/ */
public SortedCellTable<Item> getCellTable(){ public SortedCellTable<ItemDTO> getCellTable(){
return getItTables().getCellTable(); return getItTables().getCellTable();
} }
@ -104,7 +104,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
/* (non-Javadoc) /* (non-Javadoc)
* @see org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer#loadFolder(org.gcube.portlets.widgets.wsexplorer.shared.Item, boolean, int, int, boolean) * @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; newLoading = resetStore;
GWT.log("loading folder data for Item: "+item.getId()+" [startIdx: "+startIdx +", limit: "+limit+", resetStore:"+resetStore+"]"); GWT.log("loading folder data for Item: "+item.getId()+" [startIdx: "+startIdx +", limit: "+limit+", resetStore:"+resetStore+"]");
//super.loadFolder(item, loadGcubeProperties); //super.loadFolder(item, loadGcubeProperties);
@ -182,7 +182,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
* @param purgeEmpyFolders the purge empy folders * @param purgeEmpyFolders the purge empy folders
* @param showableTypesParam the showable types param * @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<ItemType> showableTypesParam){ private void perfomGetFolderChildren(final ItemDTO item, boolean loadGcubeProperties, final int startIdx, final int limit, final int serSI, boolean purgeEmpyFolders, List<ItemType> showableTypesParam){
GWT.log("loading workspace folder by item id from server: "+item.getId()); GWT.log("loading workspace folder by item id from server: "+item.getId());
SearchedFolder page = getCachePage(item, startIdx, limit); 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); getCellTable().setVisibleRangeAndClearData(new Range(result.getClientStartIndex(), WorkspaceExplorerConstants.ITEMS_PER_PAGE), false);
} }
SelectionModel<? super Item> sm = getCellTable().getSelectionModel(); SelectionModel<? super ItemDTO> sm = getCellTable().getSelectionModel();
if(sm instanceof SingleSelectionModel){ if(sm instanceof SingleSelectionModel){
SingleSelectionModel<Item> ssm = (SingleSelectionModel<Item>) sm; SingleSelectionModel<ItemDTO> ssm = (SingleSelectionModel<ItemDTO>) sm;
ssm.clear(); ssm.clear();
} }
@ -268,7 +268,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
* @param item the item * @param item the item
* @param result the result * @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()); String key = getCacheKey(item, result.getClientStartIndex(), result.getLimit());
@ -287,7 +287,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
* @param limit the limit * @param limit the limit
* @return the cache page * @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); String key = getCacheKey(item, startIdx, limit);
@ -303,7 +303,7 @@ public class WorkspaceExplorerPaginated extends WorkspaceExplorer{
* @param limit the limit * @param limit the limit
* @return the cache key * @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) if(item==null || startIdx<0 || limit< 0)
return null; return null;

View File

@ -8,7 +8,7 @@ import java.util.Map;
import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.Util;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources; 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.core.shared.GWT;
import com.google.gwt.dom.client.Style.Unit; 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 item the worksapce item id
* @param autoHide the auto hide * @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"); getElement().setClassName("gwt-DialogBoxNew");
dock.setSpacing(4); dock.setSpacing(4);
dock.setWidth("100%"); dock.setWidth("100%");

View File

@ -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.resources.WorkspaceExplorerResources;
import org.gcube.portlets.widgets.wsexplorer.client.view.SelectionItem; 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.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.github.gwtbootstrap.client.ui.Pagination;
import com.google.gwt.cell.client.ButtonCell; import com.google.gwt.cell.client.ButtonCell;
@ -49,7 +49,7 @@ import com.google.gwt.view.client.ListDataProvider;
* Feb 19, 2015 * Feb 19, 2015
* @param <T> the generic type * @param <T> the generic type
*/ */
public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implements SelectionItem{ public class ItemsTable<T extends ItemDTO> extends AbstractItemsCellTable<T> implements SelectionItem{
private Column<T, ImageResource> icon; private Column<T, ImageResource> icon;
private TextColumn<T> name; private TextColumn<T> name;
@ -173,7 +173,7 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
public String getValue(T object) { public String getValue(T object) {
if(object==null) if(object==null)
return ""; return "";
return ((Item) object).getName(); return ((ItemDTO) object).getName();
} }
//ADDING TOOLTIP //ADDING TOOLTIP
@ -181,7 +181,7 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
public void render(com.google.gwt.cell.client.Cell.Context context, T object, SafeHtmlBuilder sb) { public void render(com.google.gwt.cell.client.Cell.Context context, T object, SafeHtmlBuilder sb) {
if(object == null) if(object == null)
return; return;
sb.appendHtmlConstant("<div title=\""+((Item) object).getName()+"\">"); sb.appendHtmlConstant("<div title=\""+((ItemDTO) object).getName()+"\">");
super.render(context, object, sb); super.render(context, object, sb);
sb.appendHtmlConstant("</div>"); sb.appendHtmlConstant("</div>");
}; };
@ -193,7 +193,7 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
Comparator<T> c = new Comparator<T>() { Comparator<T> c = new Comparator<T>() {
@Override @Override
public int compare(T o1, T o2) { 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<T extends Item> extends AbstractItemsCellTable<T> implem
public String getValue(T object) { public String getValue(T object) {
if(object==null) if(object==null)
return ""; return "";
return ((Item) object).getOwner() != null ? ((Item) object).getOwner() : ""; return ((ItemDTO) object).getOwner() != null ? ((ItemDTO) object).getOwner() : "";
} }
}; };
@ -219,7 +219,7 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
Comparator<T> c = new Comparator<T>() { Comparator<T> c = new Comparator<T>() {
@Override @Override
public int compare(T o1, T o2) { 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); sortedCellTable.setComparator(owner, c);
@ -236,7 +236,7 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
public Date getValue(T object) { public Date getValue(T object) {
if(object==null) if(object==null)
return null; return null;
return ((Item) object).getCreationDate(); return ((ItemDTO) object).getCreationDate();
} }
}; };
sortedCellTable.addColumn(dateColumn, "Created", true); sortedCellTable.addColumn(dateColumn, "Created", true);
@ -251,8 +251,8 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
if(o2 == null || o2.getCreationDate()==null) if(o2 == null || o2.getCreationDate()==null)
return 1; return 1;
Date d1 = ((Item) o1).getCreationDate(); Date d1 = ((ItemDTO) o1).getCreationDate();
Date d2 = ((Item) o2).getCreationDate(); Date d2 = ((ItemDTO) o2).getCreationDate();
// GWT.log(d1.toString() + "is after "+d2.toString() +" ? "+d2.after(d1)); // GWT.log(d1.toString() + "is after "+d2.toString() +" ? "+d2.after(d1));
@ -276,9 +276,9 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
TextColumn<T> textColumn = new TextColumn<T>() { TextColumn<T> textColumn = new TextColumn<T>() {
@Override @Override
public String getValue(T object) { public String getValue(T object) {
Item extensionItem; ItemDTO extensionItem;
String value = null; String value = null;
if(object instanceof Item){ if(object instanceof ItemDTO){
extensionItem = object; extensionItem = object;
value = extensionItem.getGcubeProperties().get(column); value = extensionItem.getGcubeProperties().get(column);
} }
@ -292,14 +292,14 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
@Override @Override
public int compare(T o1, T o2) { public int compare(T o1, T o2) {
if(!(o1 instanceof Item)) if(!(o1 instanceof ItemDTO))
return -1; return -1;
if(!(o2 instanceof Item)) if(!(o2 instanceof ItemDTO))
return 1; return 1;
Item e1 = o1; ItemDTO e1 = o1;
Item e2 = o2; ItemDTO e2 = o2;
String v1 = e1.getGcubeProperties().get(column); String v1 = e1.getGcubeProperties().get(column);
String v2 = e2.getGcubeProperties().get(column); String v2 = e2.getGcubeProperties().get(column);
@ -348,7 +348,7 @@ public class ItemsTable<T extends Item> extends AbstractItemsCellTable<T> implem
Context context, Element elem, T object, NativeEvent event) { Context context, Element elem, T object, NativeEvent event) {
super.onBrowserEvent(context, elem, object, event); super.onBrowserEvent(context, elem, object, event);
if ("click".equals(event.getType())) { if ("click".equals(event.getType())) {
Item item = object; ItemDTO item = object;
DialogShowGcubeItem dg = new DialogShowGcubeItem("Gcube Properties for: "+item.getName(), null, item, true); 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.setPopupPosition(event.getClientX()-Integer.parseInt(dg.getElement().getStyle().getWidth()), event.getClientY());
dg.center(); dg.center();

View File

@ -10,17 +10,18 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.gcube.common.homelibary.model.items.type.WorkspaceItemType; import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; import org.gcube.common.storagehub.model.items.AbstractFileItem;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; import org.gcube.common.storagehub.model.items.FolderItem;
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder; import org.gcube.common.storagehub.model.items.Item;
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem; import org.gcube.common.storagehub.model.items.SharedFolder;
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile; import org.gcube.common.storagehub.model.items.VreFolder;
import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.Util;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; 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.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.ItemType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -40,18 +41,18 @@ public class ItemBuilder {
* @param item the item * @param item the item
* @return 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 //for (Item child:item.getChildren()) purgeEmptyFolders(child); ONLY FIRST LEVEL
List<Item> toRemoveList = new LinkedList<Item>(); List<ItemDTO> toRemoveList = new LinkedList<ItemDTO>();
for (Item child:item.getChildren()) { for (ItemDTO child:item.getChildren()) {
boolean toRemove = isAnEmptyFolder(child); boolean toRemove = isAnEmptyFolder(child);
if (toRemove) { if (toRemove) {
toRemoveList.add(child); toRemoveList.add(child);
} }
} }
for (Item child:toRemoveList) { for (ItemDTO child:toRemoveList) {
item.removeChild(child); item.removeChild(child);
} }
@ -65,7 +66,7 @@ public class ItemBuilder {
* @param item the item * @param item the item
* @return true, if is an empty folder * @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; return Util.isFolder(item.getType()) && item.getChildren().size() == 0;
} }
@ -84,8 +85,9 @@ public class ItemBuilder {
* @return the item * @return the item
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
*/ */
public static Item getItem(Item parent, WorkspaceItem workspaceItem, String workspaceItemPath, List<ItemType> showableTypes, FilterCriteria filterCriteria, boolean loadChildren, boolean loadGcubeProperties) throws InternalErrorException public static ItemDTO getItem(ItemDTO parent, Item workspaceItem, String workspaceItemPath,
{ List<ItemType> showableTypes, FilterCriteria filterCriteria,
boolean loadChildren, boolean loadGcubeProperties) {
ItemType type = getItemType(workspaceItem); ItemType type = getItemType(workspaceItem);
@ -96,30 +98,25 @@ public class ItemBuilder {
return null; return null;
} }
// //TODO ADD CONTROL ON THE PATH WHEN WILL BE MORE FAST // //TODO ADD CONTROL ON THE PATH WHEN WILL BE MORE FAST
// if (itemName.equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL)) // if (itemName.equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL))
// itemName = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL; // itemName = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL;
boolean isFolder = type.equals(ItemType.FOLDER)?true:false; boolean isFolder = type.equals(ItemType.PRIVATE_FOLDER)?true:false;
boolean isSharedFolder = workspaceItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)?true:false; boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false;
String itemName = workspaceItem.getName(); String itemName = workspaceItem.getName();
if(isSharedFolder){ if(isSharedFolder){
logger.debug("Is shared folder: "+workspaceItem.getName()); logger.info("Is shared folder: "+workspaceItem.getTitle());
WorkspaceSharedFolder shared = (WorkspaceSharedFolder) workspaceItem; SharedFolder shared = (SharedFolder) workspaceItem;
itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getName(); itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getTitle();
} }
// _log.debug("Building Item for: "+itemName); // _log.debug("Building Item for: "+itemName);
Item item = null; ItemDTO item = null;
try{ try{
//THIS CALL IS VERY SLOW!! item = new ItemDTO(parent, workspaceItem.getId(), itemName, type, workspaceItemPath, UserUtil.getUserFullName(workspaceItem.getOwner()), toDate(workspaceItem.getCreationTime()), isFolder, false);
// 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.setSharedFolder(isSharedFolder); item.setSharedFolder(isSharedFolder);
if(loadGcubeProperties){ if(loadGcubeProperties){
@ -132,16 +129,14 @@ public class ItemBuilder {
} }
if(loadChildren){ if(loadChildren){
//TODO A PATCH TO AVOID A SLOW GETPATH String itemId = item.getId();
// workspaceItemPath = workspaceItem.getPath(); ItemManagerClient client = AbstractPlugin.item().build();
for (WorkspaceItem child: workspaceItem.getChildren()){ List<? extends Item> theChildren = null;
theChildren = client.getChildren(itemId, Whorespace.ACCOUNTING_HL_NODE_NAME);
for (Item child : theChildren) {
String itemPath = workspaceItemPath+"/"+child.getName(); String itemPath = workspaceItemPath+"/"+child.getName();
// if(child.isFolder()) ItemDTO itemChild = getItem(item, child, itemPath, showableTypes, filterCriteria, false, loadGcubeProperties);
// itemPath+="/"+child.getName(); logger.trace("Item: "+child.getName() +" converted!!!");
// _log.trace("\nConverting child item: "+child.getName());
Item itemChild = getItem(item, child, itemPath, showableTypes, filterCriteria, false, loadGcubeProperties);
// _log.trace("Item: "+child.getName() +" converted!!!");
if (itemChild!=null){ if (itemChild!=null){
item.addChild(itemChild); item.addChild(itemChild);
} }
@ -168,7 +163,9 @@ public class ItemBuilder {
* @return the item * @return the item
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
*/ */
public static Item getItem(Item parent, WorkspaceItem workspaceItem, String workspaceItemPath, List<ItemType> showableTypes, FilterCriteria filterCriteria, boolean loadChildren, boolean loadGcubeProperties, int startIdx, int limit) throws InternalErrorException { public static ItemDTO getItem(ItemDTO parent, Item workspaceItem, String workspaceItemPath,
List<ItemType> showableTypes, FilterCriteria filterCriteria,
boolean loadChildren, boolean loadGcubeProperties, int startIdx, int limit) {
ItemType type = getItemType(workspaceItem); ItemType type = getItemType(workspaceItem);
@ -178,31 +175,27 @@ public class ItemBuilder {
if (!filterItem(type, workspaceItem, filterCriteria)) { if (!filterItem(type, workspaceItem, filterCriteria)) {
return null; return null;
} }
boolean isFolder = type.equals(ItemType.PRIVATE_FOLDER)?true:false;
// //TODO ADD CONTROL ON THE PATH WHEN WILL BE MORE FAST boolean isSharedFolder = (type.equals(ItemType.SHARED_FOLDER) || type.equals(ItemType.VRE_FOLDER )) ? true : false;
// 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;
String itemName = workspaceItem.getName(); String itemName = workspaceItem.getName();
if(isSharedFolder){ if(isSharedFolder){
logger.debug("Is shared folder: "+workspaceItem.getName()); logger.info("Is shared folder: "+workspaceItem.getTitle());
WorkspaceSharedFolder shared = (WorkspaceSharedFolder) workspaceItem; SharedFolder shared = (SharedFolder) workspaceItem;
itemName = shared.isVreFolder()?shared.getDisplayName():workspaceItem.getName(); 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{ try{
//THIS CALL IS VERY SLOW!! //THIS CALL IS VERY SLOW!!
// String storageID = null; // String storageID = null;
// if(workspaceItem instanceof FolderItem){ // if(workspaceItem instanceof FolderItem){
// storageID = workspaceItem.getStorageID(); // 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); item.setSharedFolder(isSharedFolder);
if(loadGcubeProperties){ if(loadGcubeProperties){
@ -215,10 +208,14 @@ public class ItemBuilder {
} }
if(loadChildren){ if(loadChildren){
WorkspaceFolder folder = (WorkspaceFolder) workspaceItem; String itemId = item.getId();
for (WorkspaceItem child: folder.getChildren(limit, startIdx, false)){ ItemManagerClient client = AbstractPlugin.item().build();
List<? extends Item> theChildren = null;
theChildren = client.getChildren(itemId, Whorespace.ACCOUNTING_HL_NODE_NAME);
for (Item child : theChildren) {
String itemPath = workspaceItemPath+"/"+child.getName(); 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){ if (itemChild!=null){
item.addChild(itemChild); item.addChild(itemChild);
} }
@ -235,20 +232,16 @@ public class ItemBuilder {
* @return the item type * @return the item type
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
*/ */
protected static ItemType getItemType(WorkspaceItem item) throws InternalErrorException protected static ItemType getItemType(Item item) {
{ if (item instanceof AbstractFileItem) {
switch(item.getType()) return ItemType.EXTERNAL_FILE;
{
case SHARED_FOLDER:
case FOLDER:{
// if (item.isRoot()) return ItemType.ROOT;
return ItemType.FOLDER;
}
case FOLDER_ITEM: return getFolderItemType((FolderItem) item);
default:
return null;
} }
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 * @param item the item
* @return the folder item type * @return the folder item type
*/ */
protected static ItemType getFolderItemType(FolderItem item){ protected static ItemType getFolderItemType(Item item){
if (item instanceof SharedFolder || item instanceof VreFolder) {
try{ SharedFolder folder = (SharedFolder) item;
return ItemType.valueOf(item.getFolderItemType().toString()); if (folder.isVreFolder())
}catch (Exception e) { return ItemType.VRE_FOLDER;
logger.warn("Item Type non found: ", e.getMessage()); return ItemType.SHARED_FOLDER;
return ItemType.UNKNOWN_TYPE; } 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 * @return true, if successful
* @throws InternalErrorException the internal error exception * @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) { if(filterCriteria==null) {
return true; return true;
} }
@ -304,14 +300,13 @@ public class ItemBuilder {
* @param allowedMimeTypes the allowed mime types * @param allowedMimeTypes the allowed mime types
* @return true, if successful * @return true, if successful
*/ */
protected static boolean checkAllowedMimeTypes(ItemType type, WorkspaceItem item, List<String> allowedMimeTypes){ protected static boolean checkAllowedMimeTypes(ItemType type, Item item, List<String> allowedMimeTypes){
if (allowedMimeTypes==null || allowedMimeTypes.size()==0) { if (allowedMimeTypes==null || allowedMimeTypes.size()==0) {
return true; return true;
} }
if (type == ItemType.EXTERNAL_FILE || type == ItemType.EXTERNAL_IMAGE || type == ItemType.EXTERNAL_PDF_FILE) { if (type == ItemType.EXTERNAL_FILE) {
ExternalFile externalFile = (ExternalFile)item; String mimeType = "unknown"; //TODO
String mimeType = externalFile.getMimeType();
return allowedMimeTypes.contains(mimeType); return allowedMimeTypes.contains(mimeType);
} }
return true; return true;
@ -328,18 +323,18 @@ public class ItemBuilder {
* @param allowedFileExtension the allowed mime types * @param allowedFileExtension the allowed mime types
* @return true, if successful * @return true, if successful
*/ */
protected static boolean checkAllowedFileExtension(ItemType type, WorkspaceItem item, List<String> allowedFileExtension){ protected static boolean checkAllowedFileExtension(ItemType type, Item item, List<String> allowedFileExtension){
if (allowedFileExtension==null || allowedFileExtension.size()==0) { if (allowedFileExtension==null || allowedFileExtension.size()==0) {
return true; return true;
} }
try { try {
if (type != ItemType.FOLDER) { if (item instanceof FolderItem) {
String name = item.getName(); String name = item.getName();
return checkFileExtension(name, allowedFileExtension); return checkFileExtension(name, allowedFileExtension);
} }
return true; return true;
} catch (InternalErrorException e) { } catch (Exception e) {
logger.error("checkAllowedFileExtension, InternalErrorException: ",e); logger.error("checkAllowedFileExtension, InternalErrorException: ",e);
return false; return false;
} }
@ -363,8 +358,8 @@ public class ItemBuilder {
String ext = fileName.substring(dot+1, fileName.length()); String ext = fileName.substring(dot+1, fileName.length());
logger.trace("Extension found: "+ext +" for: "+fileName); logger.trace("Extension found: "+ext +" for: "+fileName);
// if(ext.isEmpty()) // if(ext.isEmpty())
// return false; // return false;
for (String fe : allowedFileExtension) { for (String fe : allowedFileExtension) {
if(ext.compareTo(fe)==0) { if(ext.compareTo(fe)==0) {
return true; return true;
@ -385,9 +380,9 @@ public class ItemBuilder {
* @return true, if successful * @return true, if successful
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
*/ */
protected static boolean checkProperties(WorkspaceItem item, Map<String, String> requestedProperties) throws InternalErrorException protected static boolean checkProperties(Item item, Map<String, String> requestedProperties)
{ {
if (requestedProperties==null || requestedProperties.size()==0 || item.getType()!=WorkspaceItemType.FOLDER_ITEM) { if (requestedProperties==null || requestedProperties.size()==0 || (item instanceof FolderItem)) {
return true; return true;
} }
@ -417,15 +412,16 @@ public class ItemBuilder {
* @return the gcube properties for item * @return the gcube properties for item
* @throws InternalErrorException the internal error exception * @throws InternalErrorException the internal error exception
*/ */
protected static Map<String,String> getGcubePropertiesForItem(WorkspaceItem item) throws InternalErrorException{ protected static Map<String,String> getGcubePropertiesForItem(Item item) {
return null;
try { //TODO: see how to return this later
return item.getProperties().getProperties(); // try {
} // return item.getProperties().getProperties();
catch (InternalErrorException e) { // }
logger.warn("An error occurred during get properties for item: "+item.getId()+", returning null"); // catch (InternalErrorException e) {
return null; // 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 * @return the item
* @throws InternalErrorException the internal error exception * @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 = ""; String name = "";
boolean isSpecialFolder = false; boolean isSpecialFolder = false;
boolean isRoot = false; boolean isRoot = false;
if(wsFolder.isRoot()){ //IS ROOT if(wsFolder.getParentId() == null){ //IS ROOT
name = WorkspaceExplorerConstants.HOME_LABEL; name = WorkspaceExplorerConstants.HOME_LABEL;
isRoot = true; isRoot = true;
}else if(wsFolder.isShared() && wsFolder.getType().equals(WorkspaceItemType.SHARED_FOLDER)){ //MANAGEMENT SHARED FOLDER NAME }else if(wsFolder.isShared()){ //MANAGEMENT SHARED FOLDER NAME
WorkspaceSharedFolder shared = (WorkspaceSharedFolder) wsFolder; SharedFolder shared = (SharedFolder) wsFolder;
name = shared.isVreFolder()?shared.getDisplayName():wsFolder.getName(); name = shared.isVreFolder()?shared.getDisplayName():shared.getTitle();
//MANAGEMENT SPECIAL FOLDER //MANAGEMENT SPECIAL FOLDER
}else if(isSpecialFolder(wsFolder)){ }else if(isSpecialFolder(wsFolder)){
name = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL; name = WorkspaceExplorerConstants.VRE_FOLDERS_LABEL;
isSpecialFolder = true; isSpecialFolder = true;
@ -461,7 +457,7 @@ public class ItemBuilder {
//BUILDS A SIMPLE ITEM FOR BREADCRUMB //BUILDS A SIMPLE ITEM FOR BREADCRUMB
String path = null; //wsFolder.getPath(); FORCED TO NULL BECAUSE IS SLOW CALL 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); item.setSpecialFolder(isSpecialFolder);
logger.debug("breadcrumb returning: "+item); logger.debug("breadcrumb returning: "+item);
@ -474,14 +470,8 @@ public class ItemBuilder {
* @param wsFolder the ws folder * @param wsFolder the ws folder
* @return true, if is special folder * @return true, if is special folder
*/ */
public static boolean isSpecialFolder(WorkspaceFolder wsFolder){ public static boolean isSpecialFolder(FolderItem wsFolder){
return (wsFolder.getName().compareTo("MySpecialFolder") == 0);
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;
}
} }

View File

@ -7,20 +7,20 @@ import java.util.Comparator;
import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.Util;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants; 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. * 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" * @author "Federico De Faveri defaveri@isti.cnr.it"
*/ */
public class ItemComparator implements Comparator<Item> { public class ItemComparator implements Comparator<ItemDTO> {
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @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 //if one of the item is folder and the other one not, we move up the folder
boolean isItem1Folder = Util.isFolder(item1.getType()); boolean isItem1Folder = Util.isFolder(item1.getType());
@ -36,7 +36,7 @@ public class ItemComparator implements Comparator<Item> {
return String.CASE_INSENSITIVE_ORDER.compare(item1.getName(), item2.getName()); 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.getParent()!=null && item.getParent().isRoot();
return item.getName().equals(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL) && item.isSpecialFolder(); return item.getName().equals(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL) && item.isSpecialFolder();
} }

View File

@ -3,30 +3,24 @@ package org.gcube.portlets.widgets.wsexplorer.server;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.gcube.common.homelibary.model.items.type.WorkspaceItemType; import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
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.portal.PortalContext; 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.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService; 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.FilterCriteria;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory; 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.ItemInterface;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType; import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import org.gcube.portlets.widgets.wsexplorer.shared.SearchedFolder; 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 class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implements WorkspaceExplorerService {
public static final Logger logger = LoggerFactory.getLogger(WorkspaceExplorerServiceImpl.class); 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} * {@inheritDoc}
*/ */
@Override @Override
public Item getRoot(List<ItemType> showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { public ItemDTO getRoot(List<ItemType> showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException {
logger.trace("getRoot showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+ filterCriteria); logger.trace("getRoot showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+ filterCriteria);
try { try {
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);
Workspace workspace = getWorkspace();
logger.trace("Start getRoot..."); logger.trace("Start getRoot...");
Item root = Whorespace.getRoot(getThreadLocalRequest());
WorkspaceItem root = workspace.getRoot();
logger.trace("GetRoot - Replyiing root"); logger.trace("GetRoot - Replyiing root");
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
logger.trace("start time - " + startTime); 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.setName(WorkspaceExplorerConstants.HOME_LABEL);
rootItem.setIsRoot(true); rootItem.setIsRoot(true);
/* SPECIAL FOLDERS
Item specialFolders = ItemBuilder.getItem(null, specials, showableTypes, filterCriteria, 2);
specialFolders.setShared(true);
rootItem.addChild(specialFolders);
*/
if (purgeEmpyFolders) { if (purgeEmpyFolders) {
rootItem = ItemBuilder.purgeEmptyFolders(rootItem); rootItem = ItemBuilder.purgeEmptyFolders(rootItem);
} }
@ -124,20 +89,22 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @Override
public Item getFolder(ItemInterface item, List<ItemType> showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties) throws WorkspaceNavigatorServiceException { public ItemDTO getFolder(ItemInterface item, List<ItemType> showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria, boolean loadGcubeProperties) throws WorkspaceNavigatorServiceException {
logger.trace("getFolder folderId: "+item.getId()+" showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria); logger.trace("getFolder folderId: "+item.getId()+" showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria);
try { try {
Workspace workspace = getWorkspace(); PortalContext pContext = PortalContext.getConfiguration();
WorkspaceItem folder = workspace.getItem(item.getId()); 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"); logger.trace("GetFolder - Replying folder");
long startTime = System.currentTimeMillis();
logger.trace("start time - " + startTime);
//TO AVOID SLOW CALL getPATH() //TO AVOID SLOW CALL getPATH()
String folderPath = item.getPath()!=null && !item.getPath().isEmpty()?item.getPath():folder.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:"); // _log.trace("Only showable types:");
if (purgeEmpyFolders) { if (purgeEmpyFolders) {
@ -145,9 +112,6 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
} }
Collections.sort(itemFolder.getChildren(), new ItemComparator()); 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()); logger.info("Returning children size: "+itemFolder.getChildren().size());
return itemFolder; return itemFolder;
@ -169,28 +133,34 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* @throws WorkspaceNavigatorServiceException the workspace navigator service exception * @throws WorkspaceNavigatorServiceException the workspace navigator service exception
*/ */
@Override @Override
public Item getItemByCategory(ItemCategory category) throws WorkspaceNavigatorServiceException{ public ItemDTO getItemByCategory(ItemCategory category) throws WorkspaceNavigatorServiceException{
logger.trace("GetItemByCategory category: "+category); 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 { try {
Workspace workspace = getWorkspace();
Item item = null; ItemDTO item = null;
switch(category){ switch(category){
case HOME:{ case HOME:{
WorkspaceItem root = workspace.getRoot(); Item root = Whorespace.getRoot(getThreadLocalRequest());
PortalContext pContext = PortalContext.getConfiguration();
String fullName = pContext.getCurrentUser(getThreadLocalRequest()).getFullname(); String fullName = pContext.getCurrentUser(getThreadLocalRequest()).getFullname();
if(fullName.indexOf(" ")>0){ if(fullName.indexOf(" ")>0){
fullName = fullName.substring(0, fullName.indexOf(" ")); fullName = fullName.substring(0, fullName.indexOf(" "));
}else if(fullName.indexOf(".")>0){ }else if(fullName.indexOf(".")>0){
fullName = fullName.substring(0, fullName.indexOf(".")); 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; break;
} }
case VRE_FOLDER:{ case VRE_FOLDER:{
WorkspaceItem folder = workspace.getMySpecialFolders(); String vreFolderId = Whorespace.getVREFoldersId(getThreadLocalRequest());
item = new Item(null, folder.getId(), WorkspaceExplorerConstants.VRE_FOLDERS_LABEL, ItemType.FOLDER, folder.getPath(), folder.getOwner().getPortalLogin(), null, true, false); 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 //SET SPECIAL FOLDER /Workspace/MySpecialFolders
item.setSpecialFolder(true); item.setSpecialFolder(true);
break; break;
@ -207,18 +177,22 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* {@inheritDoc} * {@inheritDoc}
*/ */
@Override @Override
public Item getMySpecialFolder(List<ItemType> showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException { public ItemDTO getMySpecialFolder(List<ItemType> showableTypes, boolean purgeEmpyFolders, FilterCriteria filterCriteria) throws WorkspaceNavigatorServiceException {
logger.trace("GetMySpecialFolder showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria); logger.trace("GetMySpecialFolder showableTypes: "+showableTypes+" purgeEmpyFolders: "+purgeEmpyFolders+" filterCriteria: "+filterCriteria);
try { try {
PortalContext pContext = PortalContext.getConfiguration();
Workspace workspace = getWorkspace(); String userName = pContext.getCurrentUser(getThreadLocalRequest()).getUsername();
WorkspaceItem folder = workspace.getMySpecialFolders(); 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(); long startTime = System.currentTimeMillis();
logger.trace("start time - " + startTime); 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 //OVERRIDING VRE FOLDERS NAME - SET SPECIAL FOLDER /Workspace/MySpecialFolders
itemFolder.setName(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL); itemFolder.setName(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL);
itemFolder.setSpecialFolder(true); itemFolder.setSpecialFolder(true);
@ -254,15 +228,8 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
*/ */
@Override @Override
public boolean checkName(String name) throws WorkspaceNavigatorServiceException { public boolean checkName(String name) throws WorkspaceNavigatorServiceException {
logger.trace("checkName name: "+name); logger.warn("checkName name NOT IMPLEMENTED: "+name);
try { return true; //TODO:
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());
}
} }
/*protected void printName(String indentation, Item item) /*protected void printName(String indentation, Item item)
@ -282,38 +249,42 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* @throws Exception the exception * @throws Exception the exception
*/ */
@Override @Override
public List<Item> getBreadcrumbsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception { public List<ItemDTO> getBreadcrumbsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception {
logger.trace("ListParents By Item Identifier "+ itemIdentifier); logger.trace("ListParents By Item Identifier "+ itemIdentifier);
try { try {
Workspace workspace = getWorkspace(); Item wsItem = Whorespace.getItem(getThreadLocalRequest(), itemIdentifier);
WorkspaceItem wsItem = workspace.getItem(itemIdentifier);
logger.trace("workspace retrieve item name: "+wsItem.getName()); logger.trace("workspace retrieve item name: "+wsItem.getName());
List<WorkspaceItem> parents = workspace.getParentsById(itemIdentifier); List<Item> parents = new ArrayList<>();
Item whileItem = wsItem;
while (whileItem.getParentId() != null) {
parents.add(whileItem);
whileItem = Whorespace.getItem(getThreadLocalRequest(), whileItem.getParentId());
}
// List<Item> parents = workspace.getParentsById(itemIdentifier);
logger.trace("parents size: "+parents.size()); logger.trace("parents size: "+parents.size());
Item[] arrayParents; ItemDTO[] arrayParents;
if(includeItemAsParent==true && wsItem instanceof FolderItem){
if(includeItemAsParent==true && wsItem.isFolder()){ arrayParents = new ItemDTO[parents.size()];
arrayParents = new Item[parents.size()]; arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((FolderItem) wsItem, null);
arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null);
} }
else { 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 /** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER
* BUT RETURNING ONLY /MY_SPECIAL_FOLDER * BUT RETURNING ONLY /MY_SPECIAL_FOLDER
*/ */
if(wsItem.isFolder()){ if(wsItem instanceof FolderItem){
if(ItemBuilder.isSpecialFolder((WorkspaceFolder) wsItem)){ if(ItemBuilder.isSpecialFolder((FolderItem) wsItem)){
return new ArrayList<Item>(Arrays.asList(arrayParents)); return new ArrayList<ItemDTO>(Arrays.asList(arrayParents));
} }
} }
//CONVERTING PATH //CONVERTING PATH
logger.trace("converting path from second-last.."); logger.trace("converting path from second-last..");
for (int i = parents.size()-2; i >= 0; i--) { 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); arrayParents[i] = ItemBuilder.buildFolderForBreadcrumbs(wsParentFolder, null);
if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER
logger.info("arrayParents index "+i+" is special folder, exit"); logger.info("arrayParents index "+i+" is special folder, exit");
@ -325,21 +296,21 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
logger.trace("setting parents.."); logger.trace("setting parents..");
for(int i=0; i<arrayParents.length-1; i++){ for(int i=0; i<arrayParents.length-1; i++){
Item parent = arrayParents[i]; ItemDTO parent = arrayParents[i];
Item fileModel = arrayParents[i+1]; ItemDTO fileModel = arrayParents[i+1];
fileModel.setParent(parent); fileModel.setParent(parent);
} }
logger.trace("ListParents return size: "+arrayParents.length); logger.trace("ListParents return size: "+arrayParents.length);
if(arrayParents[0]==null){ //EXIT BY BREAK IN CASE OF SPECIAL FOLDER if(arrayParents[0]==null){ //EXIT BY BREAK IN CASE OF SPECIAL FOLDER
List<Item> breadcrumbs = new ArrayList<Item>(arrayParents.length-1); List<ItemDTO> breadcrumbs = new ArrayList<ItemDTO>(arrayParents.length-1);
for (int i=1; i<arrayParents.length; i++) { for (int i=1; i<arrayParents.length; i++) {
breadcrumbs.add(arrayParents[i]); breadcrumbs.add(arrayParents[i]);
} }
return breadcrumbs; return breadcrumbs;
} }
else { else {
return new ArrayList<Item>(Arrays.asList(arrayParents)); return new ArrayList<ItemDTO>(Arrays.asList(arrayParents));
} }
} catch (Exception e) { } catch (Exception e) {
@ -358,23 +329,29 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* @throws Exception the exception * @throws Exception the exception
*/ */
@Override @Override
public List<Item> getBreadcrumbsByItemIdentifierToParentLimit(String itemIdentifier, String parentLimit, boolean includeItemAsParent) throws Exception { public List<ItemDTO> getBreadcrumbsByItemIdentifierToParentLimit(String itemIdentifier, String parentLimit, boolean includeItemAsParent) throws Exception {
logger.trace("getBreadcrumbsByItemIdentifierToParentLimit by Item Identifier " + itemIdentifier +" and limit: "+parentLimit); logger.trace("getBreadcrumbsByItemIdentifierToParentLimit by Item Identifier " + itemIdentifier +" and limit: "+parentLimit);
try { try {
Workspace workspace = getWorkspace(); Item wsItem = Whorespace.getItem(getThreadLocalRequest(), itemIdentifier);
WorkspaceItem wsItem = workspace.getItem(itemIdentifier);
logger.trace("workspace retrieve item name: "+wsItem.getName()); logger.trace("workspace retrieve item name: "+wsItem.getName());
List<WorkspaceItem> parents = workspace.getParentsById(itemIdentifier); List<Item> 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<WorkspaceItem> parents = workspace.getParentsById(itemIdentifier);
logger.trace("parents size: "+parents.size()); logger.trace("parents size: "+parents.size());
Item[] arrayParents; ItemDTO[] arrayParents;
if(includeItemAsParent==true && wsItem.isFolder()){ if(includeItemAsParent==true && wsItem instanceof FolderItem){
arrayParents = new Item[parents.size()]; arrayParents = new ItemDTO[parents.size()];
arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((WorkspaceFolder) wsItem, null); arrayParents[parents.size()-1] = ItemBuilder.buildFolderForBreadcrumbs((FolderItem) wsItem, null);
} }
else { else {
arrayParents = new Item[parents.size()-1]; arrayParents = new ItemDTO[parents.size()-1];
} }
parentLimit = parentLimit!=null?parentLimit:""; 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 /** HANDLE MY_SPECIAL_FOLDER TO AVOID COMPLETE PATH WORKSPACE/MY_SPECIAL_FOLDER
* BUT RETURNING ONLY /MY_SPECIAL_FOLDER * BUT RETURNING ONLY /MY_SPECIAL_FOLDER
*/ */
if(wsItem.isFolder()){ if( wsItem instanceof FolderItem){
if(ItemBuilder.isSpecialFolder((WorkspaceFolder) wsItem)){ if(ItemBuilder.isSpecialFolder((FolderItem) wsItem)){
logger.debug("item id is special folder, returning"); logger.debug("item id is special folder, returning");
return new ArrayList<Item>(Arrays.asList(arrayParents)); return new ArrayList<ItemDTO>(Arrays.asList(arrayParents));
} }
if(itemIdentifier.compareTo(parentLimit)==0){ if(itemIdentifier.compareTo(parentLimit)==0){
logger.debug("item and parent limit are identical element, returning"); logger.debug("item and parent limit are identical element, returning");
return new ArrayList<Item>(Arrays.asList(arrayParents)); return new ArrayList<ItemDTO>(Arrays.asList(arrayParents));
} }
} }
@ -398,7 +375,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
//CONVERTING PATH //CONVERTING PATH
logger.trace("converting path from second-last.."); logger.trace("converting path from second-last..");
for (int i = parents.size()-2; i >= 0; i--) { 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); arrayParents[i] = ItemBuilder.buildFolderForBreadcrumbs(wsParentFolder, null);
if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER if(arrayParents[i].isSpecialFolder()){ //SKIP HOME PARENT FOR MY_SPECIAL_FOLDER
logger.info("arrayParents index "+i+" is special folder, break"); logger.info("arrayParents index "+i+" is special folder, break");
@ -413,8 +390,8 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
logger.trace("setting parents.."); logger.trace("setting parents..");
for(int i=0; i<arrayParents.length-1; i++){ for(int i=0; i<arrayParents.length-1; i++){
Item parent = arrayParents[i]; ItemDTO parent = arrayParents[i];
Item fileModel = arrayParents[i+1]; ItemDTO fileModel = arrayParents[i+1];
if(fileModel!=null) { if(fileModel!=null) {
fileModel.setParent(parent); fileModel.setParent(parent);
@ -423,7 +400,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
logger.trace("ListParents return size: "+arrayParents.length); logger.trace("ListParents return size: "+arrayParents.length);
if(arrayParents[0]==null){ //EXIT BY BREAK IN CASE OF SPECIAL FOLDER OR REACHED PARENT LIMIT if(arrayParents[0]==null){ //EXIT BY BREAK IN CASE OF SPECIAL FOLDER OR REACHED PARENT LIMIT
List<Item> breadcrumbs = new ArrayList<Item>(); List<ItemDTO> breadcrumbs = new ArrayList<ItemDTO>();
for (int i=1; i<arrayParents.length; i++) { for (int i=1; i<arrayParents.length; i++) {
if(arrayParents[i]!=null) { if(arrayParents[i]!=null) {
breadcrumbs.add(arrayParents[i]); breadcrumbs.add(arrayParents[i]);
@ -432,7 +409,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
return breadcrumbs; return breadcrumbs;
} }
else { else {
return new ArrayList<Item>(Arrays.asList(arrayParents)); return new ArrayList<ItemDTO>(Arrays.asList(arrayParents));
} }
} catch (Exception e) { } catch (Exception e) {
@ -453,31 +430,32 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
*/ */
@Override @Override
public Long getSizeByItemId(String itemId) throws Exception { public Long getSizeByItemId(String itemId) throws Exception {
//TODO: implementation missing
logger.info("get Size By ItemId "+ itemId); return 0L;
try { // logger.info("get Size By ItemId "+ itemId);
// try {
Workspace workspace = getWorkspace(); //
WorkspaceItem wsItem = workspace.getItem(itemId); // Workspace workspace = getWorkspace();
Long size = new Long(-1); // WorkspaceItem wsItem = workspace.getItem(itemId);
// Long size = new Long(-1);
if(wsItem instanceof FolderItem){ //ITEM //
FolderItem folderItem = (FolderItem) wsItem; // if(wsItem instanceof FolderItem){ //ITEM
size = new Long(folderItem.getLength()); // FolderItem folderItem = (FolderItem) wsItem;
} else if (wsItem instanceof WorkspaceFolder ){ //FOLDER // size = new Long(folderItem.getLength());
WorkspaceFolder theFolder = (WorkspaceFolder) wsItem; // } else if (wsItem instanceof WorkspaceFolder ){ //FOLDER
size = theFolder.getSize(); // WorkspaceFolder theFolder = (WorkspaceFolder) wsItem;
} else if (wsItem instanceof WorkspaceSharedFolder){ //SHARED FOLDER // size = theFolder.getSize();
WorkspaceSharedFolder theFolder = (WorkspaceSharedFolder) wsItem; // } else if (wsItem instanceof WorkspaceSharedFolder){ //SHARED FOLDER
size = theFolder.getSize(); // WorkspaceSharedFolder theFolder = (WorkspaceSharedFolder) wsItem;
} // size = theFolder.getSize();
logger.info("returning size: " +size); // }
return size; // logger.info("returning size: " +size);
// return size;
} catch (Exception e) { //
logger.error("get Size By ItemId ", e); // } catch (Exception e) {
throw new Exception(e.getMessage()); // logger.error("get Size By ItemId ", e);
} // throw new Exception(e.getMessage());
// }
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -495,17 +473,17 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
logger.info("get MimeType By ItemId "+ itemId); logger.info("get MimeType By ItemId "+ itemId);
try { 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; return null;
} }
FolderItem folderItem = (FolderItem) wsItem; FolderItem folderItem = (FolderItem) wsItem;
//TODO:folderItem.getMimeType();
return folderItem.getMimeType(); return "unknown";
} catch (Exception e) { } catch (Exception e) {
logger.error("get MimeType By ItemId ", 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{ public String getUserACLForFolderId(String folderId) throws Exception{
try { try {
logger.info("Get user ACL to FOLDER id: "+folderId); logger.info("Get user ACL to FOLDER id: "+folderId);
Workspace workspace = getWorkspace(); Item wsItem = Whorespace.getItem(getThreadLocalRequest(), folderId);
WorkspaceItem wsItem = workspace.getItem(folderId); logger.trace("workspace retrieve item name: "+wsItem.getName());
if(!isASharedFolder(wsItem, false)) { if(!isASharedFolder(wsItem, false)) {
return "OWNER"; return "OWNER";
} }
else { else {
return wsItem.getACLUser().toString(); return "NOT IMPLEMENTED";//TODO
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("Error in server get UserACLForFolderId", e); logger.error("Error in server get UserACLForFolderId", e);
@ -549,16 +527,15 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* @param asRoot the as root * @param asRoot the as root
* @return true, if is a shared folder * @return true, if is a shared folder
*/ */
private boolean isASharedFolder(WorkspaceItem item, boolean asRoot){ private boolean isASharedFolder(Item item, boolean asRoot){
try { try {
if (item instanceof SharedFolder || item instanceof VreFolder) {
if(item!=null && item.isFolder() && item.isShared()){ //IS A SHARED SUB-FOLDER SharedFolder folder = (SharedFolder) item;
if(asRoot) if (folder.isVreFolder())
{ return true;
return item.getType().equals(WorkspaceItemType.SHARED_FOLDER); //IS ROOT?
}
return true; return true;
} else if (item instanceof FolderItem) {
return false;
} }
return false; return false;
}catch(Exception e){ }catch(Exception e){
@ -601,61 +578,62 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
* @throws Exception the exception * @throws Exception the exception
*/ */
@Override @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); logger.debug("creating folder: "+nameFolder +", parent id: "+parentId);
//TODO
try { return null;
// try {
if(parentId==null || parentId.isEmpty()) //
throw new Exception("Parent id is null or empty"); // if(parentId==null || parentId.isEmpty())
// throw new Exception("Parent id is null or empty");
if(nameFolder == null) //
nameFolder = "Empty Folder"; // if(nameFolder == null)
// nameFolder = "Empty Folder";
Workspace workspace = getWorkspace(); //
WorkspaceFolder wsFolder = workspace.createFolder(nameFolder, description, parentId); // Workspace workspace = getWorkspace();
// WorkspaceFolder wsFolder = workspace.createFolder(nameFolder, description, parentId);
// _log.info("Path returned by HL: "+wsFolder.getPath()); //
//// _log.info("Path returned by HL: "+wsFolder.getPath());
List<ItemType> allTypes = Arrays.asList(ItemType.values()); //
// List<ItemType> allTypes = Arrays.asList(ItemType.values());
Item parent = null; //
try{ // ItemDTO parent = null;
String parentPath = wsFolder.getParent()!=null?wsFolder.getParent().getPath():""; // try{
parent = ItemBuilder.getItem(null, wsFolder.getParent(), parentPath, allTypes, null, false, false); // String parentPath = wsFolder.getParent()!=null?wsFolder.getParent().getPath():"";
}catch(Exception e){ // parent = ItemBuilder.getItem(null, wsFolder.getParent(), parentPath, allTypes, null, false, false);
logger.error("Get parent thown an exception, is it the root id? "+parentId); // }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; // //TODO PATCH TO AVOID PROBLEM ON GETPATH. FOR EXAMPLE WHEN PARENT IS ROOT
try{ // String itemPath = null;
itemPath = wsFolder.getPath(); // try{
logger.info("itemPath: "+itemPath); // itemPath = wsFolder.getPath();
}catch(Exception e){ // logger.info("itemPath: "+itemPath);
logger.error("Get path thrown an exception, for id: "+wsFolder.getId() +" name: "+wsFolder.getName(), e); // }catch(Exception e){
// itemPath= wsFolder.isFolder()?workspace.getRoot().getPath()+"/"+wsFolder.getName():workspace.getRoot().getPath(); // logger.error("Get path thrown an exception, for id: "+wsFolder.getId() +" name: "+wsFolder.getName(), e);
//PATCH TO RETURN ABSOLUTE PATH //// itemPath= wsFolder.isFolder()?workspace.getRoot().getPath()+"/"+wsFolder.getName():workspace.getRoot().getPath();
itemPath= workspace.getRoot().getPath()+"/"+wsFolder.getName(); // //PATCH TO RETURN ABSOLUTE PATH
logger.warn("returning base path: "+itemPath); // itemPath= workspace.getRoot().getPath()+"/"+wsFolder.getName();
} // logger.warn("returning base path: "+itemPath);
// }
return ItemBuilder.getItem(parent, wsFolder, itemPath, allTypes, null, false, false); //
// return ItemBuilder.getItem(parent, wsFolder, itemPath, allTypes, null, false, false);
} catch(InsufficientPrivilegesException e){ //
String error = "Insufficient Privileges to create the folder"; // } catch(InsufficientPrivilegesException e){
logger.error(error, e); // String error = "Insufficient Privileges to create the folder";
throw new Exception(error); // logger.error(error, e);
} catch (ItemAlreadyExistException e) { // throw new Exception(error);
String error = "An error occurred on creating folder, " +e.getMessage(); // } catch (ItemAlreadyExistException e) {
logger.error(error, e); // String error = "An error occurred on creating folder, " +e.getMessage();
throw new Exception(error); // logger.error(error, e);
} catch (Exception e) { // throw new Exception(error);
String error = "An error occurred on the sever during creating folder. Try again"; // } catch (Exception e) {
logger.error(error, e); // String error = "An error occurred on the sever during creating folder. Try again";
throw new Exception(error); // logger.error(error, e);
} // throw new Exception(error);
// }
} }
@ -673,22 +651,24 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
@Override @Override
public Map<String, String> getGcubePropertiesForWorspaceId(String id) throws Exception { public Map<String, String> getGcubePropertiesForWorspaceId(String id) throws Exception {
logger.trace("getGcubePropertiesForWorspaceId "+id); logger.trace("getGcubePropertiesForWorspaceId "+id);
try { //TODO
return null;
if(id==null || id.isEmpty()){ // try {
logger.info(id +" is null or empty returing empty map as GcubeProperties"); //
return new HashMap<String, String>(1); // if(id==null || id.isEmpty()){
} // logger.info(id +" is null or empty returing empty map as GcubeProperties");
// return new HashMap<String, String>(1);
Workspace workspace = getWorkspace(); // }
WorkspaceItem item = workspace.getItem(id); //
// Workspace workspace = getWorkspace();
return ItemBuilder.getGcubePropertiesForItem(item); // WorkspaceItem item = workspace.getItem(id);
//
} catch (Exception e) { // return ItemBuilder.getGcubePropertiesForItem(item);
logger.error("Error during folder retrieving", e); //
throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get folder"); // } catch (Exception e) {
} // logger.error("Error during folder retrieving", e);
// throw new WorkspaceNavigatorServiceException("Sorry, an error occurred when performing get folder");
// }
} }
/* (non-Javadoc) /* (non-Javadoc)
@ -696,7 +676,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
*/ */
@Override @Override
public SearchedFolder getFolder( public SearchedFolder getFolder(
Item item, List<ItemType> showableTypes, boolean purgeEmpyFolders, ItemDTO item, List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, boolean loadGcubeProperties, FilterCriteria filterCriteria, boolean loadGcubeProperties,
final int startIndex, final int limit, final int serverStartIndex) throws WorkspaceNavigatorServiceException { final int startIndex, final int limit, final int serverStartIndex) throws WorkspaceNavigatorServiceException {
@ -704,8 +684,8 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
try { try {
Workspace workspace = getWorkspace(); Item folder = Whorespace.getItem(getThreadLocalRequest(), item.getId());
WorkspaceItem folder = workspace.getItem(item.getId());
int searchStartIndex = startIndex < serverStartIndex? serverStartIndex : startIndex; int searchStartIndex = startIndex < serverStartIndex? serverStartIndex : startIndex;
//logger.trace("GetFolder - Replyiing folder"); //logger.trace("GetFolder - Replyiing folder");
logger.debug("MyLg getFolder searchIndex: "+searchStartIndex+", limit: "+limit); logger.debug("MyLg getFolder searchIndex: "+searchStartIndex+", limit: "+limit);
@ -714,14 +694,14 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
//TO AVOID SLOW CALL getPATH() //TO AVOID SLOW CALL getPATH()
String folderPath = item.getPath()!=null && !item.getPath().isEmpty()?item.getPath():folder.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); SearchedFolder sf = new SearchedFolder(itemFolderToReturn, startIndex, limit, searchStartIndex, false);
int currentListCount = sf.getFolder().getChildren().size(); int currentListCount = sf.getFolder().getChildren().size();
logger.debug("MyLg Total item returning is: "+currentListCount); logger.debug("MyLg Total item returning is: "+currentListCount);
WorkspaceFolder hlFolder = (WorkspaceFolder) folder; FolderItem hlFolder = (FolderItem) folder;
int folderChildrenCount = hlFolder.getChildrenCount(false); int folderChildrenCount = Whorespace.getItemChildrenCount(getThreadLocalRequest(), hlFolder.getId());
logger.debug("MyLg Folder children count is: "+folderChildrenCount); logger.debug("MyLg Folder children count is: "+folderChildrenCount);
if(currentListCount == limit || folderChildrenCount==0){ if(currentListCount == limit || folderChildrenCount==0){
@ -733,7 +713,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
return sf; return sf;
} }
ArrayList<Item> childrenToReturn = new ArrayList<Item>(limit); ArrayList<ItemDTO> childrenToReturn = new ArrayList<ItemDTO>(limit);
childrenToReturn.addAll(sf.getFolder().getChildren()); childrenToReturn.addAll(sf.getFolder().getChildren());
int offsetStartIndex = searchStartIndex; int offsetStartIndex = searchStartIndex;
@ -748,7 +728,7 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
if(newstartIndex < folderChildrenCount){ if(newstartIndex < folderChildrenCount){
//newLimit = limit - childrenToReturn.size(); //newLimit = limit - childrenToReturn.size();
logger.debug("MyLg getting items with index start: "+newstartIndex + ", limit: "+limit); 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 diff = limit - currentListCount; //How items are remaining
//int offset = 0; //int offset = 0;
logger.debug("MyLg new search start: "+newstartIndex + ", diff: "+diff+ ", retrieved: "+newItemFolder.getChildren().size()); 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 @Override
public int getFolderChildrenCount(Item item) throws WorkspaceNavigatorServiceException { public int getFolderChildrenCount(ItemDTO item){
return Whorespace.getItemChildrenCount(getThreadLocalRequest(), item.getId());
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");
}
} }
} }

View File

@ -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();
}
}

View File

@ -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<? extends Item> 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);
}
}

View File

@ -16,15 +16,15 @@ import com.google.gwt.user.client.rpc.IsSerializable;
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Dec 2, 2015 * 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 id;
protected String name; protected String name;
protected ItemType type; protected ItemType type;
protected String path; protected String path;
protected ArrayList<Item> children; protected ArrayList<ItemDTO> children;
private String owner; private String owner;
private boolean isFolder; private boolean isFolder;
private boolean isSpecialFolder = false; private boolean isSpecialFolder = false;
@ -37,7 +37,7 @@ public class Item implements IsSerializable, ItemInterface{
/** /**
* Instantiates a new item. * Instantiates a new item.
*/ */
public Item() { public ItemDTO() {
} }
/** /**
* Instantiates a new item. * Instantiates a new item.
@ -46,12 +46,12 @@ public class Item implements IsSerializable, ItemInterface{
* @param name the name * @param name the name
* @param isFolder the is folder * @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.id = id;
this.isFolder = isFolder; this.isFolder = isFolder;
this.name = name; this.name = name;
this.type = isFolder?ItemType.FOLDER:ItemType.UNKNOWN_TYPE; this.type = isFolder?ItemType.FOLDER:ItemType.UNKNOWN_TYPE;
this.children = new ArrayList<Item>(); this.children = new ArrayList<ItemDTO>();
} }
@ -68,7 +68,7 @@ public class Item implements IsSerializable, ItemInterface{
* @param isFolder the is folder * @param isFolder the is folder
* @param isRoot the is root * @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(parent, id, name, type, path, owner, isFolder, isRoot);
this.creationDate = creationDate; this.creationDate = creationDate;
} }
@ -86,12 +86,12 @@ public class Item implements IsSerializable, ItemInterface{
* @param isFolder the is folder * @param isFolder the is folder
* @param isRoot the is root * @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(id, name, isFolder);
this.parent = parent; this.parent = parent;
this.type = type; this.type = type;
this.path = path; this.path = path;
this.children = new ArrayList<Item>(); this.children = new ArrayList<ItemDTO>();
this.owner = owner; this.owner = owner;
this.isRoot = isRoot; this.isRoot = isRoot;
} }
@ -102,7 +102,7 @@ public class Item implements IsSerializable, ItemInterface{
* *
* @param children the new children * @param children the new children
*/ */
public void setChildren(ArrayList<Item> children) { public void setChildren(ArrayList<ItemDTO> children) {
this.children = children; this.children = children;
} }
@ -177,7 +177,7 @@ public class Item implements IsSerializable, ItemInterface{
* *
* @return the item parent. * @return the item parent.
*/ */
public Item getParent() { public ItemDTO getParent() {
return parent; return parent;
} }
@ -213,7 +213,7 @@ public class Item implements IsSerializable, ItemInterface{
* *
* @return the children. * @return the children.
*/ */
public ArrayList<Item> getChildren() { public ArrayList<ItemDTO> getChildren() {
return children; return children;
} }
@ -252,7 +252,7 @@ public class Item implements IsSerializable, ItemInterface{
* the index * the index
* @return the child at the specific position. * @return the child at the specific position.
*/ */
public Item getChild(int index) { public ItemDTO getChild(int index) {
return children.get(index); return children.get(index);
} }
@ -262,7 +262,7 @@ public class Item implements IsSerializable, ItemInterface{
* @param child * @param child
* the child to add. * the child to add.
*/ */
public void addChild(Item child) { public void addChild(ItemDTO child) {
children.add(child); children.add(child);
} }
@ -272,7 +272,7 @@ public class Item implements IsSerializable, ItemInterface{
* @param child * @param child
* the child * the child
*/ */
public void removeChild(Item child) { public void removeChild(ItemDTO child) {
children.remove(child); children.remove(child);
} }
@ -328,7 +328,7 @@ public class Item implements IsSerializable, ItemInterface{
if (getClass() != obj.getClass()) { if (getClass() != obj.getClass()) {
return false; return false;
} }
Item other = (Item) obj; ItemDTO other = (ItemDTO) obj;
if (id == null) { if (id == null) {
if (other.id != null) { if (other.id != null) {
return false; return false;
@ -375,7 +375,7 @@ public class Item implements IsSerializable, ItemInterface{
* @param parent * @param parent
* the new parent * the new parent
*/ */
public void setParent(Item parent) { public void setParent(ItemDTO parent) {
this.parent = parent; this.parent = parent;
} }
/* (non-Javadoc) /* (non-Javadoc)

View File

@ -11,7 +11,9 @@ package org.gcube.portlets.widgets.wsexplorer.shared;
* Jun 18, 2015 * Jun 18, 2015
*/ */
public enum ItemType { public enum ItemType {
PRIVATE_FOLDER, //MANDATORY
SHARED_FOLDER,
VRE_FOLDER,
FOLDER, //MANDATORY FOLDER, //MANDATORY
EXTERNAL_IMAGE, EXTERNAL_IMAGE,
EXTERNAL_FILE, EXTERNAL_FILE,

View File

@ -15,7 +15,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
public class SearchedFolder implements IsSerializable{ public class SearchedFolder implements IsSerializable{
private Item folder; private ItemDTO folder;
private int clientStartIndex = 0; private int clientStartIndex = 0;
private int limit; private int limit;
private int serverEndIndex = 0; private int serverEndIndex = 0;
@ -35,7 +35,7 @@ public class SearchedFolder implements IsSerializable{
* @param serverEndIndex * @param serverEndIndex
* @param isServerSearchFinished * @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(); super();
this.folder = folder; this.folder = folder;
@ -50,7 +50,7 @@ public class SearchedFolder implements IsSerializable{
/** /**
* @return the folder * @return the folder
*/ */
public Item getFolder() { public ItemDTO getFolder() {
return folder; return folder;
} }
@ -100,7 +100,7 @@ public class SearchedFolder implements IsSerializable{
/** /**
* @param folder the folder to set * @param folder the folder to set
*/ */
public void setFolder(Item folder) { public void setFolder(ItemDTO folder) {
this.folder = folder; this.folder = folder;
} }

View File

@ -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

View File

@ -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<Item> 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<Item> getBreadcrumbsByItemIdentifier(String itemIdentifier, boolean includeItemAsParent) throws Exception {
// List<Item> listParents = new ArrayList<Item>();
_log.trace("ListParents By Item Identifier "+ itemIdentifier);
try {
WorkspaceItem wsItem = workspace.getItem(itemIdentifier);
_log.trace("workspace retrieve item name: "+wsItem.getName());
List<WorkspaceItem> 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<Item>(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<arrayParents.length-1; i++){
Item parent = arrayParents[i];
Item fileModel = arrayParents[i+1];
fileModel.setParent(parent);
}
_log.trace("ListParents return size: "+arrayParents.length);
if(arrayParents[0]==null){
List<Item> breadcrumbs = new ArrayList<Item>(arrayParents.length-1);
for (int i=1; i<arrayParents.length; i++) {
breadcrumbs.add(arrayParents[i]);
}
return breadcrumbs;
}else
return new ArrayList<Item>(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<Item> 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<WorkspaceItem> 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<Item>(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<arrayParents.length-1; i++){
Item parent = arrayParents[i];
Item fileModel = arrayParents[i+1];
if(fileModel!=null)
fileModel.setParent(parent);
}
_log.trace("ListParents return size: "+arrayParents.length);
if(arrayParents[0]==null){ //EXIT BY BREAK IN CASE OF SPECIAL FOLDER OR REACHED PARENT LIMIT
List<Item> breadcrumbs = new ArrayList<Item>();
for (int i=1; i<arrayParents.length; i++) {
if(arrayParents[i]!=null)
breadcrumbs.add(arrayParents[i]);
}
return breadcrumbs;
}else
return new ArrayList<Item>(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!");
}
}
}

View File

@ -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<ItemType> showableTypes = new ArrayList<ItemType>();
showableTypes.addAll(Arrays.asList(ItemType.values()));
boolean purgeEmpyFolders = false;
List<String> allowedMimeTypes = new ArrayList<String>();
Map<String, String> requiredProperties = new HashMap<String, String>();
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<ItemType> 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");
}
}
}

View File

@ -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<ItemType> showableTypes = new ArrayList<ItemType>();
showableTypes.addAll(Arrays.asList(ItemType.values()));
boolean purgeEmpyFolders = false;
List<String> allowedMimeTypes = new ArrayList<String>();
Map<String, String> requiredProperties = new HashMap<String, String>();
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<ItemType> 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<ItemType> 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());
}
}
}