mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 01:59:35 +00:00
fixing bug 2303: newhome search now also considers remote servers
This commit is contained in:
1 parent
0d47d89c13
commit
ddaa8abf6d
6 files changed
+48
-15
No files matched your search
+21
-2
@@ -2,6 +2,7 @@ package com.sap.sailing.gwt.home.client.place.searchresult;
|
||||
|
||||
import com.google.gwt.activity.shared.AbstractActivity;
|
||||
import com.google.gwt.event.shared.EventBus;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AcceptsOneWidget;
|
||||
import com.sap.sailing.gwt.home.client.shared.placeholder.Placeholder;
|
||||
@@ -45,8 +46,26 @@ public class SearchResultActivity extends AbstractActivity {
|
||||
}
|
||||
|
||||
protected void doSearch(final String searchText) {
|
||||
KeywordQuery searchQuery = new KeywordQuery(searchText);
|
||||
clientFactory.getSailingService().search(null, searchQuery, new AsyncCallback<Iterable<LeaderboardSearchResultDTO>>() {
|
||||
final KeywordQuery searchQuery = new KeywordQuery(searchText.split("[ \t]+"));
|
||||
clientFactory.getSailingService().getSearchServerNames(new AsyncCallback<Iterable<String>>() {
|
||||
@Override
|
||||
public void onSuccess(Iterable<String> serverNames) {
|
||||
view.initSearchResult(searchText);
|
||||
searchSingleServer(searchText, searchQuery, /* null meaning the "local" server */ null);
|
||||
for (String serverName : serverNames) {
|
||||
searchSingleServer(searchText, searchQuery, serverName);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
Window.alert("Error: "+caught.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void searchSingleServer(final String searchText, KeywordQuery searchQuery, String serverName) {
|
||||
clientFactory.getSailingService().search(serverName, searchQuery, new AsyncCallback<Iterable<LeaderboardSearchResultDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(Iterable<LeaderboardSearchResultDTO> searchResults) {
|
||||
view.updateSearchResult(searchText, searchResults);
|
||||
|
||||
+2
@@ -5,6 +5,8 @@ import com.sap.sailing.gwt.ui.shared.LeaderboardSearchResultDTO;
|
||||
|
||||
public interface SearchResultView {
|
||||
Widget asWidget();
|
||||
|
||||
void initSearchResult(String searchText);
|
||||
|
||||
void updateSearchResult(String searchText, Iterable<LeaderboardSearchResultDTO> searchResultItems);
|
||||
}
|
||||
+5
@@ -22,6 +22,11 @@ public class TabletAndDesktopSearchResultView extends Composite implements Searc
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initSearchResult(String searchText) {
|
||||
searchResult.init(searchText);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSearchResult(String searchText, Iterable<LeaderboardSearchResultDTO> searchResultItems) {
|
||||
searchResult.updateSearchResult(searchText, searchResultItems);
|
||||
|
||||
+15
-10
@@ -39,6 +39,8 @@ public class SearchResult extends Composite {
|
||||
private final List<SearchResultItem> searchResultItemComposites;
|
||||
private final PlaceNavigator navigator;
|
||||
|
||||
private int resultCounter;
|
||||
|
||||
public SearchResult(PlaceNavigator navigator) {
|
||||
this.navigator = navigator;
|
||||
this.searchResultItemComposites = new ArrayList<SearchResultItem>();
|
||||
@@ -85,17 +87,9 @@ public class SearchResult extends Composite {
|
||||
}
|
||||
|
||||
public void updateSearchResult(String searchText, Iterable<LeaderboardSearchResultDTO> searchResultItems) {
|
||||
searchResultItemPanel.clear();
|
||||
searchResultItemComposites.clear();
|
||||
|
||||
searchResultFor.setInnerText(searchText);
|
||||
searchText1.setText(searchText);
|
||||
searchText2.setText(searchText);
|
||||
|
||||
int resultCounter = 0;
|
||||
for(LeaderboardSearchResultDTO singleSearchResult: searchResultItems) {
|
||||
for (LeaderboardSearchResultDTO singleSearchResult : searchResultItems) {
|
||||
// for now filter all results where we no event is defined
|
||||
if(singleSearchResult.getEvent() != null) {
|
||||
if (singleSearchResult.getEvent() != null) {
|
||||
SearchResultItem searchResultItem = new SearchResultItem(navigator, singleSearchResult);
|
||||
searchResultItemPanel.add(searchResultItem);
|
||||
searchResultItemComposites.add(searchResultItem);
|
||||
@@ -104,4 +98,15 @@ public class SearchResult extends Composite {
|
||||
}
|
||||
searchResultCount.setInnerText(String.valueOf(resultCounter));
|
||||
}
|
||||
|
||||
public void init(String searchText) {
|
||||
searchResultItemPanel.clear();
|
||||
searchResultItemComposites.clear();
|
||||
|
||||
searchResultFor.setInnerText(searchText);
|
||||
searchText1.setText(searchText);
|
||||
searchText2.setText(searchText);
|
||||
|
||||
resultCounter = 0;
|
||||
}
|
||||
}
|
||||
@@ -71,6 +71,7 @@ import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.Util.Triple;
|
||||
import com.sap.sse.common.search.KeywordQuery;
|
||||
import com.sap.sse.common.search.Result;
|
||||
import com.sap.sse.common.search.Searchable;
|
||||
|
||||
/**
|
||||
* An OSGi service that can be used to track boat races using a TracTrac connector that pushes
|
||||
@@ -91,7 +92,7 @@ import com.sap.sse.common.search.Result;
|
||||
*
|
||||
*/
|
||||
public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetcher, RegattaRegistry, RaceFetcher,
|
||||
LeaderboardRegistry, EventResolver, LeaderboardGroupResolver, TrackerManager {
|
||||
LeaderboardRegistry, EventResolver, LeaderboardGroupResolver, TrackerManager, Searchable<LeaderboardSearchResult, KeywordQuery> {
|
||||
@Override
|
||||
Regatta getRegatta(RegattaName regattaName);
|
||||
|
||||
@@ -562,6 +563,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
|
||||
/**
|
||||
* Searches the content of this server, not that of any remote servers referenced by any {@link RemoteSailingServerReference}s.
|
||||
*/
|
||||
@Override
|
||||
Result<LeaderboardSearchResult> search(KeywordQuery query);
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,6 +6,6 @@ package com.sap.sse.common.search;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface Searchable<H extends Hit> {
|
||||
Result<H> query(Query query);
|
||||
public interface Searchable<H extends Hit, Q extends Query> {
|
||||
Result<H> search(Q query);
|
||||
}
|
||||
Reference in new issue
Block a user