diff --git a/.classpath b/.classpath
index 48309fc..d8ef8c7 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -35,5 +35,5 @@
-
+
diff --git a/.settings/com.gwtplugins.gdt.eclipse.core.prefs b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
index cd35c99..988b8c4 100644
--- a/.settings/com.gwtplugins.gdt.eclipse.core.prefs
+++ b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
@@ -1,4 +1,4 @@
eclipse.preferences.version=1
-lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-3.0.0
+lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-3.0.1-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 3db9d25..5fe4fd0 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,5 +1,5 @@
-
+
@@ -35,8 +35,10 @@
-
-
+
+
+
+
@@ -73,7 +75,8 @@
-
+
+
@@ -110,7 +113,8 @@
-
+
+
@@ -147,7 +151,8 @@
-
+
+
@@ -184,7 +189,8 @@
-
+
+
@@ -221,7 +227,8 @@
-
+
+
@@ -258,7 +265,8 @@
-
+
+
@@ -295,7 +303,8 @@
-
+
+
@@ -332,7 +341,8 @@
-
+
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9434001..5c26fd2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [v3.0.1-SNAPSHOT] - 2022-12-13
+
+- [#24300] Improved the GUI of the search functionality when multiple collections are available.
+
## [v3.0.0] - 2022-11-28
- [#23940] Passed to CMS-UCD
diff --git a/pom.xml b/pom.xml
index f1c1100..56368a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
org.gcube.portlets.user
geoportal-data-viewer-app
war
- 3.0.0
+ 3.0.1-SNAPSHOT
GeoPortal Data Viewer App
The GeoPortal Data Viewer App is an application to access, discovery and navigate the Geoportal projects/documents by a Web-Map Interface
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java
index e7aacda..1cecd06 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java
@@ -30,6 +30,7 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BaseMapLayer;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.CheckBox;
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.NavList;
import com.github.gwtbootstrap.client.ui.Paragraph;
@@ -38,6 +39,8 @@ import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Style.Unit;
+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.logical.shared.ValueChangeEvent;
@@ -56,6 +59,8 @@ import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
+import ol.has.Has;
+
/**
* The Class GeonaDataViewMainPanel.
*
@@ -65,6 +70,8 @@ import com.google.gwt.user.client.ui.Widget;
*/
public class GeonaDataViewMainPanel extends Composite {
+ private static final String PLACEHOLDER_SELECT_SEARCH_IN = "Select Collection...";
+
private static GeonaDataViewMainPanelUiBinder uiBinder = GWT.create(GeonaDataViewMainPanelUiBinder.class);
/**
@@ -114,7 +121,7 @@ public class GeonaDataViewMainPanel extends Composite {
DropdownButton searchFacilityButton;
@UiField
- NavList navListSearch;
+ ListBox navListSearch;
@UiField
ScrollPanel overlayLayersPanel;
@@ -142,6 +149,10 @@ public class GeonaDataViewMainPanel extends Composite {
private HashMap> mapCollectionCheckBoxes;
+ private SearchFacilityUI currentSearchFacility;
+
+ private HashMap mapItemFieldsForUCD = new HashMap();
+
public GeonaDataViewMainPanel(HandlerManager applicationBus, int mapHeight,
List itemFieldsReponse) {
initWidget(uiBinder.createAndBindUi(this));
@@ -171,53 +182,67 @@ public class GeonaDataViewMainPanel extends Composite {
openCollectionDropDown.setIcon(IconType.COMPASS);
+ mapItemFieldsForUCD.clear();
+
SearchingFilter initialSortFilter = new SearchingFilter();
initialSortFilter.setOrder(ORDER.ASC);
- for (final ItemFieldsResponse ifResponse : itemFieldsReponse) {
+ navListSearch.addItem(PLACEHOLDER_SELECT_SEARCH_IN, PLACEHOLDER_SELECT_SEARCH_IN);
+
+ navListSearch.getElement().getFirstChildElement().setAttribute("disabled", "disabled");
- List result = ifResponse.getListItemFields();
- List displayFields = new ArrayList();
- List searchByFields = new ArrayList();
- List sortByFields = new ArrayList();
- for (ItemFieldDV itemField : result) {
- if (itemField.isDisplayAsResult()) {
- displayFields.add(itemField);
- }
+ for (final ItemFieldsResponse itemFieldResp : itemFieldsReponse) {
- if (itemField.isSearchable()) {
- searchByFields.add(itemField);
- }
+ UseCaseDescriptorDV ucd = itemFieldResp.getUseCaseDescriptorDV();
+ mapItemFieldsForUCD.put(ucd.getId(), itemFieldResp);
+ GWT.log("Added navLink for: " + ucd.getName());
+ navListSearch.addItem(ucd.getName(), ucd.getProfileID());
+ }
- if (itemField.isSortable()) {
- sortByFields.add(itemField);
- }
- }
+ navListSearch.addChangeHandler(new ChangeHandler() {
- final UseCaseDescriptorDV ucd = ifResponse.getUseCaseDescriptorDV();
- NavLink navLink = new NavLink(ifResponse.getUseCaseDescriptorDV().getName());
- // navLink.setText(ucd.getName());
- navLink.addClickHandler(new ClickHandler() {
+ private SearchFacilityUI currentSearchFacility;
- private SearchFacilityUI currentSearchFacility;
+ @Override
+ public void onChange(ChangeEvent event) {
- @Override
- public void onClick(ClickEvent event) {
- if (this.currentSearchFacility != null)
- this.currentSearchFacility.resetCurrentSearch();
+ if (this.currentSearchFacility != null)
+ this.currentSearchFacility.resetCurrentSearch();
+ String ucdProfileID = navListSearch.getValue(navListSearch.getSelectedIndex());
+ GWT.log("UCD ProfileID selected: " + ucdProfileID);
+
+ if (ucdProfileID.compareTo(PLACEHOLDER_SELECT_SEARCH_IN) != 0) {
+
searchFacilityPanel.clear();
- this.currentSearchFacility = new SearchFacilityUI(ucd.getProfileID(), applicationBus, displayFields,
+ ItemFieldsResponse itemFieldResp = mapItemFieldsForUCD.get(ucdProfileID);
+
+ List result = itemFieldResp.getListItemFields();
+ List displayFields = new ArrayList();
+ List searchByFields = new ArrayList();
+ List sortByFields = new ArrayList();
+ for (ItemFieldDV itemField : result) {
+ if (itemField.isDisplayAsResult()) {
+ displayFields.add(itemField);
+ }
+
+ if (itemField.isSearchable()) {
+ searchByFields.add(itemField);
+ }
+
+ if (itemField.isSortable()) {
+ sortByFields.add(itemField);
+ }
+ }
+
+ this.currentSearchFacility = new SearchFacilityUI(ucdProfileID, applicationBus, displayFields,
sortByFields, searchByFields, initialSortFilter);
searchFacilityPanel.add(currentSearchFacility);
currentSearchFacility.setSearchButton(searchFacilityButton);
}
- });
- GWT.log("Added navLink for: " + ucd.getName());
- navListSearch.add(navLink);
-
- }
+ }
+ });
searchFacilityButton.setIcon(IconType.SEARCH);
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml
index e285014..9208321 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml
@@ -17,6 +17,14 @@
padding-right: 15px;
}
+ .margin-left-top-5 {
+ margin-left: 5px;
+ margin-top: 5px;
+ }
+
+ .margin-left-5 {
+ margin-left: 5px;
+ }
@@ -43,7 +51,8 @@
-
+
-
+
+
+ Search in
+
+
+
+
diff --git a/src/main/webapp/GeoportalDataViewer.css b/src/main/webapp/GeoportalDataViewer.css
index 078f00a..e0d7769 100644
--- a/src/main/webapp/GeoportalDataViewer.css
+++ b/src/main/webapp/GeoportalDataViewer.css
@@ -488,6 +488,22 @@ body {
width: 250px !important;
}
+.search-field {
+ margin: 5px;
+ background-color: #f9f9f9;
+ padding: 5px;
+}
+
+.search-field div {
+ margin-left: 5px;
+}
+
+.search-field select {
+ margin-left: 8px;
+ width: 505px !important;
+ margin-bottom: 0px;
+}
+
.table-results {
table-layout: fixed;
/*width: 600px;*/