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"/> <attribute name="test" value="true"/>
</attributes> </attributes>
</classpathentry> </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"> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>

View File

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

View File

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

View File

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

View File

@ -52,7 +52,7 @@ import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
* The Class MultiDragContact. * The Class MultiDragContact.
* *
* @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it * @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it
* Jun 1, 2016 * Jun 1, 2016
*/ */
public class MultiDragContact extends Dialog { public class MultiDragContact extends Dialog {
@ -66,10 +66,10 @@ public class MultiDragContact extends Dialog {
private static final int HEIGHT_CONTAINER_TEXT_AREA = 72; private static final int HEIGHT_CONTAINER_TEXT_AREA = 72;
private static final int HEIGHT_TEXT_AREA = 55; private static final int HEIGHT_TEXT_AREA = 55;
private static final int WIDTH_CP = 597; private static final int WIDTH_CP = 597;
// private static final int HEIGHT_DIALOG = 542; // private static final int HEIGHT_DIALOG = 542;
private static final int HEIGHT_DIALOG = 580; private static final int HEIGHT_DIALOG = 580;
private static final int WIDTH_DIALOG = 630; private static final int WIDTH_DIALOG = 630;
// private static final int WIDTH_DIALOG = 625; // private static final int WIDTH_DIALOG = 625;
private static final int HEIGHT_GRID = 310; private static final int HEIGHT_GRID = 310;
private GridDropTarget dropSource; private GridDropTarget dropSource;
@ -85,262 +85,260 @@ public class MultiDragContact extends Dialog {
private Button buttonAllRight; private Button buttonAllRight;
private Button buttonAllLeft; private Button buttonAllLeft;
/** /**
* Instantiates a new multi drag contact. * Instantiates a new multi drag contact.
*/ */
public MultiDragContact() { public MultiDragContact() {
setStyleAttribute("margin", "10px"); setStyleAttribute("margin", "10px");
setSize(WIDTH_DIALOG, HEIGHT_DIALOG); setSize(WIDTH_DIALOG, HEIGHT_DIALOG);
setHeading("Group dragging contacts"); setHeading("Group dragging contacts");
setResizable(false); setResizable(false);
setMaximizable(false); setMaximizable(false);
setIcon(Resources.getIconUsers()); setIcon(Resources.getIconUsers());
setModal(true); setModal(true);
setScrollMode(Scroll.AUTOY); setScrollMode(Scroll.AUTOY);
setBodyStyle("padding: 9px; background: none"); setBodyStyle("padding: 9px; background: none");
setResizable(true); setResizable(true);
setButtonAlign(HorizontalAlignment.CENTER); setButtonAlign(HorizontalAlignment.CENTER);
setButtons(Dialog.OKCANCEL); setButtons(Dialog.OKCANCEL);
//SORTING STORE // SORTING STORE
setGropUserStoreSorter(storeSource); setGropUserStoreSorter(storeSource);
setGropUserStoreSorter(storeTarget); setGropUserStoreSorter(storeTarget);
ContentPanel cpAlreadyShared = new ContentPanel(); ContentPanel cpAlreadyShared = new ContentPanel();
cpAlreadyShared.setSize(WIDTH_CP, HEIGHT_CONTAINER_TEXT_AREA); cpAlreadyShared.setSize(WIDTH_CP, HEIGHT_CONTAINER_TEXT_AREA);
cpAlreadyShared.setHeaderVisible(false); cpAlreadyShared.setHeaderVisible(false);
cpAlreadyShared.setLayout(new FitLayout()); cpAlreadyShared.setLayout(new FitLayout());
VerticalPanel vpShared = new VerticalPanel(); VerticalPanel vpShared = new VerticalPanel();
vpShared.setVerticalAlign(VerticalAlignment.MIDDLE); vpShared.setVerticalAlign(VerticalAlignment.MIDDLE);
vpShared.setHorizontalAlign(HorizontalAlignment.CENTER); vpShared.setHorizontalAlign(HorizontalAlignment.CENTER);
vpShared.setStyleAttribute("padding", "5px"); vpShared.setStyleAttribute("padding", "5px");
vpShared.setLayout(new FitLayout()); vpShared.setLayout(new FitLayout());
HorizontalPanel hpSharedContacts = new HorizontalPanel(); HorizontalPanel hpSharedContacts = new HorizontalPanel();
hpSharedContacts.setHorizontalAlign(HorizontalAlignment.CENTER); hpSharedContacts.setHorizontalAlign(HorizontalAlignment.CENTER);
hpSharedContacts.setVerticalAlign(VerticalAlignment.MIDDLE); hpSharedContacts.setVerticalAlign(VerticalAlignment.MIDDLE);
textAreaAlreadyShared = new TextArea(); textAreaAlreadyShared = new TextArea();
// textField.setFieldLabel("Already shared with"); // textField.setFieldLabel("Already shared with");
// textField.setHeight(30); // textField.setHeight(30);
textAreaAlreadyShared.setWidth(501); textAreaAlreadyShared.setWidth(501);
textAreaAlreadyShared.setHeight(HEIGHT_TEXT_AREA); textAreaAlreadyShared.setHeight(HEIGHT_TEXT_AREA);
cpAlreadyShared.setStyleAttribute("padding-bottom", "5px"); cpAlreadyShared.setStyleAttribute("padding-bottom", "5px");
textAreaAlreadyShared.setReadOnly(true); textAreaAlreadyShared.setReadOnly(true);
cpAlreadyShared.add(textAreaAlreadyShared); cpAlreadyShared.add(textAreaAlreadyShared);
Label label = new Label("Already shared with"); Label label = new Label("Already shared with");
label.setStyleAttribute("padding-right", "10px"); label.setStyleAttribute("padding-right", "10px");
label.setStyleAttribute("font-size", "12px"); label.setStyleAttribute("font-size", "12px");
hpSharedContacts.add(label); hpSharedContacts.add(label);
hpSharedContacts.add(textAreaAlreadyShared); hpSharedContacts.add(textAreaAlreadyShared);
vpShared.add(hpSharedContacts); vpShared.add(hpSharedContacts);
cpAlreadyShared.add(vpShared); cpAlreadyShared.add(vpShared);
add(cpAlreadyShared); add(cpAlreadyShared);
final ContentPanel cp = new ContentPanel();
cp.setSize(WIDTH_CP, HEIGHT_CONTAINER_GRID);
cp.setHeaderVisible(false);
cp.setLayout(new RowLayout(Orientation.HORIZONTAL));
final ContentPanel cp = new ContentPanel(); ToolBar toolBar = new ToolBar();
cp.setSize(WIDTH_CP, HEIGHT_CONTAINER_GRID); Button buttonHelp = new Button();
cp.setHeaderVisible(false); buttonHelp.setIcon(Resources.getIconInfo());
cp.setLayout(new RowLayout(Orientation.HORIZONTAL));
ToolBar toolBar = new ToolBar(); buttonHelp.addSelectionListener(new SelectionListener<ButtonEvent>() {
Button buttonHelp = new Button();
buttonHelp.setIcon(Resources.getIconInfo());
buttonHelp.addSelectionListener(new SelectionListener<ButtonEvent>() { @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);
@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);
}
});
toolBar.add(buttonHelp);
setTopComponent(toolBar);
final VerticalPanel vpAllContacts = new VerticalPanel();
vpAllContacts.setHorizontalAlign(HorizontalAlignment.CENTER);
vpAllContacts.add(new Label("All Contacts"));
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) {
if(model!=null){
String value = model.get (property);
if (value != null){
return "<span qtitle='' qtip='" + model.getLogin() +"'>" + value + "</span>";
}
}
return "";
}
};
columnConfigDisplayName.setRenderer(displayNameCellRender);
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<ExtendedInfoContactModel> filter = new StoreFilterField<ExtendedInfoContactModel>() {
@Override
protected boolean doSelect(Store<ExtendedInfoContactModel> store,
ExtendedInfoContactModel parent, ExtendedInfoContactModel record,
String property, String filter) {
String name = record.getName();
name = name.toLowerCase();
if (name.contains(filter.toLowerCase())) {
return true;
} }
return false; });
}
}; toolBar.add(buttonHelp);
setTopComponent(toolBar);
filter.setEmptyText("Filter All Contacts"); final VerticalPanel vpAllContacts = new VerticalPanel();
HorizontalPanel hp = new HorizontalPanel(); vpAllContacts.setHorizontalAlign(HorizontalAlignment.CENTER);
hp.setStyleAttribute("padding-top", "5px"); vpAllContacts.add(new Label("All Contacts"));
hp.setStyleAttribute("padding-bottom", "5px");
hp.add(filter);
filter.bind(storeSource);
gridAllContacts.setHeight(HEIGHT_GRID); gridAllContacts = new Grid<ExtendedInfoContactModel>(storeSource, createColumnModel());
gridAllContacts.setBorders(false);
gridAllContacts.getView().setAutoFill(true);
gridAllContacts.setBorders(true);
vpAllContacts.add(hp); GridCellRenderer<ExtendedInfoContactModel> displayNameCellRender = new GridCellRenderer<ExtendedInfoContactModel>() {
vpAllContacts.add(gridAllContacts); public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex,
int colIndex, ListStore<ExtendedInfoContactModel> store, Grid<ExtendedInfoContactModel> grid) {
RowData rowData = new RowData(.4, 1); if (model != null) {
rowData.setMargins(new Margins(6));
cp.add(vpAllContacts, rowData);
rowData = new RowData(.2, 1); String value = model.get(property);
rowData.setMargins(new Margins(6)); if (value != null) {
LayoutContainer lc = createMoveContactsContainer(); return "<span qtitle='' qtip='" + model.getLogin() + "'>" + value + "</span>";
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);
vpShareWith.add(new Label("Share with..."));
gridShareWith = new Grid<ExtendedInfoContactModel>(storeTarget, createColumnModel());
final StoreFilterField<ExtendedInfoContactModel> filter2 = new StoreFilterField<ExtendedInfoContactModel>() {
@Override
protected boolean doSelect(Store<ExtendedInfoContactModel> store,
ExtendedInfoContactModel parent, ExtendedInfoContactModel record,
String property, String filter) {
String name = record.getName();
name = name.toLowerCase();
if (name.contains(filter.toLowerCase())) {
return true;
}
return false;
}
};
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);
this.getButtonById(Dialog.CANCEL).addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
hide();
}
});
this.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
List<ExtendedInfoContactModel> shareContacts = storeTarget.getModels();
if(shareContacts==null || shareContacts.isEmpty()){
MessageBoxConfirm mbc = new MessageBoxConfirm("Confirm exit?", "You have not selected any contact to share, confirm exit?");
mbc.getMessageBoxConfirm().addCallback(new Listener<MessageBoxEvent>() {
@Override
public void handleEvent(MessageBoxEvent be) {
String clickedButton = be.getButtonClicked().getItemId();
if(clickedButton.equals(Dialog.YES)){
hide();
}
} }
}); }
}else
return "";
}
};
columnConfigDisplayName.setRenderer(displayNameCellRender);
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<ExtendedInfoContactModel> filter = new StoreFilterField<ExtendedInfoContactModel>() {
@Override
protected boolean doSelect(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel parent,
ExtendedInfoContactModel 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.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);
vpShareWith.add(new Label("Share with..."));
gridShareWith = new Grid<ExtendedInfoContactModel>(storeTarget, createColumnModel());
final StoreFilterField<ExtendedInfoContactModel> filter2 = new StoreFilterField<ExtendedInfoContactModel>() {
@Override
protected boolean doSelect(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel parent,
ExtendedInfoContactModel record, String property, String filter) {
String name = record.getName();
name = name.toLowerCase();
if (name.contains(filter.toLowerCase())) {
return true;
}
return false;
}
};
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);
this.getButtonById(Dialog.CANCEL).addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
hide(); hide();
} }
}); });
// needed to enable quicktips (qtitle for the heading and qtip for the this.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener<ButtonEvent>() {
// content) that are setup in the change GridCellRenderer
cp.addListener(Events.Render, new Listener<BaseEvent>() { @Override
public void componentSelected(ButtonEvent ce) {
List<ExtendedInfoContactModel> shareContacts = storeTarget.getModels();
@Override if (shareContacts == null || shareContacts.isEmpty()) {
public void handleEvent(BaseEvent be) {
int width = gridAllContacts.getWidth();
filter.setWidth(width-2);
filter2.setWidth(width-2);
gridShareWith.setWidth(width+5);
vpShareWith.setWidth(width+15);
gridAllContacts.setWidth(width+5);
vpAllContacts.setWidth(width+15);
vpShareWith.layout();
vpAllContacts.layout();
cp.layout();
}
});
new QuickTip(gridAllContacts); MessageBoxConfirm mbc = new MessageBoxConfirm("Confirm exit?",
} "You have not selected any contact to share, confirm exit?");
mbc.getMessageBoxConfirm().addCallback(new Listener<MessageBoxEvent>() {
@Override
public void handleEvent(MessageBoxEvent be) {
String clickedButton = be.getButtonClicked().getItemId();
if (clickedButton.equals(Dialog.YES)) {
hide();
}
}
});
} else
hide();
}
});
// needed to enable quicktips (qtitle for the heading and qtip for the
// content) that are setup in the change GridCellRenderer
cp.addListener(Events.Render, new Listener<BaseEvent>() {
@Override
public void handleEvent(BaseEvent be) {
int width = gridAllContacts.getWidth();
filter.setWidth(width - 2);
filter2.setWidth(width - 2);
gridShareWith.setWidth(width + 5);
vpShareWith.setWidth(width + 15);
gridAllContacts.setWidth(width + 5);
vpAllContacts.setWidth(width + 15);
vpShareWith.layout();
vpAllContacts.layout();
cp.layout();
}
});
new QuickTip(gridAllContacts);
}
/** /**
* Creates the move contacts container. * Creates the move contacts container.
@ -357,94 +355,82 @@ public class MultiDragContact extends Dialog {
buttonSelectedLeft = new Button(); buttonSelectedLeft = new Button();
buttonSelectedLeft.setIcon(Resources.getSelectedLeft()); buttonSelectedLeft.setIcon(Resources.getSelectedLeft());
buttonSelectedLeft buttonSelectedLeft.setToolTip("Move selected contact/s from 'All Contact' to 'Share with'");
.setToolTip("Move selected contact/s from 'All Contact' to 'Share with'"); buttonSelectedLeft.addSelectionListener(new SelectionListener<ButtonEvent>() {
buttonSelectedLeft
.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
List<ExtendedInfoContactModel> selectedItems = gridAllContacts List<ExtendedInfoContactModel> selectedItems = gridAllContacts.getSelectionModel().getSelectedItems();
.getSelectionModel().getSelectedItems();
if (selectedItems != null && selectedItems.size() > 0) { if (selectedItems != null && selectedItems.size() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : selectedItems) { for (ExtendedInfoContactModel extendedInfoContactModel : selectedItems) {
storeTarget.add(extendedInfoContactModel); storeTarget.add(extendedInfoContactModel);
storeSource.remove(extendedInfoContactModel); storeSource.remove(extendedInfoContactModel);
}
}
} }
}); }
}
});
buttonSelectedRight = new Button(); buttonSelectedRight = new Button();
buttonSelectedRight.setIcon(Resources.getSelectedRight()); buttonSelectedRight.setIcon(Resources.getSelectedRight());
buttonSelectedRight buttonSelectedRight.setToolTip("Move selected contact/s from 'Share with' to 'All Contact'");
.setToolTip("Move selected contact/s from 'Share with' to 'All Contact'");
buttonSelectedRight buttonSelectedRight.addSelectionListener(new SelectionListener<ButtonEvent>() {
.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
List<ExtendedInfoContactModel> selectedItems = gridShareWith List<ExtendedInfoContactModel> selectedItems = gridShareWith.getSelectionModel().getSelectedItems();
.getSelectionModel().getSelectedItems();
if (selectedItems != null && selectedItems.size() > 0) { if (selectedItems != null && selectedItems.size() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : selectedItems) { for (ExtendedInfoContactModel extendedInfoContactModel : selectedItems) {
storeSource.add(extendedInfoContactModel); storeSource.add(extendedInfoContactModel);
storeTarget.remove(extendedInfoContactModel); storeTarget.remove(extendedInfoContactModel);
}
}
} }
}); }
}
});
buttonAllLeft = new Button(); buttonAllLeft = new Button();
buttonAllLeft.setIcon(Resources.getAllLeft()); buttonAllLeft.setIcon(Resources.getAllLeft());
buttonAllLeft buttonAllLeft.setToolTip("Move all contact/s from 'All Contact' to 'Share with'");
.setToolTip("Move all contact/s from 'All Contact' to 'Share with'");
buttonAllLeft buttonAllLeft.addSelectionListener(new SelectionListener<ButtonEvent>() {
.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
if (storeSource != null && storeSource.getCount() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeSource
.getModels()) {
storeTarget.add(extendedInfoContactModel);
storeSource.remove(extendedInfoContactModel);
}
}
if (storeSource != null && storeSource.getCount() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeSource.getModels()) {
storeTarget.add(extendedInfoContactModel);
storeSource.remove(extendedInfoContactModel);
} }
}); }
}
});
buttonAllRight = new Button(); buttonAllRight = new Button();
buttonAllRight.setIcon(Resources.getAllRight()); buttonAllRight.setIcon(Resources.getAllRight());
buttonAllRight buttonAllRight.setToolTip("Move all contact/s from 'Share with' to 'All Contact'");
.setToolTip("Move all contact/s from 'Share with' to 'All Contact'");
buttonAllRight buttonAllRight.addSelectionListener(new SelectionListener<ButtonEvent>() {
.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override @Override
public void componentSelected(ButtonEvent ce) { public void componentSelected(ButtonEvent ce) {
if (storeTarget != null && storeTarget.getCount() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeTarget
.getModels()) {
storeSource.add(extendedInfoContactModel);
storeTarget.remove(extendedInfoContactModel);
}
}
if (storeTarget != null && storeTarget.getCount() > 0) {
for (ExtendedInfoContactModel extendedInfoContactModel : storeTarget.getModels()) {
storeSource.add(extendedInfoContactModel);
storeTarget.remove(extendedInfoContactModel);
} }
}); }
}
});
vp1.add(buttonSelectedLeft); vp1.add(buttonSelectedLeft);
vp1.add(buttonAllLeft); vp1.add(buttonAllLeft);
@ -468,175 +454,186 @@ public class MultiDragContact extends Dialog {
return lc; return lc;
} }
/** /**
* Creates the column model. * Creates the column model.
* *
* @return the column model * @return the column model
*/ */
private ColumnModel createColumnModel() { private ColumnModel createColumnModel() {
List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
ColumnConfig icon = new ColumnConfig(ExtendedInfoContactModel.ICON, "", 25); ColumnConfig icon = new ColumnConfig(ExtendedInfoContactModel.ICON, "", 25);
configs.add(icon); configs.add(icon);
columnConfigDisplayName = new ColumnConfig(ExtendedInfoContactModel.FULLNAME, "Name", 150); columnConfigDisplayName = new ColumnConfig(ExtendedInfoContactModel.FULLNAME, "Name", 150);
configs.add(columnConfigDisplayName); configs.add(columnConfigDisplayName);
ColumnConfig type = new ColumnConfig(ExtendedInfoContactModel.ISGROUP, "Type", 50); ColumnConfig type = new ColumnConfig(ExtendedInfoContactModel.ISGROUP, "Type", 50);
configs.add(type); 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) {
Boolean isGroup = (Boolean) model.get(property);
String color = "#0F4FA8";
String val = "";
if (isGroup) {
val = "Group";
color = "#05316D";
return "<span style='font-weight: bold; color:" + color + "'>" + val + "</span>";
} else {
val = "User";
return "<span style='font-weight: bold; color:" + color + "'>" + val + "</span>";
}
}
};
GridCellRenderer<ExtendedInfoContactModel> typeRender = new GridCellRenderer<ExtendedInfoContactModel>() { type.setRenderer(typeRender);
@Override return new ColumnModel(configs);
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 = ""; * Adds the source contacts.
if(isGroup){ *
val = "Group"; * @param listContact
color = "#05316D"; * the list contact
return "<span style='font-weight: bold; color:" + color + "'>" + val + "</span>"; */
}else{ public void addSourceContacts(List<InfoContactModel> listContact) {
val = "User";
return "<span style='font-weight: bold; color:" + color + "'>" + val + "</span>"; gridAllContacts.mask("", ConstantsExplorer.LOADINGSTYLE);
} if (listContact != null && listContact.size() > 0) {
List<ExtendedInfoContactModel> listExtended = new ArrayList<ExtendedInfoContactModel>();
// SETTING ICONS
for (InfoContactModel infoContactModel : listContact) {
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(),
infoContactModel.getLogin(), infoContactModel.getName(), infoContactModel.getEmailDomain(),
infoContactModel.isGroup());
ext.setIcon();
listExtended.add(ext);
}
storeSource.add(listExtended);
// GWT.log("Added sources: "+listExtended.toString());
} }
};
type.setRenderer(typeRender); gridAllContacts.unmask();
return new ColumnModel(configs); gridAllContacts.repaint();
} }
/** /**
* Adds the source contacts. * Adds the already shared contacts.
* *
* @param listContact the list contact * @param listContact
*/ * the list contact
public void addSourceContacts(List<InfoContactModel> listContact){ */
public void addAlreadySharedContacts(List<InfoContactModel> listContact) {
gridAllContacts.mask("", ConstantsExplorer.LOADINGSTYLE); gridShareWith.mask("", ConstantsExplorer.LOADINGSTYLE);
if(listContact!=null && listContact.size()>0){ if (listContact != null && listContact.size() > 0) {
List<ExtendedInfoContactModel> listExtended = new ArrayList<ExtendedInfoContactModel>();
//SETTING ICONS
for (InfoContactModel infoContactModel : listContact) {
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(), infoContactModel.getLogin(), infoContactModel.getName(), infoContactModel.isGroup());
ext.setIcon();
listExtended.add(ext);
}
storeSource.add(listExtended); String alreadyShared = "";
// GWT.log("Added sources: "+listExtended.toString()); for (int i = 0; i < listContact.size() - 1; i++)
} alreadyShared += listContact.get(i).getName() + ", ";
gridAllContacts.unmask(); alreadyShared += listContact.get(listContact.size() - 1).getName();
gridAllContacts.repaint();
}
/** textAreaAlreadyShared.setValue(alreadyShared);
* Adds the already shared contacts. }
* gridShareWith.unmask();
* @param listContact the list contact
*/
public void addAlreadySharedContacts(List<InfoContactModel> listContact){
gridShareWith.mask("", ConstantsExplorer.LOADINGSTYLE); }
if(listContact!=null && listContact.size()>0){
String alreadyShared = ""; /**
for (int i=0; i<listContact.size()-1; i++) * Adds the target contacts.
alreadyShared+=listContact.get(i).getName()+", "; *
* @param listContact
* the list contact
*/
public void addTargetContacts(List<InfoContactModel> listContact) {
if (listContact != null && listContact.size() > 0) {
storeTarget.add(convertFromInfoContactModel(listContact));
}
}
alreadyShared+=listContact.get(listContact.size()-1).getName(); /**
* Convert from info contact model.
*
* @param listContact
* the list contact
* @return the list
*/
private List<ExtendedInfoContactModel> convertFromInfoContactModel(List<InfoContactModel> listContact) {
textAreaAlreadyShared.setValue(alreadyShared); if (listContact != null) {
} List<ExtendedInfoContactModel> listExtended = new ArrayList<ExtendedInfoContactModel>(listContact.size());
gridShareWith.unmask(); // SETTING ICONS
for (InfoContactModel infoContactModel : listContact) {
listExtended.add(convertFromInfoContactModel(infoContactModel));
}
return listExtended;
}
return new ArrayList<ExtendedInfoContactModel>();
}
} /**
* Convert from info contact model.
*
* @param infoContactModel
* the info contact model
* @return the extended info contact model
*/
private ExtendedInfoContactModel convertFromInfoContactModel(InfoContactModel infoContactModel) {
if (infoContactModel != null) {
String fullName = infoContactModel.getName();
if (fullName == null || fullName.isEmpty())
fullName = infoContactModel.getLogin();
/** ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(),
* Adds the target contacts. infoContactModel.getLogin(), fullName, infoContactModel.getEmailDomain(),
* infoContactModel.isGroup());
* @param listContact the list contact ext.setIcon();
*/ return ext;
public void addTargetContacts(List<InfoContactModel> listContact){ }
if(listContact!=null && listContact.size()>0){ return new ExtendedInfoContactModel();
storeTarget.add(convertFromInfoContactModel(listContact)); }
}
}
/** /**
* Convert from info contact model. * Adds the target contact.
* *
* @param listContact the list contact * @param contact
* @return the list * the contact
*/ */
private List<ExtendedInfoContactModel> convertFromInfoContactModel(List<InfoContactModel> listContact){ public void addTargetContact(InfoContactModel contact) {
if (contact != null)
storeTarget.add(convertFromInfoContactModel(contact));
}
if(listContact!=null){ /**
List<ExtendedInfoContactModel> listExtended = new ArrayList<ExtendedInfoContactModel>(listContact.size()); * Gets the target list contact.
//SETTING ICONS *
for (InfoContactModel infoContactModel : listContact) { * @return the target list contact
listExtended.add(convertFromInfoContactModel(infoContactModel)); */
} public List<InfoContactModel> getTargetListContact() {
return listExtended;
}
return new ArrayList<ExtendedInfoContactModel>();
}
/** List<? extends InfoContactModel> infoContacts = storeTarget.getModels();
* Convert from info contact model. return (List<InfoContactModel>) infoContacts;
* }
* @param infoContactModel the info contact model
* @return the extended info contact model
*/
private ExtendedInfoContactModel convertFromInfoContactModel(InfoContactModel infoContactModel){
if(infoContactModel!=null){
String fullName = infoContactModel.getName();
if(fullName==null || fullName.isEmpty())
fullName = infoContactModel.getLogin();
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(), infoContactModel.getLogin(), fullName, infoContactModel.isGroup()); /**
ext.setIcon(); * Sets the grop user store sorter.
return ext; *
} * @param store
return new ExtendedInfoContactModel(); * the new grop user store sorter
} */
private void setGropUserStoreSorter(ListStore<ExtendedInfoContactModel> store) {
/**
* Adds the target contact.
*
* @param contact the contact
*/
public void addTargetContact(InfoContactModel contact){
if(contact!=null)
storeTarget.add(convertFromInfoContactModel(contact));
}
/**
* Gets the target list contact.
*
* @return the target list contact
*/
public List<InfoContactModel> getTargetListContact(){
List<? extends InfoContactModel> infoContacts = storeTarget.getModels();
return (List<InfoContactModel>) infoContacts;
}
/**
* Sets the grop user store sorter.
*
* @param store the new grop user store sorter
*/
private void setGropUserStoreSorter(ListStore<ExtendedInfoContactModel> store){
// Sorting files // Sorting files
store.setStoreSorter(new StoreSorter<ExtendedInfoContactModel>() { store.setStoreSorter(new StoreSorter<ExtendedInfoContactModel>() {
@Override @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 m1Folder = m1.isGroup();
boolean m2Folder = m2.isGroup(); boolean m2Folder = m2.isGroup();

View File

@ -247,7 +247,7 @@ public class StorageHubToWorkpaceConverter implements Serializable{
portalLogin = ""; 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. * Gets the GWT workspace builder.
* *
@ -244,7 +256,7 @@ public class WsUtil {
builder = new GWTWorkspaceBuilder(); builder = new GWTWorkspaceBuilder();
// ADDED 03/09/2013 // ADDED 03/09/2013
builder.setContexInfo( builder.setContexInfo(
new InfoContactModel(info.getUsername(), info.getUsername(), info.getUserFullName(), false), new InfoContactModel(info.getUsername(), info.getUsername(), info.getUserFullName(), "", false),
info.getCurrentScope()); info.getCurrentScope());
session.setAttribute(WORKSPACEBUILDER_ATTRIBUTE, builder); session.setAttribute(WORKSPACEBUILDER_ATTRIBUTE, builder);
} }