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"/>
</attributes>
</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"/>
</classpath>

29
pom.xml
View File

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

View File

@ -16,7 +16,7 @@
<inherits name="com.github.gwtbootstrap.Bootstrap" />
<!-- 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 -->
<source path='client' />

View File

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

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

View File

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

View File

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

View File

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

View File

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

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

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

View File

@ -3,7 +3,7 @@
*/
package org.gcube.portlets.widgets.wsexplorer.client.notification;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
/**
@ -33,7 +33,7 @@ public class WorkspaceExplorerSaveNotification {
* @param parent the parent
* @param fileName the file name
*/
void onSaving(Item parent,String fileName);
void onSaving(ItemDTO parent,String fileName);
/**
* On aborted.

View File

@ -3,7 +3,7 @@
*/
package org.gcube.portlets.widgets.wsexplorer.client.notification;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
/**
@ -34,7 +34,7 @@ public class WorkspaceExplorerSelectBNotification {
*
* @param item the item
*/
void onSelectedItem(Item item);
void onSelectedItem(ItemDTO item);
/**
@ -62,7 +62,7 @@ public class WorkspaceExplorerSelectBNotification {
*
* @param item the item
*/
void onBreadcrumbChanged(Item item);
void onBreadcrumbChanged(ItemDTO item);
}

View File

@ -3,7 +3,7 @@
*/
package org.gcube.portlets.widgets.wsexplorer.client.notification;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
/**
@ -34,7 +34,7 @@ public class WorkspaceExplorerSelectNotification {
*
* @param item the item
*/
void onSelectedItem(Item item);
void onSelectedItem(ItemDTO item);
/**

View File

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

View File

@ -8,7 +8,7 @@ import java.util.List;
import java.util.Map;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemInterface;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
@ -38,7 +38,7 @@ public interface WorkspaceExplorerServiceAsync {
*/
public void getRoot(
List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, AsyncCallback<Item> callback);
FilterCriteria filterCriteria, AsyncCallback<ItemDTO> callback);
/**
* Check name.
@ -64,7 +64,7 @@ public interface WorkspaceExplorerServiceAsync {
void getFolder(
ItemInterface item, List<ItemType> showableTypes,
boolean purgeEmpyFolders, FilterCriteria filterCriteria,
boolean loadGcubeProperties, AsyncCallback<Item> callback);
boolean loadGcubeProperties, AsyncCallback<ItemDTO> callback);
/**
* Gets the breadcrumbs by item identifier.
@ -79,7 +79,7 @@ public interface WorkspaceExplorerServiceAsync {
*/
public void getBreadcrumbsByItemIdentifier(
String itemIdentifier, boolean includeItemAsParent,
AsyncCallback<List<Item>> asyncCallback);
AsyncCallback<List<ItemDTO>> asyncCallback);
/**
* Gets the my special folder.
@ -96,7 +96,7 @@ public interface WorkspaceExplorerServiceAsync {
*/
public void getMySpecialFolder(
List<ItemType> showableTypes, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, AsyncCallback<Item> asyncCallback);
FilterCriteria filterCriteria, AsyncCallback<ItemDTO> asyncCallback);
/**
* Gets the item by category.
@ -108,7 +108,7 @@ public interface WorkspaceExplorerServiceAsync {
* @return the item by category
*/
public void getItemByCategory(
ItemCategory category, AsyncCallback<Item> asyncCallback);
ItemCategory category, AsyncCallback<ItemDTO> asyncCallback);
/**
* Gets the size by item id.
@ -171,7 +171,7 @@ public interface WorkspaceExplorerServiceAsync {
*/
void getBreadcrumbsByItemIdentifierToParentLimit(
String itemIdentifier, String parentLimit, boolean includeItemAsParent,
AsyncCallback<List<Item>> callback);
AsyncCallback<List<ItemDTO>> callback);
/**
* Creates the folder.
@ -187,7 +187,7 @@ public interface WorkspaceExplorerServiceAsync {
*/
void createFolder(
String nameFolder, String description, String parentId,
AsyncCallback<Item> callback);
AsyncCallback<ItemDTO> callback);
/**
@ -216,7 +216,7 @@ public interface WorkspaceExplorerServiceAsync {
* @return the folder
*/
void getFolder(
Item item, List<ItemType> showableTypesParam, boolean purgeEmpyFolders,
ItemDTO item, List<ItemType> showableTypesParam, boolean purgeEmpyFolders,
FilterCriteria filterCriteria, boolean loadGcubeProperties,
int startIndex, int limit, int serverStartIndex, AsyncCallback<SearchedFolder> asyncCallback);
@ -227,6 +227,6 @@ public interface WorkspaceExplorerServiceAsync {
* @param asyncCallback the async callback
* @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.WorskpaceExplorerSaveNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.github.gwtbootstrap.client.ui.Button;
@ -195,7 +195,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
public void onClick(ClickEvent event) {
isSave = false;
Item item = controller.getWsExplorer().getItemSelected();
ItemDTO item = controller.getWsExplorer().getItemSelected();
//A FOLDER IS SELECTED
if (item != null && item.isFolder()) {
@ -222,7 +222,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
return;
}
Item itemB = controller.getBreadcrumbs().getLastParent();
ItemDTO itemB = controller.getBreadcrumbs().getLastParent();
GWT.log("last parent: "+itemB);
if (itemB != null) {
if(itemB.isSpecialFolder()){
@ -262,8 +262,8 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
public <T> void onClick(final ClickItemEvent<T> clickItemEvent) {
if(clickItemEvent.getItem()!=null){
if (clickItemEvent.getItem() instanceof Item) {
Item item = (Item) clickItemEvent.getItem();
if (clickItemEvent.getItem() instanceof ItemDTO) {
ItemDTO item = (ItemDTO) clickItemEvent.getItem();
if(item!=null && !item.isFolder())
setFileName("New_"+item.getName());
}
@ -318,7 +318,7 @@ public class WorkspaceExplorerSaveDialog extends Modal implements HasWorskpaceEx
* @param parent the parent
* @param fileName the file name
*/
private void notifySaving(Item parent, String fileName) {
private void notifySaving(ItemDTO parent, String fileName) {
for (WorskpaceExplorerSaveNotificationListener worskpaceExplorerNotificationListener : listeners) {
worskpaceExplorerNotificationListener.onSaving(parent, fileName);

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

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

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

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

View File

@ -3,7 +3,7 @@
*/
package org.gcube.portlets.widgets.wsexplorer.client.view;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
/**
@ -24,5 +24,5 @@ public interface FolderLoader {
* @param resetStore the reset store. Used for pagination
* @throws Exception the exception
*/
public void loadFolder(final Item item, boolean loadGcubeProperties, int startIdx, int limit, boolean resetStore) throws Exception;
public void loadFolder(final ItemDTO item, boolean loadGcubeProperties, int startIdx, int limit, boolean resetStore) throws Exception;
}

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

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

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.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.dom.client.Style.Unit;
@ -54,7 +54,7 @@ public class DialogShowGcubeItem extends DialogBox implements ClickHandler {
* @param item the worksapce item id
* @param autoHide the auto hide
*/
public DialogShowGcubeItem(String caption, String text, Item item, boolean autoHide) {
public DialogShowGcubeItem(String caption, String text, ItemDTO item, boolean autoHide) {
getElement().setClassName("gwt-DialogBoxNew");
dock.setSpacing(4);
dock.setWidth("100%");

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

View File

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

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.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import org.gcube.portlets.widgets.wsexplorer.shared.ItemDTO;
/**
* A comparator that sorts the items first by type, folder up others down, the each group alphabetically on the item name.
* @author "Federico De Faveri defaveri@isti.cnr.it"
*/
public class ItemComparator implements Comparator<Item> {
public class ItemComparator implements Comparator<ItemDTO> {
/**
* {@inheritDoc}
*/
@Override
public int compare(Item item1, Item item2) {
public int compare(ItemDTO item1, ItemDTO item2) {
//if one of the item is folder and the other one not, we move up the folder
boolean isItem1Folder = Util.isFolder(item1.getType());
@ -36,7 +36,7 @@ public class ItemComparator implements Comparator<Item> {
return String.CASE_INSENSITIVE_ORDER.compare(item1.getName(), item2.getName());
}
private boolean isSpecialFolder(Item item) {
private boolean isSpecialFolder(ItemDTO item) {
// return item.getName().equals(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL) && item.getParent()!=null && item.getParent().isRoot();
return item.getName().equals(WorkspaceExplorerConstants.VRE_FOLDERS_LABEL) && item.isSpecialFolder();
}

View File

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

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

View File

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

View File

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

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