ref 17169: Selection of users in the Sharing panel

https://support.d4science.org/issues/17169

Added users discovery by keyword search 

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@181294 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2019-07-23 10:02:03 +00:00
parent 1a3d022adc
commit 05c926a1d6
8 changed files with 1323 additions and 1133 deletions

View File

@ -13,7 +13,11 @@
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>

View File

@ -1,4 +1,5 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8

View File

@ -23,8 +23,8 @@ public class ExtendedInfoContactModel extends InfoContactModel {
public ExtendedInfoContactModel() {}
public ExtendedInfoContactModel(String id, String login, String fullName, boolean isGroup) {
super(id, login, fullName, isGroup);
public ExtendedInfoContactModel(String id, String login, String fullName, String emailDomain,boolean isGroup) {
super(id, login, fullName, emailDomain, isGroup);
}

View File

@ -230,9 +230,9 @@ public class DialogShareFolder extends Dialog {
for (InfoContactModel contact : listContacts) {
if (contact != null && contact.getName() != null) {
if (!isShareOwner(contact)) // skip owner
suggestPanel.addRecipient(contact.getName(), true);
suggestPanel.addRecipient(contact, true);
else
suggestPanel.addRecipient(contact.getName(), false); // owner
suggestPanel.addRecipient(contact, false); // owner
// is
// not
// deletable
@ -484,10 +484,10 @@ public class DialogShareFolder extends Dialog {
suggestPanel.resetItemSelected();
// SHARE OWNER IS NULL IN CASE OF NEW SHARE
if (shareOwner != null)
suggestPanel.addRecipient(shareOwner.getName(), false);
suggestPanel.addRecipient(shareOwner, false);
for (InfoContactModel infoContactModel : multiDrag.getTargetListContact()) {
suggestPanel.addRecipient(infoContactModel.getName(), true);
suggestPanel.addRecipient(infoContactModel, true);
}
suggestPanel.boxSetFocus();
// printSelectedUser();
@ -552,7 +552,7 @@ public class DialogShareFolder extends Dialog {
private void initSuggestContacts() {
suggestPanel.resetItemSelected();
for (InfoContactModel contact : listAlreadyShared)
suggestPanel.addRecipient(contact.getName(), false);
suggestPanel.addRecipient(contact, false);
}
/**

View File

@ -137,7 +137,6 @@ public class MultiDragContact extends Dialog {
cpAlreadyShared.add(vpShared);
add(cpAlreadyShared);
final ContentPanel cp = new ContentPanel();
cp.setSize(WIDTH_CP, HEIGHT_CONTAINER_GRID);
cp.setHeaderVisible(false);
@ -151,7 +150,9 @@ public class MultiDragContact extends Dialog {
@Override
public void componentSelected(ButtonEvent ce) {
MessageBox.info("Group dragging action", "Drag one or more contacts from the left (All Contacts) to the right (Share with) to add users in your sharing list.", null);
MessageBox.info("Group dragging action",
"Drag one or more contacts from the left (All Contacts) to the right (Share with) to add users in your sharing list.",
null);
}
});
@ -165,9 +166,9 @@ public class MultiDragContact extends Dialog {
gridAllContacts = new Grid<ExtendedInfoContactModel>(storeSource, createColumnModel());
GridCellRenderer<ExtendedInfoContactModel> displayNameCellRender = new GridCellRenderer<ExtendedInfoContactModel>() {
public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ExtendedInfoContactModel> store, Grid<ExtendedInfoContactModel> grid) {
public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex,
int colIndex, ListStore<ExtendedInfoContactModel> store, Grid<ExtendedInfoContactModel> grid) {
if (model != null) {
@ -189,13 +190,11 @@ public class MultiDragContact extends Dialog {
storeTarget.setDefaultSort(InfoContactModel.FULLNAME, SortDir.ASC);
storeTarget.sort(InfoContactModel.FULLNAME, SortDir.ASC);
final StoreFilterField<ExtendedInfoContactModel> filter = new StoreFilterField<ExtendedInfoContactModel>() {
@Override
protected boolean doSelect(Store<ExtendedInfoContactModel> store,
ExtendedInfoContactModel parent, ExtendedInfoContactModel record,
String property, String filter) {
protected boolean doSelect(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel parent,
ExtendedInfoContactModel record, String property, String filter) {
String name = record.getName();
name = name.toLowerCase();
@ -242,9 +241,8 @@ public class MultiDragContact extends Dialog {
final StoreFilterField<ExtendedInfoContactModel> filter2 = new StoreFilterField<ExtendedInfoContactModel>() {
@Override
protected boolean doSelect(Store<ExtendedInfoContactModel> store,
ExtendedInfoContactModel parent, ExtendedInfoContactModel record,
String property, String filter) {
protected boolean doSelect(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel parent,
ExtendedInfoContactModel record, String property, String filter) {
String name = record.getName();
name = name.toLowerCase();
@ -293,7 +291,6 @@ public class MultiDragContact extends Dialog {
}
});
this.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
@ -302,7 +299,8 @@ public class MultiDragContact extends Dialog {
if (shareContacts == null || shareContacts.isEmpty()) {
MessageBoxConfirm mbc = new MessageBoxConfirm("Confirm exit?", "You have not selected any contact to share, confirm exit?");
MessageBoxConfirm mbc = new MessageBoxConfirm("Confirm exit?",
"You have not selected any contact to share, confirm exit?");
mbc.getMessageBoxConfirm().addCallback(new Listener<MessageBoxEvent>() {
@ -357,16 +355,13 @@ 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
.addSelectionListener(new SelectionListener<ButtonEvent>() {
buttonSelectedLeft.setToolTip("Move selected contact/s from 'All Contact' to 'Share with'");
buttonSelectedLeft.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
List<ExtendedInfoContactModel> selectedItems = gridAllContacts
.getSelectionModel().getSelectedItems();
List<ExtendedInfoContactModel> selectedItems = gridAllContacts.getSelectionModel().getSelectedItems();
if (selectedItems != null && selectedItems.size() > 0) {
@ -380,17 +375,14 @@ 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>() {
buttonSelectedRight.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
List<ExtendedInfoContactModel> selectedItems = gridShareWith
.getSelectionModel().getSelectedItems();
List<ExtendedInfoContactModel> selectedItems = gridShareWith.getSelectionModel().getSelectedItems();
if (selectedItems != null && selectedItems.size() > 0) {
@ -404,18 +396,15 @@ 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>() {
buttonAllLeft.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
if (storeSource != null && storeSource.getCount() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeSource
.getModels()) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeSource.getModels()) {
storeTarget.add(extendedInfoContactModel);
storeSource.remove(extendedInfoContactModel);
}
@ -426,18 +415,15 @@ public class MultiDragContact extends Dialog {
buttonAllRight = new Button();
buttonAllRight.setIcon(Resources.getAllRight());
buttonAllRight
.setToolTip("Move all contact/s from 'Share with' to 'All Contact'");
buttonAllRight.setToolTip("Move all contact/s from 'Share with' to 'All Contact'");
buttonAllRight
.addSelectionListener(new SelectionListener<ButtonEvent>() {
buttonAllRight.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
if (storeTarget != null && storeTarget.getCount() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeTarget
.getModels()) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeTarget.getModels()) {
storeSource.add(extendedInfoContactModel);
storeTarget.remove(extendedInfoContactModel);
}
@ -485,10 +471,10 @@ public class MultiDragContact extends Dialog {
ColumnConfig type = new ColumnConfig(ExtendedInfoContactModel.ISGROUP, "Type", 50);
configs.add(type);
GridCellRenderer<ExtendedInfoContactModel> typeRender = new GridCellRenderer<ExtendedInfoContactModel>() {
@Override
public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<ExtendedInfoContactModel> store, Grid<ExtendedInfoContactModel> grid) {
public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex,
int colIndex, ListStore<ExtendedInfoContactModel> store, Grid<ExtendedInfoContactModel> grid) {
Boolean isGroup = (Boolean) model.get(property);
String color = "#0F4FA8";
String val = "";
@ -510,7 +496,8 @@ public class MultiDragContact extends Dialog {
/**
* Adds the source contacts.
*
* @param listContact the list contact
* @param listContact
* the list contact
*/
public void addSourceContacts(List<InfoContactModel> listContact) {
@ -519,7 +506,9 @@ public class MultiDragContact extends Dialog {
List<ExtendedInfoContactModel> listExtended = new ArrayList<ExtendedInfoContactModel>();
// SETTING ICONS
for (InfoContactModel infoContactModel : listContact) {
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(), infoContactModel.getLogin(), infoContactModel.getName(), infoContactModel.isGroup());
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(),
infoContactModel.getLogin(), infoContactModel.getName(), infoContactModel.getEmailDomain(),
infoContactModel.isGroup());
ext.setIcon();
listExtended.add(ext);
}
@ -535,7 +524,8 @@ public class MultiDragContact extends Dialog {
/**
* Adds the already shared contacts.
*
* @param listContact the list contact
* @param listContact
* the list contact
*/
public void addAlreadySharedContacts(List<InfoContactModel> listContact) {
@ -557,7 +547,8 @@ public class MultiDragContact extends Dialog {
/**
* Adds the target contacts.
*
* @param listContact the list contact
* @param listContact
* the list contact
*/
public void addTargetContacts(List<InfoContactModel> listContact) {
if (listContact != null && listContact.size() > 0) {
@ -568,7 +559,8 @@ public class MultiDragContact extends Dialog {
/**
* Convert from info contact model.
*
* @param listContact the list contact
* @param listContact
* the list contact
* @return the list
*/
private List<ExtendedInfoContactModel> convertFromInfoContactModel(List<InfoContactModel> listContact) {
@ -587,7 +579,8 @@ public class MultiDragContact extends Dialog {
/**
* Convert from info contact model.
*
* @param infoContactModel the info contact model
* @param infoContactModel
* the info contact model
* @return the extended info contact model
*/
private ExtendedInfoContactModel convertFromInfoContactModel(InfoContactModel infoContactModel) {
@ -596,7 +589,9 @@ public class MultiDragContact extends Dialog {
if (fullName == null || fullName.isEmpty())
fullName = infoContactModel.getLogin();
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(), infoContactModel.getLogin(), fullName, infoContactModel.isGroup());
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(),
infoContactModel.getLogin(), fullName, infoContactModel.getEmailDomain(),
infoContactModel.isGroup());
ext.setIcon();
return ext;
}
@ -606,7 +601,8 @@ public class MultiDragContact extends Dialog {
/**
* Adds the target contact.
*
* @param contact the contact
* @param contact
* the contact
*/
public void addTargetContact(InfoContactModel contact) {
if (contact != null)
@ -624,11 +620,11 @@ public class MultiDragContact extends Dialog {
return (List<InfoContactModel>) infoContacts;
}
/**
* Sets the grop user store sorter.
*
* @param store the new grop user store sorter
* @param store
* the new grop user store sorter
*/
private void setGropUserStoreSorter(ListStore<ExtendedInfoContactModel> store) {
@ -636,7 +632,8 @@ public class MultiDragContact extends Dialog {
store.setStoreSorter(new StoreSorter<ExtendedInfoContactModel>() {
@Override
public int compare(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel m1, ExtendedInfoContactModel m2, String property) {
public int compare(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel m1,
ExtendedInfoContactModel m2, String property) {
boolean m1Folder = m1.isGroup();
boolean m2Folder = m2.isGroup();

View File

@ -247,7 +247,7 @@ public class StorageHubToWorkpaceConverter implements Serializable{
portalLogin = "";
}
return new InfoContactModel(portalLogin, portalLogin, UserUtil.getUserFullName(portalLogin), false);
return new InfoContactModel(portalLogin, portalLogin, UserUtil.getUserFullName(portalLogin), "",false);
}
/**

View File

@ -225,6 +225,18 @@ public class WsUtil {
}
/**
* utility method extract the @domain.com from an email address
* return @unknown-domain in case of no emails
*/
private String extractDomainFromEmail(String email) {
int index = email.indexOf('@');
if (index > 0)
return email.substring(index);
else
return "@unknown-domain";
}
/**
* Gets the GWT workspace builder.
*
@ -244,7 +256,7 @@ public class WsUtil {
builder = new GWTWorkspaceBuilder();
// ADDED 03/09/2013
builder.setContexInfo(
new InfoContactModel(info.getUsername(), info.getUsername(), info.getUserFullName(), false),
new InfoContactModel(info.getUsername(), info.getUsername(), info.getUserFullName(), "", false),
info.getCurrentScope());
session.setAttribute(WORKSPACEBUILDER_ATTRIBUTE, builder);
}