enhancements
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@92475 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
d9196c6caf
commit
2cccba4eb1
|
@ -5,8 +5,11 @@ package org.gcube.portlets.widgets.workspacesharingwidget.client;
|
||||||
|
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingService;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingService;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingServiceAsync;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingServiceAsync;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.DialogShareWItem;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.ACL_TYPE;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.ACL_TYPE;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||||
import com.extjs.gxt.ui.client.widget.Window;
|
import com.extjs.gxt.ui.client.widget.Window;
|
||||||
import com.google.gwt.core.client.GWT;
|
import com.google.gwt.core.client.GWT;
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
|
@ -27,6 +30,8 @@ public class WorkspaceSharingController {
|
||||||
private boolean shareOnlyOwner;
|
private boolean shareOnlyOwner;
|
||||||
|
|
||||||
private ACL_TYPE defaultPermission;
|
private ACL_TYPE defaultPermission;
|
||||||
|
|
||||||
|
private Window win = null;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,15 +53,69 @@ public class WorkspaceSharingController {
|
||||||
this.shareOnlyOwner = shareOnlyOwner;
|
this.shareOnlyOwner = shareOnlyOwner;
|
||||||
this.defaultPermission = defaultPermission;
|
this.defaultPermission = defaultPermission;
|
||||||
|
|
||||||
if(shareOnlyOwner){
|
|
||||||
loadMyLogin();
|
if(workspaceItemId==null || workspaceItemId.isEmpty()){
|
||||||
|
MessageBox.alert("Error", "Item id is null or empty", null);
|
||||||
Window win = new Window();
|
return;
|
||||||
// win.setSize(c, height)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initWindow();
|
||||||
|
|
||||||
|
if(shareOnlyOwner){
|
||||||
|
loadMyLogin(true, true);
|
||||||
|
}else{
|
||||||
|
loadFileModel(true);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadMyLogin() {
|
|
||||||
|
private void initWindow(){
|
||||||
|
win = new Window();
|
||||||
|
win.setSize(ConstantsSharing.WIDTH_DIALOG+20, ConstantsSharing.HEIGHT_DIALOG+20);
|
||||||
|
win.mask("Loading File from Workspace", ConstantsSharing.LOADINGSTYLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void loadFileModel(final boolean showSharingDialog){
|
||||||
|
|
||||||
|
rpcWorkspaceSharingService.getFileModelByWorkpaceItemId(workspaceItemId, new AsyncCallback<FileModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
win.unmask();
|
||||||
|
MessageBox.alert("Error", caught.getMessage(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(FileModel result) {
|
||||||
|
win.mask("File loaded", ConstantsSharing.LOADINGSTYLE);
|
||||||
|
|
||||||
|
if(showSharingDialog)
|
||||||
|
createDialog(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param fileModel
|
||||||
|
*/
|
||||||
|
private void createDialog(FileModel fileModel){
|
||||||
|
win.unmask();
|
||||||
|
DialogShareWItem dialogShareItem = new DialogShareWItem(fileModel, shareOnlyOwner, defaultPermission);
|
||||||
|
win.add(dialogShareItem);
|
||||||
|
dialogShareItem.show();
|
||||||
|
|
||||||
|
win.layout();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param loadFileModel
|
||||||
|
* @param showSharingDialog
|
||||||
|
*/
|
||||||
|
private void loadMyLogin(final boolean loadFileModel, final boolean showSharingDialog) {
|
||||||
|
|
||||||
rpcWorkspaceSharingService.getMyLogin(new AsyncCallback<String>() {
|
rpcWorkspaceSharingService.getMyLogin(new AsyncCallback<String>() {
|
||||||
|
|
||||||
|
@ -71,11 +130,13 @@ public class WorkspaceSharingController {
|
||||||
public void onSuccess(String result) {
|
public void onSuccess(String result) {
|
||||||
GWT.log("My login is: " + result);
|
GWT.log("My login is: " + result);
|
||||||
myLogin = result;
|
myLogin = result;
|
||||||
|
|
||||||
|
if(loadFileModel)
|
||||||
|
loadFileModel(showSharingDialog);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String getMyLogin() {
|
public static String getMyLogin() {
|
||||||
return myLogin;
|
return myLogin;
|
||||||
}
|
}
|
||||||
|
@ -94,4 +155,13 @@ public class WorkspaceSharingController {
|
||||||
return defaultPermission;
|
return defaultPermission;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Window getSharingWindow() {
|
||||||
|
return win;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,36 +1,46 @@
|
||||||
package org.gcube.portlets.widgets.workspacesharingwidget.client;
|
package org.gcube.portlets.widgets.workspacesharingwidget.client;
|
||||||
|
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.ACL_TYPE;
|
||||||
|
|
||||||
|
import com.extjs.gxt.ui.client.widget.Window;
|
||||||
import com.google.gwt.core.client.EntryPoint;
|
import com.google.gwt.core.client.EntryPoint;
|
||||||
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
|
import com.google.gwt.user.client.ui.Button;
|
||||||
|
import com.google.gwt.user.client.ui.RootPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entry point classes define <code>onModuleLoad()</code>.
|
* Entry point classes define <code>onModuleLoad()</code>.
|
||||||
*/
|
*/
|
||||||
public class WorkspaceSharingWidget implements EntryPoint {
|
public class WorkspaceSharingWidget implements EntryPoint {
|
||||||
|
|
||||||
|
public static String ITEMID = "56a9aa27-2150-4409-b5da-cc96c5c4eb70";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the entry point method.
|
||||||
|
*/
|
||||||
|
public void onModuleLoad() {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
WorkspaceSharingController controller = new WorkspaceSharingController(
|
||||||
|
ITEMID, true, ACL_TYPE.READ_ONLY);
|
||||||
|
|
||||||
|
final Window sharingWindow = controller.getSharingWindow();
|
||||||
|
|
||||||
|
Button openSharingWindow = new Button("Show Sharing Window",
|
||||||
|
new ClickHandler() {
|
||||||
|
public void onClick(ClickEvent event) {
|
||||||
|
|
||||||
|
sharingWindow.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
RootPanel.get("workpacesharingwidget").add(openSharingWindow);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the entry point method.
|
|
||||||
*/
|
|
||||||
public void onModuleLoad() {
|
|
||||||
|
|
||||||
|
|
||||||
// final Label loading = new Label("loading");
|
|
||||||
// WorkspaceSharingController.rpcWorkspaceSharingService.greetServer("a",new AsyncCallback<String>() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void onSuccess(String result) {
|
|
||||||
// loading.setText(result);
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void onFailure(Throwable caught) {
|
|
||||||
// // TODO Auto-generated method stub
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// RootPanel.get("workpacesharingwidget").add(loading);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.gcube.portlets.widgets.workspacesharingwidget.client.rpc;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
||||||
|
|
||||||
|
@ -46,4 +47,11 @@ public interface WorkspaceSharingService extends RemoteService {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String getMyLogin();
|
String getMyLogin();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param itemId
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
FileModel getFileModelByWorkpaceItemId(String itemId) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.gcube.portlets.widgets.workspacesharingwidget.client.rpc;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
||||||
|
|
||||||
|
@ -56,4 +57,8 @@ public interface WorkspaceSharingServiceAsync
|
||||||
|
|
||||||
|
|
||||||
void getMyLogin(AsyncCallback<String> callback);
|
void getMyLogin(AsyncCallback<String> callback);
|
||||||
|
|
||||||
|
|
||||||
|
void getFileModelByWorkpaceItemId(String itemId,
|
||||||
|
AsyncCallback<FileModel> callback);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
||||||
import com.google.gwt.core.shared.GWT;
|
import com.google.gwt.core.shared.GWT;
|
||||||
import com.google.gwt.event.dom.client.ClickEvent;
|
import com.google.gwt.event.dom.client.ClickEvent;
|
||||||
import com.google.gwt.event.dom.client.ClickHandler;
|
import com.google.gwt.event.dom.client.ClickHandler;
|
||||||
import com.google.gwt.event.shared.HandlerManager;
|
|
||||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
import com.google.gwt.user.client.ui.Button;
|
import com.google.gwt.user.client.ui.Button;
|
||||||
import com.google.gwt.user.client.ui.FlexTable;
|
import com.google.gwt.user.client.ui.FlexTable;
|
||||||
|
@ -88,7 +87,7 @@ public class DialogShareWItem extends Dialog {
|
||||||
* @param fileModel
|
* @param fileModel
|
||||||
* @param type
|
* @param type
|
||||||
*/
|
*/
|
||||||
public DialogShareWItem(FileModel fileModel, HandlerManager eventBus, final boolean shareOnlyOwner, final ACL_TYPE defaultACL) {
|
public DialogShareWItem(FileModel fileModel, final boolean shareOnlyOwner, final ACL_TYPE defaultACL) {
|
||||||
initLayout();
|
initLayout();
|
||||||
this.fileToShare = fileModel;
|
this.fileToShare = fileModel;
|
||||||
|
|
||||||
|
@ -220,8 +219,6 @@ public class DialogShareWItem extends Dialog {
|
||||||
|
|
||||||
if(shareOnlyOwner)
|
if(shareOnlyOwner)
|
||||||
enableFormDialog(false); //FORM IS DISABLED BY DEFAULT
|
enableFormDialog(false); //FORM IS DISABLED BY DEFAULT
|
||||||
|
|
||||||
this.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void permissionControl(String owner, boolean showAlert){
|
private void permissionControl(String owner, boolean showAlert){
|
||||||
|
|
|
@ -10,10 +10,21 @@ import java.util.List;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.gcube.common.homelibrary.home.User;
|
import org.gcube.common.homelibrary.home.User;
|
||||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
|
||||||
import org.gcube.common.homelibrary.home.workspace.accessmanager.ACLType;
|
import org.gcube.common.homelibrary.home.workspace.accessmanager.ACLType;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalImage;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalPDFFile;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.items.gcube.Document;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.items.gcube.ImageDocument;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.UserUtil;
|
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.UserUtil;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.WsUtil;
|
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.WsUtil;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.ACL_TYPE;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.ACL_TYPE;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.FolderModel;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.GXTFolderItemTypeEnum;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL.USER_TYPE;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL.USER_TYPE;
|
||||||
|
@ -185,5 +196,121 @@ public class GWTWorkspaceSharingBuilder {
|
||||||
|
|
||||||
return acls;
|
return acls;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected FileModel buildGXTFileModelItem(WorkspaceItem item, FileModel parentFolderModel) throws InternalErrorException
|
||||||
|
{
|
||||||
|
|
||||||
|
FileModel fileModel = null;
|
||||||
|
|
||||||
|
switch (item.getType()) {
|
||||||
|
|
||||||
|
case FOLDER:
|
||||||
|
|
||||||
|
fileModel = new FolderModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, true, false, false);
|
||||||
|
fileModel.setType(GXTFolderItemTypeEnum.FOLDER.toString());
|
||||||
|
fileModel.setDescription(item.getDescription());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FOLDER_ITEM:
|
||||||
|
|
||||||
|
fileModel = new FileModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, false, false);
|
||||||
|
FolderItem folderItem = (FolderItem) item;
|
||||||
|
fileModel = setFolderItemType(fileModel, folderItem);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SHARED_FOLDER:
|
||||||
|
WorkspaceSharedFolder shared = (WorkspaceSharedFolder) item;
|
||||||
|
String name = shared.isVreFolder()?shared.getDisplayName():item.getName();
|
||||||
|
fileModel = new FolderModel(item.getId(), name, (FolderModel) parentFolderModel, true, true, shared.isVreFolder());
|
||||||
|
fileModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString());
|
||||||
|
fileModel.setDescription(item.getDescription());
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
logger.error("gxt conversion return null for item "+item.getName());
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return fileModel;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected FileModel setFolderItemType(FileModel fileModel, FolderItem worspaceFolderItem){
|
||||||
|
|
||||||
|
switch(worspaceFolderItem.getFolderItemType())
|
||||||
|
{
|
||||||
|
case EXTERNAL_IMAGE:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.EXTERNAL_IMAGE);
|
||||||
|
ExternalImage extImage = (ExternalImage) worspaceFolderItem;
|
||||||
|
fileModel.setType(extImage.getMimeType());
|
||||||
|
break;
|
||||||
|
case EXTERNAL_FILE:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.EXTERNAL_FILE);
|
||||||
|
|
||||||
|
ExternalFile extFile = (ExternalFile) worspaceFolderItem;
|
||||||
|
fileModel.setType(extFile.getMimeType());
|
||||||
|
break;
|
||||||
|
case EXTERNAL_PDF_FILE:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.EXTERNAL_PDF_FILE);
|
||||||
|
ExternalPDFFile pdfExt = (ExternalPDFFile) worspaceFolderItem;
|
||||||
|
fileModel.setType(pdfExt.getMimeType());
|
||||||
|
break;
|
||||||
|
case EXTERNAL_URL:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.EXTERNAL_URL);
|
||||||
|
break;
|
||||||
|
case REPORT_TEMPLATE:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.REPORT_TEMPLATE);
|
||||||
|
break;
|
||||||
|
case REPORT:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.REPORT);
|
||||||
|
break;
|
||||||
|
case QUERY:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.QUERY);
|
||||||
|
break;
|
||||||
|
case TIME_SERIES:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.TIME_SERIES);
|
||||||
|
break;
|
||||||
|
case PDF_DOCUMENT:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.PDF_DOCUMENT);
|
||||||
|
break;
|
||||||
|
case IMAGE_DOCUMENT:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.IMAGE_DOCUMENT);
|
||||||
|
ImageDocument imgDoc = (ImageDocument) worspaceFolderItem;
|
||||||
|
fileModel.setType(imgDoc.getMimeType());
|
||||||
|
break;
|
||||||
|
case DOCUMENT:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.DOCUMENT);
|
||||||
|
Document doc = (Document) worspaceFolderItem;
|
||||||
|
fileModel.setType(doc.getMimeType());
|
||||||
|
break;
|
||||||
|
case URL_DOCUMENT:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.URL_DOCUMENT);
|
||||||
|
break;
|
||||||
|
case METADATA:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.METADATA);
|
||||||
|
break;
|
||||||
|
case WORKFLOW_REPORT:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.WORKFLOW_REPORT);
|
||||||
|
break;
|
||||||
|
case WORKFLOW_TEMPLATE:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.WORKFLOW_TEMPLATE);
|
||||||
|
// logger.trace("**************************************DOCUMENTS******* filemodel "+ fileModel.getName());
|
||||||
|
break;
|
||||||
|
case EXTERNAL_RESOURCE_LINK:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.EXTERNAL_RESOURCE_LINK);
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fileModel.setFolderItemType(GXTFolderItemTypeEnum.UNKNOWN_TYPE);
|
||||||
|
fileModel.setType(GXTFolderItemTypeEnum.UNKNOWN_TYPE.toString());
|
||||||
|
// logger.trace("**************************************UNKNOWN******* filemodel "+ fileModel.getName());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fileModel;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,17 +9,20 @@ import org.gcube.application.framework.core.session.ASLSession;
|
||||||
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
|
import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
|
||||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||||
import org.gcube.common.homelibrary.home.workspace.Workspace;
|
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.WorkspaceItem;
|
||||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItemType;
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceItemType;
|
||||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
|
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
|
||||||
import org.gcube.common.homelibrary.home.workspace.accessmanager.ACLType;
|
import org.gcube.common.homelibrary.home.workspace.accessmanager.ACLType;
|
||||||
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.ConstantsSharing;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.ConstantsSharing;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingService;
|
import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingService;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.server.notifications.NotificationsProducer;
|
import org.gcube.portlets.widgets.workspacesharingwidget.server.notifications.NotificationsProducer;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.server.notifications.NotificationsUtil;
|
import org.gcube.portlets.widgets.workspacesharingwidget.server.notifications.NotificationsUtil;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.ScopeUtilFilter;
|
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.ScopeUtilFilter;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.WsUtil;
|
import org.gcube.portlets.widgets.workspacesharingwidget.server.util.WsUtil;
|
||||||
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
||||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
|
||||||
import org.gcube.vomanagement.usermanagement.GroupManager;
|
import org.gcube.vomanagement.usermanagement.GroupManager;
|
||||||
|
@ -195,6 +198,54 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
||||||
ASLSession asl = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
|
ASLSession asl = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
|
||||||
return asl.getUsername();
|
return asl.getUsername();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileModel getFileModelByWorkpaceItemId(String itemId) throws Exception {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if(itemId == null || itemId.isEmpty())
|
||||||
|
throw new Exception("Identifier is null or empty");
|
||||||
|
|
||||||
|
Workspace workspace = getWorkspace();
|
||||||
|
|
||||||
|
logger.trace("Get item id: "+itemId);
|
||||||
|
|
||||||
|
WorkspaceItem wsItem = workspace.getItem(itemId);
|
||||||
|
|
||||||
|
GWTWorkspaceSharingBuilder builder = getGWTWorkspaceBuilder();
|
||||||
|
|
||||||
|
// Long startTime = System.currentTimeMillis();
|
||||||
|
//
|
||||||
|
// Long endTime = System.currentTimeMillis() - startTime;
|
||||||
|
// String time = String.format("%d msc %d sec", endTime, TimeUnit.MILLISECONDS.toSeconds(endTime));
|
||||||
|
// logger.debug("get child for Grid by id returning element in " + time);
|
||||||
|
|
||||||
|
logger.trace("Getting folder parent");
|
||||||
|
|
||||||
|
WorkspaceFolder folderParent = null;
|
||||||
|
if(wsItem!=null)
|
||||||
|
folderParent = wsItem.getParent(); //BUILD PARENT
|
||||||
|
else
|
||||||
|
throw new Exception("Workspace item not found");
|
||||||
|
|
||||||
|
|
||||||
|
FileModel parent = null;
|
||||||
|
if(folderParent!=null){
|
||||||
|
parent = builder.buildGXTFileModelItem(folderParent, null);
|
||||||
|
logger.trace("Folder parent is parent id: "+parent.getIdentifier() + " name: "+parent.getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
logger.trace("Folder parent for item: "+wsItem.getId() +" is null");
|
||||||
|
|
||||||
|
//BUILD ITEM
|
||||||
|
return builder.buildGXTFileModelItem(wsItem, parent);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Error in server during item retrieving, getItemForFileGrid", e);
|
||||||
|
String error = ConstantsSharing.SERVER_ERROR + " retrieving the item from workspace, "+e.getMessage();
|
||||||
|
throw new Exception(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,8 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
|
|
||||||
private static final String NAME = "NAME";
|
private static final String NAME = "NAME";
|
||||||
|
|
||||||
|
private static final String FOLDERITEMTYPE = "FOLDERITEMTYPE";
|
||||||
|
|
||||||
protected InfoContactModel infoContacts;
|
protected InfoContactModel infoContacts;
|
||||||
protected boolean isRoot = false;
|
protected boolean isRoot = false;
|
||||||
protected boolean isVreFolder;
|
protected boolean isVreFolder;
|
||||||
|
@ -190,6 +192,14 @@ public class FileModel extends BaseModelData implements Serializable {
|
||||||
}
|
}
|
||||||
return super.equals(obj);
|
return super.equals(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setFolderItemType(GXTFolderItemTypeEnum folderItemTypeEnum){
|
||||||
|
set(FOLDERITEMTYPE, folderItemTypeEnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GXTFolderItemTypeEnum getGXTFolderItemType(){
|
||||||
|
return (GXTFolderItemTypeEnum) get(FOLDERITEMTYPE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param isShared
|
* @param isShared
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
package org.gcube.portlets.widgets.workspacesharingwidget.shared;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public enum GXTFolderItemTypeEnum implements Serializable {
|
||||||
|
// AQUAMAPS_ITEM("AquaMaps Item"),
|
||||||
|
EXTERNAL_FILE("External File"),
|
||||||
|
EXTERNAL_IMAGE("External Image"),
|
||||||
|
EXTERNAL_PDF_FILE("External PDF File"),
|
||||||
|
EXTERNAL_URL("External Url"),
|
||||||
|
EXTERNAL_RESOURCE_LINK("Exteranl Resource Link"),
|
||||||
|
QUERY("Query"),
|
||||||
|
REPORT("Report"),
|
||||||
|
REPORT_TEMPLATE("Report Template"),
|
||||||
|
TIME_SERIES("Time Series"),
|
||||||
|
DOCUMENT("Document"),
|
||||||
|
IMAGE_DOCUMENT("Image Document"),
|
||||||
|
PDF_DOCUMENT("PDF Document"),
|
||||||
|
URL_DOCUMENT("Url Document"),
|
||||||
|
METADATA("Metadata"),
|
||||||
|
WORKFLOW_REPORT("Workflow Report"),
|
||||||
|
WORKFLOW_TEMPLATE("Workflow Template"),
|
||||||
|
UNKNOWN_TYPE("Unknow Type"),
|
||||||
|
ANNOTATION("Annotation"),
|
||||||
|
FOLDER("Folder"),
|
||||||
|
SHARED_FOLDER("Shared Folder");
|
||||||
|
// EXTERNAL_IMAGE,
|
||||||
|
// EXTERNAL_FILE,
|
||||||
|
// EXTERNAL_PDF_FILE,
|
||||||
|
// EXTERNAL_URL,
|
||||||
|
// QUERY,
|
||||||
|
// REPORT_TEMPLATE,
|
||||||
|
// REPORT,
|
||||||
|
// DOCUMENT,
|
||||||
|
// METADATA,
|
||||||
|
// PDF_DOCUMENT,
|
||||||
|
// IMAGE_DOCUMENT,
|
||||||
|
// URL_DOCUMENT,
|
||||||
|
// TIME_SERIES,
|
||||||
|
// AQUAMAPS_ITEM,
|
||||||
|
// WORKFLOW_REPORT,
|
||||||
|
// WORKFLOW_TEMPLATE,
|
||||||
|
// UNKNOWN_TYPE;
|
||||||
|
|
||||||
|
protected String label;
|
||||||
|
|
||||||
|
GXTFolderItemTypeEnum(){}
|
||||||
|
|
||||||
|
GXTFolderItemTypeEnum(String label)
|
||||||
|
{
|
||||||
|
this.label = label;
|
||||||
|
|
||||||
|
}
|
||||||
|
public String getLabel()
|
||||||
|
{
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,6 @@
|
||||||
<link type="text/css" rel="stylesheet" href="workspacesharingwidget.css">
|
<link type="text/css" rel="stylesheet" href="workspacesharingwidget.css">
|
||||||
|
|
||||||
<link rel='stylesheet' type='text/css' href='gxt2/css/gxt-all.css' />
|
<link rel='stylesheet' type='text/css' href='gxt2/css/gxt-all.css' />
|
||||||
<script language='javascript' src='resources/flash/swfobject.js' />
|
|
||||||
<script type="text/javascript" language="javascript"
|
<script type="text/javascript" language="javascript"
|
||||||
src="workspacesharingwidget/workspacesharingwidget.nocache.js" />
|
src="workspacesharingwidget/workspacesharingwidget.nocache.js" />
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue