diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSharingController.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSharingController.java index 9e2a47b..3894966 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSharingController.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSharingController.java @@ -286,7 +286,7 @@ public class WorkspaceSharingController { /** * - * @return + * @return gxt 2.2.5 Dialog */ public Dialog getSharingDialog() { return sharingDialog; diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSmartSharingController.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSmartSharingController.java index c159d5b..d599aa9 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSmartSharingController.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/WorkspaceSmartSharingController.java @@ -10,12 +10,12 @@ import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSha import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.SmartShare; import org.gcube.portlets.widgets.workspacesharingwidget.shared.CredentialModel; import org.gcube.portlets.widgets.workspacesharingwidget.shared.FileModel; +import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; import com.extjs.gxt.ui.client.event.BaseEvent; import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.widget.Dialog; -import com.extjs.gxt.ui.client.widget.Window; import com.google.gwt.core.client.GWT; /** @@ -43,14 +43,14 @@ public class WorkspaceSmartSharingController { this.listAlreadySharedContact = listAlreadySharedContact; this.fileModel = file; smartShare = new SmartShare(); - smartShare.setSize(ConstantsSharing.WIDTH_DIALOG+20, ConstantsSharing.HEIGHT_DIALOG-150); + smartShare.setSize(ConstantsSharing.WIDTH_DIALOG+20, ConstantsSharing.HEIGHT_DIALOG-170); updateSharingDialog(); addListenersSharingDialog(); } /** - * Example of listners + * Example of listeners */ private void addListenersSharingDialog(){ @@ -61,6 +61,19 @@ public class WorkspaceSmartSharingController { if(smartShare.isValidForm(true)){ //THAT'S OK + + smartShare.getSharedListUsers(); //@return the selected contacts (as InfoContactModel) + + smartShare.getSharedListUsersCredential(); //@return tthe selected contacts (as CredentialModel) + + for (InfoContactModel contact : smartShare.getSharedListUsers()) { + System.out.println(contact); + } + + for (CredentialModel credential : smartShare.getSharedListUsersCredential()) { + System.out.println(credential); + } + } } @@ -83,9 +96,9 @@ public class WorkspaceSmartSharingController { /** * - * @return + * @return gxt 2.2.5 Dialog */ - public Window getSharingDialog() { + public Dialog getSharingDialog() { return smartShare; } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Icons.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Icons.java index c11b5df..4ba896f 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Icons.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Icons.java @@ -22,5 +22,8 @@ public interface Icons extends ClientBundle { @Source("info-icon.png") ImageResource info(); + + @Source("share.png") + ImageResource share(); } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Resources.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Resources.java index 3dd4989..c89c9d1 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Resources.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/Resources.java @@ -39,4 +39,11 @@ public class Resources { return AbstractImagePrototype.create(ICONS.info()); } + /** + * @return + */ + public static AbstractImagePrototype getIconShare() { + return AbstractImagePrototype.create(ICONS.share()); + } + } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/share.png b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/share.png new file mode 100644 index 0000000..4463d87 Binary files /dev/null and b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/share.png differ diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/SmartShare.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/SmartShare.java index 14ff264..c5357bc 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/SmartShare.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/SmartShare.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.List; import org.gcube.portlets.widgets.workspacesharingwidget.client.ConstantsSharing; +import org.gcube.portlets.widgets.workspacesharingwidget.client.resources.Resources; import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.multisuggest.MultiDragContact; import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.multisuggest.MultiValuePanel; import org.gcube.portlets.widgets.workspacesharingwidget.shared.CredentialModel; @@ -89,9 +90,7 @@ public class SmartShare extends Dialog{ public void updateSharingDialog(FileModel fileModel, List listAlreadySharedContact){ this.fileToShare = fileModel; - - setButtons(Dialog.OKCANCEL); - + String heading = "Share"; if(fileModel.isDirectory()) heading+=" folder: "; @@ -186,17 +185,60 @@ public class SmartShare extends Dialog{ setResizable(true); setButtonAlign(HorizontalAlignment.CENTER); setButtons(Dialog.OKCANCEL); + setIcon(Resources.getIconShare()); } + /** + * + * @return the selected contacts (as InfoContactModel) + */ public List getSharedListUsers() { // printSelectedUser(); - return suggestPanel.getSelectedUser(); + + List contacts = new ArrayList(); + + for (InfoContactModel wsuser : suggestPanel.getSelectedUser()) { + CredentialModel credential = getCredentialModelFromInfoContactModel(wsuser); + wsuser.setReferenceCredential(credential); + contacts.add(wsuser); + } + + return contacts; } + /** + * + * @return the selected contacts (as CredentialModel) + */ public List getSharedListUsersCredential() { - return suggestPanel.getSelectedUserCredential(); + + List toReturn = new ArrayList(); + + for (InfoContactModel wsuser : suggestPanel.getSelectedUser()) { + CredentialModel credential = wsuser.getReferenceCredential(); + + if(credential==null) + credential = new CredentialModel(null, "UNKWNOWN LOGIN", wsuser.isGroup()); + + toReturn.add(credential); + } + return toReturn; + } + + private CredentialModel getCredentialModelFromInfoContactModel(InfoContactModel infoContact){ + + if(infoContact==null) + return null; + + if(infoContact.getReferenceCredential()==null){ + return new CredentialModel(null, infoContact.getLogin(), infoContact.isGroup()); + }else if(infoContact.getReferenceCredential()!=null) + return infoContact.getReferenceCredential(); + + return null; + } @@ -309,7 +351,7 @@ public class SmartShare extends Dialog{ /** * - * @param displayAlert + * @param displayAlert in case of error * @return */ public boolean isValidForm(boolean displayAlert){ diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/multisuggest/MultiValuePanel.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/multisuggest/MultiValuePanel.java index b81f766..a7a19b8 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/multisuggest/MultiValuePanel.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/multisuggest/MultiValuePanel.java @@ -157,26 +157,6 @@ public class MultiValuePanel extends Composite { } } - - /** - * - * @return the selected contacts (user logins e.g. pino.pini) - */ - public List getSelectedUserCredential() { - if (users == null) - return new ArrayList(); - else { - List toReturn = new ArrayList(); - - for (String login : itemsSelected) { - InfoContactModel wsuser = users.get(login); - if(wsuser!= null && !toReturn.contains(wsuser)) - toReturn.add(wsuser.getReferenceCredential()); - } - return toReturn; - } - } - private void removeListItem(ListItem displayItem, BulletList list) { GWT.log("Removing: " + displayItem.getWidget(0).getElement().getInnerHTML(), null); itemsSelected.remove(displayItem.getWidget(0).getElement().getInnerHTML()); diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java index b2343db..9270db7 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java @@ -56,39 +56,39 @@ public class GWTWorkspaceSharingBuilder { hashTestUser.put("federico.defaveri", new InfoContactModel( "federico.defaveri", "federico.defaveri", - "Federico de Faveri")); + "Federico de Faveri", false)); hashTestUser.put("antonio.gioia", new InfoContactModel( - "antonio.gioia", "antonio.gioia", "Antonio Gioia")); + "antonio.gioia", "antonio.gioia", "Antonio Gioia", false)); hashTestUser.put("fabio.sinibaldi", new InfoContactModel( - "fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi")); + "fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false)); hashTestUser.put("pasquale.pagano", new InfoContactModel( - "pasquale.pagano", "pasquale.pagano", "Pasquale Pagano")); + "pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false)); hashTestUser.put("francesco.mangiacrapa", new InfoContactModel( "francesco.mangiacrapa", "francesco.mangiacrapa", - "Francesco Mangiacrapa")); + "Francesco Mangiacrapa",false)); hashTestUser.put("massimiliano.assante", new InfoContactModel( "massimiliano.assante", "massimiliano.assante", - "Massimiliano Assante")); + "Massimiliano Assante",false)); hashTestUser.put("leonardo.candela", new InfoContactModel( "leonardo.candela", "leonardo.candela", - "Leonardo Candela")); + "Leonardo Candela",false)); hashTestUser.put("valentina.marioli", new InfoContactModel( "valentina.marioli", "valentina.marioli", - "Valentina Marioli")); + "Valentina Marioli",false)); // hashTestUser.put(WsUtil.TEST_USER.toString(), // new InfoContactModel( @@ -127,10 +127,9 @@ public class GWTWorkspaceSharingBuilder { for (UserModel userModel : listUsers) { String fullName = userModel.getFullname(); + //TODO ISGROUP? if (fullName != null && !fullName.isEmpty()) - listContactsModel - .add(new InfoContactModel(userModel.getUserId() + "", - userModel.getScreenName(), fullName)); + listContactsModel.add(new InfoContactModel(userModel.getUserId() + "",userModel.getScreenName(), fullName,false)); else logger.info("buildGXTListContactsModel doesn't return user: " + userModel.getScreenName() @@ -169,7 +168,8 @@ public class GWTWorkspaceSharingBuilder { portalLogin = ""; } - return new InfoContactModel(portalLogin, portalLogin,UserUtil.getUserFullName(portalLogin)); + //TODO ISGROUP + return new InfoContactModel(portalLogin, portalLogin,UserUtil.getUserFullName(portalLogin), false); } @@ -199,8 +199,9 @@ public class GWTWorkspaceSharingBuilder { public InfoContactModel buildGXTInfoContactModel(User user) throws InternalErrorException { + //TODO ISGROUP if (user != null) - return new InfoContactModel(user.getId(), user.getPortalLogin(), UserUtil.getUserFullName(user.getPortalLogin())); + return new InfoContactModel(user.getId(), user.getPortalLogin(), UserUtil.getUserFullName(user.getPortalLogin()),false); return new InfoContactModel(); } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java index 59d3430..68e04c2 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java @@ -89,15 +89,15 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements logger.warn("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS"); List listContactsModel = new ArrayList(); // //TEST USERS - listContactsModel.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri")); - listContactsModel.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia")); - listContactsModel.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi")); - listContactsModel.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano")); + listContactsModel.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri", false)); + listContactsModel.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia", false)); + listContactsModel.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi", false)); + listContactsModel.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano", false)); // listContactsModel.add(new InfoContactModel(WsUtil.TEST_USER, WsUtil.TEST_USER, WsUtil.TEST_USER_FULL_NAME)); - listContactsModel.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa")); - listContactsModel.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante")); - listContactsModel.add(new InfoContactModel("valentina.marioli", "valentina.marioli", "Valentina Marioli")); - listContactsModel.add(new InfoContactModel("leonardo.candela", "leonardo.candela", "Leonardo Candela")); + listContactsModel.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa", false)); + listContactsModel.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante", false)); + listContactsModel.add(new InfoContactModel("valentina.marioli", "valentina.marioli", "Valentina Marioli", false)); + listContactsModel.add(new InfoContactModel("leonardo.candela", "leonardo.candela", "Leonardo Candela", false)); return listContactsModel; } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/DiffereceBeetweenInfoContactModel.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/DiffereceBeetweenInfoContactModel.java index 2569052..317a2b4 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/DiffereceBeetweenInfoContactModel.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/DiffereceBeetweenInfoContactModel.java @@ -90,19 +90,19 @@ public class DiffereceBeetweenInfoContactModel { public static void main(String[] args) { List listA = new ArrayList(); - listA.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri")); - listA.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia")); - listA.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi")); - listA.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano")); - listA.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa")); - listA.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante")); + 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 listB = new ArrayList(); - listB.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri")); - listB.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi")); - listB.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia")); - listB.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano")); + 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); diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/WsUtil.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/WsUtil.java index 7e2b06e..e14b6f4 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/WsUtil.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/util/WsUtil.java @@ -156,8 +156,9 @@ public class WsUtil { GWTWorkspaceSharingBuilder builder = new GWTWorkspaceSharingBuilder(); - //ADDED 03/09/2013 - builder.setUserLogged(new InfoContactModel(session.getUsername(), session.getUsername(), session.getUserFullName())); + //ADDED 03/09/2013 + //TODO IS GROUP? + builder.setUserLogged(new InfoContactModel(session.getUsername(), session.getUsername(), session.getUserFullName(), false)); session.setAttribute(WORKSPACEBUILDER_ATTRIBUTE, builder); } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/shared/InfoContactModel.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/shared/InfoContactModel.java index 214ccfa..be8fdf8 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/shared/InfoContactModel.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/shared/InfoContactModel.java @@ -15,7 +15,7 @@ public class InfoContactModel extends BaseModelData implements Serializable { /** * */ - private static final long serialVersionUID = 1598054293247763508L; + private static final long serialVersionUID = -4098652774574958363L; protected static final String ID = "id"; @@ -28,17 +28,18 @@ public class InfoContactModel extends BaseModelData implements Serializable { public InfoContactModel() {} - public InfoContactModel(String id, String login, String fullName) { + public InfoContactModel(String id, String login, String fullName, boolean isGroup) { setId(id); setLogin(login); setName(fullName); + setIsGroup(isGroup); } public void setIsGroup(boolean isGroup){ set(ISGROUP, isGroup); } - public Boolean isGroup(boolean isGroup){ + public Boolean isGroup(){ return (Boolean) get(ISGROUP); } @@ -93,8 +94,8 @@ public class InfoContactModel extends BaseModelData implements Serializable { @Override public String toString() { StringBuilder builder = new StringBuilder(); - builder.append("InfoContactModel [referenceCredential="); - builder.append(referenceCredential); + builder.append("InfoContactModel [isGroup()="); + builder.append(isGroup()); builder.append(", getName()="); builder.append(getName()); builder.append(", getId()="); @@ -106,5 +107,4 @@ public class InfoContactModel extends BaseModelData implements Serializable { builder.append("]"); return builder.toString(); } - } \ No newline at end of file diff --git a/src/main/resources/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/share.png b/src/main/resources/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/share.png new file mode 100644 index 0000000..4463d87 Binary files /dev/null and b/src/main/resources/org/gcube/portlets/widgets/workspacesharingwidget/client/resources/share.png differ