From 9aa990a94404726eaddb37247141d1e7d52992f7 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Wed, 1 Jun 2016 12:54:38 +0000 Subject: [PATCH] Minor glitch fixed to Liferay 6.2 git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@128955 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../multisuggest/MultiDragContact.java | 357 +++++++++++------- 1 file changed, 215 insertions(+), 142 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java index 47036f8..0f38e56 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/multisuggest/MultiDragContact.java @@ -47,14 +47,31 @@ 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.extjs.gxt.ui.client.widget.toolbar.ToolBar; - -public class MultiDragContact extends Dialog { +/** + * The Class MultiDragContact. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * Jun 1, 2016 + */ +public class MultiDragContact extends Dialog { + + /** + * + */ + private static final int HEIGHT_CONTAINER_GRID = 395; + /** + * + */ + private static final int HEIGHT_CONTAINER_TEXT_AREA = 72; + private static final int HEIGHT_TEXT_AREA = 55; private static final int WIDTH_CP = 597; - private static final int HEIGHT_DIALOG = 542; - private static final int WIDTH_DIALOG = 625; +// private static final int HEIGHT_DIALOG = 542; + private static final int HEIGHT_DIALOG = 580; + private static final int WIDTH_DIALOG = 630; +// private static final int WIDTH_DIALOG = 625; private static final int HEIGHT_GRID = 310; - + private GridDropTarget dropSource; private GridDropTarget dropTarget; private ListStore storeSource = new ListStore(); @@ -67,9 +84,12 @@ public class MultiDragContact extends Dialog { private Button buttonSelectedRight; private Button buttonAllRight; private Button buttonAllLeft; - + + /** + * Instantiates a new multi drag contact. + */ public MultiDragContact() { - setStyleAttribute("margin", "10px"); + setStyleAttribute("margin", "10px"); setSize(WIDTH_DIALOG, HEIGHT_DIALOG); setHeading("Group dragging contacts"); setResizable(false); @@ -79,19 +99,19 @@ public class MultiDragContact extends Dialog { setScrollMode(Scroll.AUTOY); setBodyStyle("padding: 9px; background: none"); setResizable(true); - setButtonAlign(HorizontalAlignment.CENTER); + setButtonAlign(HorizontalAlignment.CENTER); setButtons(Dialog.OKCANCEL); //SORTING STORE setGropUserStoreSorter(storeSource); setGropUserStoreSorter(storeTarget); - - - ContentPanel cpAlreadyShared = new ContentPanel(); - cpAlreadyShared.setSize(WIDTH_CP, 60); + + + ContentPanel cpAlreadyShared = new ContentPanel(); + cpAlreadyShared.setSize(WIDTH_CP, HEIGHT_CONTAINER_TEXT_AREA); cpAlreadyShared.setHeaderVisible(false); - + cpAlreadyShared.setLayout(new FitLayout()); - + VerticalPanel vpShared = new VerticalPanel(); vpShared.setVerticalAlign(VerticalAlignment.MIDDLE); vpShared.setHorizontalAlign(HorizontalAlignment.CENTER); @@ -104,73 +124,74 @@ public class MultiDragContact extends Dialog { // textField.setFieldLabel("Already shared with"); // textField.setHeight(30); textAreaAlreadyShared.setWidth(501); - textAreaAlreadyShared.setHeight(43); + textAreaAlreadyShared.setHeight(HEIGHT_TEXT_AREA); cpAlreadyShared.setStyleAttribute("padding-bottom", "5px"); textAreaAlreadyShared.setReadOnly(true); cpAlreadyShared.add(textAreaAlreadyShared); - + Label label = new Label("Already shared with"); label.setStyleAttribute("padding-right", "10px"); + label.setStyleAttribute("font-size", "12px"); hpSharedContacts.add(label); hpSharedContacts.add(textAreaAlreadyShared); vpShared.add(hpSharedContacts); cpAlreadyShared.add(vpShared); add(cpAlreadyShared); - - - final ContentPanel cp = new ContentPanel(); - cp.setSize(WIDTH_CP, 370); - cp.setHeaderVisible(false); - cp.setLayout(new RowLayout(Orientation.HORIZONTAL)); - ToolBar toolBar = new ToolBar(); + + final ContentPanel cp = new ContentPanel(); + cp.setSize(WIDTH_CP, HEIGHT_CONTAINER_GRID); + cp.setHeaderVisible(false); + cp.setLayout(new RowLayout(Orientation.HORIZONTAL)); + + ToolBar toolBar = new ToolBar(); Button buttonHelp = new Button(); buttonHelp.setIcon(Resources.getIconInfo()); buttonHelp.addSelectionListener(new SelectionListener() { - + @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); + + toolBar.add(buttonHelp); + setTopComponent(toolBar); final VerticalPanel vpAllContacts = new VerticalPanel(); vpAllContacts.setHorizontalAlign(HorizontalAlignment.CENTER); vpAllContacts.add(new Label("All Contacts")); - + gridAllContacts = new Grid(storeSource, createColumnModel()); - - - GridCellRenderer displayNameCellRender = new GridCellRenderer() { - public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { - + + + GridCellRenderer displayNameCellRender = new GridCellRenderer() { + public String render(ExtendedInfoContactModel 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 "" + value + ""; } } - + 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 filter = new StoreFilterField() { @Override @@ -187,39 +208,39 @@ public class MultiDragContact extends Dialog { } }; - + 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); - + filter.bind(storeSource); + gridAllContacts.setHeight(HEIGHT_GRID); - gridAllContacts.setBorders(false); + gridAllContacts.setBorders(false); gridAllContacts.getView().setAutoFill(true); - gridAllContacts.setBorders(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)); - + 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(storeTarget, createColumnModel()); - + gridShareWith = new Grid(storeTarget, createColumnModel()); + final StoreFilterField filter2 = new StoreFilterField() { @Override @@ -236,35 +257,35 @@ public class MultiDragContact extends Dialog { } }; - + filter2.setEmptyText("Filter Share with"); hp = new HorizontalPanel(); hp.setStyleAttribute("padding-top", "5px"); hp.setStyleAttribute("padding-bottom", "5px"); hp.add(filter2); - filter2.bind(storeTarget); - + filter2.bind(storeTarget); + gridShareWith.setHeight(HEIGHT_GRID); - gridShareWith.setBorders(false); + gridShareWith.setBorders(false); gridShareWith.getView().setAutoFill(true); -// gridShareWith.setAutoExpandColumn(InfoContactModel.FULLNAME); +// 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.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() { @@ -273,16 +294,16 @@ public class MultiDragContact extends Dialog { hide(); } }); - - + + this.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener() { @Override public void componentSelected(ButtonEvent ce) { List 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() { @@ -298,11 +319,11 @@ public class MultiDragContact extends Dialog { }else hide(); } - }); - - // needed to enable quicktips (qtitle for the heading and qtip for the - // content) that are setup in the change GridCellRenderer - + }); + + // 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() { @Override @@ -319,10 +340,15 @@ public class MultiDragContact extends Dialog { cp.layout(); } }); - + new QuickTip(gridAllContacts); - } - + } + + /** + * Creates the move contacts container. + * + * @return the layout container + */ private LayoutContainer createMoveContactsContainer() { LayoutContainer lc = new LayoutContainer(); @@ -428,7 +454,7 @@ public class MultiDragContact extends Dialog { vp1.add(buttonAllRight); lc.add(vp1); - + vp1.addListener(Events.Render, new Listener() { @Override @@ -443,24 +469,29 @@ public class MultiDragContact extends Dialog { return lc; } - - private ColumnModel createColumnModel() { - List configs = new ArrayList(); - + + /** + * Creates the column model. + * + * @return the column model + */ + private ColumnModel createColumnModel() { + List configs = new ArrayList(); + ColumnConfig icon = new ColumnConfig(ExtendedInfoContactModel.ICON, "", 25); - configs.add(icon); - - columnConfigDisplayName = new ColumnConfig(ExtendedInfoContactModel.FULLNAME, "Name", 150); - configs.add(columnConfigDisplayName); - + configs.add(icon); + + columnConfigDisplayName = new ColumnConfig(ExtendedInfoContactModel.FULLNAME, "Name", 150); + configs.add(columnConfigDisplayName); + ColumnConfig type = new ColumnConfig(ExtendedInfoContactModel.ISGROUP, "Type", 50); - configs.add(type); - - - GridCellRenderer typeRender = new GridCellRenderer() { + configs.add(type); + + + GridCellRenderer typeRender = new GridCellRenderer() { @Override public String render(ExtendedInfoContactModel model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { - Boolean isGroup = (Boolean) model.get(property); + Boolean isGroup = (Boolean) model.get(property); String color = "#0F4FA8"; String val = ""; if(isGroup){ @@ -471,15 +502,20 @@ public class MultiDragContact extends Dialog { val = "User"; return "" + val + ""; } - } - }; - + } + }; + type.setRenderer(typeRender); - return new ColumnModel(configs); - } - + return new ColumnModel(configs); + } + + /** + * Adds the source contacts. + * + * @param listContact the list contact + */ public void addSourceContacts(List listContact){ - + gridAllContacts.mask("", ConstantsExplorer.LOADINGSTYLE); if(listContact!=null && listContact.size()>0){ List listExtended = new ArrayList(); @@ -489,40 +525,56 @@ public class MultiDragContact extends Dialog { ext.setIcon(); listExtended.add(ext); } - + storeSource.add(listExtended); // GWT.log("Added sources: "+listExtended.toString()); } - + gridAllContacts.unmask(); gridAllContacts.repaint(); } - + + /** + * Adds the already shared contacts. + * + * @param listContact the list contact + */ public void addAlreadySharedContacts(List listContact){ - + gridShareWith.mask("", ConstantsExplorer.LOADINGSTYLE); if(listContact!=null && listContact.size()>0){ - + String alreadyShared = ""; - for (int i=0; i listContact){ if(listContact!=null && listContact.size()>0){ - storeTarget.add(convertFromInfoContactModel(listContact)); + storeTarget.add(convertFromInfoContactModel(listContact)); } } - + + /** + * Convert from info contact model. + * + * @param listContact the list contact + * @return the list + */ private List convertFromInfoContactModel(List listContact){ - + if(listContact!=null){ List listExtended = new ArrayList(listContact.size()); //SETTING ICONS @@ -531,36 +583,57 @@ public class MultiDragContact extends Dialog { } return listExtended; } - return new ArrayList(); + return new ArrayList(); } - + + /** + * 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(), infoContactModel.getLogin(), fullName, infoContactModel.isGroup()); ext.setIcon(); return ext; } return new ExtendedInfoContactModel(); } - + + /** + * Adds the target contact. + * + * @param contact the contact + */ public void addTargetContact(InfoContactModel contact){ if(contact!=null) - storeTarget.add(convertFromInfoContactModel(contact)); + storeTarget.add(convertFromInfoContactModel(contact)); } - + + /** + * Gets the target list contact. + * + * @return the target list contact + */ public List getTargetListContact(){ - + List infoContacts = storeTarget.getModels(); return (List) infoContacts; } - - + + + /** + * Sets the grop user store sorter. + * + * @param store the new grop user store sorter + */ private void setGropUserStoreSorter(ListStore store){ - + // Sorting files store.setStoreSorter(new StoreSorter() { @@ -574,10 +647,10 @@ public class MultiDragContact extends Dialog { } else if (!m1Folder && m2Folder) { return 1; } - + return m1.getName().compareToIgnoreCase(m2.getName()); } }); } - -} + +}