From 2b458df5c6ce2a7a386cad5cd91885adbbf9a6b3 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Wed, 16 Jun 2021 18:02:54 +0200 Subject: [PATCH] in progress --- .../client/CkanContentModeratorWidget.java | 25 ++- .../ui/ContentModeratorPaginatedView.java | 211 +++++++++--------- .../server/CatalogueBeansConverter.java | 6 +- .../server/CatalogueCMSFactory.java | 37 ++- .../CkanContentModeratorServiceImpl.java | 93 ++++---- .../shared/CatalogueDataset.java | 30 +-- 6 files changed, 223 insertions(+), 179 deletions(-) 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 588a84e..c5f4118 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 @@ -1,11 +1,15 @@ package org.gcube.portlets.widgets.ckancontentmoderator.client; import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; +import org.gcube.portlets.widgets.ckancontentmoderator.client.events.ClickItemEvent; +import org.gcube.portlets.widgets.ckancontentmoderator.client.events.ClickItemEventHandler; 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.table.ItemsTable.DISPLAY_FIELD; +import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; 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.Composite; @@ -26,6 +30,7 @@ public class CkanContentModeratorWidget { private ContentModeratorSystemBaseView cmsPanel = new ContentModeratorSystemBaseView(); private Boolean isContentModeratorEnabled = null; private ContentModeratorPaginatedView paginatedView; + public final static HandlerManager eventBus = new HandlerManager(null); /** * Instantiates a new ckan content moderator widget. @@ -38,10 +43,28 @@ public class CkanContentModeratorWidget { // itemsTable.initTable(null, null, new ListDataProvider()); // cmsPanel.add(itemsTable.getCellTable()); - paginatedView = new ContentModeratorPaginatedView(status, displayFields, sortByField); + paginatedView = new ContentModeratorPaginatedView(eventBus, status, displayFields, sortByField); //cmsPanel.addToTop(new LoadingPanel(new HTML("Loading..."))); cmsPanel.addToCenter(paginatedView.getCellPanel()); cmsPanel.addToBottom(paginatedView.getPagerPanel()); + bindEvents(); + } + + private void bindEvents() { + + + eventBus.addHandler(ClickItemEvent.TYPE, new ClickItemEventHandler() { + + @Override + public void onClick(ClickItemEvent clickItemEvent) { + + if(clickItemEvent.getItem() instanceof CatalogueDataset) { + CatalogueDataset clickedDataset = (CatalogueDataset) clickItemEvent.getItem(); + //Window.open(clickedDataset.getUrl(), null, "_blank"); + } + + } + }); } // /** diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java index 643470a..ef5d760 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/client/ui/ContentModeratorPaginatedView.java @@ -13,6 +13,7 @@ import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset; import org.gcube.portlets.widgets.ckancontentmoderator.shared.SearchedData; import com.google.gwt.core.client.GWT; +import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.user.cellview.client.SimplePager; import com.google.gwt.user.cellview.client.SimplePager.TextLocation; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -27,37 +28,46 @@ import com.google.gwt.view.client.Range; import com.google.gwt.view.client.SelectionModel; import com.google.gwt.view.client.SingleSelectionModel; +/** + * The Class ContentModeratorPaginatedView. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Jun 16, 2021 + */ public class ContentModeratorPaginatedView { private static final int ITEM_START_INDEX = ContentModeratorWidgetConstants.ITEM_START_INDEX; - private static final int ITEMS_PER_PAGE = ContentModeratorWidgetConstants.ITEMS_PER_PAGE; - private VerticalPanel vPanel = new VerticalPanel(); - private FlowPanel pagerPanel = new FlowPanel(); - private Boolean newLoading = false; private ItemsTable itemsTable; private MyCustomDataProvider dataProvider = new MyCustomDataProvider(); protected Widget orginalLoadingIndicator = null; private LoadingPanel loadingPanel = new LoadingPanel(new HTML("Loading data...")); - // private int serverStartIndex = 0; - private ItemStatus itemStatus; - private int serverStartIndex; - public ContentModeratorPaginatedView(ItemStatus theStatus, DISPLAY_FIELD[] displayFields, + /** + * Instantiates a new content moderator paginated view. + * + * @param eventbus + * + * @param theStatus the the status + * @param displayFields the display fields + * @param sortByField the sort by field + */ + public ContentModeratorPaginatedView(HandlerManager eventbus, ItemStatus theStatus, DISPLAY_FIELD[] displayFields, DISPLAY_FIELD sortByField) { this.itemStatus = theStatus; this.newLoading = true; - itemsTable = new ItemsTable(null, displayFields, sortByField); + itemsTable = new ItemsTable(eventbus, displayFields, sortByField); itemsTable.initTable(null, null, dataProvider); orginalLoadingIndicator = itemsTable.getCellTable().getLoadingIndicator(); initPagination(ITEMS_PER_PAGE); - loadNewPage(ITEM_START_INDEX, ITEMS_PER_PAGE,false); + loadNewPage(ITEM_START_INDEX, ITEMS_PER_PAGE, false); } /** @@ -107,6 +117,8 @@ public class ContentModeratorPaginatedView { /** * Set the panel in loading mode. + * + * @param show the show */ protected void showLoading(boolean show) { loadingPanel.setVisible(show); @@ -121,16 +133,17 @@ public class ContentModeratorPaginatedView { return pagerPanel; } - /* - * (non-Javadoc) - * - * @see org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer# - * loadFolder(org.gcube.portlets.widgets.wsexplorer.shared.Item, boolean, int, - * int, boolean) + /** + * Load new page. + * + * @param startIdx the start idx + * @param limit the limit + * @param resetStore the reset store */ public void loadNewPage(final int startIdx, final int limit, final boolean resetStore) { newLoading = resetStore; - GWT.log("loading data with parameters [startIdx: "+startIdx+", limit: " + limit + ", resetStore:" + resetStore + "]"); + GWT.log("loading data with parameters [startIdx: " + startIdx + ", limit: " + limit + ", resetStore:" + + resetStore + "]"); // showLoading(true); int newStartIndex = startIdx; @@ -141,13 +154,84 @@ public class ContentModeratorPaginatedView { serverStartIndex = 0; GWT.log("Store reset performed start index is: " + newStartIndex); getAsycnDataProvider().updateRowCount(ITEMS_PER_PAGE, false); - //newLoading = false; + // newLoading = false; } loadItemsForStatus(itemStatus, newStartIndex, limit, serverStartIndex); } + /** + * Sets the new page result. + * + * @param result the new new page result + */ + private void setNewPageResult(SearchedData result) { + + serverStartIndex = result.getServerEndIndex(); + + if (newLoading) { + getCellTable().setVisibleRangeAndClearData(new Range(result.getClientStartIndex(), ITEMS_PER_PAGE), false); + } + + SelectionModel sm = getCellTable().getSelectionModel(); + + if (sm instanceof SingleSelectionModel) { + SingleSelectionModel ssm = (SingleSelectionModel) sm; + ssm.clear(); + } + + getAsycnDataProvider().updateRowCount((int) result.getTotalItems(), true); + getAsycnDataProvider().updateRowData(result.getClientStartIndex(), result.getData()); + + if (result.getData().size() == 0) { + getCellTable().setLoadingIndicator(new Label("No data")); + } else { + getCellTable().setLoadingIndicator(orginalLoadingIndicator); + } + + GWT.log("Updating row data startIndex: " + result.getClientStartIndex() + " children size: " + + result.getData().size()); + GWT.log("getAsycnDataProvider().getDataDisplays().size(): " + getCellTable().getRowCount()); + + if (result.isServerSearchFinished()) { + GWT.log("Search finished!!!"); + getAsycnDataProvider().updateRowCount(getCellTable().getRowCount(), true); + } + newLoading = false; + + } + + /** + * Load items for status. + * + * @param status the status + * @param offset the offset + * @param limit the limit + * @param serverIndex the server index + */ + private void loadItemsForStatus(ItemStatus status, int offset, int limit, int serverIndex) { + showLoading(true); + + GWT.log("calling getDataForStatus with parameters [startIndex: " + offset + ", limit: " + limit + + ", serverIndex:" + serverIndex + "]"); + CkanContentModeratorWidget.contentModeratorService.getDataForStatus(status, offset, limit, serverIndex, + new AsyncCallback() { + + @Override + public void onSuccess(SearchedData result) { + showLoading(false); + setNewPageResult(result); + } + + @Override + public void onFailure(Throwable caught) { + showLoading(false); + } + }); + + } + /** * A custom {@link AsyncDataProvider}. * @@ -176,95 +260,12 @@ public class ContentModeratorPaginatedView { GWT.log("OnLoading is true.. returning"); return; } - try { - GWT.log("Range changed: " + start + " " + length + " visible count: " + display.getVisibleItemCount()); - // GWT.log("Server start index: " + serverStartIndex); -// int newStart = start < serverStartIndex? serverStartIndex : start; -// GWT.log("newStart index: "+newStart); - loadNewPage(start, length, false); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + + GWT.log("Range changed: " + start + " " + length + " visible count: " + display.getVisibleItemCount()); + loadNewPage(start, length, false); + } } - - - /** - * Sets the new page result. - * - * @param result the new new page result - */ - private void setNewPageResult(SearchedData result){ - - serverStartIndex = result.getServerEndIndex(); - - if(newLoading){ - getCellTable().setVisibleRangeAndClearData(new Range(result.getClientStartIndex(), ITEMS_PER_PAGE), false); - } - - SelectionModel sm = getCellTable().getSelectionModel(); - - if(sm instanceof SingleSelectionModel){ - SingleSelectionModel ssm = (SingleSelectionModel) sm; - ssm.clear(); - } - - getAsycnDataProvider().updateRowCount((int) result.getTotalItems(), true); - getAsycnDataProvider().updateRowData(result.getClientStartIndex(), result.getData()); - - if(result.getData().size()==0){ - getCellTable().setLoadingIndicator(new Label("No data")); - }else{ - getCellTable().setLoadingIndicator(orginalLoadingIndicator); - } - - //getCellTable().setVisibleRangeAndClearData(new Range(startIdx, result.getChildren()).), false); - //getAsycnDataProvider().getDataDisplays(). - GWT.log("Updating row data startIndex: "+result.getClientStartIndex() + " children size: "+result.getData().size()); - GWT.log("getAsycnDataProvider().getDataDisplays().size(): "+getCellTable().getRowCount()); - - if(result.isServerSearchFinished()){ - GWT.log("Search finished!!!"); - getAsycnDataProvider().updateRowCount(getCellTable().getRowCount(), true); - } - //getCellTable().setPageSize(result.getChildren().size()+1); - //getCellTable().setVisibleRange(startIdx, result.getChildren().size()); - //getCellTable().redraw(); - //GWT.log("cellTable size: "+getCellTable().getRowCount()); - newLoading = false; - - } - - /** - * Load items for status. - * - * @param status the status - * @param offset - * @param limit - * @throws Exception the exception - */ - private void loadItemsForStatus(ItemStatus status, int offset, int limit, int serverIndex) { - showLoading(true); - - //TODO implement new method - GWT.log("calling getDataForStatus with parameters [startIndex: "+offset+", limit: " + limit + ", serverIndex:" + serverIndex + "]"); - CkanContentModeratorWidget.contentModeratorService.getDataForStatus(status, offset, limit, serverIndex, - new AsyncCallback() { - - @Override - public void onSuccess(SearchedData result) { - showLoading(false); - setNewPageResult(result); - } - - @Override - public void onFailure(Throwable caught) { - showLoading(false); - } - }); - - } } 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 8929790..ea2f342 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 @@ -24,7 +24,10 @@ public class CatalogueBeansConverter { myDataset.setAuthor(t.getAuthor()); myDataset.setAuthorEmail(t.getAuthorEmail()); - myDataset.setCkanDatasetURL(null); + + //is it needed?? + myDataset.setD4ScienceItemURL(null); + myDataset.setId(t.getId()); myDataset.setLicenseId(t.getLicenseId()); myDataset.setMaintainer(t.getMaintainer()); @@ -34,6 +37,7 @@ public class CatalogueBeansConverter { 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()); return myDataset; diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueCMSFactory.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueCMSFactory.java index 3f546f1..29e9fea 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueCMSFactory.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CatalogueCMSFactory.java @@ -7,12 +7,13 @@ import org.gcube.datacatalogue.utillibrary.server.cms.CatalogueContentModeratorS import org.slf4j.Logger; import org.slf4j.LoggerFactory; + /** * A factory for getting CatalogueContentModeratorSystem objects. * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Jun 14, 2021 + * Jun 14, 2021 */ public class CatalogueCMSFactory { @@ -26,21 +27,21 @@ public class CatalogueCMSFactory { * * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Jun 14, 2021 + * Jun 16, 2021 */ private class CacheBean { - CatalogueContentModeratorSystem cmsInstance; + DataCatalogueImpl dataCatalogueImpl; long ttl; /** * Instantiates a new cache bean. * - * @param ttl the ttl - * @param cmsInstance the cms instance + * @param ttl the ttl + * @param dataCatalogueImpl the data catalogue impl */ - public CacheBean(long ttl, CatalogueContentModeratorSystem cmsInstance) { + public CacheBean(long ttl, DataCatalogueImpl dataCatalogueImpl) { this.ttl = ttl; - this.cmsInstance = cmsInstance; + this.dataCatalogueImpl = dataCatalogueImpl; } } @@ -73,17 +74,29 @@ public class CatalogueCMSFactory { */ public CatalogueContentModeratorSystem getCMSPerScope(String scope) throws Exception { + DataCatalogueImpl dataCatalogueImpl = getCatalogueImplPerScope(scope); + return dataCatalogueImpl.getCatalogueContentModerator(); + } + + /** + * Gets the catalogue impl per scope. + * + * @param scope the scope + * @return the catalogue impl per scope + * @throws Exception the exception + */ + public DataCatalogueImpl getCatalogueImplPerScope(String scope) throws Exception { + if (scope == null || scope.isEmpty()) throw new IllegalArgumentException("Invalid scope given!"); if (cache.containsKey(scope) && !expired(cache.get(scope))) { - return cache.get(scope).cmsInstance; + return cache.get(scope).dataCatalogueImpl; } else { - logger.info("Creating "+CatalogueCMSFactory.class.getSimpleName()+" for scope " + scope); + logger.info("Creating " + CatalogueCMSFactory.class.getSimpleName() + " for scope " + scope); DataCatalogueImpl dci = new DataCatalogueImpl(scope); - CatalogueContentModeratorSystem cmsInstance = dci.getCatalogueContentModerator(); - cache.put(scope, new CacheBean(System.currentTimeMillis(), cmsInstance)); - return cmsInstance; + cache.put(scope, new CacheBean(System.currentTimeMillis(), dci)); + return dci; } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java index 475b14d..dac1e2a 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorServiceImpl.java @@ -5,6 +5,7 @@ import java.util.List; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.datacatalogue.utillibrary.server.DataCatalogueImpl; import org.gcube.datacatalogue.utillibrary.server.cms.CatalogueContentModeratorSystem; import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset; @@ -59,7 +60,8 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem String token = WsUtil.getCurrentToken(scope, user.getUsername()); ScopeProvider.instance.set(scope); SecurityTokenProvider.instance.set(token); - CatalogueContentModeratorSystem cmsInstance = CatalogueCMSFactory.getFactory().getCMSPerScope(scope); + DataCatalogueImpl catalogueImpl = CatalogueCMSFactory.getFactory().getCatalogueImplPerScope(scope); + CatalogueContentModeratorSystem cmsInstance = catalogueImpl.getCatalogueContentModerator(); List datasets = cmsInstance.getListItemsForStatus(theStatus, limit, offset); if (datasets != null) { int size = datasets.size(); @@ -67,6 +69,8 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem LOG.info("datasetList for input parameters returned by CMS has size: " + size); for (CkanDataset ckanDataset : datasets) { CatalogueDataset ds = CatalogueBeansConverter.toCatalogueDataset.apply(ckanDataset); + String datasetURL = String.format("%s/dataset/%s", catalogueImpl.getCatalogueUrl(),ds.getName()); + ds.setUrl(datasetURL); LOG.debug("converted dataset is: " + ds); datasetList.add(ds); } @@ -101,8 +105,10 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem } @Override - public SearchedData getDataForStatus(ItemStatus status, int offset, int limit, int serverStartIndex) throws Exception { - LOG.info("called getDataForStatus [status: "+status+", offset: "+offset+", limit: "+limit+", serverIndex: "+serverStartIndex); + public SearchedData getDataForStatus(ItemStatus status, int offset, int limit, int serverStartIndex) + throws Exception { + LOG.info("called getDataForStatus [status: " + status + ", offset: " + offset + ", limit: " + limit + + ", serverIndex: " + serverStartIndex); try { String scope = WsUtil.getCurrentScope(this.getThreadLocalRequest()); @@ -110,64 +116,61 @@ public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implem String token = WsUtil.getCurrentToken(scope, user.getUsername()); ScopeProvider.instance.set(scope); SecurityTokenProvider.instance.set(token); - //int searchStartIndex = limit < serverStartIndex? serverStartIndex : offset; - + // int searchStartIndex = limit < serverStartIndex? serverStartIndex : offset; + int searchStartIndex = offset; CatalogueContentModeratorSystem cmsInstance = CatalogueCMSFactory.getFactory().getCMSPerScope(scope); SearchedData searchedData = new SearchedData(offset, limit, searchStartIndex, false); long totalItemsForStatus = cmsInstance.countListItemsForStatus(status); - LOG.info("totalItemsForStatus "+status+" are : "+totalItemsForStatus); + LOG.info("totalItemsForStatus " + status + " are : " + totalItemsForStatus); List listDataset = new ArrayList(); try { - LOG.debug("getListItemsForStatus with searchStartIndex: "+searchStartIndex+", limit: "+limit); + LOG.debug("getListItemsForStatus with searchStartIndex: " + searchStartIndex + ", limit: " + limit); listDataset = getListItemsForStatus(status, searchStartIndex, limit); - }catch (Exception e) { - LOG.error("Error occurred on gettin items for status: "+status,e); + } catch (Exception e) { + LOG.error("Error occurred on gettin items for status: " + status, e); } - + int listDatasetSize = listDataset.size(); - LOG.debug("Returned "+listDatasetSize+" with above parameters"); + LOG.debug("Returned " + listDatasetSize + " with above parameters"); searchedData.setData(listDataset); searchedData.setTotalItems(totalItemsForStatus); - if(listDatasetSize == limit || listDatasetSize==0){ - LOG.debug("Page completed returning "+listDatasetSize+ " items"); - int newOffset = searchStartIndex+offset; - searchedData.setServerSearchFinished(newOffset>totalItemsForStatus || listDatasetSize == 0); - LOG.debug("is Search finished: "+searchedData.isServerSearchFinished()); + if (listDatasetSize == limit || listDatasetSize == 0) { + LOG.debug("Page completed returning " + listDatasetSize + " items"); + int newOffset = searchStartIndex + offset; + searchedData.setServerSearchFinished(newOffset > totalItemsForStatus || listDatasetSize == 0); + LOG.debug("is Search finished: " + searchedData.isServerSearchFinished()); return searchedData; } - /*int offsetStartIndex = searchStartIndex; - boolean pageOffsetOut = false; - while(listDatasetSize < offset && !searchedData.isServerSearchFinished() && !pageOffsetOut){ //&& SEARCH NOT ULTIMATED - LOG.debug("MyLg new WHILE Items count: "+totalItemsForStatus+" is less than limit.."); - - int newOffsetStartIndex = offsetStartIndex+limit+1; - LOG.debug("MyLg NewStartIndex is startIndex+limit: "+newOffsetStartIndex); - - //THERE ARE OTHER CHILDREN OVER NEW START INDEX - if(newOffsetStartIndex < totalItemsForStatus){ - //newLimit = limit - childrenToReturn.size(); - LOG.debug("MyLg getting items with index start: "+newOffsetStartIndex + ", limit: "+offset); - - int diff = (int) (offset - totalItemsForStatus); //How items are remaining - //int offset = 0; - LOG.debug("MyLg new search start: "+newOffsetStartIndex + ", diff: "+diff+ ", retrieved: "+listDatasetSize); - if(diff >= listDatasetSize){ - }else{ - pageOffsetOut = true; - } - offsetStartIndex = newOffsetStartIndex; - LOG.debug("MyLg items count is: "+totalItemsForStatus + " serverEndIndex: "+offsetStartIndex); - searchedData.setServerEndIndex(offsetStartIndex); - }else{ - LOG.debug("New start index (oldStartIndex+limit) is grather than total items count, search is finished"); - searchedData.setServerSearchFinished(true); - } - }*/ - LOG.debug("Returning: "+searchedData); + /* + * int offsetStartIndex = searchStartIndex; boolean pageOffsetOut = false; + * while(listDatasetSize < offset && !searchedData.isServerSearchFinished() && + * !pageOffsetOut){ //&& SEARCH NOT ULTIMATED + * LOG.debug("MyLg new WHILE Items count: " + * +totalItemsForStatus+" is less than limit.."); + * + * int newOffsetStartIndex = offsetStartIndex+limit+1; + * LOG.debug("MyLg NewStartIndex is startIndex+limit: "+newOffsetStartIndex); + * + * //THERE ARE OTHER CHILDREN OVER NEW START INDEX if(newOffsetStartIndex < + * totalItemsForStatus){ //newLimit = limit - childrenToReturn.size(); + * LOG.debug("MyLg getting items with index start: "+newOffsetStartIndex + + * ", limit: "+offset); + * + * int diff = (int) (offset - totalItemsForStatus); //How items are remaining + * //int offset = 0; LOG.debug("MyLg new search start: "+newOffsetStartIndex + + * ", diff: "+diff+ ", retrieved: "+listDatasetSize); if(diff >= + * listDatasetSize){ }else{ pageOffsetOut = true; } offsetStartIndex = + * newOffsetStartIndex; LOG.debug("MyLg items count is: "+totalItemsForStatus + + * " serverEndIndex: "+offsetStartIndex); + * searchedData.setServerEndIndex(offsetStartIndex); }else{ LOG. + * debug("New start index (oldStartIndex+limit) is grather than total items count, search is finished" + * ); searchedData.setServerSearchFinished(true); } } + */ + LOG.debug("Returning: " + searchedData); return searchedData; } catch (Exception e) { 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 3cbec96..4d75d86 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,7 @@ import org.gcube.datacatalogue.utillibrary.shared.ItemStatus; import com.google.gwt.user.client.rpc.IsSerializable; -// TODO: Auto-generated Javadoc + /** * The Class CatalogueDataset. * @@ -34,7 +34,7 @@ public class CatalogueDataset implements Serializable, IsSerializable { private String type; private String url; private String version; - private String ckanDatasetURL; + private String d4scienceItemURL; private long created; /** @@ -99,8 +99,12 @@ public class CatalogueDataset implements Serializable, IsSerializable { return version; } - public String getCkanDatasetURL() { - return ckanDatasetURL; + public String getD4scienceItemURL() { + return d4scienceItemURL; + } + + public long getCreated() { + return created; } public void setAuthor(String author) { @@ -159,16 +163,12 @@ public class CatalogueDataset implements Serializable, IsSerializable { this.version = version; } - public void setCkanDatasetURL(String ckanDatasetURL) { - this.ckanDatasetURL = ckanDatasetURL; + public void setD4ScienceItemURL(String d4scienceItemURL) { + this.d4scienceItemURL = d4scienceItemURL; } - - public void setCreated(long creationTime) { - this.created = creationTime; - } - - public long getCreated() { - return created; + + public void setCreated(long created) { + this.created = created; } @Override @@ -202,8 +202,8 @@ public class CatalogueDataset implements Serializable, IsSerializable { builder.append(url); builder.append(", version="); builder.append(version); - builder.append(", ckanDatasetURL="); - builder.append(ckanDatasetURL); + builder.append(", d4scienceItemURL="); + builder.append(d4scienceItemURL); builder.append(", created="); builder.append(created); builder.append("]");