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:
Francesco Mangiacrapa 2014-08-25 13:29:49 +00:00
parent 86802d7eff
commit 887e1e841a
8 changed files with 179 additions and 6 deletions

View File

@ -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);
}
}
};
}

View File

@ -77,4 +77,6 @@ public interface WorkspaceSharingService extends RemoteService {
List<InfoContactModel> getInfoContactModelsFromCredential(
List<CredentialModel> listAlreadySharedContact) throws Exception;
List<InfoContactModel> getAdministratorsByFolderId(String sharedFolderId) throws Exception;
}

View File

@ -70,4 +70,10 @@ public interface WorkspaceSharingServiceAsync
AsyncCallback<List<InfoContactModel>> callback);
/**
* @param sharedFolderId
*/
void getAdministratorsByFolderId(String sharedFolderId, AsyncCallback<List<InfoContactModel>> callback);
}

View File

@ -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);
}

View File

@ -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

View File

@ -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
}
});
}
}

View File

@ -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>() {

View File

@ -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();
}
}
}