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:
parent
0e8598dc12
commit
6b81912a63
|
@ -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;
|
||||||
|
@ -210,72 +212,94 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
||||||
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;
|
|
||||||
|
|
||||||
FolderModel parent = null;
|
System.out.println("create shared folderEvent - sourceFileModel id "+sourceFileModel.getIdentifier());
|
||||||
|
|
||||||
if(sourceFileModel.isDirectory()){
|
final FileModel parentFileModel= createSharedFolderEvent.getParentFileModel();
|
||||||
// explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true);
|
final boolean isNewFolder = createSharedFolderEvent.isNewFolder();
|
||||||
parentDirectoryName = sourceFileModel.getName();
|
DialogShareFolder dialogSharedFolder = null;
|
||||||
parent = (FolderModel) sourceFileModel;
|
String parentDirectoryName = null;
|
||||||
}
|
FileModel parent = null;
|
||||||
else{
|
|
||||||
parentDirectoryName = parentFileModel.getName();
|
|
||||||
parent = (FolderModel) parentFileModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(isNewFolder)
|
if(parentFileModel==null){ //PARENT IS ROOT
|
||||||
dialogSharedFolder = new DialogShareFolder(parentDirectoryName,eventBus);
|
parent = explorerPanel.getAsycTreePanel().getRootItem();
|
||||||
else
|
sourceFileModel.setParentFileModel(parent);
|
||||||
dialogSharedFolder = new DialogShareFolder(parentDirectoryName, (FolderModel) sourceFileModel, eventBus);
|
}
|
||||||
|
|
||||||
|
if(sourceFileModel.isDirectory()){
|
||||||
final DialogShareFolder finalDialog = dialogSharedFolder;
|
// explorerPanel.getAsycTreePanel().setExpandTreeLevel(sourceFileModel.getIdentifier(), true);
|
||||||
final FolderModel parentModel = parent;
|
parentDirectoryName = sourceFileModel.getName();
|
||||||
|
parent = sourceFileModel;
|
||||||
finalDialog.getButtonById(Dialog.OK).addListener(Events.Select, new Listener<BaseEvent>() {
|
}
|
||||||
|
else{
|
||||||
@Override
|
parentDirectoryName = parentFileModel.getName();
|
||||||
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");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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
|
||||||
|
@ -197,6 +198,7 @@ public class ConstantsExplorer {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public enum ViewSwitchType {Tree, SmartFolder, Messages};
|
public enum ViewSwitchType {Tree, SmartFolder, Messages};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
else
|
||||||
|
absImgPr = Resources.getIconFolder(); //IS A DESCENDANT
|
||||||
|
|
||||||
//SIMPLE FOLDER
|
|
||||||
}else{
|
}
|
||||||
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()=");
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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){
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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()
|
|
||||||
+ " parent name: " + folder.getParentFileModel().getName()
|
|
||||||
+ " listContacts size: " + listContacts.size());
|
|
||||||
|
|
||||||
//DEBUG
|
// workspaceLogger.trace("shareFolder "+ folder.getIdentifier()
|
||||||
System.out.println("shareFolder "+ folder.getIdentifier() + " name: "+ folder.getName() + " parent name: " + folder.getParentFileModel().getName() + " listContacts size: " + listContacts.size());
|
// + " name: "+ folder.getName()
|
||||||
for (InfoContactModel infoContactModel : listContacts) {
|
// + " parent name: " + folder.getParentFileModel().getName()
|
||||||
System.out.println("share with "+ infoContactModel.getLogin());
|
// + " listContacts size: " + listContacts.size());
|
||||||
}
|
|
||||||
|
|
||||||
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
// //DEBUG
|
||||||
|
// System.out.println("shareFolder "+ folder.getIdentifier()
|
||||||
List<String> listLogin = builder.getListLoginByInfoContactModel(listContacts);
|
// + " name: "+ folder.getName()
|
||||||
|
// + " parent name: " + folder.getParentFileModel().getName()
|
||||||
|
// + " listContacts size: " + listContacts.size());
|
||||||
|
//
|
||||||
|
// for (InfoContactModel infoContactModel : listContacts) {
|
||||||
|
// System.out.println("share with "+ infoContactModel.getLogin());
|
||||||
|
// }
|
||||||
|
|
||||||
|
// 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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
|
|
Loading…
Reference in New Issue