task sharing.. updated

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@69134 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2013-02-12 15:02:00 +00:00
parent 0e8598dc12
commit 6b81912a63
12 changed files with 203 additions and 117 deletions

View File

@ -79,6 +79,7 @@ import org.gcube.portlets.user.workspace.client.interfaces.SubscriberInterface;
import org.gcube.portlets.user.workspace.client.interfaces.TreeAppControllerInterface; import org.gcube.portlets.user.workspace.client.interfaces.TreeAppControllerInterface;
import org.gcube.portlets.user.workspace.client.model.FileModel; import org.gcube.portlets.user.workspace.client.model.FileModel;
import org.gcube.portlets.user.workspace.client.model.FolderModel; import org.gcube.portlets.user.workspace.client.model.FolderModel;
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
import org.gcube.portlets.user.workspace.client.model.MessageModel; import org.gcube.portlets.user.workspace.client.model.MessageModel;
import org.gcube.portlets.user.workspace.client.model.SmartFolderModel; import org.gcube.portlets.user.workspace.client.model.SmartFolderModel;
import org.gcube.portlets.user.workspace.client.model.SubTree; import org.gcube.portlets.user.workspace.client.model.SubTree;
@ -99,6 +100,7 @@ import org.gcube.portlets.user.workspace.client.view.windows.DialogWebDavUrl;
import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplay; import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplay;
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert; import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxConfirm; import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxConfirm;
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxInfo;
import org.gcube.portlets.user.workspace.client.view.windows.WindowImagePreview; import org.gcube.portlets.user.workspace.client.view.windows.WindowImagePreview;
import org.gcube.portlets.user.workspace.client.view.windows.WindowOpenUrl; import org.gcube.portlets.user.workspace.client.view.windows.WindowOpenUrl;
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem; import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
@ -208,75 +210,97 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
@Override @Override
public void onCreateSharedFolder(CreateSharedFolderEvent createSharedFolderEvent) { public void onCreateSharedFolder(CreateSharedFolderEvent createSharedFolderEvent) {
final FileModel sourceFileModel = createSharedFolderEvent.getFileSourceModel(); final FileModel sourceFileModel = createSharedFolderEvent.getFileSourceModel();
System.out.println("##########sourceFileModel id "+sourceFileModel.getIdentifier());
final FileModel parentFileModel= createSharedFolderEvent.getParentFileModel(); //IF ITEM IS SHAREABLE
final boolean isNewFolder = createSharedFolderEvent.isNewFolder(); if(sourceFileModel.isShareable()){
DialogShareFolder dialogSharedFolder = null;
String parentDirectoryName = null; System.out.println("create shared folderEvent - sourceFileModel id "+sourceFileModel.getIdentifier());
FolderModel parent = null; final FileModel parentFileModel= createSharedFolderEvent.getParentFileModel();
final boolean isNewFolder = createSharedFolderEvent.isNewFolder();
if(sourceFileModel.isDirectory()){ DialogShareFolder dialogSharedFolder = null;
// explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true); String parentDirectoryName = null;
parentDirectoryName = sourceFileModel.getName(); FileModel parent = null;
parent = (FolderModel) sourceFileModel;
} if(parentFileModel==null){ //PARENT IS ROOT
else{ parent = explorerPanel.getAsycTreePanel().getRootItem();
parentDirectoryName = parentFileModel.getName(); sourceFileModel.setParentFileModel(parent);
parent = (FolderModel) parentFileModel; }
}
if(sourceFileModel.isDirectory()){
if(isNewFolder) // explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true);
dialogSharedFolder = new DialogShareFolder(parentDirectoryName,eventBus); parentDirectoryName = sourceFileModel.getName();
else parent = sourceFileModel;
dialogSharedFolder = new DialogShareFolder(parentDirectoryName, (FolderModel) sourceFileModel, eventBus); }
else{
parentDirectoryName = parentFileModel.getName();
final DialogShareFolder finalDialog = dialogSharedFolder;
final FolderModel parentModel = parent;
finalDialog.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
@Override
public void handleEvent(BaseEvent be) {
if(finalDialog.isValidForm(true)){
FolderModel folderModel = null;
if(isNewFolder){
folderModel = new FolderModel("tempId", finalDialog.getName(), parentModel, true, false); //create new shared folder
}
else{
folderModel = finalDialog.getFolder(); //add user for share
}
System.out.println("##########sourceFileModel id "+folderModel.getIdentifier());
rpcWorkspaceService.shareFolder(folderModel, finalDialog.getSharedListUsers(), isNewFolder, new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR+" creating shared folder. "+ caught.getMessage(), null);
}
@Override
public void onSuccess(Boolean result) {
if(result)
eventBus.fireEvent(new RefreshFolderEvent(parentFileModel));
}
});
}
} }
});
if(isNewFolder)
dialogSharedFolder = new DialogShareFolder(parentDirectoryName,eventBus);
else
dialogSharedFolder = new DialogShareFolder(parentDirectoryName, sourceFileModel, eventBus);
final DialogShareFolder finalDialog = dialogSharedFolder;
final FileModel parentModel = parent;
finalDialog.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
@Override
public void handleEvent(BaseEvent be) {
if(finalDialog.isValidForm(true)){
FileModel fileModel = null;
if(isNewFolder){
//create a lowest object to send to server
fileModel = new FileModel("tempId", finalDialog.getName(), parentModel, true, false); //create new shared folder
}
else{
fileModel = finalDialog.getParentFolder(); //add user for share
//create a lowest object to send to server
fileModel = new FileModel(fileModel.getIdentifier(), fileModel.getName(), fileModel.getParentFileModel(), fileModel.isDirectory(), fileModel.isShared());
}
//DEBUG
System.out.println("FileModel id "+fileModel.getIdentifier() + " name: "+fileModel.getName() + " parent " + fileModel.getParentFileModel());
for(InfoContactModel contact:finalDialog.getSharedListUsers() ){
System.out.println("Share with Contact "+contact) ;
}
rpcWorkspaceService.shareFolder(fileModel, finalDialog.getSharedListUsers(), isNewFolder, new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
new MessageBoxAlert("Error", ConstantsExplorer.SERVER_ERROR+" creating shared folder. "+ caught.getMessage(), null);
}
@Override
public void onSuccess(Boolean result) {
if(result)
eventBus.fireEvent(new RefreshFolderEvent(parentFileModel));
}
});
}
}
});
}
else{//ITEM IS NOT SHARABLE
new MessageBoxInfo("Info", "The selected item is not shareable because an ancestor item is already shared");
}
} }
}); });

View File

@ -109,6 +109,7 @@ public class ConstantsExplorer {
public static final String FOLDERLOADED = "loaded"; public static final String FOLDERLOADED = "loaded";
public static final String MARKASREAD = "MARKASREAD"; public static final String MARKASREAD = "MARKASREAD";
public static final String ISROOT = "ISROOT"; public static final String ISROOT = "ISROOT";
public static final String ISSHAREABLE = "ISSHAREABLE";
//GRID COLUMNS constants //GRID COLUMNS constants
@ -194,6 +195,7 @@ public class ConstantsExplorer {
public static final String ATTACHS = "Attachs"; public static final String ATTACHS = "Attachs";
public static final Object NONE = "None"; public static final Object NONE = "None";
public static final String ABSTRACTICON = "Abstract Icon"; public static final String ABSTRACTICON = "Abstract Icon";

View File

@ -28,12 +28,21 @@ public class FileModel extends BaseModelData implements Serializable {
protected FileModel(){ protected FileModel(){
} }
/**
*
* @param identifier
* @param name
* @param parent
* @param isDirectory
* @param isShared
*/
public FileModel(String identifier, String name, FileModel parent, boolean isDirectory, boolean isShared) { public FileModel(String identifier, String name, FileModel parent, boolean isDirectory, boolean isShared) {
setIdentifier(identifier); setIdentifier(identifier);
setName(name); setName(name);
setParentFileModel(parent); setParentFileModel(parent);
setIsDirectory(isDirectory); setIsDirectory(isDirectory);
setShared(isShared); setShared(isShared);
initDefaultProperties();
} }
/** /**
@ -46,8 +55,34 @@ public class FileModel extends BaseModelData implements Serializable {
setIdentifier(identifier); setIdentifier(identifier);
setName(name); setName(name);
setIsDirectory(isDirectory); setIsDirectory(isDirectory);
initDefaultProperties();
} }
private void initDefaultProperties(){
setMarkAsRead(false);
setShortcutCategory("");
setShareable(false);
}
public void setShareable(boolean bool) {
set(ConstantsExplorer.ISSHAREABLE,bool);
}
public boolean isShareable() {
return (Boolean) get(ConstantsExplorer.ISSHAREABLE);
}
/**
*
* @param identifier
* @param name
* @param type
* @param folderItemTypeEnum
* @param isDirectory
* @param isShared
*/
public FileModel(String identifier, String name, String type, GXTFolderItemTypeEnum folderItemTypeEnum, boolean isDirectory, boolean isShared) { public FileModel(String identifier, String name, String type, GXTFolderItemTypeEnum folderItemTypeEnum, boolean isDirectory, boolean isShared) {
setIdentifier(identifier); setIdentifier(identifier);
setName(name); setName(name);
@ -55,6 +90,7 @@ public class FileModel extends BaseModelData implements Serializable {
setFolderItemType(folderItemTypeEnum); setFolderItemType(folderItemTypeEnum);
setIsDirectory(isDirectory); setIsDirectory(isDirectory);
setShared(isShared); setShared(isShared);
initDefaultProperties();
} }
public void setParentFileModel(FileModel parent) { public void setParentFileModel(FileModel parent) {
@ -86,10 +122,14 @@ public class FileModel extends BaseModelData implements Serializable {
//SHARED FOLDER //SHARED FOLDER
else if(this.isShared()){ else if(this.isShared()){
absImgPr = Resources.getIconSharedFolder(); if(this.isShareable()) //IS ROOT SHARED FOLDER
absImgPr = Resources.getIconSharedFolder();
//SIMPLE FOLDER else
}else{ absImgPr = Resources.getIconFolder(); //IS A DESCENDANT
}
else{//SIMPLE FOLDER
absImgPr = Resources.getIconFolder(); absImgPr = Resources.getIconFolder();
} }
@ -228,9 +268,6 @@ public class FileModel extends BaseModelData implements Serializable {
return (GXTFolderItemTypeEnum) get(ConstantsExplorer.FOLDERITEMTYPE); return (GXTFolderItemTypeEnum) get(ConstantsExplorer.FOLDERITEMTYPE);
} }
public String getGXTFolderItemTypeToString(){
return get(ConstantsExplorer.FOLDERITEMTYPE).toString();
}
@Override @Override
public String toString() { public String toString() {
@ -243,6 +280,8 @@ public class FileModel extends BaseModelData implements Serializable {
builder.append(getListUserSharing()); builder.append(getListUserSharing());
builder.append(", isShared()="); builder.append(", isShared()=");
builder.append(isShared()); builder.append(isShared());
builder.append(", isRoot()=");
builder.append(isRoot());
builder.append(", getIcon()="); builder.append(", getIcon()=");
builder.append(getIcon()); builder.append(getIcon());
builder.append(", getAbstractPrototypeIcon()="); builder.append(", getAbstractPrototypeIcon()=");
@ -263,10 +302,10 @@ public class FileModel extends BaseModelData implements Serializable {
builder.append(getType()); builder.append(getType());
builder.append(", getGXTFolderItemType()="); builder.append(", getGXTFolderItemType()=");
builder.append(getGXTFolderItemType()); builder.append(getGXTFolderItemType());
builder.append(", getGXTFolderItemTypeToString()=");
builder.append(getGXTFolderItemTypeToString());
builder.append("]"); builder.append("]");
return builder.toString(); return builder.toString();
} }
} }

View File

@ -53,8 +53,6 @@ public class FolderModel extends FileModel {
builder.append(getType()); builder.append(getType());
builder.append(", getGXTFolderItemType()="); builder.append(", getGXTFolderItemType()=");
builder.append(getGXTFolderItemType()); builder.append(getGXTFolderItemType());
builder.append(", getGXTFolderItemTypeToString()=");
builder.append(getGXTFolderItemTypeToString());
builder.append(", getProperties()="); builder.append(", getProperties()=");
builder.append(getProperties()); builder.append(getProperties());
builder.append(", getPropertyNames()="); builder.append(", getPropertyNames()=");

View File

@ -103,8 +103,8 @@ public interface GWTWorkspaceService extends RemoteService{
public GWTWorkspaceItem getTimeSeriesById(String identifier) throws Exception; public GWTWorkspaceItem getTimeSeriesById(String identifier) throws Exception;
boolean shareFolder(FolderModel folder, List<InfoContactModel> listContacts, boolean isNewFolder) boolean shareFolder(FileModel folder, List<InfoContactModel> listContacts,
throws Exception; boolean isNewFolder) throws Exception;
public List<InfoContactModel> getListUserSharedByFolderSharedId(String itemId) throws Exception; public List<InfoContactModel> getListUserSharedByFolderSharedId(String itemId) throws Exception;

View File

@ -105,7 +105,7 @@ public interface GWTWorkspaceServiceAsync {
void getTimeSeriesById(String identifier, void getTimeSeriesById(String identifier,
AsyncCallback<GWTWorkspaceItem> callback); AsyncCallback<GWTWorkspaceItem> callback);
void shareFolder(FolderModel folder, List<InfoContactModel> listContacts, void shareFolder(FileModel folder, List<InfoContactModel> listContacts,
boolean isNewFolder, AsyncCallback<Boolean> callback); boolean isNewFolder, AsyncCallback<Boolean> callback);
void getListUserSharedByFolderSharedId(String itemId, void getListUserSharedByFolderSharedId(String itemId,

View File

@ -3,7 +3,7 @@ package org.gcube.portlets.user.workspace.client.view.sharing;
import java.util.List; import java.util.List;
import org.gcube.portlets.user.workspace.client.ConstantsExplorer; import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
import org.gcube.portlets.user.workspace.client.model.FolderModel; import org.gcube.portlets.user.workspace.client.model.FileModel;
import org.gcube.portlets.user.workspace.client.model.InfoContactModel; import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
import org.gcube.portlets.user.workspace.client.resources.Resources; import org.gcube.portlets.user.workspace.client.resources.Resources;
import org.gcube.portlets.user.workspace.client.view.sharing.multisuggest.MultiDragContact; import org.gcube.portlets.user.workspace.client.view.sharing.multisuggest.MultiDragContact;
@ -37,7 +37,7 @@ public class DialogShareFolder extends Dialog {
private int heightTextArea = 100; private int heightTextArea = 100;
private TextField<String> txtName; private TextField<String> txtName;
private TextArea textAreaDescription = new TextArea(); private TextArea textAreaDescription = new TextArea();
private FolderModel folder = null; private FileModel parentFolder = null;
private UserStore userStore = new UserStore(); private UserStore userStore = new UserStore();
private MultiValuePanel suggestPanel = new MultiValuePanel(userStore); private MultiValuePanel suggestPanel = new MultiValuePanel(userStore);
private Button buttonMultiDrag = new Button("Choose Contacts"); private Button buttonMultiDrag = new Button("Choose Contacts");
@ -47,9 +47,9 @@ public class DialogShareFolder extends Dialog {
* @param folder * @param folder
* @param type * @param type
*/ */
public DialogShareFolder(String folderParentName, FolderModel folder, HandlerManager eventBus) { public DialogShareFolder(String folderParentName, FileModel folder, HandlerManager eventBus) {
initLayout(folderParentName); initLayout(folderParentName);
this.folder = folder; this.parentFolder = folder;
this.setIcon(Resources.getIconShareFolder()); this.setIcon(Resources.getIconShareFolder());
setWidth(widthDialog); setWidth(widthDialog);
@ -119,8 +119,8 @@ public class DialogShareFolder extends Dialog {
this.show(); this.show();
} }
public FolderModel getFolder() { public FileModel getParentFolder() {
return folder; return parentFolder;
} }
public void initLayout(String folderParentName){ public void initLayout(String folderParentName){

View File

@ -148,12 +148,16 @@ public class AsyncTreePanel extends LayoutContainer {
if(model.getStatus() == ConstantsExplorer.FOLDERNOTLOAD) if(model.getStatus() == ConstantsExplorer.FOLDERNOTLOAD)
return Resources.getIconLoading2(); return Resources.getIconLoading2();
//SHARE //SHARE ICON
if(model.isShared()) if(model.isShared()){
return Resources.getIconSharedFolder(); if(model.isShareable())
return Resources.getIconSharedFolder();
else
return null; //Set default folder icon
}
// return Resources.getIconFolder(); // return Resources.getIconFolder();
return null; return null; //Set default folder icon
} }
}); });
@ -542,7 +546,7 @@ public class AsyncTreePanel extends LayoutContainer {
String folderItemType; String folderItemType;
if(fileModel.getGXTFolderItemType()!=null) if(fileModel.getGXTFolderItemType()!=null)
folderItemType = fileModel.getGXTFolderItemTypeToString(); folderItemType = fileModel.getGXTFolderItemType().toString();
else else
folderItemType = null; folderItemType = null;

View File

@ -31,6 +31,7 @@ import com.extjs.gxt.ui.client.widget.menu.Menu;
import com.extjs.gxt.ui.client.widget.menu.MenuItem; import com.extjs.gxt.ui.client.widget.menu.MenuItem;
import com.extjs.gxt.ui.client.widget.menu.SeparatorMenuItem; import com.extjs.gxt.ui.client.widget.menu.SeparatorMenuItem;
import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Window;
public class ContextMenuTree { public class ContextMenuTree {
@ -198,7 +199,7 @@ public class ContextMenuTree {
final FileModel sourceFileModel = listSelectedItems.get(0); final FileModel sourceFileModel = listSelectedItems.get(0);
if (sourceFileModel != null) { if (sourceFileModel != null) {
eventBus.fireEvent( new CreateSharedFolderEvent(sourceFileModel, sourceFileModel.getParentFileModel(), true)); eventBus.fireEvent(new CreateSharedFolderEvent(sourceFileModel, sourceFileModel.getParentFileModel(), true));
} }
} }
}); });
@ -297,6 +298,7 @@ public class ContextMenuTree {
public void componentSelected(MenuEvent ce) { public void componentSelected(MenuEvent ce) {
// List<FileModel> selected = treePanel.getSelectionModel().getSelectedItems(); // List<FileModel> selected = treePanel.getSelectionModel().getSelectedItems();
for (FileModel target : listSelectedItems) { for (FileModel target : listSelectedItems) {
if(target.getIdentifier()!=null){ if(target.getIdentifier()!=null){
eventBus.fireEvent(new CreateSharedFolderEvent(target, target.getParentFileModel(),false)); eventBus.fireEvent(new CreateSharedFolderEvent(target, target.getParentFileModel(),false));
} }

View File

@ -954,6 +954,7 @@ public class GWTWorkspaceBuilder {
fileModel = new FolderModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, true, false); fileModel = new FolderModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, true, false);
fileModel.setType(GXTFolderItemTypeEnum.FOLDER.toString()); fileModel.setType(GXTFolderItemTypeEnum.FOLDER.toString());
fileModel.setShareable(true);
break; break;
case FOLDER_ITEM: case FOLDER_ITEM:
@ -967,6 +968,7 @@ public class GWTWorkspaceBuilder {
fileModel = new FolderModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, true, true); fileModel = new FolderModel(item.getId(), item.getName(), (FolderModel) parentFolderModel, true, true);
fileModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString()); fileModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString());
fileModel.setShareable(true);
// WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item; // WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
// fileModel.setListShareUser(buildGxtInfoContactFromPortalLogin(sharedFolder.getUsers())); // fileModel.setListShareUser(buildGxtInfoContactFromPortalLogin(sharedFolder.getUsers()));
@ -979,8 +981,10 @@ public class GWTWorkspaceBuilder {
} }
if(parentFolderModel.isShared()) if(parentFolderModel.isShared()){
fileModel.setShared(true); fileModel.setShared(true);
fileModel.setShareable(false);
}
// fileModel.setOwner(new InfoContactModel(item.getOwner().getId(), item.getOwner().getPortalLogin(), "name")); // fileModel.setOwner(new InfoContactModel(item.getOwner().getId(), item.getOwner().getPortalLogin(), "name"));
//// fileModel.setShared(item.isShared()); //// fileModel.setShared(item.isShared());
@ -1013,6 +1017,7 @@ public class GWTWorkspaceBuilder {
fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationDate()), parentFileModel, -1, true, false); fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationDate()), parentFileModel, -1, true, false);
fileGridModel.setType(GXTFolderItemTypeEnum.FOLDER.toString()); fileGridModel.setType(GXTFolderItemTypeEnum.FOLDER.toString());
fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS); fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS);
fileGridModel.setShareable(true);
break; break;
case FOLDER_ITEM: case FOLDER_ITEM:
@ -1027,7 +1032,7 @@ public class GWTWorkspaceBuilder {
fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationDate()), parentFileModel, -1, true, false); fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationDate()), parentFileModel, -1, true, false);
fileGridModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString()); fileGridModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString());
fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS); fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS);
fileGridModel.setShareable(true);
// WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item; // WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
// fileGridModel.setListShareUser(buildGxtInfoContactFromPortalLogin(sharedFolder.getUsers())); // fileGridModel.setListShareUser(buildGxtInfoContactFromPortalLogin(sharedFolder.getUsers()));
@ -1084,6 +1089,7 @@ public class GWTWorkspaceBuilder {
fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationTime()), parentFileModel, -1, true, false); fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationTime()), parentFileModel, -1, true, false);
fileGridModel.setType(GXTFolderItemTypeEnum.FOLDER.toString()); fileGridModel.setType(GXTFolderItemTypeEnum.FOLDER.toString());
fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS); fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS);
fileGridModel.setShareable(true);
break; break;
case FOLDER_ITEM: case FOLDER_ITEM:
@ -1098,6 +1104,7 @@ public class GWTWorkspaceBuilder {
fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationTime()), parentFileModel, -1, true, true); fileGridModel = (FolderGridModel) new FolderGridModel(item.getId(), item.getName(), toDate(item.getCreationTime()), parentFileModel, -1, true, true);
fileGridModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString()); fileGridModel.setType(GXTFolderItemTypeEnum.SHARED_FOLDER.toString());
fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS); fileGridModel.setShortcutCategory(GXTCategoryItemInterface.SMF_DOCUMENTS);
fileGridModel.setShareable(true);
break; break;
default: default:
@ -1106,8 +1113,10 @@ public class GWTWorkspaceBuilder {
} }
if(parentFileModel.isShared()) if(parentFileModel.isShared()){
fileGridModel.setShared(true); fileGridModel.setShared(true);
fileGridModel.setShareable(false);
}
// fileGridModel.setOwner(new InfoContactModel(item.getOwner().getId(), item.getOwner().getPortalLogin(), "name")); // fileGridModel.setOwner(new InfoContactModel(item.getOwner().getId(), item.getOwner().getPortalLogin(), "name"));
//// fileGridModel.setShared(item.isShared()); //// fileGridModel.setShared(item.isShared());

View File

@ -1277,42 +1277,50 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
} }
@Override @Override
public boolean shareFolder(FolderModel folder, List<InfoContactModel> listContacts, boolean isNewFolder) throws Exception { public boolean shareFolder(FileModel folder, List<InfoContactModel> listContacts, boolean isNewFolder) throws Exception {
try { try {
System.out.println("quiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii");
Workspace workspace = getWorkspace(); Workspace workspace = getWorkspace();
workspaceLogger.trace("shareFolder "+ folder.getIdentifier()
+ " name: "+ folder.getName() // workspaceLogger.trace("shareFolder "+ folder.getIdentifier()
+ " parent name: " + folder.getParentFileModel().getName() // + " name: "+ folder.getName()
+ " listContacts size: " + listContacts.size()); // + " parent name: " + folder.getParentFileModel().getName()
// + " listContacts size: " + listContacts.size());
//DEBUG // //DEBUG
System.out.println("shareFolder "+ folder.getIdentifier() + " name: "+ folder.getName() + " parent name: " + folder.getParentFileModel().getName() + " listContacts size: " + listContacts.size()); // System.out.println("shareFolder "+ folder.getIdentifier()
for (InfoContactModel infoContactModel : listContacts) { // + " name: "+ folder.getName()
System.out.println("share with "+ infoContactModel.getLogin()); // + " parent name: " + folder.getParentFileModel().getName()
} // + " listContacts size: " + listContacts.size());
//
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder(); // for (InfoContactModel infoContactModel : listContacts) {
// System.out.println("share with "+ infoContactModel.getLogin());
List<String> listLogin = builder.getListLoginByInfoContactModel(listContacts); // }
// GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
//
// List<String> listLogin = builder.getListLoginByInfoContactModel(listContacts);
//
WorkspaceSharedFolder sharedFolder = null; WorkspaceSharedFolder sharedFolder = null;
//
// if(listLogin.size()>0) // if(listLogin.size()>0){
//
// if(!isNewFolder) // if(!isNewFolder)
//TODO: sharedFolder = workspace.shareFolder(listLogin, folder.getIdentifier()); // sharedFolder = workspace.shareFolder(listLogin, folder.getIdentifier());
// else // else
// sharedFolder = workspace.createSharedFolder(folder.getName(), "description", listLogin, folder.getParentFileModel().getIdentifier()); // sharedFolder = workspace.createSharedFolder(folder.getName(), "description", listLogin, folder.getParentFileModel().getIdentifier());
// }
// boolean created = sharedFolder==null?false:true;
boolean created = sharedFolder==null?false:true;
// //
// return created; return created;
return true;
} catch (Exception e) { } catch (Exception e) {
workspaceLogger.error("Error in shareFolder ", e); workspaceLogger.error("Error in shareFolder ", e);
e.printStackTrace();
throw new Exception(e.getMessage()); throw new Exception(e.getMessage());
} }
} }

View File

@ -32,7 +32,7 @@ public class Util {
// public static final String TEST_SCOPE = "/gcube/devsec"; // public static final String TEST_SCOPE = "/gcube/devsec";
// public static final String TEST_USER = "pasquale.pagano"; // public static final String TEST_USER = "pasquale.pagano";
public static final String TEST_SCOPE = "/gcube/devsec"; public static final String TEST_SCOPE = "/gcube/devsec/devVRE";
// public static final String TEST_USER = "federico.defaveri"; // public static final String TEST_USER = "federico.defaveri";
// public static final String TEST_USER = "massimiliano.assante"; // public static final String TEST_USER = "massimiliano.assante";
public static final String TEST_USER = "francesco.mangiacrapa"; public static final String TEST_USER = "francesco.mangiacrapa";