added method getAdministratorsByFolderId
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@99267 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
86802d7eff
commit
887e1e841a
|
@ -0,0 +1,106 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.widgets.workspacesharingwidget.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.UserStore;
|
||||
import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.multisuggest.MultiDragContact;
|
||||
import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
|
||||
/**
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* @Jul 30, 2014
|
||||
*
|
||||
*/
|
||||
public class SimpleMultiDragContact {
|
||||
|
||||
private UserStore userStore = new UserStore();
|
||||
private LOAD_CONTACTS_AS loadContactAs;
|
||||
public static enum LOAD_CONTACTS_AS{SHARED_USER, ADMINISTRATOR, NONE}
|
||||
private MultiDragContact multiDragContact = new MultiDragContact();
|
||||
private List<InfoContactModel> targets = new ArrayList<InfoContactModel>();
|
||||
/**
|
||||
* Load administrators or shared users as contacts
|
||||
*/
|
||||
public SimpleMultiDragContact(LOAD_CONTACTS_AS load, String workspaceItemId, final boolean readGroupsFromHL, final boolean readGroupsFromPortal) {
|
||||
this.loadContactAs = load;
|
||||
|
||||
|
||||
switch (loadContactAs) {
|
||||
case ADMINISTRATOR:
|
||||
|
||||
break;
|
||||
|
||||
case SHARED_USER:
|
||||
|
||||
|
||||
//LOADING LIST OF ALREADY SHARED USER
|
||||
userStore.getListSharedUserByFolderId(workspaceItemId, new AsyncCallback<List<InfoContactModel>>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<InfoContactModel> result) {
|
||||
|
||||
for (InfoContactModel infoContactModel : result) {
|
||||
if(infoContactModel.getName()!=null){
|
||||
multiDragContact.addTargetContact(infoContactModel);
|
||||
targets.add(infoContactModel);
|
||||
}
|
||||
}
|
||||
|
||||
loadAllContacts(readGroupsFromHL, readGroupsFromPortal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
GWT.log("Error on loading shared contacts");
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
break;
|
||||
|
||||
case NONE:
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// List<InfoContactModel> exclusiveContacts = userStore.getExclusiveContactsFromAllContact(suggestPanel.getSelectedUser());
|
||||
// multiDrag.addSourceContacts(exclusiveContacts);
|
||||
|
||||
}
|
||||
|
||||
private void loadAllContacts(boolean readGroupsFromHL, boolean readGroupsFromPortal){
|
||||
|
||||
userStore.getListContact(addSourceContacts, false, readGroupsFromHL, readGroupsFromPortal);
|
||||
}
|
||||
|
||||
private AsyncCallback<List<InfoContactModel>> addSourceContacts = new AsyncCallback<List<InfoContactModel>>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
GWT.log("Error on loading contacts");
|
||||
MessageBox.alert("Error", caught.getMessage(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<InfoContactModel> result) {
|
||||
|
||||
if(result!=null && result.size()>0){
|
||||
List<InfoContactModel> exclusiveContacts = userStore.getExclusiveContactsFromAllContact(targets);
|
||||
multiDragContact.addSourceContacts(exclusiveContacts);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
|
@ -77,4 +77,6 @@ public interface WorkspaceSharingService extends RemoteService {
|
|||
List<InfoContactModel> getInfoContactModelsFromCredential(
|
||||
List<CredentialModel> listAlreadySharedContact) throws Exception;
|
||||
|
||||
List<InfoContactModel> getAdministratorsByFolderId(String sharedFolderId) throws Exception;
|
||||
|
||||
}
|
||||
|
|
|
@ -70,4 +70,10 @@ public interface WorkspaceSharingServiceAsync
|
|||
AsyncCallback<List<InfoContactModel>> callback);
|
||||
|
||||
|
||||
/**
|
||||
* @param sharedFolderId
|
||||
*/
|
||||
void getAdministratorsByFolderId(String sharedFolderId, AsyncCallback<List<InfoContactModel>> callback);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -21,5 +21,7 @@ public interface ContactFetcher {
|
|||
public void getInfoContactModelsFromCredential(
|
||||
List<CredentialModel> listAlreadySharedContact,
|
||||
AsyncCallback<List<InfoContactModel>> callback);
|
||||
|
||||
public void getAdministratorsByFolderId(String sharedFolderId, AsyncCallback<List<InfoContactModel>> callback);
|
||||
|
||||
}
|
||||
|
|
|
@ -195,6 +195,7 @@ public class DialogShareWItem extends Dialog {
|
|||
if(hpPermission!=null)
|
||||
lc.add(hpPermission);
|
||||
lc.mask();
|
||||
|
||||
userStore.getListSharedUserByFolderId(fileModel.getIdentifier(), new AsyncCallback<List<InfoContactModel>>() {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -134,4 +134,30 @@ public class UserStore implements ContactFetcher{
|
|||
callback.onSuccess(listAllContact);
|
||||
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.ContactFetcher#getAdministratorsByFolderId(java.lang.String, com.google.gwt.user.client.rpc.AsyncCallback)
|
||||
*/
|
||||
@Override
|
||||
public void getAdministratorsByFolderId(String sharedFolderId, AsyncCallback<List<InfoContactModel>> callback) {
|
||||
|
||||
if(sharedFolderId==null || sharedFolderId.isEmpty())
|
||||
return;
|
||||
WorkspaceSharingController.rpcWorkspaceSharingService.getAdministratorsByFolderId(sharedFolderId, new AsyncCallback<List<InfoContactModel>>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<InfoContactModel> result) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
|
@ -324,8 +324,7 @@ public class MultiDragContact extends Dialog {
|
|||
|
||||
buttonSelectedLeft = new Button();
|
||||
buttonSelectedLeft.setIcon(Resources.getSelectedLeft());
|
||||
buttonSelectedLeft
|
||||
.setToolTip("Move selected contact/s from 'All Contact' to 'Share with'");
|
||||
buttonSelectedLeft.setToolTip("Move selected contact/s from 'All Contact' to 'Share with'");
|
||||
buttonSelectedLeft
|
||||
.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||
|
||||
|
@ -347,8 +346,7 @@ public class MultiDragContact extends Dialog {
|
|||
|
||||
buttonSelectedRight = new Button();
|
||||
buttonSelectedRight.setIcon(Resources.getSelectedRight());
|
||||
buttonSelectedRight
|
||||
.setToolTip("Move selected contact/s from 'Share with' to 'All Contact'");
|
||||
buttonSelectedRight.setToolTip("Move selected contact/s from 'Share with' to 'All Contact'");
|
||||
|
||||
buttonSelectedRight
|
||||
.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||
|
@ -371,8 +369,7 @@ public class MultiDragContact extends Dialog {
|
|||
|
||||
buttonAllLeft = new Button();
|
||||
buttonAllLeft.setIcon(Resources.getAllLeft());
|
||||
buttonAllLeft
|
||||
.setToolTip("Move all contact/s from 'All Contact' to 'Share with'");
|
||||
buttonAllLeft.setToolTip("Move all contact/s from 'All Contact' to 'Share with'");
|
||||
|
||||
buttonAllLeft
|
||||
.addSelectionListener(new SelectionListener<ButtonEvent>() {
|
||||
|
|
|
@ -473,6 +473,35 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
|||
return listContacts;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingService#getAdministratorsByFolderId(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public List<InfoContactModel> getAdministratorsByFolderId(String sharedFolderId) throws Exception {
|
||||
|
||||
if(sharedFolderId==null || sharedFolderId.isEmpty())
|
||||
throw new Exception("Shared Folder id is null or empty");
|
||||
|
||||
try {
|
||||
|
||||
Workspace workspace = getWorkspace();
|
||||
WorkspaceItem item = workspace.getItem(sharedFolderId);
|
||||
logger.info("Getting administator/s to folder: "+sharedFolderId);
|
||||
|
||||
if(item!=null && item.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
||||
WorkspaceSharedFolder sharedFolder = (WorkspaceSharedFolder) item;
|
||||
GWTWorkspaceSharingBuilder builder = getGWTWorkspaceBuilder();
|
||||
return builder.buildGxtInfoContactsFromPortalLogins(sharedFolder.getAdministrators());
|
||||
}else
|
||||
throw new Exception("The item is null or not instanceof "+WorkspaceItemType.SHARED_FOLDER);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("Error in server getAdministratorsByFolderId", e);
|
||||
String error = "Sorry an erroro occurred on getting Administrators";
|
||||
throw new Exception(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* DEBUG
|
||||
|
@ -498,6 +527,8 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
|||
|
||||
return listContactsModel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
@ -532,4 +563,6 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
|
|||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue