124: Workspace / Remove a user from a shared folder
Task-Url: https://support.d4science.org/issues/124 Updated Dialog Share Folder and server side to remove user from a shared folder git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@120188 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
36bfaf7032
commit
6d1205024f
|
@ -3,13 +3,17 @@ package org.gcube.portlets.user.workspace.client.model;
|
|||
import java.io.Serializable;
|
||||
import java.util.Comparator;
|
||||
|
||||
import org.gcube.portlets.user.workspace.shared.ContactLogin;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseModelData;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* The Class InfoContactModel.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Nov 4, 2015
|
||||
*/
|
||||
public class InfoContactModel extends BaseModelData implements Serializable {
|
||||
public class InfoContactModel extends BaseModelData implements ContactLogin, Serializable {
|
||||
|
||||
|
||||
/**
|
||||
|
@ -23,8 +27,19 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
|||
public static final String ISGROUP = "isgroup";
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new info contact model.
|
||||
*/
|
||||
public InfoContactModel() {}
|
||||
|
||||
/**
|
||||
* Instantiates a new info contact model.
|
||||
*
|
||||
* @param id the id
|
||||
* @param login the login
|
||||
* @param fullName the full name
|
||||
* @param isGroup the is group
|
||||
*/
|
||||
public InfoContactModel(String id, String login, String fullName, boolean isGroup) {
|
||||
setId(id);
|
||||
setLogin(login);
|
||||
|
@ -33,41 +48,73 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param isGroup
|
||||
* Sets the checks if is group.
|
||||
*
|
||||
* @param isGroup the new checks if is group
|
||||
*/
|
||||
public void setIsGroup(boolean isGroup) {
|
||||
set(ISGROUP,isGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param isGroup
|
||||
* Checks if is group.
|
||||
*
|
||||
* @return true, if is group
|
||||
*/
|
||||
public boolean isGroup() {
|
||||
return (Boolean) get(ISGROUP);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name.
|
||||
*
|
||||
* @param name the new name
|
||||
*/
|
||||
public void setName(String name) {
|
||||
set(FULLNAME,name);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name.
|
||||
*
|
||||
* @return the name
|
||||
*/
|
||||
public String getName(){
|
||||
String name = (String) (get(FULLNAME)!=null?get(FULLNAME):"");
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the id.
|
||||
*
|
||||
* @return the id
|
||||
*/
|
||||
public String getId() {
|
||||
return get(ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the id.
|
||||
*
|
||||
* @param id the new id
|
||||
*/
|
||||
public void setId(String id) {
|
||||
set(ID, id);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.user.workspace.shared.ContactLogin#getLogin()
|
||||
*/
|
||||
public String getLogin() {
|
||||
return get(LOGIN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the login.
|
||||
*
|
||||
* @param login the new login
|
||||
*/
|
||||
public void setLogin(String login) {
|
||||
set(LOGIN, login);
|
||||
}
|
||||
|
@ -76,7 +123,14 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
|||
public static Comparator<InfoContactModel> COMPARATORFULLNAME = new Comparator<InfoContactModel>() {
|
||||
// This is where the sorting happens.
|
||||
public int compare(InfoContactModel o1, InfoContactModel o2) {
|
||||
return o1.getName().compareToIgnoreCase(o2.getName());
|
||||
|
||||
if(o1==null)
|
||||
return -1;
|
||||
|
||||
if(o2==null)
|
||||
return 1;
|
||||
|
||||
return o1.getName().compareTo(o2.getName());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -84,10 +138,20 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
|||
public static Comparator<InfoContactModel> COMPARATORLOGINS = new Comparator<InfoContactModel>() {
|
||||
// This is where the sorting happens.
|
||||
public int compare(InfoContactModel o1, InfoContactModel o2) {
|
||||
return o1.getLogin().compareToIgnoreCase(o2.getLogin());
|
||||
|
||||
if(o1==null)
|
||||
return -1;
|
||||
|
||||
if(o2==null)
|
||||
return 1;
|
||||
|
||||
return o1.getLogin().compareTo(o2.getLogin());
|
||||
}
|
||||
};
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.lang.Object#toString()
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package org.gcube.portlets.user.workspace.client.view.sharing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
|
||||
|
@ -11,6 +10,7 @@ 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.MultiValuePanel;
|
||||
import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert;
|
||||
import org.gcube.portlets.user.workspace.shared.ListContact;
|
||||
import org.gcube.portlets.user.workspace.shared.WorkspaceACL;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
|
@ -33,9 +33,12 @@ import com.google.gwt.user.client.ui.Button;
|
|||
import com.google.gwt.user.client.ui.FlexTable;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* The Class DialogShareFolder.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Nov 4, 2015
|
||||
*/
|
||||
public class DialogShareFolder extends Dialog {
|
||||
|
||||
|
@ -50,35 +53,15 @@ public class DialogShareFolder extends Dialog {
|
|||
private TextField<String> txtOwner;
|
||||
private PanelTogglePermission permission;
|
||||
private HorizontalPanel hpPermission = null;
|
||||
|
||||
private List<InfoContactModel> listAlreadyShared = new ArrayList<InfoContactModel>(){
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Compare Login
|
||||
*/
|
||||
@Override
|
||||
public boolean contains(Object o) {
|
||||
|
||||
if(o==null)
|
||||
return false;
|
||||
|
||||
InfoContactModel contact = (InfoContactModel) o;
|
||||
|
||||
for (int i = 0; i < listAlreadyShared.size(); i++){
|
||||
if (contact.getName().compareTo(listAlreadyShared.get(i).getName())==0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
};
|
||||
private InfoContactModel shareOwner = null;
|
||||
private ListContact<InfoContactModel> listAlreadyShared = new ListContact<InfoContactModel>();
|
||||
|
||||
/**
|
||||
* Use to modify a shared folder or share an existing folder
|
||||
* @param folder
|
||||
* @param type
|
||||
* Use to modify a shared folder or share an existing folder.
|
||||
*
|
||||
* @param folderParentName the folder parent name
|
||||
* @param folder the folder
|
||||
* @param eventBus the event bus
|
||||
*/
|
||||
public DialogShareFolder(String folderParentName, final FileModel folder, HandlerManager eventBus) {
|
||||
initLayout(folderParentName);
|
||||
|
@ -163,31 +146,7 @@ public class DialogShareFolder extends Dialog {
|
|||
if(hpPermission!=null)
|
||||
lc.add(hpPermission);
|
||||
lc.mask();
|
||||
userStore.getListSharedUserByFolderId(folder.getIdentifier(), new AsyncCallback<List<InfoContactModel>>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<InfoContactModel> listContacts) {
|
||||
|
||||
if(listContacts!=null){
|
||||
for (InfoContactModel infoContactModel : listContacts) {
|
||||
// System.out.println(infoContactModel);
|
||||
if(infoContactModel!=null && infoContactModel.getName()!=null){
|
||||
listAlreadyShared.add(infoContactModel);
|
||||
suggestPanel.addRecipient(infoContactModel.getName(),false);
|
||||
}
|
||||
}
|
||||
}
|
||||
lc.unmask();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
lc.unmask();
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
userStore.getOwner(folder.getIdentifier(), new AsyncCallback<InfoContactModel>() {
|
||||
|
||||
@Override
|
||||
|
@ -197,9 +156,12 @@ public class DialogShareFolder extends Dialog {
|
|||
|
||||
@Override
|
||||
public void onSuccess(InfoContactModel result) {
|
||||
shareOwner = result;
|
||||
txtOwner.setValue(result.getName());
|
||||
permissionControl(result.getLogin(), true);
|
||||
fillRecipientAlreadyShared(folder.getIdentifier(), lc);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
setFocusWidget(suggestPanel.getBox());
|
||||
|
@ -212,6 +174,59 @@ public class DialogShareFolder extends Dialog {
|
|||
this.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update recipient of share.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
*/
|
||||
private void updateRecipientOfShare(List<InfoContactModel> listContacts){
|
||||
suggestPanel.resetItemSelected();
|
||||
for (InfoContactModel contact : listContacts){
|
||||
if(contact!=null && contact.getName()!=null){
|
||||
if(!isShareOwner(contact)) //skip owner
|
||||
suggestPanel.addRecipient(contact.getName(), true);
|
||||
else
|
||||
suggestPanel.addRecipient(contact.getName(), false); //owner is not deletable
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fill recipient already shared.
|
||||
*
|
||||
* @param folderId the folder id
|
||||
* @param lc the lc
|
||||
*/
|
||||
private void fillRecipientAlreadyShared(String folderId, final LayoutContainer lc) {
|
||||
|
||||
userStore.getListSharedUserByFolderId(folderId,
|
||||
new AsyncCallback<List<InfoContactModel>>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<InfoContactModel> listContacts) {
|
||||
|
||||
if (listContacts != null) {
|
||||
listAlreadyShared.addAll(listContacts);
|
||||
updateRecipientOfShare(listContacts);
|
||||
}
|
||||
lc.unmask();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
lc.unmask();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Permission control.
|
||||
*
|
||||
* @param owner the owner
|
||||
* @param showAlert the show alert
|
||||
*/
|
||||
private void permissionControl(String owner, boolean showAlert){
|
||||
GWT.log("Permission control compare between owner: "+owner +" and my login: "+AppControllerExplorer.myLogin);
|
||||
|
||||
|
@ -224,6 +239,11 @@ public class DialogShareFolder extends Dialog {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable form dialog.
|
||||
*
|
||||
* @param bool the bool
|
||||
*/
|
||||
private void enableFormDialog(boolean bool){
|
||||
getButtonById(Dialog.OK).setEnabled(bool);
|
||||
buttonMultiDrag.setEnabled(bool);
|
||||
|
@ -233,10 +253,20 @@ public class DialogShareFolder extends Dialog {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parent folder.
|
||||
*
|
||||
* @return the parent folder
|
||||
*/
|
||||
public FileModel getParentFolder() {
|
||||
return parentFolder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inits the layout.
|
||||
*
|
||||
* @param folderParentName the folder parent name
|
||||
*/
|
||||
public void initLayout(String folderParentName){
|
||||
FormLayout layout = new FormLayout();
|
||||
layout.setLabelWidth(90);
|
||||
|
@ -254,7 +284,10 @@ public class DialogShareFolder extends Dialog {
|
|||
}
|
||||
|
||||
/**
|
||||
* Use to create a new shared folder
|
||||
* Use to create a new shared folder.
|
||||
*
|
||||
* @param folderParentName the folder parent name
|
||||
* @param eventBus the event bus
|
||||
*/
|
||||
public DialogShareFolder(String folderParentName, HandlerManager eventBus) {
|
||||
|
||||
|
@ -332,12 +365,20 @@ public class DialogShareFolder extends Dialog {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the shared list users.
|
||||
*
|
||||
* @return the shared list users
|
||||
*/
|
||||
public List<InfoContactModel> getSharedListUsers() {
|
||||
// printSelectedUser();
|
||||
return suggestPanel.getSelectedUser();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds the listners.
|
||||
*/
|
||||
public void addListners(){
|
||||
|
||||
this.getButtonById(Dialog.CANCEL).addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||
|
@ -368,19 +409,23 @@ public class DialogShareFolder extends Dialog {
|
|||
List<InfoContactModel> exclusiveContacts = userStore.getExclusiveContactsFromAllContact(suggestPanel.getSelectedUser());
|
||||
multiDrag.addSourceContacts(exclusiveContacts);
|
||||
|
||||
|
||||
for (InfoContactModel infoContactModel : suggestPanel.getSelectedUser()) {
|
||||
if(!listAlreadyShared.contains(infoContactModel))
|
||||
// if(!listAlreadyShared.contains(infoContactModel))
|
||||
if(!isShareOwner(infoContactModel))
|
||||
multiDrag.addTargetContact(infoContactModel);
|
||||
}
|
||||
|
||||
multiDrag.addAlreadySharedContacts(suggestPanel.getSelectedUser());
|
||||
// multiDrag.addAlreadySharedContacts(suggestPanel.getSelectedUser());
|
||||
|
||||
multiDrag.addAlreadySharedContacts(listAlreadyShared);
|
||||
|
||||
multiDrag.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||
|
||||
@Override
|
||||
public void componentSelected(ButtonEvent ce) {
|
||||
initSuggestContacts();
|
||||
// initSuggestContacts();
|
||||
suggestPanel.resetItemSelected();
|
||||
suggestPanel.addRecipient(shareOwner.getName(),false);
|
||||
for (InfoContactModel infoContactModel : multiDrag.getTargetListContact()) {
|
||||
suggestPanel.addRecipient(infoContactModel.getName(),true);
|
||||
}
|
||||
|
@ -392,19 +437,46 @@ public class DialogShareFolder extends Dialog {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if is share owner.
|
||||
*
|
||||
* @param infoContactModel the info contact model
|
||||
* @return true, if is share owner
|
||||
*/
|
||||
public boolean isShareOwner(InfoContactModel infoContactModel){
|
||||
|
||||
if(infoContactModel!=null && shareOwner!=null && InfoContactModel.COMPARATORLOGINS.compare(infoContactModel, shareOwner)==0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* List already shared contains.
|
||||
*
|
||||
* @param contact the contact
|
||||
* @return true, if successful
|
||||
*/
|
||||
private boolean listAlreadySharedContains(InfoContactModel contact){
|
||||
|
||||
if(contact==null)
|
||||
return false;
|
||||
|
||||
for (InfoContactModel ct : listAlreadyShared) {
|
||||
if(ct.getLogin().compareTo(contact.getLogin())==0)
|
||||
if(InfoContactModel.COMPARATORLOGINS.compare(ct, contact)==0)
|
||||
// if(ct.getLogin().compareTo(contact.getLogin())==0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//DEBUG
|
||||
/**
|
||||
* Prints the selected user.
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
private void printSelectedUser(){
|
||||
|
||||
System.out.println("SELETECTED USERS: ");
|
||||
|
@ -412,16 +484,30 @@ public class DialogShareFolder extends Dialog {
|
|||
System.out.println(contact);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inits the suggest contacts.
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
private void initSuggestContacts(){
|
||||
suggestPanel.resetItemSelected();
|
||||
for (InfoContactModel contact : listAlreadyShared)
|
||||
suggestPanel.addRecipient(contact.getName(), false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name.
|
||||
*
|
||||
* @return the name
|
||||
*/
|
||||
public String getName() {
|
||||
return txtName.getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the description.
|
||||
*
|
||||
* @return the description
|
||||
*/
|
||||
public String getDescription() {
|
||||
if(textAreaDescription.getValue()==null)
|
||||
return "";
|
||||
|
@ -430,9 +516,10 @@ public class DialogShareFolder extends Dialog {
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param displayAlert
|
||||
* @return
|
||||
* Checks if is valid form.
|
||||
*
|
||||
* @param displayAlert the display alert
|
||||
* @return true, if is valid form
|
||||
*/
|
||||
public boolean isValidForm(boolean displayAlert){
|
||||
|
||||
|
@ -454,12 +541,22 @@ public class DialogShareFolder extends Dialog {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the selected acl.
|
||||
*
|
||||
* @return the selected acl
|
||||
*/
|
||||
public WorkspaceACL getSelectedACL(){
|
||||
if(permission!=null)
|
||||
return permission.getSelectedACL();
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select acl for folder.
|
||||
*
|
||||
* @param folder the folder
|
||||
*/
|
||||
private void selectAclForFolder(FileModel folder){
|
||||
GWT.log("Loading ACL to: "+folder);
|
||||
AppControllerExplorer.rpcWorkspaceService.getACLBySharedFolderId(folder.getIdentifier(), new AsyncCallback<WorkspaceACL>() {
|
||||
|
|
|
@ -85,7 +85,7 @@ public class UserStore implements ContactFetcher{
|
|||
List<InfoContactModel> listExclusiveContact = new ArrayList<InfoContactModel>(listAllContact);
|
||||
for (InfoContactModel contact : listSharedUser) {
|
||||
if(listAllContact.contains(contact)){
|
||||
// GWT.log("Removing not eclusive contact "+contact);
|
||||
GWT.log("Removing not eclusive contact "+contact);
|
||||
listExclusiveContact.remove(contact);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -491,6 +491,7 @@ public class MultiDragContact extends Dialog {
|
|||
}
|
||||
|
||||
storeSource.add(listExtended);
|
||||
// GWT.log("Added sources: "+listExtended.toString());
|
||||
}
|
||||
|
||||
gridAllContacts.unmask();
|
||||
|
|
|
@ -2008,7 +2008,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
|||
np.notifyFolderSharing(listContacts, sharedFolder);
|
||||
else{
|
||||
// printContacts(listContacts);
|
||||
np.notifyAddedUsersToSharing(listSharedContact, listContacts, sharedFolder);
|
||||
np.notifyUpdatedUsersToSharing(listSharedContact, listContacts, sharedFolder);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,9 +20,9 @@ import org.gcube.portlets.user.workspace.server.util.UserUtil;
|
|||
import org.gcube.portlets.user.workspace.server.util.WsUtil;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* The Class NotificationsProducer.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
*/
|
||||
public class NotificationsProducer {
|
||||
|
||||
|
@ -36,8 +36,9 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param aslSession
|
||||
* Instantiates a new notifications producer.
|
||||
*
|
||||
* @param aslSession the asl session
|
||||
*/
|
||||
public NotificationsProducer(ASLSession aslSession) {
|
||||
this.notificationsMng = WsUtil.getNotificationManager(aslSession);
|
||||
|
@ -45,23 +46,39 @@ public class NotificationsProducer {
|
|||
this.userId = aslSession.getUsername();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the notifications mng.
|
||||
*
|
||||
* @return the notifications mng
|
||||
*/
|
||||
public NotificationsManager getNotificationsMng() {
|
||||
return notificationsMng;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the notification mng.
|
||||
*
|
||||
* @param notificationMng the new notification mng
|
||||
*/
|
||||
public void setNotificationMng(NotificationsManager notificationMng) {
|
||||
this.notificationsMng = notificationMng;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the asl session.
|
||||
*
|
||||
* @return the asl session
|
||||
*/
|
||||
public ASLSession getAslSession() {
|
||||
return aslSession;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyFolderSharing(final List<InfoContactModel> listContacts, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
|
@ -103,10 +120,13 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param folderItem
|
||||
* @param listContacts
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listSharedContact the list shared contact
|
||||
* @param folderItem the folder item
|
||||
* @param itemOldName the item old name
|
||||
* @param itemNewName the item new name
|
||||
* @param idsharedFolder the idshared folder
|
||||
*/
|
||||
public void notifyFolderRenamed(final List<InfoContactModel> listSharedContact, final WorkspaceItem folderItem, final String itemOldName, final String itemNewName, final String idsharedFolder) {
|
||||
|
||||
|
@ -159,9 +179,12 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listSharedContact the list shared contact
|
||||
* @param previousName the previous name
|
||||
* @param item the item
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyItemRenamed(final List<InfoContactModel> listSharedContact, final String previousName, final WorkspaceItem item, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
|
@ -203,32 +226,34 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the new contacts passed in input
|
||||
* Runs a new thread to notify the updated (add/remove) contacts to sharing
|
||||
*
|
||||
* @param listSharedContact - list of contacts already shared
|
||||
* @param listSharingContact - list of "new" contacts witch share
|
||||
* @param listSharingContact - list of "new" contacts to share
|
||||
* @param sharedFolder - the shared folder
|
||||
*/
|
||||
public void notifyAddedUsersToSharing(final List<InfoContactModel> listSharedContact, final List<InfoContactModel> listSharingContact, final WorkspaceSharedFolder sharedFolder) {
|
||||
public void notifyUpdatedUsersToSharing(final List<InfoContactModel> listSharedContact, final List<InfoContactModel> listSharingContact, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
try{
|
||||
|
||||
|
||||
//NEW USER SHARED
|
||||
DiffereceBeetweenInfoContactModel diff = new DiffereceBeetweenInfoContactModel(listSharingContact, listSharedContact);
|
||||
|
||||
List<InfoContactModel> listExclusiveContacts = diff.getDifferentsContacts();
|
||||
List<InfoContactModel> listNewContactsShared = diff.getDifferentsContacts();
|
||||
|
||||
System.out.println("list exclusive contacts: "+listExclusiveContacts);
|
||||
logger.trace("list new contacts shared: "+listNewContactsShared.size());
|
||||
|
||||
if(listExclusiveContacts.size()>0){
|
||||
if(listNewContactsShared.size()>0){
|
||||
|
||||
if(listExclusiveContacts.size()==1){ //CASE ONLY ONE CONTACS WAS ADDED
|
||||
if(listNewContactsShared.size()==1){ //CASE ONLY ONE CONTACS WAS ADDED
|
||||
|
||||
InfoContactModel infoContactModel = listExclusiveContacts.get(0);
|
||||
InfoContactModel infoContactModel = listNewContactsShared.get(0);
|
||||
|
||||
for (InfoContactModel contact : listSharedContact) { //NOTIFIES ALREADY SHARED CONTACTS THATH A NEW USER WAS ADDED
|
||||
for (InfoContactModel contact : listSharedContact) { //NOTIFIES ALREADY SHARED CONTACTS THAT A NEW USER WAS ADDED
|
||||
|
||||
try{
|
||||
|
||||
|
@ -252,9 +277,9 @@ public class NotificationsProducer {
|
|||
listCts.add(infoContactModel);
|
||||
notifyFolderSharing(listCts, sharedFolder); //NOTIFIER NEW USER OF SHARING FOLDER
|
||||
|
||||
}else{ //CASE MORE THEN ONE CONTACS WAS ADDED
|
||||
}else{ //CASE MORE THEN ONE CONTACT WAS ADDED
|
||||
|
||||
List<String> listLogins = UserUtil.getListLoginByInfoContactModel(listExclusiveContacts);
|
||||
List<String> listLogins = UserUtil.getListLoginByInfoContactModel(listNewContactsShared);
|
||||
|
||||
for (InfoContactModel contact : listSharedContact) { //NOTIFIES ALREADY SHARED CONTACTS THATH A NEW USER WAS ADDED
|
||||
|
||||
|
@ -276,12 +301,23 @@ public class NotificationsProducer {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
notifyFolderSharing(listExclusiveContacts, sharedFolder); //NOTIFIER NEW USER OF SHARING FOLDER
|
||||
|
||||
notifyFolderSharing(listNewContactsShared, sharedFolder); //NOTIFIER NEW USER OF SHARING FOLDER
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//USER REMOVED FROM SHARE
|
||||
DiffereceBeetweenInfoContactModel diff2 = new DiffereceBeetweenInfoContactModel(listSharedContact, listSharingContact);
|
||||
|
||||
List<InfoContactModel> listRemovedUsersFromShare = diff2.getDifferentsContacts();
|
||||
|
||||
logger.trace("list removed contacts from share: "+listNewContactsShared.size());
|
||||
|
||||
if(listRemovedUsersFromShare.size()>0){
|
||||
|
||||
for (InfoContactModel contact : listRemovedUsersFromShare)
|
||||
notifyFolderRemovedUser(contact, sharedFolder);
|
||||
}
|
||||
|
||||
}catch (Exception e) {
|
||||
logger.error("An error occured in notifyAddedUserToSharing ", e);
|
||||
|
@ -295,9 +331,11 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param unSharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param unShareFolderId the un share folder id
|
||||
* @param unSharedFolderName the un shared folder name
|
||||
*/
|
||||
public void notifyFolderUnSharing(final List<InfoContactModel> listContacts, final String unShareFolderId, final String unSharedFolderName) {
|
||||
|
||||
|
@ -337,13 +375,49 @@ public class NotificationsProducer {
|
|||
}.start();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify folder removed user.
|
||||
*
|
||||
* @param userUnShared the user un shared
|
||||
* @param unSharedFolder the un shared folder
|
||||
*/
|
||||
public void notifyFolderRemovedUser(final InfoContactModel userUnShared, final WorkspaceSharedFolder shareFolder) {
|
||||
|
||||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
logger.trace("Send notifies removed user from shared folder is running...");
|
||||
try{
|
||||
//NOTIFIES ONLY THE USERS THAT ARE DIFFERENT FROM CURRENT USER
|
||||
if(userUnShared.getLogin().compareTo(userId)!=0){
|
||||
|
||||
logger.trace("Sending notification to user "+userUnShared.getLogin() +" unshared from folder "+shareFolder.getName());
|
||||
boolean notify = notificationsMng.notifyFolderRemovedUser(userUnShared.getLogin(), (WorkspaceSharedFolder) shareFolder);
|
||||
|
||||
if(!notify)
|
||||
logger.error("An error occured when notifies user: "+userUnShared.getLogin());
|
||||
}
|
||||
|
||||
}catch (Exception e) {
|
||||
logger.error("An error occured in notifyFolderRemovedUser ", e);
|
||||
}
|
||||
|
||||
logger.trace("notifies of un unshare user is completed");
|
||||
}
|
||||
|
||||
}.start();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param workspaceItem
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param workspaceItem the workspace item
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyAddedItemToSharing(final List<InfoContactModel> listContacts, final WorkspaceItem workspaceItem, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
|
@ -396,9 +470,11 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param workspaceItem
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param workspaceItem the workspace item
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyUpdatedItemToSharing(final List<InfoContactModel> listContacts, final WorkspaceItem workspaceItem, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
|
@ -454,9 +530,11 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param workspaceItem the workspace item
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyMovedItemToSharing(final List<InfoContactModel> listContacts, final WorkspaceItem workspaceItem, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
|
@ -524,9 +602,11 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param itemName the item name
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyRemovedItemToSharing(final List<InfoContactModel> listContacts, final String itemName, final WorkspaceSharedFolder sharedFolder) {
|
||||
|
||||
|
@ -587,9 +667,10 @@ public class NotificationsProducer {
|
|||
}
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param listContacts
|
||||
* @param unSharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
* @param folderNameDeleted the folder name deleted
|
||||
*/
|
||||
public void notifySharedFolderDeleted(final List<InfoContactModel> listContacts, final String folderNameDeleted) {
|
||||
|
||||
|
@ -633,9 +714,10 @@ public class NotificationsProducer {
|
|||
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param userToNotify
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param userToNotify the user to notify
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyAdministratorUpgrade(final InfoContactModel userToNotify, final WorkspaceSharedFolder sharedFolder){
|
||||
|
||||
|
@ -673,9 +755,10 @@ public class NotificationsProducer {
|
|||
}
|
||||
|
||||
/**
|
||||
* Runs a new thread to notify the contacts passed in input
|
||||
* @param userToNotify
|
||||
* @param sharedFolder
|
||||
* Runs a new thread to notify the contacts passed in input.
|
||||
*
|
||||
* @param userToNotify the user to notify
|
||||
* @param sharedFolder the shared folder
|
||||
*/
|
||||
public void notifyAdministratorDowngrade(final InfoContactModel userToNotify, final WorkspaceSharedFolder sharedFolder){
|
||||
|
||||
|
@ -713,6 +796,11 @@ public class NotificationsProducer {
|
|||
}
|
||||
|
||||
//DEBUG
|
||||
/**
|
||||
* Prints the contacts.
|
||||
*
|
||||
* @param listContacts the list contacts
|
||||
*/
|
||||
private void printContacts(List<InfoContactModel> listContacts){
|
||||
|
||||
System.out.println("Print contacts");
|
||||
|
@ -722,6 +810,12 @@ public class NotificationsProducer {
|
|||
System.out.println("End print contacts");
|
||||
}
|
||||
|
||||
/**
|
||||
* The main method.
|
||||
*
|
||||
* @param args the arguments
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static void main(String[] args) throws Exception
|
||||
{
|
||||
String sessionID = "1";
|
||||
|
|
|
@ -5,10 +5,12 @@ import java.util.List;
|
|||
|
||||
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* The Class DiffereceBeetweenInfoContactModel.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Nov 4, 2015
|
||||
*/
|
||||
public class DiffereceBeetweenInfoContactModel {
|
||||
|
||||
|
@ -17,9 +19,10 @@ public class DiffereceBeetweenInfoContactModel {
|
|||
private List<InfoContactModel> listTwo;
|
||||
|
||||
/**
|
||||
* Get difference between listA and listB
|
||||
* @param listA
|
||||
* @param listB
|
||||
* Get difference between listA and listB .
|
||||
*
|
||||
* @param listA the list a
|
||||
* @param listB the list b
|
||||
*/
|
||||
public DiffereceBeetweenInfoContactModel(List<InfoContactModel> listA, List<InfoContactModel> listB){
|
||||
|
||||
|
@ -29,7 +32,8 @@ public class DiffereceBeetweenInfoContactModel {
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Gets the differents contacts.
|
||||
*
|
||||
* @return what is in listA that is not in listB.
|
||||
*/
|
||||
public List<InfoContactModel> getDifferentsContacts(){
|
||||
|
@ -47,7 +51,7 @@ public class DiffereceBeetweenInfoContactModel {
|
|||
for (InfoContactModel o1 : listOne) {
|
||||
found = false;
|
||||
for (InfoContactModel o2 : listTwo) {
|
||||
if(compare(o1,o2)==0){
|
||||
if(InfoContactModel.COMPARATORLOGINS.compare(o1, o2)==0){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
@ -61,53 +65,32 @@ public class DiffereceBeetweenInfoContactModel {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param o1
|
||||
* @param o2
|
||||
* @return 0 if and only if o1.getName().compareTo(o2.getName())==0 && (o1.getLogin().compareTo(o2.getLogin())==0) is true
|
||||
*/
|
||||
public int compare(InfoContactModel o1, InfoContactModel o2) {
|
||||
|
||||
if (o1 == null) {
|
||||
return -1;
|
||||
} else if (o2 == null) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (o1.getName().compareTo(o2.getName())==0 && (o1.getLogin().compareTo(o2.getLogin())==0))
|
||||
return 0;
|
||||
else
|
||||
return -2;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* test
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
|
||||
List<InfoContactModel> listA = new ArrayList<InfoContactModel>();
|
||||
listA.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri", false));
|
||||
listA.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||
listA.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi", false));
|
||||
listA.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||
listA.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false));
|
||||
listA.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false));
|
||||
|
||||
List<InfoContactModel> listB = new ArrayList<InfoContactModel>();
|
||||
|
||||
listB.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri",false));
|
||||
listB.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false));
|
||||
listB.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||
listB.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||
|
||||
DiffereceBeetweenInfoContactModel diff = new DiffereceBeetweenInfoContactModel(listA, listB);
|
||||
|
||||
System.out.println("the differce is: "+diff.getDifferentsContacts());
|
||||
|
||||
}
|
||||
|
||||
// /**
|
||||
// * test.
|
||||
// *
|
||||
// * @param args the arguments
|
||||
// */
|
||||
// public static void main(String[] args) {
|
||||
//
|
||||
// List<InfoContactModel> listA = new ArrayList<InfoContactModel>();
|
||||
// listA.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri", false));
|
||||
// listA.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||
// listA.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi", false));
|
||||
// listA.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||
// listA.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false));
|
||||
// listA.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false));
|
||||
//
|
||||
// List<InfoContactModel> listB = new ArrayList<InfoContactModel>();
|
||||
//
|
||||
// listB.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri",false));
|
||||
// listB.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false));
|
||||
// listB.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||
// listB.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||
//
|
||||
// DiffereceBeetweenInfoContactModel diff = new DiffereceBeetweenInfoContactModel(listA, listB);
|
||||
//
|
||||
// System.out.println("the differce is: "+diff.getDifferentsContacts());
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace.shared;
|
||||
|
||||
/**
|
||||
* The Interface ContactLogin.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Nov 4, 2015
|
||||
*/
|
||||
public interface ContactLogin {
|
||||
|
||||
/**
|
||||
* Gets the login.
|
||||
*
|
||||
* @return the login
|
||||
*/
|
||||
String getLogin();
|
||||
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.user.workspace.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Nov 4, 2015
|
||||
*/
|
||||
public class ListContact<T extends ContactLogin> extends ArrayList<T> implements Serializable{
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 544202687567940083L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public ListContact() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.util.ArrayList#contains(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
public boolean contains(Object o) {
|
||||
|
||||
if(o==null)
|
||||
return false;
|
||||
|
||||
ContactLogin contact = (ContactLogin) o;
|
||||
|
||||
if(contact.getLogin()==null)
|
||||
return false;
|
||||
|
||||
|
||||
for (int i = 0; i < this.size(); i++){
|
||||
|
||||
ContactLogin log = get(i);
|
||||
if (log.getLogin()!=null && log.getLogin().compareTo(contact.getLogin())==0)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
|||
import org.gcube.common.homelibrary.home.workspace.folder.FolderItem;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.common.scope.impl.ScopeBean;
|
||||
import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -24,8 +25,9 @@ public class SizeRetrieving {
|
|||
|
||||
|
||||
// public static String DEFAULT_SCOPE = "/gcube/devsec"; //DEV
|
||||
public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps/DESCRAMBLE";
|
||||
public static String TEST_USER = "massimiliano.assante";
|
||||
public static String DEFAULT_SCOPE = "/d4science.research-infrastructures.eu/gCubeApps";
|
||||
public static String TEST_USER = "yann.laurent";
|
||||
public static String FOLDER_ID = "4f0ff79d-3c1e-4d2a-bc74-6f731edcac98";
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
@ -41,13 +43,23 @@ public class SizeRetrieving {
|
|||
.getWorkspace();
|
||||
//
|
||||
|
||||
System.out.println("start get root");
|
||||
WorkspaceItem root = ws.getRoot();
|
||||
// System.out.println("start get root");
|
||||
// WorkspaceItem root = ws.getRoot();
|
||||
// List<WorkspaceItem> children = (List<WorkspaceItem>) root.getChildren();
|
||||
|
||||
System.out.println("start get children");
|
||||
List<? extends WorkspaceItem> children = root.getChildren();
|
||||
|
||||
WorkspaceFolder folder = (WorkspaceFolder) ws.getItem(FOLDER_ID);
|
||||
List<WorkspaceItem> children = (List<WorkspaceItem>) folder.getChildren();
|
||||
// List<? extends WorkspaceItem> children = root.getChildren();
|
||||
|
||||
System.out.println("children size: "+children.size());
|
||||
|
||||
GWTWorkspaceBuilder builder = new GWTWorkspaceBuilder();
|
||||
|
||||
builder.buildGXTListFileGridModelItem(children, null);
|
||||
|
||||
/*
|
||||
|
||||
int i=0;
|
||||
for (WorkspaceItem workspaceItem : children) {
|
||||
|
@ -70,7 +82,7 @@ public class SizeRetrieving {
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
}*/
|
||||
System.out.println("end");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
|
Loading…
Reference in New Issue