256: Workspace explorer

Task-Url: https://support.d4science.org/issues/256

Enhancemetns on view details

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@117042 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2015-07-06 15:18:23 +00:00
parent 706f53b60f
commit 898be623c7
14 changed files with 314 additions and 190 deletions

View File

@ -15,6 +15,8 @@ import com.google.gwt.resources.client.ImageResource;
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jun 18, 2015
*/
public class Util {
// public static final NumberFormat numberFormatterKB = NumberFormat.getFormat("#,##0 KB;(#,##0 KB)");
public static final ItemType[] FOLDERS = new ItemType[] { ItemType.ROOT,
ItemType.FOLDER };
@ -95,4 +97,24 @@ public class Util {
}
}
}
/**
*
* @param value
* @return
*/
public static String getFormattedSize(long value){
if(value>0){
double kb = value/1024;
if(kb<1)
kb=1;
// return numberFormatterKB.format(kb);
return kb+"KB";
}else if(value==0){
return "EMPTY";
}else
return "";
}
}

View File

@ -5,14 +5,15 @@ package org.gcube.portlets.widgets.wsexplorer.client;
import java.util.List;
import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadMySpecialFolderEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadMySpecialFolderEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.event.MoreInfoShowEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.MoreInfoShowEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources;
import org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService;
import org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerServiceAsync;
import org.gcube.portlets.widgets.wsexplorer.client.view.Breadcrumbs;
@ -25,9 +26,12 @@ import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
import com.github.gwtbootstrap.client.ui.Alert;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
/**
@ -72,6 +76,7 @@ public class WorkspaceExplorerController implements EventHandler {
if(loadFolderEvent.getTargetItem()!=null && loadFolderEvent.getTargetItem().isFolder()){
wsExplorer.loadFolder(loadFolderEvent.getTargetItem());
loadParentBreadcrumbByItemId(loadFolderEvent.getTargetItem().getId(), true);
clearMoreInfo();
}
}
});
@ -95,25 +100,20 @@ public class WorkspaceExplorerController implements EventHandler {
public void onSuccess(Item result) {
result.setName(WorkspaceExplorerConstants.HOME_LABEL); //FORCE SET NAME LIKE "HOME_LABEL"
breadcrumbs.init(result);
clearMoreInfo();
}
});
}
});
eventBus.addHandler(MoreInfoShowEvent.TYPE, new MoreInfoShowEventHandler() {
eventBus.addHandler(ClickItemEvent.TYPE, new ClickItemEventHandler() {
@Override
public void onMoreInfo(MoreInfoShowEvent moreInfoShowEvent) {
public void onClick(final ClickItemEvent clickItemEvent) {
if(moreInfoShowEvent.getItem()!=null){
workspaceExplorerPanel.getSouthPanel().clear();
Alert alert = new Alert();
alert.setText(moreInfoShowEvent.getItem().toString());
alert.setType(AlertType.INFO);
alert.setClose(true);
workspaceExplorerPanel.getSouthPanel().add(alert);
// GWT.log("onMoreInfo");
// setupPopover(navigation.getMoreInfoPanel(), moreInfoShowEvent.getItem().getName(), "Info "+moreInfoShowEvent.getItem().getName()).show();
Item item = clickItemEvent.getItem();
if(item!=null){
updateMoreInfo(item);
}
}
@ -135,6 +135,7 @@ public class WorkspaceExplorerController implements EventHandler {
@Override
public void onSuccess(Item result) {
breadcrumbs.init(result);
clearMoreInfo();
}
});
}
@ -161,11 +162,85 @@ public class WorkspaceExplorerController implements EventHandler {
@Override
public void onSuccess(List<Item> result) {
if(result!=null)
if(result!=null){
breadcrumbs.setPath(result);
clearMoreInfo();
}
}
});
}
private void clearMoreInfo(){
workspaceExplorerPanel.getSouthPanel().clear();
}
private void updateMoreInfo(Item item){
if(item!=null){
workspaceExplorerPanel.getSouthPanel().clear();
Alert alert = new Alert();
alert.addStyleName("alert-custom");
final HorizontalPanel hp = new HorizontalPanel();
hp.add(WorkspaceExplorerResources.getIconInfo().createImage());
final Label labelName = new Label("Name: "+item.getName());
double marginValue = 10.0;
labelName.getElement().getStyle().setMarginLeft(marginValue, Unit.PX);
labelName.getElement().getStyle().setMarginRight(marginValue, Unit.PX);
final Label labelSize = new Label("Size: ");
labelSize.getElement().getStyle().setMarginRight(marginValue, Unit.PX);
final Label labelMime = new Label("Mime Type: ");
labelMime.getElement().getStyle().setMarginRight(marginValue, Unit.PX);
final Label labelACL = new Label("Rights: ");
labelACL.getElement().getStyle().setMarginRight(marginValue, Unit.PX);
hp.add(labelName);
hp.add(labelSize);
if(!item.isFolder())
hp.add(labelMime);
hp.add(labelACL);
workspaceNavigatorService.loadSizeByItemId(item.getId(), new AsyncCallback<Long>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(Long result) {
labelSize.setText("Size: " +Util.getFormattedSize(result));
labelSize.getElement().getStyle().setMarginLeft(10.0, Unit.PX);
}
});
if(!item.isFolder()){
workspaceNavigatorService.getMimeType(item.getId(), new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(String result) {
if(result!=null)
labelMime.setText("Mime Type: "+result);
}
});
}
workspaceNavigatorService.getUserACLForFolderId(item.getId(), new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(String result) {
labelACL.setText("Rights: "+result);
}
});
alert.add(hp);
alert.setType(AlertType.DEFAULT);
alert.setClose(false);
workspaceExplorerPanel.getSouthPanel().add(alert); }
}
/**

View File

@ -41,7 +41,7 @@ public class WorkspaceExplorerPanel extends DockPanel{
add(breadcrumbs, DockPanel.NORTH);
southPanel.ensureDebugId("SouthPanelWEP");
add(southPanel, DockPanel.SOUTH);
westPanel.setWidth(west_width+"px");
westPanel.add(navigation);
add(westPanel, DockPanel.WEST);

View File

@ -4,22 +4,24 @@ import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import com.google.gwt.event.shared.GwtEvent;
/**
* The Class DisplaySelectedReleaseEvent.
* The Class ClickItemEvent.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Feb 19, 2015
* Jul 6, 2015
*/
public class MoreInfoShowEvent extends GwtEvent<MoreInfoShowEventHandler> {
public static Type<MoreInfoShowEventHandler> TYPE = new Type<MoreInfoShowEventHandler>();
public class ClickItemEvent extends GwtEvent<ClickItemEventHandler> {
public static Type<ClickItemEventHandler> TYPE = new Type<ClickItemEventHandler>();
private Item item;
/**
* Instantiates a new display selected release event.
* Instantiates a new click item event.
*
* @param release the release
* @param item the item
*/
public MoreInfoShowEvent(Item item) {
public ClickItemEvent(Item item) {
this.item = item;
}
@ -27,7 +29,7 @@ public class MoreInfoShowEvent extends GwtEvent<MoreInfoShowEventHandler> {
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/
@Override
public Type<MoreInfoShowEventHandler> getAssociatedType() {
public Type<ClickItemEventHandler> getAssociatedType() {
return TYPE;
}
@ -35,11 +37,13 @@ public class MoreInfoShowEvent extends GwtEvent<MoreInfoShowEventHandler> {
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
*/
@Override
protected void dispatch(MoreInfoShowEventHandler handler) {
handler.onMoreInfo(this);
protected void dispatch(ClickItemEventHandler handler) {
handler.onClick(this);
}
/**
* Gets the item.
*
* @return the item
*/
public Item getItem() {

View File

@ -0,0 +1,20 @@
package org.gcube.portlets.widgets.wsexplorer.client.event;
import com.google.gwt.event.shared.EventHandler;
/**
* The Interface ClickItemEventHandler.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Jul 6, 2015
*/
public interface ClickItemEventHandler extends EventHandler {
/**
* On click.
*
* @param moreInfoShowEvent the more info show event
*/
void onClick(ClickItemEvent moreInfoShowEvent);
}

View File

@ -1,17 +0,0 @@
package org.gcube.portlets.widgets.wsexplorer.client.event;
import com.google.gwt.event.shared.EventHandler;
/**
* The Interface DisplaySelectedReleaseEventHandler.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Feb 19, 2015
*/
public interface MoreInfoShowEventHandler extends EventHandler {
/**
* @param moreInfoShowEvent
*/
void onMoreInfo(MoreInfoShowEvent moreInfoShowEvent);
}

View File

@ -73,4 +73,25 @@ public interface WorkspaceExplorerService extends RemoteService {
* @throws WorkspaceNavigatorServiceException
*/
Item getItemByCategory(ItemCategory category)throws WorkspaceNavigatorServiceException;
/**
* @param itemId
* @return
* @throws Exception
*/
Long loadSizeByItemId(String itemId) throws Exception;
/**
* @param itemId
* @return
* @throws Exception
*/
String getMimeType(String itemId) throws Exception;
/**
* @param folderId
* @return
* @throws Exception
*/
String getUserACLForFolderId(String folderId) throws Exception;
}

View File

@ -98,4 +98,23 @@ public interface WorkspaceExplorerServiceAsync {
*/
public void getItemByCategory(ItemCategory category, AsyncCallback<Item> asyncCallback);
/**
* @param id
* @param asyncCallback
*/
public void loadSizeByItemId(String id, AsyncCallback<Long> asyncCallback);
/**
* @param id
* @param asyncCallback
*/
public void getMimeType(String id, AsyncCallback<String> asyncCallback);
/**
* @param id
* @param asyncCallback
*/
public void getUserACLForFolderId(String id,
AsyncCallback<String> asyncCallback);
}

View File

@ -20,7 +20,6 @@ import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Widget;
/**

View File

@ -3,6 +3,7 @@ package org.gcube.portlets.widgets.wsexplorer.client.view.grid;
import java.util.List;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController;
import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEvent;
import org.gcube.portlets.widgets.wsexplorer.client.resources.CellTableResources;
import org.gcube.portlets.widgets.wsexplorer.client.view.SelectionItem;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
@ -52,16 +53,14 @@ public abstract class AbstractItemsCellTable implements SelectionItem{
*/
public abstract void initTable(AbstractCellTable<Item> ItemTable, final SimplePager pager, final Pagination pagination);
/**
* Instantiates a new abstract Item table.
* @param showMoreInfo
* @param showMoreInfo
* Instantiates a new abstract items cell table.
*
* @param showGroupId
* the show group id
* @param fireMoreInfo the fire more info
*/
public AbstractItemsCellTable(boolean showMoreInfo) {
this.showMoreInfo = showMoreInfo;
public AbstractItemsCellTable(boolean fireOnClick) {
this.showMoreInfo = fireOnClick;
cellTable = new CellTable<Item>(1, CellTableResources.INSTANCE);
cellTable.addStyleName("table-overflow");
cellTable.setStriped(true);
@ -81,6 +80,8 @@ public abstract class AbstractItemsCellTable implements SelectionItem{
if(selectedObject!=null){
GWT.log("Clicked: "+selectedObject);
selectedItem(selectedObject);
if(showMoreInfo)
WorkspaceExplorerController.eventBus.fireEvent(new ClickItemEvent(selectedObject));
}
}
});

View File

@ -9,24 +9,12 @@ import java.util.List;
import java.util.Set;
import org.gcube.portlets.widgets.wsexplorer.client.Util;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController;
import org.gcube.portlets.widgets.wsexplorer.client.event.MoreInfoShowEvent;
import org.gcube.portlets.widgets.wsexplorer.client.resources.WorkspaceExplorerResources;
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
import com.github.gwtbootstrap.client.ui.Pagination;
import com.github.gwtbootstrap.client.ui.Popover;
import com.github.gwtbootstrap.client.ui.Tooltip;
import com.github.gwtbootstrap.client.ui.constants.Placement;
import com.github.gwtbootstrap.client.ui.constants.Trigger;
import com.google.gwt.cell.client.ButtonCell;
import com.google.gwt.cell.client.Cell.Context;
import com.google.gwt.cell.client.FieldUpdater;
import com.google.gwt.cell.client.ImageCell;
import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
@ -37,10 +25,8 @@ import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
/**
* The Class PackagesTable.
*
@ -161,121 +147,6 @@ public class ItemsTable extends AbstractItemsCellTable {
}
});
packageTable.addColumnSortHandler(ownerColumnHandler);
if(showMoreInfo){
/*
// ButtonCell.
final ButtonCell buttonCell = new ButtonCell();
final Column<Item, String> column = new Column<Item, String>(buttonCell) {
@Override
public String getValue(Item dataObj) {
return "Info";
}
@Override
public void render(Context context, Item object, SafeHtmlBuilder sb) {
super.render(context, object, sb);
}
};
column.setFieldUpdater(new FieldUpdater<Item, String>() {
@Override
public void update(int index, Item object, String value) {
GWT.log("mouseover mouseover mouseover");
Popover pop = new Popover();
pop.setHeading("Info");
pop.setText("MouseOver on");
pop.setPlacement(Placement.RIGHT);
pop.setHtml(true);
pop.setTrigger(Trigger.HOVER);
// pop.setWidget(buttonCell);
setupPopover(packageTable.asWidget(), "MouseOver", "title");
}
});
column.setSortable(false);
packageTable.addColumn(column, "");
packageTable.setColumnWidth(column, 10.0, Unit.PCT);
*/
/*
final Column<Item, String> buttonImageCellTest = new Column<Item, String>(new ButtonImageCell()) {
private HorizontalPanel widget;
@Override
public String getValue(Item row) {
//url to image
return WorkspaceExplorerResources.ICONS.info().getSafeUri().toString();
}
@Override
public void render(Context context, Item object, SafeHtmlBuilder sb) {
// TODO Auto-generated method stub
super.render(context, object, sb);
widget = new HorizontalPanel();
sb.appendEscaped(widget.getElement().getInnerHTML());
}
@Override
public void setFieldUpdater(
FieldUpdater<Item, String> fieldUpdater) {
// TODO Auto-generated method stub
super.setFieldUpdater(fieldUpdater);
setupPopover(widget, "", "").show();
}
};
packageTable.addColumn(buttonImageCellTest, "");
packageTable.setColumnWidth(buttonImageCellTest, 10.0, Unit.PCT);
*/
//ICONS
ImageResourceCell moreInfoResourceCell = new ImageResourceCell() {
public Set<String> getConsumedEvents() {
HashSet<String> events = new HashSet<String>();
events.add("click");
return events;
}
};
moreInfo = new Column<Item, ImageResource>(moreInfoResourceCell) {
@Override
public ImageResource getValue(Item dataObj) {
return WorkspaceExplorerResources.ICONS.info();
}
@Override
public void onBrowserEvent(Context context, Element elem, Item object, NativeEvent event) {
super.onBrowserEvent(context, elem, object, event);
if ("click".equals(event.getType())) {
WorkspaceExplorerController.eventBus.fireEvent(new MoreInfoShowEvent(object));
}
}
};
moreInfo.setFieldUpdater(new FieldUpdater<Item, ImageResource>() {
@Override
public void update(int index, Item object, ImageResource value) {
// TODO Auto-generated method stub
}
});
// icon.setCellStyleNames("img-centered-clickable");
moreInfo.setSortable(false);
packageTable.addColumn(moreInfo, "");
packageTable.setColumnWidth(moreInfo, 10.0, Unit.PCT);
}
/*final SingleSelectionModel<Item> selectionModel = new SingleSelectionModel<Item>();
selectionModel.addSelectionChangeHandler(new Handler() {
@ -285,16 +156,6 @@ public class ItemsTable extends AbstractItemsCellTable {
});*/
}
private Tooltip setupPopover(Widget w, String message, String heading) {
Tooltip popover = new Tooltip();
popover.setWidget(w);
popover.setText(message);
// popover.setHeading(heading);
popover.setPlacement(Placement.RIGHT);
popover.reconfigure();
return popover;
}
public class ButtonImageCell extends ButtonCell{
@Override

View File

@ -17,4 +17,10 @@
.moreinfo{
margin-top: 60%;
}
.alert-custom {
margin-top: 10px;
margin-bottom: 0 !important;
padding: 2px !important;
}

View File

@ -75,7 +75,7 @@ public class UserUtil {
return true;
}
catch (Exception ex) {
logger.trace("Development Mode ON");
logger.trace("Is within portal: no! Development Mode ON");
return false;
}
}

View File

@ -9,13 +9,16 @@ import javax.servlet.http.HttpSession;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
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.WorkspaceFolderNotFoundException;
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService;
import org.gcube.portlets.widgets.wsexplorer.shared.FilterCriteria;
@ -172,6 +175,9 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
}
}
/* (non-Javadoc)
* @see org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService#getItemByCategory(org.gcube.portlets.widgets.wsexplorer.shared.ItemCategory)
*/
@Override
public Item getItemByCategory(ItemCategory category) throws WorkspaceNavigatorServiceException{
_log.trace("GetItemByCategory category: "+category);
@ -338,4 +344,111 @@ public class WorkspaceExplorerServiceImpl extends RemoteServiceServlet implement
return listParents;
}
/* (non-Javadoc)
* @see org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService#loadSizeByItemId(java.lang.String)
*/
@Override
public Long loadSizeByItemId(String itemId) throws Exception {
_log.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();
}
_log.info("returning size: " +size);
return size;
} catch (Exception e) {
_log.error("get Size By ItemId ", e);
throw new Exception(e.getMessage());
}
}
/* (non-Javadoc)
* @see org.gcube.portlets.widgets.wsexplorer.client.rpc.WorkspaceExplorerService#getMimeType(java.lang.String)
*/
@Override
public String getMimeType(String itemId) throws Exception {
_log.info("get MimeType By ItemId "+ itemId);
try {
Workspace workspace = getWorkspace();
WorkspaceItem wsItem = workspace.getItem(itemId);
if(!wsItem.getType().equals(WorkspaceItemType.FOLDER_ITEM))
return null;
FolderItem folderItem = (FolderItem) wsItem;
return folderItem.getMimeType();
} catch (Exception e) {
_log.error("get MimeType By ItemId ", e);
throw new Exception(e.getMessage());
}
}
/**
* Gets the user acl for folder id.
*
* @param folderId the folder id
* @return the user acl for folder id
* @throws Exception the exception
*/
@Override
public String getUserACLForFolderId(String folderId) throws Exception{
try {
_log.info("Get user ACL to FOLDER id: "+folderId);
Workspace workspace = getWorkspace();
WorkspaceItem wsItem = workspace.getItem(folderId);
if(!isASharedFolder(wsItem, false))
return "OWNER";
else //IS A SHARED FOLDER
return wsItem.getACLUser().toString();
} catch (Exception e) {
_log.error("Error in server get UserACLForFolderId", e);
String error = "An error occurred when getting ACL rules for selected folder. "+e.getMessage();
throw new Exception(error);
}
}
/**
* Checks if is a shared folder.
*
* @param item the item
* @param asRoot the as root
* @return true, if is a shared folder
*/
private boolean isASharedFolder(WorkspaceItem 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?
return true;
}
return false;
}catch(Exception e){
_log.error("Error in server isASharedFolder", e);
return false;
}
}
}