From 40dd405668b3e359a84ab5cc2932b4f3386c5cf6 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Mon, 11 Mar 2013 18:06:56 +0000 Subject: [PATCH] bugs fixed: - back return suggest box - full name suggest box git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@71189 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 2 +- .../workspace/client/ConstantsExplorer.java | 3 -- .../client/model/InfoContactModel.java | 14 +++--- .../view/sharing/DialogShareFolder.java | 10 ++-- .../multisuggest/MultiDragContact.java | 8 ++-- .../sharing/multisuggest/MultiValuePanel.java | 35 +++++++------- .../view/sharing/multisuggest/Paragraph.java | 13 +++++- .../workspace/server/GWTWorkspaceBuilder.java | 46 ++++++++++++++++++- .../server/GWTWorkspaceServiceImpl.java | 19 +++++--- .../user/workspace/server/util/UserUtil.java | 6 ++- .../user/workspace/server/util/Util.java | 2 +- 11 files changed, 108 insertions(+), 50 deletions(-) diff --git a/pom.xml b/pom.xml index 2559001..2037fa6 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.portlets.user workspace-tree-widget - 6.0.0-SNAPSHOT + 6.0.1-SNAPSHOT gCube Workspace Tree Widget gCube Workspace Tree Widget. diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java b/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java index 398c857..c4c4e6d 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/ConstantsExplorer.java @@ -165,9 +165,6 @@ public class ConstantsExplorer { public static final String IDREPORT = "idreport"; public static final String REPORTGENERATION = "report-generation"; - //Info contact constant - public static final String LOGIN = "login"; - //GRID COLUMN ADD CONTACT public static final String GRIDCOLUMNLOGIN = "Login"; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/model/InfoContactModel.java b/src/main/java/org/gcube/portlets/user/workspace/client/model/InfoContactModel.java index f9f26a7..8ebe721 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/model/InfoContactModel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/model/InfoContactModel.java @@ -14,7 +14,9 @@ import com.extjs.gxt.ui.client.data.BaseModelData; public class InfoContactModel extends BaseModelData implements Serializable { - protected static final String FULLNAME = "fullname"; + protected static final String ID = "id"; + public static final String FULLNAME = "fullname"; + public static final String LOGIN = "login"; /** * */ @@ -38,26 +40,26 @@ public class InfoContactModel extends BaseModelData implements Serializable { } public String getId() { - return get("id"); + return get(ID); } public void setId(String id) { - set("id", id); + set(ID, id); } public String getLogin() { - return get(ConstantsExplorer.LOGIN); + return get(LOGIN); } public void setLogin(String login) { - set(ConstantsExplorer.LOGIN, login); + set(LOGIN, login); } public static Comparator COMPARATOR = new Comparator() { // This is where the sorting happens. public int compare(InfoContactModel o1, InfoContactModel o2) { - return o1.getLogin().compareToIgnoreCase(o2.getLogin()); + return o1.getName().compareToIgnoreCase(o2.getName()); } }; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java index 4d253b7..6b3cf9b 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java @@ -63,7 +63,7 @@ public class DialogShareFolder extends Dialog { InfoContactModel contact = (InfoContactModel) o; for (int i = 0; i < listAlreadyShared.size(); i++){ - if (contact.getLogin().compareTo(listAlreadyShared.get(i).getLogin())==0) + if (contact.getName().compareTo(listAlreadyShared.get(i).getName())==0) return true; } @@ -141,7 +141,7 @@ public class DialogShareFolder extends Dialog { for (InfoContactModel infoContactModel : result) { listAlreadyShared.add(infoContactModel); - suggestPanel.addRecipient(infoContactModel.getLogin(),false); + suggestPanel.addRecipient(infoContactModel.getName(),false); } lc.unmask(); @@ -164,7 +164,7 @@ public class DialogShareFolder extends Dialog { @Override public void onSuccess(InfoContactModel result) { - txtOwner.setValue(result.getLogin()); + txtOwner.setValue(result.getName()); } }); @@ -302,7 +302,7 @@ public class DialogShareFolder extends Dialog { initSuggestContacts(); for (InfoContactModel infoContactModel : multiDrag.getTargetListContact()) { - suggestPanel.addRecipient(infoContactModel.getLogin(),true); + suggestPanel.addRecipient(infoContactModel.getName(),true); } suggestPanel.boxSetFocus(); @@ -327,7 +327,7 @@ public class DialogShareFolder extends Dialog { suggestPanel.resetItemSelected(); for (InfoContactModel contact : listAlreadyShared) { - suggestPanel.addRecipient(contact.getLogin(), false); + suggestPanel.addRecipient(contact.getName(), false); } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java index a85e10d..c419503 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java @@ -74,7 +74,7 @@ public class MultiDragContact extends Dialog { Grid grid = new Grid(storeSource, createColumnModel()); grid.setSize(250,300); grid.setBorders(false); - grid.setAutoExpandColumn("login"); + grid.setAutoExpandColumn(InfoContactModel.FULLNAME); grid.setBorders(true); vp.add(grid); @@ -89,7 +89,7 @@ public class MultiDragContact extends Dialog { Grid grid2 = new Grid(storeTarget, createColumnModel()); grid2.setSize(250, 300); grid2.setBorders(false); - grid2.setAutoExpandColumn("login"); + grid2.setAutoExpandColumn(InfoContactModel.FULLNAME); grid2.setBorders(true); vp.add(grid2); @@ -130,8 +130,8 @@ public class MultiDragContact extends Dialog { List configs = new ArrayList(); ColumnConfig column = new ColumnConfig(); - column.setId("login"); - column.setHeader("login"); + column.setId(InfoContactModel.FULLNAME); + column.setHeader("Name"); column.setWidth(200); configs.add(column); diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiValuePanel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiValuePanel.java index 80a6ba6..f2e6a37 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiValuePanel.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiValuePanel.java @@ -15,6 +15,7 @@ import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.dom.client.KeyDownHandler; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; @@ -69,11 +70,13 @@ public class MultiValuePanel extends Composite { if(li.getWidget(0) instanceof Paragraph){ Paragraph p = (Paragraph) li.getWidget(0); - if (itemsSelected.contains(p.getText())) { + GWT.log("p is removable : " + p.isRemovable()); + if (itemsSelected.contains(p.getText()) && (p.isRemovable()==true)) { itemsSelected.remove(p.getText()); GWT.log("Removing selected item: " + p.getText() + "'"); + listBullet.remove(li); } - listBullet.remove(li); + itemBox.setFocus(true); } } @@ -176,7 +179,7 @@ public class MultiValuePanel extends Composite { oracle.clear(); for (InfoContactModel wsUser : result) { - oracle.add(wsUser.getLogin()); + oracle.add(wsUser.getName()); } } @@ -196,22 +199,13 @@ public class MultiValuePanel extends Composite { users.clear(); for (InfoContactModel wsUser : result) { - oracle.add(wsUser.getLogin()); - users.put(wsUser.getLogin(), wsUser); + oracle.add(wsUser.getName()); + users.put(wsUser.getName(), wsUser); } } }; - public List getAllUsers() { - - List listUsers = new ArrayList(); - for (String key : users.keySet()) { - listUsers.add(users.get(key)); - } - return listUsers; - } - public void resetItemSelected(){ listBullet.clear(); @@ -235,12 +229,13 @@ public class MultiValuePanel extends Composite { itemBox.setText(fullName); itemBox.setValue(fullName); final ListItem displayItem = new ListItem(); - Paragraph p = new Paragraph(fullName); + Paragraph p = new Paragraph(fullName); displayItem.add(p); - + if(displayRemoveItem){ displayItem.setStyleName("multivalue-panel-token-ws"); + p.setRemovable(true); Span span = new Span("x"); span.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { @@ -250,14 +245,18 @@ public class MultiValuePanel extends Composite { displayItem.add(span); } - else + else{ displayItem.setStyleName("multivalue-panel-token-ws-notselectable"); + p.setRemovable(false); + } + + GWT.log("Adding selected wp item '" + itemBox.getValue()); itemsSelected.add(itemBox.getValue()); GWT.log("Total: " + itemsSelected); - listBullet.insert(displayItem, listBullet.getWidgetCount()); + listBullet.insert(displayItem, listBullet.getWidgetCount()-1); itemBox.setValue(""); itemBox.setFocus(true); } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/Paragraph.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/Paragraph.java index a8c46f6..d3764fa 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/Paragraph.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/Paragraph.java @@ -8,11 +8,14 @@ import com.google.gwt.user.client.ui.Widget; * * @author Massimiliano Assante, ISTI-CNR * @version 0.1 Sep 2012 + * changed by Francesco Mangiacrapa * */ public class Paragraph extends Widget implements HasText { + + boolean isRemovable = true; - public Paragraph() { + public Paragraph() { setElement(DOM.createElement("p")); } @@ -28,4 +31,12 @@ public class Paragraph extends Widget implements HasText { public void setText(String text) { getElement().setInnerText(text); } + + public boolean isRemovable(){ + return isRemovable; + } + + public void setRemovable(boolean isRemovable) { + this.isRemovable = isRemovable; + } } diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java index 09c732c..d6ddd7b 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java @@ -79,6 +79,9 @@ import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTP import org.gcube.portlets.user.workspace.client.workspace.folder.item.gcube.GWTUrlDocument; import org.gcube.portlets.user.workspace.server.util.AllScope; import org.gcube.portlets.user.workspace.server.util.UserUtil; +import org.gcube.portlets.user.workspace.server.util.Util; + +import com.google.gwt.dev.util.collect.HashMap; /** * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it @@ -88,6 +91,7 @@ public class GWTWorkspaceBuilder { protected static final String IMAGE_SERVICE_URL = "ImageService"; protected GCUBELog logger; + protected static HashMap hashTestUser = null; // private final String UNKNOWN = "unknown"; // private final String FOLDER = "Folder"; @@ -98,6 +102,28 @@ public class GWTWorkspaceBuilder { public GWTWorkspaceBuilder(GCUBELog logger) { this.logger = logger; } + + + /** + * Used in test mode + * @return + */ + public static HashMap getHashTestUsers(){ + + if(hashTestUser==null){ + hashTestUser = new HashMap(); + hashTestUser.put("federico.defaveri", new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri")); + hashTestUser.put("antonio.gioia", new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia")); + hashTestUser.put("fabio.sinibaldi", new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi")); + hashTestUser.put("pasquale.pagano", new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano")); + hashTestUser.put(Util.TEST_USER.toString(), new InfoContactModel(Util.TEST_USER, Util.TEST_USER, Util.TEST_USER_FULL_NAME)); + hashTestUser.put("francesco.mangiacrapa", new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa")); + hashTestUser.put("massimiliano.assante", new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante")); + + } + + return hashTestUser; + } protected Date toDate(Calendar calendar) { @@ -838,11 +864,27 @@ public class GWTWorkspaceBuilder { } - protected List buildGxtInfoContactFromPortalLogin(List listUserLogin){ + protected List buildGxtInfoContactFromPortalLogin(List listPortalLogin){ List listContact = new ArrayList(); - for (String portalLogin : listUserLogin) + for (String portalLogin : listPortalLogin) listContact.add(new InfoContactModel(portalLogin, portalLogin, UserUtil.getUserFullName(portalLogin))); + + return listContact; + } + + /** + * Used in test mode + * @param listPortalLogin + * @return + */ + protected List buildGxtInfoContactFromPortalLoginTestMode(List listPortalLogin){ + + List listContact = new ArrayList(); + + for (String portalLogin : listPortalLogin) + listContact.add(getHashTestUsers().get(portalLogin)); + return listContact; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java index 665ebb9..fb9ad87 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java @@ -5,10 +5,10 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; +import org.apache.log4j.Logger; import org.gcube.application.framework.core.session.ASLSession; import org.gcube.common.core.scope.GCUBEScope; import org.gcube.common.core.utils.logging.GCUBEClientLog; -import org.gcube.common.core.utils.logging.GCUBELog; import org.gcube.portlets.user.homelibrary.home.exceptions.HomeNotFoundException; import org.gcube.portlets.user.homelibrary.home.exceptions.InternalErrorException; import org.gcube.portlets.user.homelibrary.home.workspace.Workspace; @@ -61,7 +61,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT public static final String LAST_OPEN_FOLDER_ATTRIBUTE = "WORKSPACE.LAST_OPEN_FOLDER"; public static final String SELECTION_STATE_ATTRIBUTE = "WORKSPACE.SELECTION_STATE"; - protected GCUBELog workspaceLogger = new GCUBELog(GWTWorkspaceServiceImpl.class); +// protected GCUBELog workspaceLogger = new GCUBELog(GWTWorkspaceServiceImpl.class); + + protected Logger workspaceLogger = Logger.getLogger(GWTWorkspaceServiceImpl.class); protected GWTWorkspaceBuilder getGWTWorkspaceBuilder() @@ -985,8 +987,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT Workspace workspace = getWorkspace(); - GCUBEClientLog logger = new GCUBEClientLog(GWTWorkspaceServiceImpl.class); - logger.trace("get all contacts"); + workspaceLogger.trace("get all contacts"); // WorkspaceItem parent = workspace.getItem(parentFileModel.getIdentifier()); //get item from workspace // workspace.getAllScope(); @@ -995,14 +996,14 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if(isTestMode()){ - logger.warn("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS"); + workspaceLogger.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(Util.TEST_USER, Util.TEST_USER, Util.TEST_USER)); + listContactsModel.add(new InfoContactModel(Util.TEST_USER, Util.TEST_USER, Util.TEST_USER_FULL_NAME)); listContactsModel.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa")); listContactsModel.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante")); return listContactsModel; @@ -1573,6 +1574,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT public List getListUserSharedByFolderSharedId(String folderSharedId) throws Exception{ workspaceLogger.trace("getListUserSharedByFolderSharedId "+ folderSharedId); + try { Workspace workspace = getWorkspace(); @@ -1585,8 +1587,11 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder(); List listPortalLogin = wsFolder.getUsers(); - + workspaceLogger.trace("getListUserSharedByFolderSharedId return "+ listPortalLogin.size() + " user"); + + if(isTestMode()) + return builder.buildGxtInfoContactFromPortalLoginTestMode(listPortalLogin); return builder.buildGxtInfoContactFromPortalLogin(listPortalLogin); diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java index 2116f52..3430b74 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/UserUtil.java @@ -40,13 +40,15 @@ public class UserUtil { logger.error("An error occurred in getUserFullName "+e,e); } } catch (UserManagementPortalException ume) { - + logger.error("An error occurred in getUserFullName "+ume,ume); } if (curr != null) return curr.getFullname(); + }else{ + + return Util.TEST_USER_FULL_NAME; } return ""; - } } diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java index 0398d17..cf943b4 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java @@ -70,7 +70,7 @@ public class Util { session.setScope(TEST_SCOPE); session.setUserAvatarId(TEST_USER + "Avatar"); session.setUserFullName(TEST_USER_FULL_NAME); - session.setUserEmailAddress("test.user@mail.test"); + session.setUserEmailAddress(TEST_USER + "@mail.test"); } withoutPortal = true;