diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java index 10946c3..b7f1266 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java @@ -128,6 +128,8 @@ public class GeoportalDataViewer implements EntryPoint { private TimelineManagerStatus timelineMS = new TimelineManagerStatus(applicationBus); + private boolean initApplication; + /** * This is the entry point method. */ @@ -172,6 +174,8 @@ public class GeoportalDataViewer implements EntryPoint { } private void initApplication() { + + initApplication = true; Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override @@ -418,7 +422,11 @@ public class GeoportalDataViewer implements EntryPoint { attempt = 0; - if (paramGeonaItemID != null) { // waiting for record retrieved by service before calling the WFS + if (paramGeonaItemID != null && initApplication) { // waiting for record retrieved by service before calling the WFS + + //forcing once at init time + initApplication = false; + final int MAX_RETRY = 15; Timer timer = new com.google.gwt.user.client.Timer() { diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java index b2c9829..86ee006 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java @@ -538,7 +538,7 @@ public abstract class OpenLayerMap { if (wmsDetailsLayerMap == null) return; - GWT.log("Removing layers: " + wmsDetailsLayerMap.keySet() + " from map"); + GWT.log("Removing wmsDetailsLayerMap: " + wmsDetailsLayerMap.keySet() + " from map"); for (String key : wmsDetailsLayerMap.keySet()) { Image layer = wmsDetailsLayerMap.get(key); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/SearchFacilityUI.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/SearchFacilityUI.java deleted file mode 100644 index c76bc6d..0000000 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/SearchFacilityUI.java +++ /dev/null @@ -1,475 +0,0 @@ -//package org.gcube.portlets.user.geoportaldataviewer.client.ui; -// -//import java.util.ArrayList; -//import java.util.Arrays; -//import java.util.HashMap; -//import java.util.List; -//import java.util.Map; -// -//import org.gcube.application.geoportalcommon.shared.ResultSetPaginatedData; -//import org.gcube.application.geoportalcommon.shared.SearchingFilter; -//import org.gcube.application.geoportalcommon.shared.SearchingFilter.LOGICAL_OP; -//import org.gcube.application.geoportalcommon.shared.SearchingFilter.ORDER; -//import org.gcube.application.geoportalcommon.shared.WhereClause; -//import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; -//import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync; -//import org.gcube.portlets.user.geoportaldataviewer.client.events.SearchPerformedEvent; -//import org.gcube.portlets.user.geoportaldataviewer.client.util.LoaderIcon; -// -//import com.github.gwtbootstrap.client.ui.Alert; -//import com.github.gwtbootstrap.client.ui.Button; -//import com.github.gwtbootstrap.client.ui.DropdownButton; -//import com.github.gwtbootstrap.client.ui.ListBox; -//import com.github.gwtbootstrap.client.ui.NavLink; -//import com.github.gwtbootstrap.client.ui.TextBox; -//import com.github.gwtbootstrap.client.ui.constants.AlertType; -//import com.github.gwtbootstrap.client.ui.constants.ButtonType; -//import com.google.gwt.core.client.GWT; -//import com.google.gwt.event.dom.client.ChangeEvent; -//import com.google.gwt.event.dom.client.ChangeHandler; -//import com.google.gwt.event.dom.client.ClickEvent; -//import com.google.gwt.event.dom.client.ClickHandler; -//import com.google.gwt.event.dom.client.KeyPressEvent; -//import com.google.gwt.event.dom.client.KeyPressHandler; -//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.Window; -//import com.google.gwt.user.client.rpc.AsyncCallback; -//import com.google.gwt.user.client.ui.Composite; -//import com.google.gwt.user.client.ui.HTML; -//import com.google.gwt.user.client.ui.HTMLPanel; -//import com.google.gwt.user.client.ui.HorizontalPanel; -//import com.google.gwt.user.client.ui.Widget; -// -// -///** -// * The Class SearchFacilityUI. -// * -// * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it -// * -// * Dec 14, 2021 -// */ -//public class SearchFacilityUI extends Composite { -// -// private static SearchFacilityPanelUiBinder uiBinder = GWT.create(SearchFacilityPanelUiBinder.class); -// -// protected static final int MIN_LENGHT_SERCHING_STRING = 3; -// -// @UiField -// ListBox listBoxSortBy; -// -// @UiField -// ListBox listBoxSearchFor; -// -// @UiField -// TextBox searchField; -// -// @UiField -// NavLink sortByToogle; -// -// @UiField -// Button resetSearch; -// -// @UiField -// HTMLPanel panelResults; -// -// @UiField -// HorizontalPanel toogleSortBy; -// -// private List searchForFields; -// -// private List sortByFields; -// -// private SearchingFilter currentSortFilter; -// -// private HandlerManager appManagerBus; -// -// private static final String LABEL_FILTER_SEPARATOR = " - "; -// -// private ResultSetPaginatedData latestResult; -// -// private DropdownButton searchFacilityButton; -// -// /** -// * The Interface SearchFacilityPanelUiBinder. -// * -// * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it -// * -// * Dec 14, 2021 -// */ -// interface SearchFacilityPanelUiBinder extends UiBinder { -// } -// -// /** -// * Instantiates a new search facility UI. -// * -// * @param appManagerBus the app manager bus -// * @param sortByFields the sort by fields -// * @param searchForFields the search for fields -// * @param initialSortFilter the initial sort filter -// */ -// public SearchFacilityUI(HandlerManager appManagerBus, List sortByFields, List searchForFields, -// SearchingFilter initialSortFilter) { -// initWidget(uiBinder.createAndBindUi(this)); -// this.searchForFields = searchForFields; -// this.currentSortFilter = initialSortFilter; -// this.sortByFields = sortByFields; -// this.appManagerBus = appManagerBus; -// -// resetSearch.setType(ButtonType.LINK); -// -// listBoxSortBy.setWidth("180px"); -// listBoxSearchFor.setWidth("140px"); -// -// bindEvents(); -// } -// -// /** -// * To label filter. -// * -// * @param itemField the item field -// * @param direction the direction -// * @return the string -// */ -// private String toLabelFilter(ItemFieldDV itemField, ORDER direction) { -// String labelFilter = itemField.getDisplayName() + LABEL_FILTER_SEPARATOR + direction.name(); -// return labelFilter; -// } -// -// /** -// * Bind events. -// */ -// private void bindEvents() { -// -// for (ItemFieldDV record_FIELD : sortByFields) { -// if(record_FIELD.isSortable()) { -// String labelASC = toLabelFilter(record_FIELD, ORDER.ASC); -// String labelDESC = toLabelFilter(record_FIELD, ORDER.DESC); -// listBoxSortBy.addItem(labelASC); -// listBoxSortBy.addItem(labelDESC); -// } -// } -// -// listBoxSortBy.addChangeHandler(new ChangeHandler() { -// -// @Override -// public void onChange(ChangeEvent event) { -// if(latestResult!=null && latestResult.getData().size()>0) { -// doSearchEvent(); -// } -// } -// }); -// -// for (ItemFieldDV record_FIELD : searchForFields) { -// GWT.log("search for: "+record_FIELD); -// if(record_FIELD.isSearchable()) { -// listBoxSearchFor.addItem(record_FIELD.getDisplayName()); -// } -// } -// -// listBoxSearchFor.addChangeHandler(new ChangeHandler() { -// -// @Override -// public void onChange(ChangeEvent event) { -// if (searchField.getText().length() >= MIN_LENGHT_SERCHING_STRING) { -// doSearchEvent(); -// } -// -// } -// }); -// -// sortByToogle.addClickHandler(new ClickHandler() { -// -// @Override -// public void onClick(ClickEvent event) { -// if (toogleSortBy.isVisible()) -// toogleSortBy.setVisible(false); -// else -// toogleSortBy.setVisible(true); -// -// } -// }); -// -// searchField.addKeyPressHandler(new KeyPressHandler() { -// -// @Override -// public void onKeyPress(KeyPressEvent event) { -// if (com.google.gwt.event.dom.client.KeyCodes.KEY_ENTER == event.getCharCode()) { -// GWT.log(searchField.getText()); -// doSearchEvent(); -// } -// -// } -// }); -// -// resetSearch.addClickHandler(new ClickHandler() { -// -// @Override -// public void onClick(ClickEvent event) { -// searchField.setText(""); -// resetSearch.setVisible(false); -// panelResults.clear(); -// latestResult = null; -// appManagerBus.fireEvent(new SearchPerformedEvent(null,true)); -// setSearchEnabled(false); -// } -// }); -// -// } -// -// private void setSearchEnabled(boolean bool) { -// if(bool) { -// searchFacilityButton.getElement().addClassName("highlight-button"); -// } -// else { -// searchFacilityButton.getElement().removeClassName("highlight-button"); -// } -// } -// -// /** -// * Search concessioni. -// */ -// private void searchConcessioni() { -// -// SearchingFilter filter = getCurrentSortFilter(); -// panelResults.clear(); -// panelResults.add(new HTML("
")); -// panelResults.add(new LoaderIcon("Searching...")); -// GeoportalDataViewerServiceAsync.Util.getInstance().getListConcessioni(0, 30, filter, false, -// new AsyncCallback() { -// -// -// -// @Override -// public void onFailure(Throwable caught) { -//// showLoading(false); -//// Window.alert(caught.getMessage()); -// panelResults.clear(); -// panelResults.add(new HTML("
")); -// Alert alert = new Alert("Error on searching. Please, refresh or change the search"); -// alert.setType(AlertType.ERROR); -// alert.setClose(false); -// panelResults.add(alert); -// } -// -// @Override -// public void onSuccess(ResultSetPaginatedData result) { -// -// Window.alert("searchConcessioni must be revisited"); -// /* -// appManagerBus.fireEvent(new SearchPerformedEvent(result.getData(),false)); -// -// -// setSearchEnabled(true); -// latestResult = result; -// -// panelResults.clear(); -// panelResults.add(new HTML("
")); -// -// if (result.getData().size() == 0) { -// panelResults.add(new HTML("No result found")); -// return; -// } -// -// FlexTable ft = new FlexTable(); -// ft.getElement().setClassName("table-results"); -// int i = 1; -// ft.setWidget(0, i, new HTML("Nome Progetto")); -// -// String selValue = listBoxSearchFor.getSelectedValue().toLowerCase(); -// -// boolean addIntroduction = false; -// if(selValue.startsWith("proj") || selValue.startsWith("any")) { -// ft.setWidget(0, ++i, new HTML("Introduzione")); -// addIntroduction = true; -// } -// -// boolean addStaff = false; -// if(selValue.startsWith("director")) { -// ft.setWidget(0, ++i, new HTML("Autori")); -// ft.setWidget(0, ++i, new HTML("Responsabile")); -// ft.setWidget(0, ++i, new HTML("Editore")); -// ft.setWidget(0, ++i, new HTML("Titolari")); -// ft.setWidget(0, ++i, new HTML("Contributore")); -// addStaff = true; -// } -// boolean addParole = false; -// if(selValue.startsWith("keyword")) { -// ft.setWidget(0, ++i, new HTML("Parole Libere")); -// ft.setWidget(0, ++i, new HTML("Parole Cronologia")); -// addParole = true; -// } -// -// i = 1; -// for (DocumentDV concessione : result.getData()) { -// int j = -1; -// -// NavLink locateOnMap = new NavLink("Show"); -// locateOnMap.setTitle("Locate on the Map and show details"); -// locateOnMap.setIcon(IconType.MAP_MARKER); -// -// locateOnMap.addClickHandler(new ClickHandler() { -// -// @Override -// public void onClick(ClickEvent event) { -// GeoportalItemReferences gir = new GeoportalItemReferences(concessione.getItemId(), GeoportalDataViewerConstants.RECORD_TYPE.CONCESSIONE.toString()); -// appManagerBus.fireEvent(new ShowDetailsEvent(gir, null, null)); -// appManagerBus.fireEvent(new ShowPopupOnCentroiEvent(concessione)); -// -// } -// }); -// -// ft.setWidget(i, ++j, locateOnMap); -// -// -// ft.setWidget(i, ++j, new HTML(concessione.getNome())); -// if(addIntroduction) -// ft.setWidget(i, ++j, new HTML(StringUtil.ellipsize(concessione.getIntroduzione(), 200))); -// -// if(addStaff) { -// ft.setWidget(i, ++j, new HTML(toDisplayList(concessione.getAuthors()))); -// ft.setWidget(i, ++j, new HTML(toDisplayList(Arrays.asList(concessione.getResponsabile())))); -// ft.setWidget(i, ++j, new HTML(toDisplayList(Arrays.asList(concessione.getEditore())))); -// ft.setWidget(i, ++j, new HTML(toDisplayList(concessione.getTitolari()))); -// ft.setWidget(i, ++j, new HTML(toDisplayList(Arrays.asList(concessione.getContributore())))); -// } -// -// if(addParole) { -// ft.setWidget(i, ++j, new HTML(toDisplayList(concessione.getParoleChiaveLibere()))); -// ft.setWidget(i, ++j, new HTML(toDisplayList(concessione.getParoleChiaveICCD()))); -// } -// -// -// -// i++; -// } -// -// panelResults.add(ft); -// */ -// -// } -// }); -// } -// -// /** -// * To display authors. -// * -// * @param listValues the list values -// * @return the string -// */ -// private String toDisplayList(List listValues) { -// String toDisplay = ""; -// if (listValues == null) -// return toDisplay; -// -// for (String author : listValues) { -// toDisplay += author + "; "; -// } -// return toDisplay; -// } -// -// /** -// * Do search event. -// */ -// private void doSearchEvent() { -// String searchText = searchField.getText(); -// if (searchText.length() < MIN_LENGHT_SERCHING_STRING) { -// Window.alert("Please enter at least " + MIN_LENGHT_SERCHING_STRING + " characters"); -// return; -// } -// -// resetSearch.setVisible(true); -// // appManagerBus.fireEvent(new GetListOfRecordsEvent(RECORD_TYPE.CONCESSIONE, -// // getCurrentSortFilter())); -// -// searchConcessioni(); -// } -// -// /** -// * To sort filter. -// * -// * @param labelFilter the label filter -// * @return the searching filter -// */ -// public SearchingFilter toSortFilter(String labelFilter) { -// GWT.log("toSortFilter for label " + labelFilter); -// String[] array = labelFilter.split(LABEL_FILTER_SEPARATOR); -// -// SearchingFilter sortFilter = null; -// try { -// ItemFieldDV recordField = null; -// for (ItemFieldDV value : sortByFields) { -// if (array[0].equalsIgnoreCase(value.getDisplayName())) { -// recordField = value; -// break; -// } -// } -// ORDER orderField = ORDER.valueOf(array[1]); -// sortFilter = new SearchingFilter(Arrays.asList(recordField), orderField); -// } catch (Exception e) { -// -// } -// GWT.log("toSortFilter Got " + sortFilter); -// return sortFilter; -// -// } -// -// /** -// * Built searching filter. -// * -// * @return the searching filter -// */ -// private SearchingFilter builtSearchingFilter() { -// SearchingFilter searchingFilter = toSortFilter(listBoxSortBy.getSelectedValue()); -// String searchText = searchField.getText(); -// if (searchText != null && !searchText.isEmpty()) { -// Map searchInto = new HashMap(); -// -// List listOfSeachingFields = new ArrayList(); -// -// for (ItemFieldDV recordField : searchForFields) { -// if (recordField.getDisplayName().equals(listBoxSearchFor.getSelectedValue())) { -// listOfSeachingFields = recordField.getJsonFields(); -// continue; -// } -// } -// -// if(listOfSeachingFields.size()==0) { -// listOfSeachingFields.add("nome"); -// } -// for (String fieldname : listOfSeachingFields) { -// searchInto.put(fieldname, searchText); -// } -// -// WhereClause where = new WhereClause(); -// where.setSearchInto(searchInto); -// where.setOperator(LOGICAL_OP.OR); -// -// //THIS CLAUSE IS ADDED IN ORDER TO SEARCH ONLY PUBLISHED PRODUCT (WITH SUCCESS) -// Map searchInto2 = new HashMap(); -// searchInto2.put("report.status", "PASSED"); -// WhereClause where2 = new WhereClause(LOGICAL_OP.AND, searchInto2); -// -// searchingFilter.setConditions(Arrays.asList(where, where2)); -// } -// return searchingFilter; -// } -// -// /** -// * Gets the current sort filter. -// * -// * @return the current sort filter -// */ -// public SearchingFilter getCurrentSortFilter() { -// currentSortFilter = builtSearchingFilter(); -// GWT.log("currentSortFilter: " + currentSortFilter); -// return currentSortFilter; -// } -// -// public void setSearchButton(DropdownButton searchFacilityButton) { -// this.searchFacilityButton = searchFacilityButton; -// -// } -// -//} diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/SearchFacilityUI.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/SearchFacilityUI.ui.xml deleted file mode 100644 index 66679c0..0000000 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/SearchFacilityUI.ui.xml +++ /dev/null @@ -1,60 +0,0 @@ - \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java index b13b689..8a635e0 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java @@ -83,12 +83,13 @@ public class ProjectViewer extends Composite { pageViewDetails.getElement().setId("page-view-details"); } - public ProjectViewer(HandlerManager applicationBus, GeoportalItemReferences geoportalItemRefs, ProjectView projectView) { + public ProjectViewer(HandlerManager applicationBus, GeoportalItemReferences geoportalItemRefs, + ProjectView projectView) { this(applicationBus, geoportalItemRefs, projectView, true, true); } - public ProjectViewer(HandlerManager applicationBus, GeoportalItemReferences geoportalItemRefs, final ProjectView projectView, - boolean viewImageButtonVisible, boolean openImageButtonVisible) { + public ProjectViewer(HandlerManager applicationBus, GeoportalItemReferences geoportalItemRefs, + final ProjectView projectView, boolean viewImageButtonVisible, boolean openImageButtonVisible) { this(); GWT.log("Rendering " + projectView.getTheProjectDV().getId()); this.theProjectView = projectView; @@ -128,6 +129,7 @@ public class ProjectViewer extends Composite { ProjectViewer cv = new ProjectViewer(applicationBus, geoportalItemReferences, theProjectView, false, openImageButtonVisible); cv.setExpandViewButtonVisible(false); + cv.setRelationshipsButtonVisible(false); int width = Window.getClientWidth() * 75 / 100; int height = Window.getClientHeight() * 70 / 100; ModalWindow mw = new ModalWindow(theTitle, width, height); @@ -148,14 +150,14 @@ public class ProjectViewer extends Composite { relationshipsButton.setVisible(true); } else relationshipsButton.setVisible(false); - - + relationshipsButton.addClickHandler(new ClickHandler() { - + @Override public void onClick(ClickEvent event) { - applicationBus.fireEvent(new TimelineProjectRelationsEvent(theProjectView.getTheProjectDV(), EVENT_TYPE.SHOW)); - + applicationBus.fireEvent( + new TimelineProjectRelationsEvent(theProjectView.getTheProjectDV(), EVENT_TYPE.SHOW)); + } }); @@ -215,4 +217,8 @@ public class ProjectViewer extends Composite { expandButton.setVisible(bool); } + protected void setRelationshipsButtonVisible(boolean bool) { + relationshipsButton.setVisible(bool); + } + }