sharing with groups completed
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@92885 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
0deded17bf
commit
649fbf79d4
|
@ -0,0 +1,47 @@
|
||||||
|
package org.gcube.portlets.user.workspace.client.model;
|
||||||
|
|
||||||
|
import org.gcube.portlets.user.workspace.client.resources.Resources;
|
||||||
|
|
||||||
|
import com.google.gwt.user.client.ui.Image;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ExtendedInfoContactModel extends InfoContactModel {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = -9115514914951357467L;
|
||||||
|
|
||||||
|
public static final String ICON = "icon";
|
||||||
|
|
||||||
|
|
||||||
|
public ExtendedInfoContactModel() {}
|
||||||
|
|
||||||
|
public ExtendedInfoContactModel(String id, String login, String fullName, boolean isGroup) {
|
||||||
|
super(id, login, fullName, isGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return use this client side
|
||||||
|
*/
|
||||||
|
public void setIcon() {
|
||||||
|
set(ICON, getIcon());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return use this client side
|
||||||
|
*/
|
||||||
|
public Image getIcon() {
|
||||||
|
|
||||||
|
if (!this.isGroup()) // NOT IS GROUP
|
||||||
|
return Resources.getIconShareUser().createImage();
|
||||||
|
else
|
||||||
|
return Resources.getIconShareGroup().createImage();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -12,20 +12,38 @@ import com.extjs.gxt.ui.client.data.BaseModelData;
|
||||||
public class InfoContactModel extends BaseModelData implements Serializable {
|
public class InfoContactModel extends BaseModelData implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
protected static final String ID = "id";
|
|
||||||
public static final String FULLNAME = "fullname";
|
|
||||||
public static final String LOGIN = "login";
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 5439804025263802843L;
|
||||||
|
|
||||||
|
protected static final String ID = "id";
|
||||||
|
public static final String FULLNAME = "fullname";
|
||||||
|
public static final String LOGIN = "login";
|
||||||
|
public static final String ISGROUP = "isgroup";
|
||||||
|
|
||||||
|
|
||||||
public InfoContactModel() {}
|
public InfoContactModel() {}
|
||||||
|
|
||||||
public InfoContactModel(String id, String login, String fullName) {
|
public InfoContactModel(String id, String login, String fullName, boolean isGroup) {
|
||||||
setId(id);
|
setId(id);
|
||||||
setLogin(login);
|
setLogin(login);
|
||||||
setName(fullName);
|
setName(fullName);
|
||||||
|
setIsGroup(isGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param isGroup
|
||||||
|
*/
|
||||||
|
public void setIsGroup(boolean isGroup) {
|
||||||
|
set(ISGROUP,isGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param isGroup
|
||||||
|
*/
|
||||||
|
public boolean isGroup() {
|
||||||
|
return (Boolean) get(ISGROUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
|
@ -34,7 +52,8 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName(){
|
public String getName(){
|
||||||
return get(FULLNAME);
|
String name = (String) (get(FULLNAME)!=null?get(FULLNAME):"");
|
||||||
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
|
@ -64,7 +83,9 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append("InfoContactModel [getName()=");
|
builder.append("InfoContactModel [isGroup()=");
|
||||||
|
builder.append(isGroup());
|
||||||
|
builder.append(", getName()=");
|
||||||
builder.append(getName());
|
builder.append(getName());
|
||||||
builder.append(", getId()=");
|
builder.append(", getId()=");
|
||||||
builder.append(getId());
|
builder.append(getId());
|
||||||
|
@ -73,6 +94,4 @@ public class InfoContactModel extends BaseModelData implements Serializable {
|
||||||
builder.append("]");
|
builder.append("]");
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -307,5 +307,11 @@ public interface Icons extends ClientBundle {
|
||||||
|
|
||||||
@Source("icons/specialfolder2.png")
|
@Source("icons/specialfolder2.png")
|
||||||
ImageResource specialFolder();
|
ImageResource specialFolder();
|
||||||
|
|
||||||
|
@Source("icons/shareuser.png")
|
||||||
|
ImageResource user();
|
||||||
|
|
||||||
|
@Source("icons/sharegroup.png")
|
||||||
|
ImageResource groupusers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,16 @@ public class Resources {
|
||||||
return AbstractImagePrototype.create(ICONS.users());
|
return AbstractImagePrototype.create(ICONS.users());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static AbstractImagePrototype getIconShareUser(){
|
||||||
|
|
||||||
|
return AbstractImagePrototype.create(ICONS.user());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static AbstractImagePrototype getIconShareGroup(){
|
||||||
|
|
||||||
|
return AbstractImagePrototype.create(ICONS.groupusers());
|
||||||
|
}
|
||||||
|
|
||||||
public static AbstractImagePrototype getIconSpecialFolder(){
|
public static AbstractImagePrototype getIconSpecialFolder(){
|
||||||
|
|
||||||
return AbstractImagePrototype.create(ICONS.specialFolder());
|
return AbstractImagePrototype.create(ICONS.specialFolder());
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 854 B |
Binary file not shown.
After Width: | Height: | Size: 760 B |
|
@ -175,14 +175,17 @@ public class DialogShareFolder extends Dialog {
|
||||||
userStore.getListSharedUserByFolderId(folder.getIdentifier(), new AsyncCallback<List<InfoContactModel>>() {
|
userStore.getListSharedUserByFolderId(folder.getIdentifier(), new AsyncCallback<List<InfoContactModel>>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<InfoContactModel> result) {
|
public void onSuccess(List<InfoContactModel> listContacts) {
|
||||||
|
|
||||||
for (InfoContactModel infoContactModel : result) {
|
if(listContacts!=null){
|
||||||
if(infoContactModel.getName()!=null){
|
for (InfoContactModel infoContactModel : listContacts) {
|
||||||
|
System.out.println(infoContactModel);
|
||||||
|
if(infoContactModel!=null && infoContactModel.getName()!=null){
|
||||||
listAlreadyShared.add(infoContactModel);
|
listAlreadyShared.add(infoContactModel);
|
||||||
suggestPanel.addRecipient(infoContactModel.getName(),false);
|
suggestPanel.addRecipient(infoContactModel.getName(),false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lc.unmask();
|
lc.unmask();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||||
|
import org.gcube.portlets.user.workspace.client.model.ExtendedInfoContactModel;
|
||||||
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
|
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
|
||||||
import org.gcube.portlets.user.workspace.client.resources.Resources;
|
import org.gcube.portlets.user.workspace.client.resources.Resources;
|
||||||
|
|
||||||
|
@ -18,6 +19,7 @@ import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||||
import com.extjs.gxt.ui.client.event.SelectionListener;
|
import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||||
import com.extjs.gxt.ui.client.store.ListStore;
|
import com.extjs.gxt.ui.client.store.ListStore;
|
||||||
import com.extjs.gxt.ui.client.store.Store;
|
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.util.Margins;
|
||||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||||
import com.extjs.gxt.ui.client.widget.Dialog;
|
import com.extjs.gxt.ui.client.widget.Dialog;
|
||||||
|
@ -29,8 +31,10 @@ import com.extjs.gxt.ui.client.widget.button.Button;
|
||||||
import com.extjs.gxt.ui.client.widget.form.StoreFilterField;
|
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.form.TextArea;
|
||||||
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
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.ColumnModel;
|
||||||
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
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.FitLayout;
|
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.RowData;
|
||||||
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
|
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
|
||||||
|
@ -40,11 +44,11 @@ public class MultiDragContact extends Dialog {
|
||||||
|
|
||||||
private GridDropTarget dropSource;
|
private GridDropTarget dropSource;
|
||||||
private GridDropTarget dropTarget;
|
private GridDropTarget dropTarget;
|
||||||
private ListStore<InfoContactModel> storeSource = new ListStore<InfoContactModel>();
|
private ListStore<ExtendedInfoContactModel> storeSource = new ListStore<ExtendedInfoContactModel>();
|
||||||
private ListStore<InfoContactModel> storeTarget = new ListStore<InfoContactModel>();
|
private ListStore<ExtendedInfoContactModel> storeTarget = new ListStore<ExtendedInfoContactModel>();
|
||||||
private TextArea textAreaAlreadyShared;
|
private TextArea textAreaAlreadyShared;
|
||||||
private Grid<InfoContactModel> gridAllContacts;
|
private Grid<ExtendedInfoContactModel> gridAllContacts;
|
||||||
private Grid<InfoContactModel> gridShareWith;
|
private Grid<ExtendedInfoContactModel> gridShareWith;
|
||||||
|
|
||||||
public MultiDragContact() {
|
public MultiDragContact() {
|
||||||
setStyleAttribute("margin", "10px");
|
setStyleAttribute("margin", "10px");
|
||||||
|
@ -57,6 +61,10 @@ public class MultiDragContact extends Dialog {
|
||||||
setResizable(true);
|
setResizable(true);
|
||||||
setButtonAlign(HorizontalAlignment.CENTER);
|
setButtonAlign(HorizontalAlignment.CENTER);
|
||||||
setButtons(Dialog.OKCANCEL);
|
setButtons(Dialog.OKCANCEL);
|
||||||
|
//SORTING STORE
|
||||||
|
setGropUserStoreSorter(storeSource);
|
||||||
|
setGropUserStoreSorter(storeTarget);
|
||||||
|
|
||||||
|
|
||||||
ContentPanel cpAlreadyShared = new ContentPanel();
|
ContentPanel cpAlreadyShared = new ContentPanel();
|
||||||
cpAlreadyShared.setSize(530, 60);
|
cpAlreadyShared.setSize(530, 60);
|
||||||
|
@ -115,7 +123,7 @@ public class MultiDragContact extends Dialog {
|
||||||
VerticalPanel vp = new VerticalPanel();
|
VerticalPanel vp = new VerticalPanel();
|
||||||
vp.setHorizontalAlign(HorizontalAlignment.CENTER);
|
vp.setHorizontalAlign(HorizontalAlignment.CENTER);
|
||||||
vp.add(new Label("All Contacts"));
|
vp.add(new Label("All Contacts"));
|
||||||
gridAllContacts = new Grid<InfoContactModel>(storeSource, createColumnModel());
|
gridAllContacts = new Grid<ExtendedInfoContactModel>(storeSource, createColumnModel());
|
||||||
|
|
||||||
storeSource.setDefaultSort(InfoContactModel.FULLNAME, SortDir.ASC);
|
storeSource.setDefaultSort(InfoContactModel.FULLNAME, SortDir.ASC);
|
||||||
storeSource.sort(InfoContactModel.FULLNAME, SortDir.ASC);
|
storeSource.sort(InfoContactModel.FULLNAME, SortDir.ASC);
|
||||||
|
@ -124,11 +132,11 @@ public class MultiDragContact extends Dialog {
|
||||||
storeTarget.sort(InfoContactModel.FULLNAME, SortDir.ASC);
|
storeTarget.sort(InfoContactModel.FULLNAME, SortDir.ASC);
|
||||||
|
|
||||||
|
|
||||||
StoreFilterField<InfoContactModel> filter = new StoreFilterField<InfoContactModel>() {
|
StoreFilterField<ExtendedInfoContactModel> filter = new StoreFilterField<ExtendedInfoContactModel>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean doSelect(Store<InfoContactModel> store,
|
protected boolean doSelect(Store<ExtendedInfoContactModel> store,
|
||||||
InfoContactModel parent, InfoContactModel record,
|
ExtendedInfoContactModel parent, ExtendedInfoContactModel record,
|
||||||
String property, String filter) {
|
String property, String filter) {
|
||||||
|
|
||||||
String name = record.getName();
|
String name = record.getName();
|
||||||
|
@ -152,7 +160,8 @@ public class MultiDragContact extends Dialog {
|
||||||
|
|
||||||
gridAllContacts.setSize(250,310);
|
gridAllContacts.setSize(250,310);
|
||||||
gridAllContacts.setBorders(false);
|
gridAllContacts.setBorders(false);
|
||||||
gridAllContacts.setAutoExpandColumn(InfoContactModel.FULLNAME);
|
gridAllContacts.getView().setAutoFill(true);
|
||||||
|
// gridAllContacts.setAutoExpandColumn(InfoContactModel.FULLNAME);
|
||||||
gridAllContacts.setBorders(true);
|
gridAllContacts.setBorders(true);
|
||||||
|
|
||||||
vp.add(hp);
|
vp.add(hp);
|
||||||
|
@ -167,13 +176,13 @@ public class MultiDragContact extends Dialog {
|
||||||
vp = new VerticalPanel();
|
vp = new VerticalPanel();
|
||||||
vp.setHorizontalAlign(HorizontalAlignment.CENTER);
|
vp.setHorizontalAlign(HorizontalAlignment.CENTER);
|
||||||
vp.add(new Label("Share with..."));
|
vp.add(new Label("Share with..."));
|
||||||
gridShareWith = new Grid<InfoContactModel>(storeTarget, createColumnModel());
|
gridShareWith = new Grid<ExtendedInfoContactModel>(storeTarget, createColumnModel());
|
||||||
|
|
||||||
StoreFilterField<InfoContactModel> filter2 = new StoreFilterField<InfoContactModel>() {
|
StoreFilterField<ExtendedInfoContactModel> filter2 = new StoreFilterField<ExtendedInfoContactModel>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean doSelect(Store<InfoContactModel> store,
|
protected boolean doSelect(Store<ExtendedInfoContactModel> store,
|
||||||
InfoContactModel parent, InfoContactModel record,
|
ExtendedInfoContactModel parent, ExtendedInfoContactModel record,
|
||||||
String property, String filter) {
|
String property, String filter) {
|
||||||
|
|
||||||
String name = record.getName();
|
String name = record.getName();
|
||||||
|
@ -199,7 +208,8 @@ public class MultiDragContact extends Dialog {
|
||||||
|
|
||||||
gridShareWith.setSize(250, 310);
|
gridShareWith.setSize(250, 310);
|
||||||
gridShareWith.setBorders(false);
|
gridShareWith.setBorders(false);
|
||||||
gridShareWith.setAutoExpandColumn(InfoContactModel.FULLNAME);
|
gridShareWith.getView().setAutoFill(true);
|
||||||
|
// gridShareWith.setAutoExpandColumn(InfoContactModel.FULLNAME);
|
||||||
gridShareWith.setBorders(true);
|
gridShareWith.setBorders(true);
|
||||||
vp.add(hp);
|
vp.add(hp);
|
||||||
vp.add(gridShareWith);
|
vp.add(gridShareWith);
|
||||||
|
@ -240,18 +250,34 @@ public class MultiDragContact extends Dialog {
|
||||||
private ColumnModel createColumnModel() {
|
private ColumnModel createColumnModel() {
|
||||||
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
|
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
|
||||||
|
|
||||||
ColumnConfig column = new ColumnConfig();
|
ColumnConfig icon = new ColumnConfig(ExtendedInfoContactModel.ICON, "", 25);
|
||||||
column.setId(InfoContactModel.FULLNAME);
|
configs.add(icon);
|
||||||
column.setHeader("Name");
|
|
||||||
column.setWidth(200);
|
|
||||||
configs.add(column);
|
|
||||||
|
|
||||||
// column = new ColumnConfig();
|
ColumnConfig columnName = new ColumnConfig(ExtendedInfoContactModel.FULLNAME, "Name", 150);
|
||||||
// column.setId("symbol");
|
configs.add(columnName);
|
||||||
// column.setHeader("Symbol");
|
|
||||||
// column.setWidth(100);
|
|
||||||
// configs.add(column);
|
|
||||||
|
|
||||||
|
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) {
|
||||||
|
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>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
type.setRenderer(typeRender);
|
||||||
return new ColumnModel(configs);
|
return new ColumnModel(configs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,14 +285,15 @@ public class MultiDragContact extends Dialog {
|
||||||
|
|
||||||
gridAllContacts.mask("", ConstantsExplorer.LOADINGSTYLE);
|
gridAllContacts.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);
|
||||||
|
}
|
||||||
|
|
||||||
// for (InfoContactModel infoContactModel : listContact) {
|
storeSource.add(listExtended);
|
||||||
//
|
|
||||||
// if(infoContactModel.getName()!=null && !infoContactModel.getName().isEmpty())
|
|
||||||
// storeSource.add(infoContactModel);
|
|
||||||
// }
|
|
||||||
|
|
||||||
storeSource.add(listContact);
|
|
||||||
}
|
}
|
||||||
gridAllContacts.unmask();
|
gridAllContacts.unmask();
|
||||||
}
|
}
|
||||||
|
@ -289,17 +316,64 @@ public class MultiDragContact extends Dialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addTargetContacts(List<InfoContactModel> listContact){
|
public void addTargetContacts(List<InfoContactModel> listContact){
|
||||||
if(listContact!=null && listContact.size()>0)
|
if(listContact!=null && listContact.size()>0){
|
||||||
storeTarget.add(listContact);
|
storeTarget.add(convetFromInfoContactModel(listContact));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ExtendedInfoContactModel> convetFromInfoContactModel(List<InfoContactModel> listContact){
|
||||||
|
|
||||||
|
if(listContact!=null){
|
||||||
|
List<ExtendedInfoContactModel> listExtended = new ArrayList<ExtendedInfoContactModel>(listContact.size());
|
||||||
|
//SETTING ICONS
|
||||||
|
for (InfoContactModel infoContactModel : listContact) {
|
||||||
|
listExtended.add(convetFromInfoContactModel(infoContactModel));
|
||||||
|
}
|
||||||
|
return listExtended;
|
||||||
|
}
|
||||||
|
return new ArrayList<ExtendedInfoContactModel>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ExtendedInfoContactModel convetFromInfoContactModel(InfoContactModel infoContactModel){
|
||||||
|
if(infoContactModel!=null){
|
||||||
|
ExtendedInfoContactModel ext = new ExtendedInfoContactModel(infoContactModel.getId(), infoContactModel.getLogin(), infoContactModel.getName(), infoContactModel.isGroup());
|
||||||
|
ext.setIcon();
|
||||||
|
return ext;
|
||||||
|
}
|
||||||
|
return new ExtendedInfoContactModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addTargetContact(InfoContactModel contact){
|
public void addTargetContact(InfoContactModel contact){
|
||||||
if(contact!=null)
|
if(contact!=null)
|
||||||
storeTarget.add(contact);
|
storeTarget.add(convetFromInfoContactModel(contact));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<InfoContactModel> getTargetListContact(){
|
public List<InfoContactModel> getTargetListContact(){
|
||||||
return storeTarget.getModels();
|
|
||||||
|
List<? extends InfoContactModel> infoContacts = storeTarget.getModels();
|
||||||
|
return (List<InfoContactModel>) infoContacts;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void setGropUserStoreSorter(ListStore<ExtendedInfoContactModel> store){
|
||||||
|
|
||||||
|
// Sorting files
|
||||||
|
store.setStoreSorter(new StoreSorter<ExtendedInfoContactModel>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compare(Store<ExtendedInfoContactModel> store, ExtendedInfoContactModel m1, ExtendedInfoContactModel m2, String property) {
|
||||||
|
boolean m1Folder = m1.isGroup();
|
||||||
|
boolean m2Folder = m2.isGroup();
|
||||||
|
|
||||||
|
if (m1Folder && !m2Folder) {
|
||||||
|
return -1;
|
||||||
|
} else if (!m1Folder && m2Folder) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return m1.getName().compareToIgnoreCase(m2.getName());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,9 +148,10 @@ public class MultiValuePanel extends Composite {
|
||||||
|
|
||||||
for (String login : itemsSelected) {
|
for (String login : itemsSelected) {
|
||||||
InfoContactModel wsuser = users.get(login);
|
InfoContactModel wsuser = users.get(login);
|
||||||
if(wsuser!= null && !toReturn.contains(wsuser))
|
if(wsuser!= null && !toReturn.contains(wsuser)){
|
||||||
toReturn.add(wsuser);
|
toReturn.add(wsuser);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,7 @@ import org.gcube.common.homelibrary.home.workspace.search.SearchItem;
|
||||||
import org.gcube.common.homelibrary.home.workspace.sharing.WorkspaceMessage;
|
import org.gcube.common.homelibrary.home.workspace.sharing.WorkspaceMessage;
|
||||||
import org.gcube.common.homelibrary.home.workspace.trash.WorkspaceTrashFolder;
|
import org.gcube.common.homelibrary.home.workspace.trash.WorkspaceTrashFolder;
|
||||||
import org.gcube.common.homelibrary.home.workspace.trash.WorkspaceTrashItem;
|
import org.gcube.common.homelibrary.home.workspace.trash.WorkspaceTrashItem;
|
||||||
|
import org.gcube.common.homelibrary.home.workspace.usermanager.GCubeGroup;
|
||||||
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
import org.gcube.portlets.user.workspace.client.ConstantsExplorer;
|
||||||
import org.gcube.portlets.user.workspace.client.interfaces.GXTCategoryItemInterface;
|
import org.gcube.portlets.user.workspace.client.interfaces.GXTCategoryItemInterface;
|
||||||
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
import org.gcube.portlets.user.workspace.client.interfaces.GXTFolderItemTypeEnum;
|
||||||
|
@ -134,13 +135,15 @@ public class GWTWorkspaceBuilder {
|
||||||
|
|
||||||
if(hashTestUser==null){
|
if(hashTestUser==null){
|
||||||
hashTestUser = new HashMap<String, InfoContactModel>();
|
hashTestUser = new HashMap<String, InfoContactModel>();
|
||||||
hashTestUser.put("federico.defaveri", new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri"));
|
hashTestUser.put("federico.defaveri", new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri",false));
|
||||||
hashTestUser.put("antonio.gioia", new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia"));
|
hashTestUser.put("antonio.gioia", new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||||
hashTestUser.put("fabio.sinibaldi", new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi"));
|
hashTestUser.put("fabio.sinibaldi", new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false));
|
||||||
hashTestUser.put("pasquale.pagano", new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano"));
|
hashTestUser.put("pasquale.pagano", new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||||
hashTestUser.put(WsUtil.TEST_USER.toString(), new InfoContactModel(WsUtil.TEST_USER, WsUtil.TEST_USER, WsUtil.TEST_USER_FULL_NAME));
|
hashTestUser.put("valentina.marioli", new InfoContactModel("valentina.marioli", "valentina.marioli", "Valentina Marioli",false));
|
||||||
hashTestUser.put("francesco.mangiacrapa", new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa"));
|
hashTestUser.put("roberto.cirillo", new InfoContactModel("roberto.cirillo", "roberto.cirillo", "Roberto Cirillo",false));
|
||||||
hashTestUser.put("massimiliano.assante", new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante"));
|
hashTestUser.put(WsUtil.TEST_USER.toString(), new InfoContactModel(WsUtil.TEST_USER, WsUtil.TEST_USER, WsUtil.TEST_USER_FULL_NAME,false));
|
||||||
|
hashTestUser.put("francesco.mangiacrapa", new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false));
|
||||||
|
hashTestUser.put("massimiliano.assante", new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -913,7 +916,7 @@ public class GWTWorkspaceBuilder {
|
||||||
portalLogin = "";
|
portalLogin = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return new InfoContactModel(portalLogin, portalLogin, UserUtil.getUserFullName(portalLogin));
|
return new InfoContactModel(portalLogin, portalLogin, UserUtil.getUserFullName(portalLogin), false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1615,7 +1618,7 @@ public class GWTWorkspaceBuilder {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<InfoContactModel> buildGXTListContactsModel(List<UserModel> listUsers) throws InternalErrorException {
|
public List<InfoContactModel> buildGXTListContactsModelFromUserModel(List<UserModel> listUsers) throws InternalErrorException {
|
||||||
|
|
||||||
List<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
|
List<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
|
||||||
|
|
||||||
|
@ -1629,23 +1632,40 @@ public class GWTWorkspaceBuilder {
|
||||||
String fullName = userModel.getFullname();
|
String fullName = userModel.getFullname();
|
||||||
|
|
||||||
if(fullName!=null && !fullName.isEmpty())
|
if(fullName!=null && !fullName.isEmpty())
|
||||||
listContactsModel.add(new InfoContactModel(userModel.getUserId()+"", userModel.getScreenName(), fullName));
|
listContactsModel.add(new InfoContactModel(userModel.getUserId()+"", userModel.getScreenName(), fullName, false));
|
||||||
else
|
else
|
||||||
logger.trace("buildGXTListContactsModel doesn't return user: "+userModel.getScreenName()+ "because name is null or empty");
|
logger.trace("buildGXTListContactsModel doesn't return user: "+userModel.getScreenName()+ "because name is null or empty");
|
||||||
}
|
}
|
||||||
logger.trace("List contact model completed, return " +listContactsModel.size()+" contacts");
|
logger.trace("List contact model completed, return " +listContactsModel.size()+" contacts");
|
||||||
// for(User user: listUsers){
|
|
||||||
// String fullName = UserUtil.getUserFullName(user.getPortalLogin());
|
|
||||||
//
|
|
||||||
// if(fullName!=null && !fullName.isEmpty())
|
|
||||||
// listContactsModel.add(new InfoContactModel(user.getId(), user.getPortalLogin(), fullName));
|
|
||||||
// else
|
|
||||||
// logger.trace("buildGXTListContactsModel doesn't return user: "+user.getPortalLogin()+ "because name is null or empty");
|
|
||||||
// }
|
|
||||||
|
|
||||||
return listContactsModel;
|
return listContactsModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
* @throws InternalErrorException
|
||||||
|
*/
|
||||||
|
public List<InfoContactModel> buildGXTListContactsModelFromGcubeGroup(List<GCubeGroup> list) throws InternalErrorException {
|
||||||
|
|
||||||
|
List<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
|
||||||
|
|
||||||
|
if(list==null)
|
||||||
|
return listContactsModel;
|
||||||
|
|
||||||
|
logger.trace("List<GCubeGroup> size returned from GcubeGroup is: "+ list.size());
|
||||||
|
|
||||||
|
logger.trace("Building list contact model...");
|
||||||
|
for (GCubeGroup group : list) {
|
||||||
|
listContactsModel.add(new InfoContactModel(group.getName(), group.getName(), group.getName(), true));
|
||||||
|
}
|
||||||
|
logger.trace("List GCubeGroup contact model completed, return " +listContactsModel.size()+" contacts");
|
||||||
|
|
||||||
|
return listContactsModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param listContactsModel
|
* @param listContactsModel
|
||||||
|
@ -1719,7 +1739,7 @@ public class GWTWorkspaceBuilder {
|
||||||
public InfoContactModel buildGXTInfoContactModel(User user) throws InternalErrorException{
|
public InfoContactModel buildGXTInfoContactModel(User user) throws InternalErrorException{
|
||||||
|
|
||||||
if(user!=null)
|
if(user!=null)
|
||||||
return new InfoContactModel(user.getId(), user.getPortalLogin(), UserUtil.getUserFullName(user.getPortalLogin()));
|
return new InfoContactModel(user.getId(), user.getPortalLogin(), UserUtil.getUserFullName(user.getPortalLogin()), false);
|
||||||
|
|
||||||
return new InfoContactModel();
|
return new InfoContactModel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
package org.gcube.portlets.user.workspace.server;
|
package org.gcube.portlets.user.workspace.server;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
@ -1381,27 +1378,33 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
Workspace workspace = getWorkspace();
|
// Workspace workspace = getWorkspace();
|
||||||
|
|
||||||
workspaceLogger.trace("get all contacts");
|
workspaceLogger.trace("Get all contacts from server...");
|
||||||
|
|
||||||
// WorkspaceItem parent = workspace.getItem(parentFileModel.getIdentifier()); //get item from workspace
|
// WorkspaceItem parent = workspace.getItem(parentFileModel.getIdentifier()); //get item from workspace
|
||||||
// workspace.getAllScope();
|
// workspace.getAllScope();
|
||||||
|
|
||||||
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
GWTWorkspaceBuilder builder = getGWTWorkspaceBuilder();
|
||||||
|
|
||||||
|
org.gcube.common.homelibrary.home.workspace.usermanager.UserManager hlUserManager = HomeLibrary.getHomeManagerFactory().getUserManager();
|
||||||
|
|
||||||
if(isTestMode()){
|
if(isTestMode()){
|
||||||
|
|
||||||
workspaceLogger.warn("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS");
|
workspaceLogger.warn("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS");
|
||||||
List<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
|
List<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
|
||||||
// //TEST USERS
|
// //TEST USERS
|
||||||
listContactsModel.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri"));
|
listContactsModel.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri", false));
|
||||||
listContactsModel.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia"));
|
listContactsModel.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||||
listContactsModel.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi"));
|
listContactsModel.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false));
|
||||||
listContactsModel.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano"));
|
listContactsModel.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||||
listContactsModel.add(new InfoContactModel(WsUtil.TEST_USER, WsUtil.TEST_USER, WsUtil.TEST_USER_FULL_NAME));
|
listContactsModel.add(new InfoContactModel(WsUtil.TEST_USER, WsUtil.TEST_USER, WsUtil.TEST_USER_FULL_NAME,false));
|
||||||
listContactsModel.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa"));
|
listContactsModel.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false));
|
||||||
listContactsModel.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante"));
|
listContactsModel.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false));
|
||||||
|
|
||||||
|
workspaceLogger.trace("Home Library User Manager getting list Gcube Group");
|
||||||
|
listContactsModel.addAll(builder.buildGXTListContactsModelFromGcubeGroup(hlUserManager.getGroups()));
|
||||||
|
|
||||||
return listContactsModel;
|
return listContactsModel;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1409,8 +1412,14 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
|
||||||
UserManager userManag = new LiferayUserManager();
|
UserManager userManag = new LiferayUserManager();
|
||||||
GroupManager gm = new LiferayGroupManager();
|
GroupManager gm = new LiferayGroupManager();
|
||||||
String groupId = gm.getRootVO().getGroupId();
|
String groupId = gm.getRootVO().getGroupId();
|
||||||
workspaceLogger.trace("user manager getting list users by group: "+groupId);
|
|
||||||
return builder.buildGXTListContactsModel(userManag.listUsersByGroup(groupId));
|
workspaceLogger.trace("Liferay User Manager getting list users by group: "+groupId);
|
||||||
|
List<InfoContactModel> listContactsModel = builder.buildGXTListContactsModelFromUserModel(userManag.listUsersByGroup(groupId));
|
||||||
|
|
||||||
|
workspaceLogger.trace("Home Library User Manager getting list Gcube Group");
|
||||||
|
listContactsModel.addAll(builder.buildGXTListContactsModelFromGcubeGroup(hlUserManager.getGroups()));
|
||||||
|
|
||||||
|
return listContactsModel;
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
workspaceLogger.error("Error in server get all contacts ", e);
|
workspaceLogger.error("Error in server get all contacts ", e);
|
||||||
|
|
|
@ -89,19 +89,19 @@ public class DiffereceBeetweenInfoContactModel {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
List<InfoContactModel> listA = new ArrayList<InfoContactModel>();
|
List<InfoContactModel> listA = new ArrayList<InfoContactModel>();
|
||||||
listA.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri"));
|
listA.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri", false));
|
||||||
listA.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia"));
|
listA.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||||
listA.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi"));
|
listA.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi", false));
|
||||||
listA.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano"));
|
listA.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||||
listA.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa"));
|
listA.add(new InfoContactModel("francesco.mangiacrapa", "francesco.mangiacrapa", "Francesco Mangiacrapa",false));
|
||||||
listA.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante"));
|
listA.add(new InfoContactModel("massimiliano.assante", "massimiliano.assante", "Massimiliano Assante",false));
|
||||||
|
|
||||||
List<InfoContactModel> listB = new ArrayList<InfoContactModel>();
|
List<InfoContactModel> listB = new ArrayList<InfoContactModel>();
|
||||||
|
|
||||||
listB.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri"));
|
listB.add(new InfoContactModel("federico.defaveri", "federico.defaveri", "Federico de Faveri",false));
|
||||||
listB.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi"));
|
listB.add(new InfoContactModel("fabio.sinibaldi", "fabio.sinibaldi", "Fabio Sinibaldi",false));
|
||||||
listB.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia"));
|
listB.add(new InfoContactModel("antonio.gioia", "antonio.gioia", "Antonio Gioia",false));
|
||||||
listB.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano"));
|
listB.add(new InfoContactModel("pasquale.pagano", "pasquale.pagano", "Pasquale Pagano",false));
|
||||||
|
|
||||||
DiffereceBeetweenInfoContactModel diff = new DiffereceBeetweenInfoContactModel(listA, listB);
|
DiffereceBeetweenInfoContactModel diff = new DiffereceBeetweenInfoContactModel(listA, listB);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue