256: Workspace explorer
Task-Url: https://support.d4science.org/issues/256 Enhancements on get children speed git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@117045 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
898be623c7
commit
eb95045458
Binary file not shown.
After Width: | Height: | Size: 605 B |
|
@ -78,29 +78,23 @@ public class ItemBuilder {
|
|||
public static Item getItem(Item parent, WorkspaceItem workspaceItem, List<ItemType> showableTypes, FilterCriteria filterCriteria, boolean loadChildren) throws InternalErrorException
|
||||
{
|
||||
|
||||
_log.info("Building item for: "+workspaceItem.getName());
|
||||
ItemType type = getItemType(workspaceItem);
|
||||
|
||||
if (!showableTypes.contains(type)) return null;
|
||||
if (!filterItem(type, workspaceItem, filterCriteria)) return null;
|
||||
|
||||
// Added in date 26/06/2012 by Francesco Mangiacrapa
|
||||
// Item item = new Item(parent, workspaceItem.getId(), workspaceItem.getName(), type, workspaceItem.getPath());
|
||||
|
||||
String itemName = workspaceItem.getName();
|
||||
if ( workspaceItem.getName().equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL)) {
|
||||
if (workspaceItem.getName().equals(WorkspaceExplorerConstants.SPECIAL_FOLDERS_LABEL)) {
|
||||
itemName = "My VRE Folders";
|
||||
}
|
||||
|
||||
Item item = new Item(parent, workspaceItem.getId(), itemName, type, workspaceItem.getPath(), UserUtil.getUserFullName(workspaceItem.getOwner().getPortalLogin()), workspaceItem.isFolder(), workspaceItem.isRoot());
|
||||
item.setSharedFolder(workspaceItem.getType()==WorkspaceItemType.SHARED_FOLDER);
|
||||
|
||||
/*
|
||||
// Add temporary item
|
||||
if(Util.isFolder(item.getType())){
|
||||
empty = new Item(parent, UUID.randomUUID().toString(), "empty", ItemType.UNKNOWN_TYPE, "");
|
||||
item.addChild(empty);
|
||||
}*/
|
||||
boolean isFolder = false;
|
||||
if(type.equals(ItemType.FOLDER) || type.equals(ItemType.ROOT))
|
||||
isFolder = true;
|
||||
|
||||
Item item = new Item(parent, workspaceItem.getId(), itemName, type, "", UserUtil.getUserFullName(workspaceItem.getOwner().getPortalLogin()), isFolder, type.equals(ItemType.ROOT));
|
||||
item.setSharedFolder(workspaceItem.getType().equals(WorkspaceItemType.SHARED_FOLDER));
|
||||
|
||||
if(loadChildren){
|
||||
for (WorkspaceItem child: workspaceItem.getChildren()){
|
||||
|
@ -112,10 +106,6 @@ public class ItemBuilder {
|
|||
}
|
||||
}
|
||||
|
||||
// // Remove the temporary item when we finish loading
|
||||
// if(Util.isFolder(item.getType())&& item.getChildren().size()>1)
|
||||
// item.removeChild(empty);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
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.server.WorkspaceExplorerServiceImpl;
|
||||
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,requiredProperties);
|
||||
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 {
|
||||
|
||||
ScopeBean scope = new ScopeBean("/gcube/devsec");
|
||||
ScopeProvider.instance.set(scope.toString());
|
||||
|
||||
Workspace workspace = HomeLibrary
|
||||
.getHomeManagerFactory()
|
||||
.getHomeManager()
|
||||
.getHome("francesco.mangiacrapa")
|
||||
.getWorkspace();
|
||||
//
|
||||
_log.trace("Start getRoot...");
|
||||
|
||||
WorkspaceItem root = workspace.getRoot();
|
||||
|
||||
System.out.println(root.getChildren());
|
||||
|
||||
|
||||
_log.trace("GetRoot - Replyiing root");
|
||||
long startTime = System.currentTimeMillis();
|
||||
_log.trace("start time - " + startTime);
|
||||
|
||||
Item rootItem = ItemBuilder.getItem(null, root, showableTypes, filterCriteria, true);
|
||||
rootItem.setName(WorkspaceExplorerConstants.HOME_LABEL);
|
||||
|
||||
|
||||
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.trace("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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue