diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java index b2b27bd..70c9c70 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidget.java @@ -4,6 +4,7 @@ import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD; import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.Composite; /** @@ -61,7 +62,7 @@ public class CkanContentModeratorWidget { * * @return the panel */ - public Composite getPanel() { + public ComplexPanel getPanel() { return cmsController.getMainPanel(); } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java index 3daa0ae..18708f9 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/CkanContentModeratorWidgetController.java @@ -6,6 +6,7 @@ import org.gcube.portlets.widgets.ckancontentmoderator.client.events.ClickItemEv import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.CkanFramePanel; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.ContentModeratorPaginatedView; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.ContentModeratorSystemBaseView; +import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.ContentModeratorToolbar; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.MainTabPanel; import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; @@ -14,11 +15,11 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.user.client.Command; import com.google.gwt.user.client.rpc.AsyncCallback; -import com.google.gwt.user.client.ui.Anchor; +import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.Frame; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.VerticalPanel; -// TODO: Auto-generated Javadoc /** * The Class CkanContentModeratorWidget. * @@ -30,9 +31,12 @@ public class CkanContentModeratorWidgetController { public final static CkanContentModeratorServiceAsync contentModeratorService = GWT .create(CkanContentModeratorService.class); + + private FlowPanel mainPanel = new FlowPanel(); // private ItemsTable itemsTable; private ContentModeratorSystemBaseView cmsPanel = new ContentModeratorSystemBaseView(); + private ContentModeratorToolbar toolbar; private MainTabPanel mainTabPanel = new MainTabPanel(); private Boolean isContentModeratorEnabled = null; private ContentModeratorPaginatedView paginatedView; @@ -51,11 +55,15 @@ public class CkanContentModeratorWidgetController { // itemsTable.initTable(null, null, new ListDataProvider()); // cmsPanel.add(itemsTable.getCellTable()); + toolbar = new ContentModeratorToolbar(eventBus); paginatedView = new ContentModeratorPaginatedView(eventBus, status, displayFields, sortByField); // cmsPanel.addToTop(new LoadingPanel(new HTML("Loading..."))); + //cmsPanel.addToTop(toolbar); cmsPanel.addToCenter(paginatedView.getCellPanel()); cmsPanel.addToBottom(paginatedView.getPagerPanel()); mainTabPanel.addHomeWidget(cmsPanel.getPanel()); + mainPanel.add(toolbar); + mainPanel.add(mainTabPanel); bindEvents(); } @@ -129,8 +137,8 @@ public class CkanContentModeratorWidgetController { * * @return the main panel */ - public Composite getMainPanel() { - return mainTabPanel; + public ComplexPanel getMainPanel() { + return mainPanel; } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.java new file mode 100644 index 0000000..e3e7119 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.java @@ -0,0 +1,52 @@ +package org.gcube.portlets.widgets.ckancontentmoderator.client.ui; + +import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; + +import com.github.gwtbootstrap.client.ui.Dropdown; +import com.github.gwtbootstrap.client.ui.NavLink; +import com.google.gwt.core.client.GWT; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.shared.HandlerManager; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.Widget; + +public class ContentModeratorToolbar extends Composite { + + private static ContentModeratorToolbarUiBinder uiBinder = GWT.create(ContentModeratorToolbarUiBinder.class); + + interface ContentModeratorToolbarUiBinder extends UiBinder { + } + + @UiField + Dropdown dropdownSelectStatus; + + private HandlerManager eventBus; + + public ContentModeratorToolbar(HandlerManager eventBus) { + initWidget(uiBinder.createAndBindUi(this)); + this.eventBus = eventBus; + fillItemStatusOptions(); + } + + private void fillItemStatusOptions() { + for (ItemStatus status : ItemStatus.values()) { + + NavLink link = new NavLink(); + link.setText(status.getLabel()); + link.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + // TODO Auto-generated method stub + + } + }); + dropdownSelectStatus.add(link); + } + + } + +} diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.ui.xml new file mode 100644 index 0000000..04a2a6f --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorToolbar.ui.xml @@ -0,0 +1,20 @@ + + + + + .important { + font-weight: bold; + } + + + + + + Close All Tabs + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/SelectionItem.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/SelectionItem.java deleted file mode 100644 index 1a17752..0000000 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/SelectionItem.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package org.gcube.portlets.widgets.ckancontentmoderator.client.ui; - - - -/** - * The Interface SelectionItem. - * - * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it - * Apr 28, 2016 - */ -public interface SelectionItem { - - /** - * Gets the selected item. - * - * @param the generic type - * @return the selected item - */ - T getSelectedItem(); - -} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/SelectionItems.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/SelectionItems.java new file mode 100644 index 0000000..f7d0c8e --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/SelectionItems.java @@ -0,0 +1,25 @@ +/** + * + */ +package org.gcube.portlets.widgets.ckancontentmoderator.client.ui; + +import java.util.List; + +/** + * The Interface SelectionItems. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Jun 18, 2021 + */ +public interface SelectionItems { + + /** + * Gets the selected items. + * + * @param the generic type + * @return the selected items + */ + List getSelectedItems(); + +} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/AbstractItemsCellTable.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/AbstractItemsCellTable.java index 8cf51a3..a3d1d0b 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/AbstractItemsCellTable.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/AbstractItemsCellTable.java @@ -1,6 +1,7 @@ package org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table; import java.util.List; +import java.util.Set; import org.gcube.portlets.widgets.ckancontentmoderator.client.events.ClickItemEvent; @@ -21,11 +22,15 @@ import com.google.gwt.user.client.ui.MenuBar; import com.google.gwt.user.client.ui.MenuItem; import com.google.gwt.view.client.AbstractDataProvider; import com.google.gwt.view.client.AsyncDataProvider; +import com.google.gwt.view.client.DefaultSelectionEventManager; import com.google.gwt.view.client.ListDataProvider; +import com.google.gwt.view.client.MultiSelectionModel; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; +import com.google.gwt.view.client.SelectionModel; import com.google.gwt.view.client.SingleSelectionModel; + /** * The Class AbstractItemsCellTable. * @@ -37,7 +42,7 @@ public abstract class AbstractItemsCellTable { protected SortedCellTable sortedCellTable; protected T itemContextMenu = null; protected boolean fireEventOnClick = true; - protected SingleSelectionModel ssm; + protected SelectionModel theSelectionModel; protected HandlerManager eventBus; /** @@ -53,38 +58,47 @@ public abstract class AbstractItemsCellTable { /** * Inits the abstract table. * - * @param eventBus the event bus - * @param fireOnClick the fire on click - * @param dataProvider the data provider - * @param pageSize the page size + * @param eventBus the event bus + * @param fireOnClick the fire on click + * @param dataProvider the data provider + * @param selectionModel the selection model + * @param pageSize the page size */ protected void initAbstractTable(HandlerManager eventBus, boolean fireOnClick, AbstractDataProvider dataProvider, - int pageSize) { + SelectionModel selectionModel, int pageSize) { this.eventBus = eventBus; this.fireEventOnClick = fireOnClick; + this.theSelectionModel = selectionModel; sortedCellTable = new SortedCellTable(pageSize, dataProvider); sortedCellTable.addStyleName("table-cms-widget"); -// cellTable.getElement().getStyle().setOverflow(Overflow.HIDDEN); sortedCellTable.addStyleName("table-cms-widget-vertical-middle"); sortedCellTable.setStriped(true); sortedCellTable.setCondensed(true); sortedCellTable.setWidth("100%", true); // dataProvider.addDataDisplay(sortedCellTable); // initTable(cellTable, null, null); - sortedCellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED); + //sortedCellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED); - ssm = new SingleSelectionModel(); - sortedCellTable.setSelectionModel(ssm); - ssm.addSelectionChangeHandler(new Handler() { + DefaultSelectionEventManager checkBoxManager = DefaultSelectionEventManager. createCheckboxManager(); + sortedCellTable.setSelectionModel(theSelectionModel,checkBoxManager); + + theSelectionModel.addSelectionChangeHandler(new Handler() { @Override public void onSelectionChange(final SelectionChangeEvent event) { - final T selectedObject = ssm.getSelectedObject(); - if (selectedObject != null) { - GWT.log("Clicked: " + selectedObject); -// selectedItem(selectedObject); - if (fireEventOnClick) - AbstractItemsCellTable.this.eventBus.fireEvent(new ClickItemEvent(selectedObject)); - } + + if (theSelectionModel instanceof SingleSelectionModel) { + SingleSelectionModel ssm = (SingleSelectionModel) theSelectionModel; + final T selectedObject = ssm.getSelectedObject(); + if (selectedObject != null) { + GWT.log("Clicked: " + selectedObject); +// selectedItem(selectedObject); + if (fireEventOnClick) + AbstractItemsCellTable.this.eventBus.fireEvent(new ClickItemEvent(selectedObject)); + } + }else if (theSelectionModel instanceof MultiSelectionModel) { + Set selected = ((MultiSelectionModel) theSelectionModel).getSelectedSet(); + GWT.log("Selected are:" +selected); + } } }); @@ -92,12 +106,16 @@ public abstract class AbstractItemsCellTable { @Override public void onDoubleClick(final DoubleClickEvent event) { - T selected = ssm.getSelectedObject(); - if (selected != null) { - GWT.log("Double Click: " + selected); - // AbstractItemsCellTable.this.eventBus.fireEvent(new - // org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent(selected)); + if (theSelectionModel instanceof SingleSelectionModel) { + SingleSelectionModel ssm = (SingleSelectionModel) theSelectionModel; + T selected = ssm.getSelectedObject(); + if (selected != null) { + GWT.log("Double Click: " + selected); + // AbstractItemsCellTable.this.eventBus.fireEvent(new + // org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent(selected)); + } } + } }, DoubleClickEvent.getType()); @@ -137,14 +155,13 @@ public abstract class AbstractItemsCellTable { public void updateItems(List items, boolean removeOldItems) { if (removeOldItems) { -// dataProvider.getList().clear(); - ssm.clear(); + if (theSelectionModel instanceof SingleSelectionModel) { + ((SingleSelectionModel) theSelectionModel).clear(); + } else if (theSelectionModel instanceof MultiSelectionModel) { + ((MultiSelectionModel) theSelectionModel).clear(); + } } - sortedCellTable.setList(items); -// dataProvider.flush(); -// dataProvider.refresh(); - sortedCellTable.setPageSize(items.size() + 1); sortedCellTable.redraw(); } @@ -169,6 +186,8 @@ public abstract class AbstractItemsCellTable { } /** + * Sets the fire event on click. + * * @param fireEventOnClick the fireEventOnClick to set */ public void setFireEventOnClick(boolean fireEventOnClick) { diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/ItemsTable.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/ItemsTable.java index e182e74..a06aa2b 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/ItemsTable.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/ItemsTable.java @@ -3,20 +3,24 @@ */ package org.gcube.portlets.widgets.ckancontentmoderator.client.ui.table; +import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Date; import java.util.List; +import java.util.Set; import org.gcube.portlets.widgets.ckancontentmoderator.client.ContentModeratorWidgetConstants; import org.gcube.portlets.widgets.ckancontentmoderator.client.resources.ContentModeratorWidgetResources; -import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.SelectionItem; +import org.gcube.portlets.widgets.ckancontentmoderator.client.ui.SelectionItems; import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; import com.github.gwtbootstrap.client.ui.Pagination; import com.google.gwt.cell.client.ButtonCell; +import com.google.gwt.cell.client.CheckboxCell; import com.google.gwt.cell.client.DateCell; import com.google.gwt.core.shared.GWT; +import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.resources.client.ImageResource; @@ -32,19 +36,19 @@ import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.view.client.AbstractDataProvider; import com.google.gwt.view.client.ListDataProvider; - +import com.google.gwt.view.client.MultiSelectionModel; +import com.google.gwt.view.client.SingleSelectionModel; /** * The Class ItemsTable. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Jun 15, 2021 + * Jun 15, 2021 * @param the generic type */ -public class ItemsTable extends AbstractItemsCellTable implements SelectionItem { +public class ItemsTable extends AbstractItemsCellTable implements SelectionItems { - // private Column icon; private TextColumn type; private TextColumn name; private TextColumn title; @@ -60,26 +64,22 @@ public class ItemsTable extends AbstractItemsCellTab * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Feb 1, 2016 */ public static enum DISPLAY_FIELD { - TYPE, NAME, TITLE, AUTHOR, CREATED + NAME, TITLE, AUTHOR, CREATED, TYPE }; private List displayFields; private Column dateColumn; - // private List displayProperties; - // private boolean showGcubeItemsInfo; private DISPLAY_FIELD startSortByColumn; private boolean isAsyncronusTable; - /** * Instantiates a new items table. * - * @param eventBus the event bus - * @param fields the fields + * @param eventBus the event bus + * @param fields the fields * @param startSortByColumn the start sort by column */ - public ItemsTable(HandlerManager eventBus, DISPLAY_FIELD[] fields, - DISPLAY_FIELD startSortByColumn) { + public ItemsTable(HandlerManager eventBus, DISPLAY_FIELD[] fields, DISPLAY_FIELD startSortByColumn) { this.eventBus = eventBus; this.startSortByColumn = startSortByColumn; setDisplayFields(fields); @@ -118,72 +118,29 @@ public class ItemsTable extends AbstractItemsCellTab * @param pagination the pagination * @param dataProvider the data provider */ - /* - * (non-Javadoc) - * - * @see org.gcube.portlets.admin.gcubereleases.client.view.AbstractPackageTable# - * initTable(com.google.gwt.user.cellview.client.AbstractCellTable, - * com.google.gwt.user.cellview.client.SimplePager, - * com.github.gwtbootstrap.client.ui.Pagination) - */ @Override public void initTable(final SimplePager pager, final Pagination pagination, AbstractDataProvider dataProvider) { this.dataProvider = dataProvider; - initAbstractTable(eventBus, fireEventOnClick, dataProvider, ContentModeratorWidgetConstants.ITEMS_PER_PAGE); + this.theSelectionModel = new MultiSelectionModel(); + initAbstractTable(eventBus, fireEventOnClick, dataProvider, theSelectionModel, + ContentModeratorWidgetConstants.ITEMS_PER_PAGE); this.dataProvider.addDataDisplay(sortedCellTable); - - // this.isAsyncronusTable = dataProvider instanceof - // AbstractDataProvider?true:false; - this.isAsyncronusTable = dataProvider instanceof ListDataProvider ? false : true; - // sortedCellTable.setEmptyTableWidget(new - // Label(WorkspaceExplorerConstants.WORKSPACE_FOLDER_EMPTY_MESSAGE)); + this.isAsyncronusTable = dataProvider instanceof ListDataProvider ? false : true; setEmptyTableMessage(ContentModeratorWidgetConstants.NO_DATA); - if (this.displayFields.contains(DISPLAY_FIELD.TYPE)) { - - // NAME - type = new TextColumn() { - @Override - public String getValue(T object) { - if (object == null) - return ""; - - String type = ((CatalogueDataset) object).getType(); - - if (type == null) - return ""; - return type; - } - - // ADDING TOOLTIP - @Override - public void render(com.google.gwt.cell.client.Cell.Context context, T object, SafeHtmlBuilder sb) { - if (object == null) - return; - String type = ((CatalogueDataset) object).getType(); - if (type == null) - type = ""; - sb.appendHtmlConstant("
"); - super.render(context, object, sb); - sb.appendHtmlConstant("
"); - }; - }; - - sortedCellTable.addColumn(type, "Type", true); - - if (!isAsyncronusTable) { - Comparator c = new Comparator() { - @Override - public int compare(T o1, T o2) { - return ((CatalogueDataset) o1).getType().compareTo(((CatalogueDataset) o2).getType()); - } - }; - - sortedCellTable.setComparator(type, c); + // Checkbox column. This table will uses a checkbox column for selection. + // Alternatively, you can call cellTable.setSelectionEnabled(true) to enable + // mouse selection. + Column checkColumn = new Column(new CheckboxCell(true, false)) { + @Override + public Boolean getValue(T object) { + // Get the value from the selection model. + return theSelectionModel.isSelected(object); } - - } + }; + sortedCellTable.addColumn(checkColumn, "", false); + sortedCellTable.setColumnWidth(checkColumn, 40, Unit.PX); if (this.displayFields.contains(DISPLAY_FIELD.NAME)) { @@ -314,7 +271,56 @@ public class ItemsTable extends AbstractItemsCellTab } } - + + if (this.displayFields.contains(DISPLAY_FIELD.TYPE)) { + + // NAME + type = new TextColumn() { + @Override + public String getValue(T object) { + if (object == null) + return ""; + + String type = ((CatalogueDataset) object).getExtra_SystemType(); + + if (type == null) + return ""; + return type; + } + + // ADDING TOOLTIP + @Override + public void render(com.google.gwt.cell.client.Cell.Context context, T object, SafeHtmlBuilder sb) { + if (object == null) + return; + String type = ((CatalogueDataset) object).getExtra_SystemType(); + if (type == null) + type = ""; + sb.appendHtmlConstant("
"); + super.render(context, object, sb); + sb.appendHtmlConstant("
"); + }; + }; + + sortedCellTable.addColumn(type, "Type", true); + + if (!isAsyncronusTable) { + Comparator c = new Comparator() { + @Override + public int compare(T o1, T o2) { + if (o1 == null || o1.getExtra_SystemType() == null) + return -1; + + if (o2 == null || o2.getExtra_SystemType() == null) + return 1; + return ((CatalogueDataset) o1).getExtra_SystemType().compareTo(((CatalogueDataset) o2).getExtra_SystemType()); + } + }; + + sortedCellTable.setComparator(type, c); + } + + } GWT.log("startSortByColumn: " + startSortByColumn); @@ -335,6 +341,11 @@ public class ItemsTable extends AbstractItemsCellTab sortedCellTable.setInitialSortColumn(author); } break; + case TYPE: + if (this.displayFields.contains(DISPLAY_FIELD.TYPE)) { + sortedCellTable.setInitialSortColumn(type); + } + break; case CREATED: if (this.displayFields.contains(DISPLAY_FIELD.CREATED)) { sortedCellTable.setDefaultSortOrder(dateColumn, false); // sorts ascending on first click @@ -345,7 +356,6 @@ public class ItemsTable extends AbstractItemsCellTab default: break; } - /* * final SingleSelectionModel selectionModel = new @@ -450,8 +460,21 @@ public class ItemsTable extends AbstractItemsCellTab * SelectionItemHandler#getSelectionItem() */ @Override - public T getSelectedItem() { - return ssm.getSelectedObject(); + public List getSelectedItems() { + if (theSelectionModel instanceof SingleSelectionModel) { + T selected = ((SingleSelectionModel) theSelectionModel).getSelectedObject(); + if (selected != null) { + return Arrays.asList(selected); + } + + } else if (theSelectionModel instanceof MultiSelectionModel) { + Set selected = ((MultiSelectionModel) theSelectionModel).getSelectedSet(); + if (selected != null) { + return new ArrayList(selected); + } + } + + return null; } /** diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/SortedCellTable.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/SortedCellTable.java index 951a137..10ba428 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/SortedCellTable.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/table/SortedCellTable.java @@ -68,7 +68,7 @@ public class SortedCellTable extends CellTable { * @param dataProv the data prov */ public SortedCellTable(int pageSize, AbstractDataProvider dataProv) { - super(1,CellTableResources.INSTANCE); + super(pageSize,CellTableResources.INSTANCE); this.dataProvider = dataProv; if(this.dataProvider instanceof ListDataProvider){ diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueBeansConverter.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueBeansConverter.java index ea2f342..83ca2b2 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueBeansConverter.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueBeansConverter.java @@ -1,5 +1,6 @@ package org.gcube.portlets.widgets.ckancontentmoderator.server; +import java.util.Map; import java.util.function.Function; import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset; @@ -26,7 +27,16 @@ public class CatalogueBeansConverter { myDataset.setAuthorEmail(t.getAuthorEmail()); //is it needed?? - myDataset.setD4ScienceItemURL(null); + myDataset.setExtra_ItemURL(null); + + System.out.println("Extras: "+t.getExtrasAsHashMap()); + Map extrasMap = t.getExtrasAsHashMap(); + if(extrasMap!=null) { + String type = extrasMap.get("system:type"); + myDataset.setExtra_SystemType(type); + String itemURL = extrasMap.get("Item URL"); + myDataset.setExtra_ItemURL(itemURL); + } myDataset.setId(t.getId()); myDataset.setLicenseId(t.getLicenseId()); @@ -36,7 +46,7 @@ public class CatalogueBeansConverter { myDataset.setNotes(t.getNotes()); myDataset.setOwnerOrg(t.getOwnerOrg()); myDataset.setTitle(t.getTitle()); - myDataset.setType(t.getType()); + //here is always null myDataset.setUrl(t.getUrl()); myDataset.setCreated(t.getMetadataCreated().getTime()); diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/shared/CatalogueDataset.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/shared/CatalogueDataset.java index 4d75d86..4c70371 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/shared/CatalogueDataset.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/shared/CatalogueDataset.java @@ -6,7 +6,6 @@ import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; import com.google.gwt.user.client.rpc.IsSerializable; - /** * The Class CatalogueDataset. * @@ -31,10 +30,10 @@ public class CatalogueDataset implements Serializable, IsSerializable { private String ownerOrg; private ItemStatus status; private String title; - private String type; private String url; private String version; - private String d4scienceItemURL; + private String extra_ItemURL; + private String extra_SystemType; private long created; /** @@ -87,10 +86,6 @@ public class CatalogueDataset implements Serializable, IsSerializable { return title; } - public String getType() { - return type; - } - public String getUrl() { return url; } @@ -100,7 +95,7 @@ public class CatalogueDataset implements Serializable, IsSerializable { } public String getD4scienceItemURL() { - return d4scienceItemURL; + return extra_ItemURL; } public long getCreated() { @@ -151,10 +146,6 @@ public class CatalogueDataset implements Serializable, IsSerializable { this.title = title; } - public void setType(String type) { - this.type = type; - } - public void setUrl(String url) { this.url = url; } @@ -163,14 +154,26 @@ public class CatalogueDataset implements Serializable, IsSerializable { this.version = version; } - public void setD4ScienceItemURL(String d4scienceItemURL) { - this.d4scienceItemURL = d4scienceItemURL; - } - public void setCreated(long created) { this.created = created; } + public String getExtra_ItemURL() { + return extra_ItemURL; + } + + public void setExtra_ItemURL(String extra_ItemURL) { + this.extra_ItemURL = extra_ItemURL; + } + + public String getExtra_SystemType() { + return extra_SystemType; + } + + public void setExtra_SystemType(String extra_SystemType) { + this.extra_SystemType = extra_SystemType; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -196,14 +199,14 @@ public class CatalogueDataset implements Serializable, IsSerializable { builder.append(status); builder.append(", title="); builder.append(title); - builder.append(", type="); - builder.append(type); builder.append(", url="); builder.append(url); builder.append(", version="); builder.append(version); - builder.append(", d4scienceItemURL="); - builder.append(d4scienceItemURL); + builder.append(", extra_ItemURL="); + builder.append(extra_ItemURL); + builder.append(", extra_SystemType="); + builder.append(extra_SystemType); builder.append(", created="); builder.append(created); builder.append("]");