From 9ddfa0d94d72f613cc55f0099cfd1bdf1598a587 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Tue, 30 Jul 2019 08:56:54 +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: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@181355 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../DialogMultiDragWorkspaceContacts.java | 164 ---- .../view/sharing/DialogShareFolder.java | 1 + .../PanelMultiDragWorkspaceContact.java | 701 ------------------ 3 files changed, 1 insertion(+), 865 deletions(-) delete mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogMultiDragWorkspaceContacts.java delete mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/PanelMultiDragWorkspaceContact.java diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogMultiDragWorkspaceContacts.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogMultiDragWorkspaceContacts.java deleted file mode 100644 index b1cb158..0000000 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogMultiDragWorkspaceContacts.java +++ /dev/null @@ -1,164 +0,0 @@ -package org.gcube.portlets.user.workspace.client.view.sharing; - -import java.util.List; - -import org.gcube.portlets.widgets.workspacesharingwidget.client.resources.Resources; -import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; - -import com.extjs.gxt.ui.client.Style.HorizontalAlignment; -import com.extjs.gxt.ui.client.event.ButtonEvent; -import com.extjs.gxt.ui.client.event.SelectionListener; -import com.extjs.gxt.ui.client.widget.Dialog; -import com.extjs.gxt.ui.client.widget.LayoutContainer; -import com.extjs.gxt.ui.client.widget.MessageBox; -import com.extjs.gxt.ui.client.widget.button.Button; -import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; -import com.google.gwt.core.client.GWT; -import com.google.gwt.user.client.Random; - -/** - * @author Francesco Mangiacrapa Jan 27, 2015 - * - */ -public class DialogMultiDragWorkspaceContacts extends Dialog { - - private static final String GROUP_DRAGGING_CONTACTS = "Group dragging contacts"; - - private static final int HEIGHT_DIALOG = 580; - private static final int WIDTH_DIALOG = 620; - - private String txtHelp = "Select a VRE and after drag one or more contacts from the left (All Contacts) to the right (Share with) to add users in your sharing list."; - private String titleHelp = "Group dragging action"; - - // private boolean hideOnPressOkButton=false; - private PanelMultiDragWorkspaceContact multiDragContactPanel; - // private boolean visibleTextArea=false; - - private ToolBar toolBar; - - private LayoutContainer lcTop = new LayoutContainer(); - private LayoutContainer lcMiddle = new LayoutContainer(); - private LayoutContainer lcBottom = new LayoutContainer(); - - private InfoContactModel owner; - private List targetContact; - - public DialogMultiDragWorkspaceContacts(InfoContactModel owner, List targetContact) { - - GWT.log("DialogMultiDragWorkspaceContacts()"); - try { - this.owner = owner; - this.targetContact = targetContact; - init(); - create(); - } catch (Throwable e) { - GWT.log("Error in DialogMultiDragWorkspaceContacts()" + e.getLocalizedMessage(), e); - } - - } - - public void showToolBar(boolean bool) { - this.toolBar.setVisible(bool); - } - - private void init() { - GWT.log("DialogMultiDragWorkspaceContacts init"); - setHeading(GROUP_DRAGGING_CONTACTS); - setId(DialogMultiDragWorkspaceContacts.class.getName() + Random.nextInt()); - setSize(WIDTH_DIALOG, HEIGHT_DIALOG); - setResizable(false); - setMaximizable(false); - - setIcon(Resources.getIconUsers()); - setModal(true); - - } - - private void create() { - GWT.log("DialogMultiDragWorkspaceContacts create"); - // Configure Toolbar - GWT.log("DialogMultiDragWorkspaceContacts Configure Toolbar"); - toolBar = new ToolBar(); - Button buttonHelp = new Button(); - buttonHelp.setIcon(Resources.getIconInfo()); - - buttonHelp.addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - MessageBox.info(titleHelp, txtHelp, null); - - } - }); - - toolBar.add(buttonHelp); - setTopComponent(toolBar); - - // - GWT.log("DialogMultiDragWorkspaceContacts Configure Button"); - setButtonAlign(HorizontalAlignment.CENTER); - setButtons(Dialog.OKCANCEL); - this.getButtonById(Dialog.CANCEL).addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - hide(); - } - }); - - this.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - hide(); - } - }); - - this.multiDragContactPanel = new PanelMultiDragWorkspaceContact(owner, targetContact); - lcMiddle.add(multiDragContactPanel); - add(lcTop); - add(lcMiddle); - add(lcBottom); - } - - public PanelMultiDragWorkspaceContact getMultiDrag() { - return multiDragContactPanel; - } - - public String getTxtHelp() { - return txtHelp; - } - - public String getTitleHelp() { - return titleHelp; - } - - public ToolBar getToolBar() { - return toolBar; - } - - public void setTxtHelp(String txtHelp) { - this.txtHelp = txtHelp; - } - - public void setTitleHelp(String titleHelp) { - this.titleHelp = titleHelp; - } - - public void setToolBar(ToolBar toolBar) { - this.toolBar = toolBar; - } - - public LayoutContainer getLcTop() { - return lcTop; - } - - public LayoutContainer getLcMiddle() { - return lcMiddle; - } - - public LayoutContainer getLcBottom() { - return lcBottom; - } - -} 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 abfa870..752e204 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 @@ -12,6 +12,7 @@ import org.gcube.portlets.widgets.workspacesharingwidget.client.permissions.Pane import org.gcube.portlets.widgets.workspacesharingwidget.client.rpc.WorkspaceSharingServiceAsync; import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.UserStore; import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.multisuggest.MultiValuePanel; +import org.gcube.portlets.widgets.workspacesharingwidget.client.view.sharing.user.DialogMultiDragWorkspaceContacts; import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; import org.gcube.portlets.widgets.workspacesharingwidget.shared.ListContact; import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/PanelMultiDragWorkspaceContact.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/PanelMultiDragWorkspaceContact.java deleted file mode 100644 index f4e9360..0000000 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/PanelMultiDragWorkspaceContact.java +++ /dev/null @@ -1,701 +0,0 @@ -package org.gcube.portlets.user.workspace.client.view.sharing; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.gcube.portlets.widgets.workspacesharingwidget.client.ConstantsSharing; -import org.gcube.portlets.widgets.workspacesharingwidget.client.WorkspaceSharingController; -import org.gcube.portlets.widgets.workspacesharingwidget.client.resources.Resources; -import org.gcube.portlets.widgets.workspacesharingwidget.shared.InfoContactModel; -import org.gcube.portlets.widgets.workspacesharingwidget.shared.UserVRE; - -import com.extjs.gxt.ui.client.Style.HorizontalAlignment; -import com.extjs.gxt.ui.client.Style.Orientation; -import com.extjs.gxt.ui.client.Style.SortDir; -import com.extjs.gxt.ui.client.Style.VerticalAlignment; -import com.extjs.gxt.ui.client.dnd.GridDragSource; -import com.extjs.gxt.ui.client.dnd.GridDropTarget; -import com.extjs.gxt.ui.client.event.BaseEvent; -import com.extjs.gxt.ui.client.event.ButtonEvent; -import com.extjs.gxt.ui.client.event.Events; -import com.extjs.gxt.ui.client.event.Listener; -import com.extjs.gxt.ui.client.event.SelectionChangedEvent; -import com.extjs.gxt.ui.client.event.SelectionChangedListener; -import com.extjs.gxt.ui.client.event.SelectionListener; -import com.extjs.gxt.ui.client.store.ListStore; -import com.extjs.gxt.ui.client.store.Store; -import com.extjs.gxt.ui.client.store.StoreSorter; -import com.extjs.gxt.ui.client.util.Margins; -import com.extjs.gxt.ui.client.widget.ContentPanel; -import com.extjs.gxt.ui.client.widget.HorizontalPanel; -import com.extjs.gxt.ui.client.widget.Label; -import com.extjs.gxt.ui.client.widget.LayoutContainer; -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.StoreFilterField; -import com.extjs.gxt.ui.client.widget.form.TextArea; -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; -import com.extjs.gxt.ui.client.widget.grid.Grid; -import com.extjs.gxt.ui.client.widget.grid.GridCellRenderer; -import com.extjs.gxt.ui.client.widget.layout.CenterLayout; -import com.extjs.gxt.ui.client.widget.layout.FitLayout; -import com.extjs.gxt.ui.client.widget.layout.RowData; -import com.extjs.gxt.ui.client.widget.layout.RowLayout; -import com.extjs.gxt.ui.client.widget.tips.QuickTip; -import com.google.gwt.core.client.GWT; -import com.google.gwt.user.client.Random; -import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.FlexTable; - -/** - * - * @author Francesco Mangiacrapa Jan 27, 2015 - * - */ -public class PanelMultiDragWorkspaceContact extends ContentPanel { - - // - private InfoContactModel owner; - private List targetContact; - - // - private List vresList; - private HashMap> contactsMap; - // - private static final String ALL_CONTACTS = "All Contacts"; - private static final String SHARE_WITH = "Share with..."; - - // - //private 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; - 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_ALREADY_SHARED_TEXT_AREA = 508; - private static final int HEIGHT_ALREADY_SHARED_TEXT_AREA = 68; - - private static final int HEIGHT_GRID = 270; - - private static final int PADDING = 5; - - // - private GridDropTarget dropSource; - private GridDropTarget dropTarget; - private ListStore storeSource = new ListStore(); - private ListStore storeTarget = new ListStore(); - private Grid gridAllContacts; - private Grid gridShareWith; - - private Button buttonSelectedLeft; - private Button buttonSelectedRight; - private Button buttonAllRight; - private Button buttonAllLeft; - - private Label labelAllContacts; - private Label labelShareWith; - private ComboBox vreListCombo; - private ListStore vreListStore; - private TextArea textAreaAlreadyShared; - private ContentPanel alreadySharedPanel; - - public PanelMultiDragWorkspaceContact(InfoContactModel owner, List targetContact) { - super(); - GWT.log("PanelMultiDragWorkspaceContact()"); - this.owner = owner; - this.targetContact = targetContact; - this.contactsMap = new HashMap<>(); - try { - init(); - create(); - setAlreadySharedContacts(); - setTargetContacts(); - retrieveVREs(); - } catch (Throwable e) { - GWT.log("Error in MultiDragContact: " + e.getLocalizedMessage(), e); - } - } - - private void init() { - GWT.log("PanelMultiDragWorkspaceContact Init"); - setHeaderVisible(false); - setBodyBorder(false); - setBorders(false); - // setStyleAttribute("margin", "10px"); - setBodyStyle("padding: " + PADDING + "px; background: none"); - - } - - private void setAlreadySharedContacts() { - GWT.log("PanelMultiDragWorkspaceContact Set Already Shared Contacts"); - String alreadyShared = ""; - - if (targetContact != null && targetContact.size() > 0) { - if (owner != null) { - alreadyShared = owner.getName() + ", "; - if (targetContact.contains(owner)) { - targetContact.remove(owner); - } - } - for (int i = 0; i < targetContact.size() - 1; i++) - alreadyShared += targetContact.get(i).getName() + ", "; - - alreadyShared += targetContact.get(targetContact.size() - 1).getName(); - - } else { - if (owner != null) { - alreadyShared = owner.getName(); - } - } - - textAreaAlreadyShared.setValue(alreadyShared); - - GWT.log("PanelMultiDragWorkspaceContact TextArea Set"); - - } - - private void setTargetContacts() { - GWT.log("PanelMultiDragWorkspaceContact Set Target Contacts"); - - if (targetContact != null && targetContact.size() > 0) { - storeTarget.removeAll(); - storeTarget.add(targetContact); - storeTarget.commitChanges(); - } - } - - private void retrieveVREs() { - GWT.log("PanelMultiDragWorkspaceContact load VREs"); - WorkspaceSharingController.rpcWorkspaceSharingService.getUserVREList(new AsyncCallback>() { - - @Override - public void onFailure(Throwable caught) { - GWT.log("Error retrieving VRE for user: " + caught.getLocalizedMessage(), caught); - MessageBox.alert("Error", - ConstantsSharing.SERVER_ERROR + " retrieving VREs " + ConstantsSharing.TRY_AGAIN, null); - - } - - @Override - public void onSuccess(List result) { - try { - if (result != null && !result.isEmpty()) { - GWT.log("Get all VREs loaded from server: " + result.size()); - vresList = result; - vreListStore.removeAll(); - vreListStore.add(vresList); - vreListStore.commitChanges(); - } else { - GWT.log("No VREs found from server"); - vresList=new ArrayList<>(); - MessageBox.alert("Attention", "No VREs found " + ConstantsSharing.TRY_AGAIN, null); - - } - } catch (Throwable e) { - GWT.log("Error "); - } - } - }); - - } - - private void create() { - GWT.log("PanelMultiDragWorkspaceContact Create Start"); - // Already Shared - GWT.log("PanelMultiDragWorkspaceContact Already Shared Panel"); - alreadySharedPanel = new ContentPanel(); - alreadySharedPanel.setSize(WIDTH_ALREADY_SHARED_PANEL, HEIGHT_ALREADY_SHARED_PANEL); - alreadySharedPanel.setHeaderVisible(false); - alreadySharedPanel.setLayout(new FitLayout()); - alreadySharedPanel.setStyleAttribute("padding-bottom", "5px"); - - HorizontalPanel hpSharedContacts = new HorizontalPanel(); - hpSharedContacts.setHorizontalAlign(HorizontalAlignment.CENTER); - hpSharedContacts.setVerticalAlign(VerticalAlignment.MIDDLE); - textAreaAlreadyShared = new TextArea(); - - textAreaAlreadyShared.setWidth(WIDTH_ALREADY_SHARED_TEXT_AREA); - textAreaAlreadyShared.setHeight(HEIGHT_ALREADY_SHARED_TEXT_AREA); - textAreaAlreadyShared.setReadOnly(true); - textAreaAlreadyShared.setStyleAttribute("background-color", "white"); - alreadySharedPanel.add(textAreaAlreadyShared); - - Label label = new Label("Already shared with"); - label.setStyleAttribute("padding", "6px"); - label.setStyleAttribute("font-size", "12px"); - label.setStyleAttribute("width", "68px"); - label.setStyleAttribute("display", "block"); - - hpSharedContacts.add(label); - hpSharedContacts.add(textAreaAlreadyShared); - alreadySharedPanel.add(hpSharedContacts); - add(alreadySharedPanel); - - // - GWT.log("PanelMultiDragWorkspaceContact Create VREPanel"); - // VRE - final ContentPanel vrePanel = new ContentPanel(); - vrePanel.setId("vre-panel-share-admin" + Random.nextInt()); - vrePanel.setSize(WIDTH_VRE_PANEL, HEIGHT_VRE_PANEL); - 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(552); - vreListCombo.setAllowBlank(false); - - vreListCombo.addSelectionChangedListener(new SelectionChangedListener() { - - @Override - public void selectionChanged(SelectionChangedEvent selected) { - retrieveContactList(selected.getSelectedItem()); - } - }); - - FlexTable vreLayout = new FlexTable(); - vreLayout.setCellSpacing(6); - vreLayout.setWidth("565px"); - // FlexCellFormatter cellFormatter = vreLayout.getFlexCellFormatter(); - Label vreLabel = new Label("VRE:"); - vreLabel.setStyleAttribute("padding", "5px"); - vreLayout.setWidget(0, 0, vreLabel); - vreLayout.setWidget(0, 1, vreListCombo); - vrePanel.add(vreLayout); - - add(vrePanel); - - // - GWT.log("PanelMultiDragWorkspaceContact Create Grids Panel"); - setGropUserStoreSorter(storeSource); - setGropUserStoreSorter(storeTarget); - - final ContentPanel cp = new ContentPanel(); - cp.setId("All-Contacts-Share-Contacts-" + Random.nextInt()); - cp.setSize(WIDTH_CONTACTS_PANEL, HEIGHT_CONTACTS_PANEL); - cp.setHeaderVisible(false); - cp.setLayout(new RowLayout(Orientation.HORIZONTAL)); - - final VerticalPanel vpAllContacts = new VerticalPanel(); - vpAllContacts.setHorizontalAlign(HorizontalAlignment.CENTER); - - labelAllContacts = new Label(ALL_CONTACTS); - vpAllContacts.add(labelAllContacts); - - gridAllContacts = new Grid(storeSource, createColumnModel()); - - storeSource.setDefaultSort(InfoContactModel.FULLNAME, SortDir.ASC); - storeSource.sort(InfoContactModel.FULLNAME, SortDir.ASC); - - storeTarget.setDefaultSort(InfoContactModel.FULLNAME, SortDir.ASC); - storeTarget.sort(InfoContactModel.FULLNAME, SortDir.ASC); - - final StoreFilterField filter = new StoreFilterField() { - - @Override - protected boolean doSelect(Store store, InfoContactModel parent, InfoContactModel record, - String property, String filter) { - - String name = record.getName(); - name = name.toLowerCase(); - if (name.contains(filter.toLowerCase())) { - return true; - } - return false; - } - - }; - - // - filter.setEmptyText("Filter All Contacts"); - HorizontalPanel hp = new HorizontalPanel(); - hp.setStyleAttribute("padding-top", "5px"); - hp.setStyleAttribute("padding-bottom", "5px"); - hp.add(filter); - filter.bind(storeSource); - - gridAllContacts.setHeight(HEIGHT_GRID); - gridAllContacts.setBorders(false); - gridAllContacts.getView().setAutoFill(true); - // gridAllContacts.setAutoExpandColumn(InfoContactModel.FULLNAME); - gridAllContacts.setBorders(true); - - vpAllContacts.add(hp); - vpAllContacts.add(gridAllContacts); - - RowData rowData = new RowData(.4, 1); - rowData.setMargins(new Margins(6)); - cp.add(vpAllContacts, rowData); - - rowData = new RowData(.2, 1); - rowData.setMargins(new Margins(6)); - LayoutContainer lc = createMoveContactsContainer(); - cp.add(lc, rowData); - - rowData = new RowData(.4, 1); - rowData.setMargins(new Margins(6, 6, 6, 0)); - - final VerticalPanel vpShareWith = new VerticalPanel(); - vpShareWith.setHorizontalAlign(HorizontalAlignment.CENTER); - - labelShareWith = new Label(SHARE_WITH); - vpShareWith.add(labelShareWith); - - gridShareWith = new Grid(storeTarget, createColumnModel()); - - final StoreFilterField filter2 = new StoreFilterField() { - - @Override - protected boolean doSelect(Store store, InfoContactModel parent, InfoContactModel record, - String property, String filter) { - - String name = record.getName(); - name = name.toLowerCase(); - if (name.contains(filter.toLowerCase())) { - return true; - } - return false; - } - - }; - - // filter.setFieldLabel("Filter Contacts"); - // filter2.setWidth(247); - filter2.setEmptyText("Filter Share with"); - - hp = new HorizontalPanel(); - hp.setStyleAttribute("padding-top", "5px"); - hp.setStyleAttribute("padding-bottom", "5px"); - hp.add(filter2); - filter2.bind(storeTarget); - - gridShareWith.setHeight(HEIGHT_GRID); - gridShareWith.setBorders(false); - gridShareWith.getView().setAutoFill(true); - // gridShareWith.setAutoExpandColumn(InfoContactModel.FULLNAME); - gridShareWith.setBorders(true); - vpShareWith.add(hp); - vpShareWith.add(gridShareWith); - - cp.add(vpShareWith, rowData); - - new GridDragSource(gridAllContacts); - new GridDragSource(gridShareWith); - - dropSource = new GridDropTarget(gridAllContacts); - dropSource.setAllowSelfAsSource(false); - - dropTarget = new GridDropTarget(gridShareWith); - dropTarget.setAllowSelfAsSource(false); - - add(cp); - - cp.addListener(Events.Render, new Listener() { - - @Override - public void handleEvent(BaseEvent be) { - GWT.log("PanelMultiDragWorkspaceContact CP Render Called"); - int width = gridAllContacts.getWidth(); - filter.setWidth(width - 2); - filter2.setWidth(width - 2); - gridAllContacts.setWidth(width); - vpAllContacts.setWidth(width + 7); - gridShareWith.setWidth(width); - vpShareWith.setWidth(width + 10); - vpShareWith.layout(); - vpAllContacts.layout(); - cp.layout(); - - } - }); - - // needed to enable quicktips (qtitle for the heading and qtip for the - // content) that are setup in the change GridCellRenderer - new QuickTip(gridAllContacts); - GWT.log("PanelMultiDragWorkspaceContact 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); - GWT.log("PanelMultiDragWorkspaceContact retrieve contacts list"); - WorkspaceSharingController.rpcWorkspaceSharingService.getAllContactsByVRE(userVRE, - new AsyncCallback>() { - - @Override - public void onFailure(Throwable e) { - GWT.log("Error retrieving all contacts by VRE: " + e.getLocalizedMessage(), e); - MessageBox.alert("Error", ConstantsSharing.SERVER_ERROR - + " retrieving Contacts in this VRE " + ConstantsSharing.TRY_AGAIN, null); - gridAllContacts.unmask(); - gridAllContacts.repaint(); - } - - @Override - public void onSuccess(List result) { - GWT.log("Contacts retrieved from server"); - contactsMap.put(userVRE, result); - updateStoreSource(result); - gridAllContacts.unmask(); - gridAllContacts.repaint(); - } - }); - } - } - - private void updateStoreSource(List result) { - GWT.log("Update SourceStore"); - storeSource.removeAll(); - result.removeAll(storeTarget.getModels()); - result.remove(owner); - storeSource.add(result); - storeSource.commitChanges(); - - } - - private LayoutContainer createMoveContactsContainer() { - - LayoutContainer lc = new LayoutContainer(); - lc.setLayout(new CenterLayout()); - VerticalPanel vp1 = new VerticalPanel(); - vp1.setHorizontalAlign(HorizontalAlignment.CENTER); - vp1.setVerticalAlign(VerticalAlignment.MIDDLE); - - buttonSelectedLeft = new Button(); - buttonSelectedLeft.setIcon(Resources.getSelectedLeft()); - buttonSelectedLeft.setToolTip("Move selected contact/s from 'All Contact' to 'Share with'"); - buttonSelectedLeft.addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - - List selectedItems = gridAllContacts.getSelectionModel().getSelectedItems(); - - if (selectedItems != null && selectedItems.size() > 0) { - - for (InfoContactModel extendedInfoContactModel : selectedItems) { - storeTarget.add(extendedInfoContactModel); - storeSource.remove(extendedInfoContactModel); - } - } - } - }); - - buttonSelectedRight = new Button(); - buttonSelectedRight.setIcon(Resources.getSelectedRight()); - buttonSelectedRight.setToolTip("Move selected contact/s from 'Share with' to 'All Contact'"); - - buttonSelectedRight.addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - - List selectedItems = gridShareWith.getSelectionModel().getSelectedItems(); - - if (selectedItems != null && selectedItems.size() > 0) { - - for (InfoContactModel extendedInfoContactModel : selectedItems) { - storeSource.add(extendedInfoContactModel); - storeTarget.remove(extendedInfoContactModel); - } - } - } - }); - - buttonAllLeft = new Button(); - buttonAllLeft.setIcon(Resources.getAllLeft()); - buttonAllLeft.setToolTip("Move all contact/s from 'All Contact' to 'Share with'"); - - buttonAllLeft.addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - - if (storeSource != null && storeSource.getCount() > 0) { - for (InfoContactModel extendedInfoContactModel : storeSource.getModels()) { - storeTarget.add(extendedInfoContactModel); - storeSource.remove(extendedInfoContactModel); - } - } - - } - }); - - buttonAllRight = new Button(); - buttonAllRight.setIcon(Resources.getAllRight()); - buttonAllRight.setToolTip("Move all contact/s from 'Share with' to 'All Contact'"); - - buttonAllRight.addSelectionListener(new SelectionListener() { - - @Override - public void componentSelected(ButtonEvent ce) { - - if (storeTarget != null && storeTarget.getCount() > 0) { - for (InfoContactModel extendedInfoContactModel : storeTarget.getModels()) { - storeSource.add(extendedInfoContactModel); - storeTarget.remove(extendedInfoContactModel); - } - } - - } - }); - - vp1.add(buttonSelectedLeft); - vp1.add(buttonAllLeft); - vp1.add(buttonSelectedRight); - vp1.add(buttonAllRight); - - lc.add(vp1); - - vp1.addListener(Events.Render, new Listener() { - - @Override - public void handleEvent(BaseEvent be) { - buttonSelectedLeft.el().setStyleAttribute("margin-top", "40px"); - buttonAllLeft.el().setStyleAttribute("margin-top", "5px"); - buttonSelectedRight.el().setStyleAttribute("margin-top", "20px"); - buttonAllRight.el().setStyleAttribute("margin", "5px"); - - } - }); - - return lc; - } - - private ColumnModel createColumnModel() { - List configs = new ArrayList(); - - ColumnConfig icon = new ColumnConfig("Icon", "", 25); - configs.add(icon); - - ColumnConfig columnConfigDisplayName = new ColumnConfig(InfoContactModel.FULLNAME, "Name", 150); - configs.add(columnConfigDisplayName); - - ColumnConfig type = new ColumnConfig(InfoContactModel.ISGROUP, "Type", 50); - configs.add(type); - - GridCellRenderer iconRender = new GridCellRenderer() { - @Override - public String render(InfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, - ListStore store, Grid grid) { - if (model.isGroup()) { - return Resources.getIconGroup().getHTML(); - } else { - return Resources.getIconUser().getHTML(); - } - } - }; - - icon.setRenderer(iconRender); - - GridCellRenderer displayNameCellRender = new GridCellRenderer() { - public String render(InfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, - ListStore store, Grid grid) { - - if (model != null) { - - String value = model.get(property); - if (value != null) { - return "" + value + ""; - } - } - - return ""; - } - }; - - columnConfigDisplayName.setRenderer(displayNameCellRender); - - GridCellRenderer typeRender = new GridCellRenderer() { - @Override - public String render(InfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, - ListStore store, Grid grid) { - Boolean isGroup = (Boolean) model.get(property); - String color = "#0F4FA8"; - String val = ""; - if (isGroup) { - val = "Group"; - color = "#05316D"; - return "" + val + ""; - } else { - val = "User"; - return "" + val + ""; - } - } - }; - - type.setRenderer(typeRender); - return new ColumnModel(configs); - } - - public List getTargetListContactWithOwner() { - List target = new ArrayList<>(); - target.addAll(storeTarget.getModels()); - target.add(owner); - return target; - } - - private void setGropUserStoreSorter(ListStore store) { - - // Sorting files - store.setStoreSorter(new StoreSorter() { - - @Override - public int compare(Store store, InfoContactModel m1, InfoContactModel m2, - String property) { - boolean m1Group = m1.isGroup(); - boolean m2Group = m2.isGroup(); - - if (m1Group && !m2Group) { - return -1; - } else if (!m1Group && m2Group) { - return 1; - } - - return m1.getName().compareToIgnoreCase(m2.getName()); - } - }); - } - - public void setLeftListContactsTitle(String leftListContactsTitle) { - if (leftListContactsTitle == null) - labelAllContacts.setText(ALL_CONTACTS); - else - labelAllContacts.setText(leftListContactsTitle); - } - - public void setRightListContactsTitle(String rightListContactsTitle) { - - if (rightListContactsTitle == null) - labelShareWith.setText(SHARE_WITH); - else - labelShareWith.setText(rightListContactsTitle); - } - - public String getLeftListContactsTitle() { - return labelAllContacts.getText(); - } - - public String getRightListContactsTitle() { - return labelShareWith.getText(); - } - -}