From 6d4b51a024e0ba15bef96a57bb2aee9e848d3566 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 30 Jul 2019 14:57:34 +0000 Subject: [PATCH] ref 17169: Selection of users in the Sharing panel https://support.d4science.org/issues/17169 Added support to workspace users discovery by VREs git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@181359 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../admin/PanelMultiDragContactAdmin.java | 25 +++++++++++++------ .../sharing/multisuggest/MultiValuePanel.java | 2 ++ .../user/PanelMultiDragWorkspaceContact.java | 17 ++++++++++--- .../server/GWTWorkspaceSharingBuilder.java | 1 + 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/admin/PanelMultiDragContactAdmin.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/admin/PanelMultiDragContactAdmin.java index a29eafd..d605130 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/admin/PanelMultiDragContactAdmin.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/admin/PanelMultiDragContactAdmin.java @@ -37,6 +37,7 @@ import com.extjs.gxt.ui.client.widget.VerticalPanel; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.ComboBox; import com.extjs.gxt.ui.client.widget.form.StoreFilterField; +import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; import com.extjs.gxt.ui.client.widget.grid.ColumnData; import com.extjs.gxt.ui.client.widget.grid.ColumnModel; @@ -58,6 +59,8 @@ import com.google.gwt.user.client.ui.FlexTable; */ public class PanelMultiDragContactAdmin extends ContentPanel { + + // private String workspaceItemId; @@ -71,13 +74,15 @@ public class PanelMultiDragContactAdmin extends ContentPanel { private static final String ADMINISTRATORS = "Administrators"; // - //private static final String LOADINGSTYLE = "x-mask-loading"; - + public static final String LOADING = "Loading"; + public static final String LOADINGSTYLE = "x-mask-loading"; + private static final int HEIGHT_VRE_PANEL = 40; private static final int WIDTH_VRE_PANEL = 597; private static final int HEIGHT_CONTACTS_PANEL = 400; private static final int WIDTH_CONTACTS_PANEL = 597; - + + private static final int WIDTH_VRE_LIST_COMBO = 550; private static final int HEIGHT_GRID = 310; private static final int PADDING = 5; @@ -219,7 +224,7 @@ public class PanelMultiDragContactAdmin extends ContentPanel { private void create() { GWT.log("PanelMultiDragContactAdmin Create Start"); - // SORTING STORE + GWT.log("Create VREPanel"); // VRE final ContentPanel vrePanel = new ContentPanel(); @@ -228,20 +233,24 @@ public class PanelMultiDragContactAdmin extends ContentPanel { vrePanel.setHeaderVisible(false); vrePanel.setLayout(new RowLayout(Orientation.HORIZONTAL)); - // TODO // VRE Select vreListStore = new ListStore(); vreListCombo = new ComboBox(); vreListCombo.setStore(vreListStore); vreListCombo.setDisplayField(UserVRE.GROUP_NAME); - vreListCombo.setWidth(554); + vreListCombo.setWidth(WIDTH_VRE_LIST_COMBO); + vreListCombo.setEditable(true); vreListCombo.setAllowBlank(false); + vreListCombo.setForceSelection(true); + vreListCombo.setTypeAhead(true); + vreListCombo.setTriggerAction(TriggerAction.ALL); vreListCombo.addSelectionChangedListener(new SelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent selected) { + gridAllContacts.focus(); retrieveContactList(selected.getSelectedItem()); } }); @@ -408,14 +417,14 @@ public class PanelMultiDragContactAdmin extends ContentPanel { GWT.log("PanelMultiDragContactAdmin view Created"); } - // TODO + private void retrieveContactList(final UserVRE userVRE) { if (!contactsMap.isEmpty() && contactsMap.containsKey(userVRE)) { List contacts = contactsMap.get(userVRE); updateStoreSource(contacts); } else { - gridAllContacts.mask("Loading...");//("", LOADINGSTYLE); + gridAllContacts.mask(LOADING, LOADINGSTYLE); GWT.log("PanelMultiDragContactAdmin retrieve contacts list"); WorkspaceSharingController.rpcWorkspaceSharingService.getAllContactsByVRE(userVRE, new AsyncCallback>() { 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 8f7170b..5ddfc64 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 @@ -8,6 +8,7 @@ import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.Con import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; @@ -287,6 +288,7 @@ public class MultiValuePanel extends Composite { } else { displayItem.setStyleName("multivalue-panel-token-ws-notselectable"); p.setRemovable(false); + p.getElement().getStyle().setMargin(0, Unit.PX); } GWT.log("Adding selected wp item '" + itemBox.getValue()); diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/user/PanelMultiDragWorkspaceContact.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/user/PanelMultiDragWorkspaceContact.java index 2fa35e9..fd59d3c 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/user/PanelMultiDragWorkspaceContact.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/view/sharing/user/PanelMultiDragWorkspaceContact.java @@ -35,6 +35,7 @@ import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.VerticalPanel; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.ComboBox; +import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; import com.extjs.gxt.ui.client.widget.form.StoreFilterField; import com.extjs.gxt.ui.client.widget.form.TextArea; import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; @@ -71,7 +72,9 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { private static final String SHARE_WITH = "Share with..."; // - //private static final String LOADINGSTYLE = "x-mask-loading"; + public static final String LOADING = "Loading"; + public static final String LOADINGSTYLE = "x-mask-loading"; + private static final int HEIGHT_ALREADY_SHARED_PANEL = 80; private static final int WIDTH_ALREADY_SHARED_PANEL = 597; private static final int HEIGHT_VRE_PANEL = 40; @@ -208,6 +211,7 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { private void create() { GWT.log("PanelMultiDragWorkspaceContact Create Start"); + // Already Shared GWT.log("PanelMultiDragWorkspaceContact Already Shared Panel"); alreadySharedPanel = new ContentPanel(); @@ -240,6 +244,7 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { // GWT.log("PanelMultiDragWorkspaceContact Create VREPanel"); + // VRE final ContentPanel vrePanel = new ContentPanel(); vrePanel.setId("vre-panel-share-admin" + Random.nextInt()); @@ -247,7 +252,6 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { vrePanel.setHeaderVisible(false); vrePanel.setLayout(new RowLayout(Orientation.HORIZONTAL)); - // TODO // VRE Select vreListStore = new ListStore(); @@ -255,12 +259,18 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { vreListCombo.setStore(vreListStore); vreListCombo.setDisplayField(UserVRE.GROUP_NAME); vreListCombo.setWidth(552); + vreListCombo.setEditable(true); vreListCombo.setAllowBlank(false); + vreListCombo.setForceSelection(true); + vreListCombo.setTypeAhead(true); + vreListCombo.setTriggerAction(TriggerAction.ALL); + vreListCombo.addSelectionChangedListener(new SelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent selected) { + gridAllContacts.focus(); retrieveContactList(selected.getSelectedItem()); } }); @@ -427,7 +437,6 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { GWT.log("PanelMultiDragWorkspaceContact view Created"); } - // TODO private void retrieveContactList(final UserVRE userVRE) { if (!contactsMap.isEmpty() && contactsMap.containsKey(userVRE)) { @@ -435,7 +444,7 @@ public class PanelMultiDragWorkspaceContact extends ContentPanel { updateStoreSource(contacts); } else { - gridAllContacts.mask("Loading...");//"", LOADINGSTYLE); + gridAllContacts.mask(LOADING, LOADINGSTYLE); GWT.log("PanelMultiDragWorkspaceContact retrieve contacts list"); WorkspaceSharingController.rpcWorkspaceSharingService.getAllContactsByVRE(userVRE, new AsyncCallback>() { 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 ba941ac..84d650e 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 @@ -90,6 +90,7 @@ public class GWTWorkspaceSharingBuilder { if (hashUserTest == null) { vresListTest = new ArrayList<>(); vresListTest.add(new UserVRE(21660, 21657, "NextNext", "NextNext test VRE")); + vresListTest.add(new UserVRE(21678, 21663, "devVRE", "devVRE test VRE")); } return vresListTest; }