2013-03-04 14:38:25 +01:00
/ * *
2017-01-12 17:00:19 +01:00
*
2013-03-04 14:38:25 +01:00
* /
package org.gcube.portlets.user.speciesdiscovery.client ;
import java.util.ArrayList ;
import java.util.Date ;
import java.util.HashSet ;
import java.util.List ;
import java.util.Set ;
import org.gcube.portlets.user.speciesdiscovery.client.advancedsearch.AdvancedSearchPanelManager ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveFilterOnResultEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveFilterOnResultEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveMaskLoadingGrid ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ActiveMaskLoadingGridHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CapabilitySelectedEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CapabilitySelectedEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassificationOnResultEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassificationOnResultEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CompletedLoadDataSourceEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CompletedLoadDataSourceEventHandler ;
2017-02-09 18:23:28 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateGisLayerJobEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateGisLayerJobEventHandler ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateOccurrenceJobEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateOccurrenceJobEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.DisableFilterEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.DisableFilterEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.LoadDataSourceEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.LoadDataSourceEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ReLoadListJobEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ReLoadListJobEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ReSubmitJobEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ReSubmitJobEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SaveItemsEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SaveItemsEventHandler ;
2013-07-16 19:36:40 +02:00
import org.gcube.portlets.user.speciesdiscovery.client.event.SaveJobErrorEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SaveJobErrorEventHandler ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.event.SaveJobEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SaveJobEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SearchEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SearchEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SearchStartedEvent ;
2013-07-17 16:31:22 +02:00
import org.gcube.portlets.user.speciesdiscovery.client.event.SearchTypeSelectedEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SearchTypeSelectedEventHandler ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.event.SetCommonNamesEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.SetCommonNamesEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOccurrencesEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOccurrencesEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOnlySelectedRowEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ShowOnlySelectedRowEventHandler ;
2017-02-16 17:15:45 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.event.StopCurrentSearchEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.StopCurrentSearchEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.StreamCompletedEventEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.StreamEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.StreamEvent.Event ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateAllRowSelectionEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateAllRowSelectionEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateFilterOnResultEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateFilterOnResultEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateRowSelectionEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.UpdateRowSelectionEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ViewDetailsOfSelectedEvent ;
import org.gcube.portlets.user.speciesdiscovery.client.event.ViewDetailsOfSelectedEventHandler ;
import org.gcube.portlets.user.speciesdiscovery.client.filterresult.ResultFilterPanelManager ;
2017-02-10 15:18:57 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.job.gislayer.GisLayerJobSpeciesPanel ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.job.occurrence.OccurrenceJobSpeciesPanel ;
import org.gcube.portlets.user.speciesdiscovery.client.job.taxonomy.TaxonomyJobSpeciesPanel ;
import org.gcube.portlets.user.speciesdiscovery.client.util.SpeciesGridFields ;
import org.gcube.portlets.user.speciesdiscovery.client.util.Util ;
import org.gcube.portlets.user.speciesdiscovery.client.util.stream.DataSource ;
import org.gcube.portlets.user.speciesdiscovery.client.util.stream.DataSourceManager ;
import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingLoader ;
2013-03-04 16:47:57 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.window.MessageBoxAlert ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.window.MessageDialog ;
2017-01-12 17:00:19 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.window.MessageForm ;
2013-03-15 19:18:12 +01:00
import org.gcube.portlets.user.speciesdiscovery.client.windowdetail.ViewDetailsWindow ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.CommonName ;
import org.gcube.portlets.user.speciesdiscovery.shared.Coordinate ;
import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel ;
import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState ;
2017-02-09 18:23:28 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.JobGisLayerModel ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel ;
import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel ;
2013-10-24 12:52:34 +02:00
import org.gcube.portlets.user.speciesdiscovery.shared.LightTaxonomyRow ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesSaveEnum ;
import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesStatus ;
import org.gcube.portlets.user.speciesdiscovery.shared.ResultRow ;
import org.gcube.portlets.user.speciesdiscovery.shared.SaveFileFormat ;
2013-03-15 19:18:12 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.SearchByQueryParameter ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.SearchFilters ;
import org.gcube.portlets.user.speciesdiscovery.shared.SearchResultType ;
import org.gcube.portlets.user.speciesdiscovery.shared.SearchType ;
2017-03-20 14:43:11 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.SessionExpired ;
2013-03-04 14:38:25 +01:00
import org.gcube.portlets.user.speciesdiscovery.shared.SpeciesCapability ;
import org.gcube.portlets.user.speciesdiscovery.shared.filter.ResultFilter ;
2013-07-15 17:44:36 +02:00
import org.gcube.portlets.user.speciesdiscovery.shared.util.SearchTermValidator ;
2017-03-20 14:43:11 +01:00
import org.gcube.portlets.widgets.sessionchecker.client.CheckSession ;
2015-07-09 15:46:05 +02:00
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSaveNotification.WorskpaceExplorerSaveNotificationListener ;
import org.gcube.portlets.widgets.wsexplorer.client.save.WorkspaceExplorerSaveDialog ;
import org.gcube.portlets.widgets.wsexplorer.shared.Item ;
2013-03-04 14:38:25 +01:00
import com.allen_sauer.gwt.log.client.Log ;
2017-02-23 17:13:30 +01:00
import com.extjs.gxt.ui.client.core.XDOM ;
2013-03-04 14:38:25 +01:00
import com.extjs.gxt.ui.client.data.BaseModelData ;
import com.extjs.gxt.ui.client.event.Listener ;
import com.extjs.gxt.ui.client.event.MessageBoxEvent ;
import com.extjs.gxt.ui.client.widget.Dialog ;
import com.extjs.gxt.ui.client.widget.Info ;
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.event.shared.EventBus ;
import com.google.gwt.user.client.rpc.AsyncCallback ;
2017-01-12 17:00:19 +01:00
import com.google.gwt.user.client.ui.DialogBox ;
2013-03-04 14:38:25 +01:00
/ * *
* @author " Federico De Faveri defaveri@isti.cnr.it " - " Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it "
*
* /
public class SearchController {
protected static final int PAGE_SIZE = 25 ;
public static EventBus eventBus ;
protected StreamPagingLoader streamPagingLoader ;
protected boolean showOnlySelected = false ;
protected boolean isActiveFilterOnResult = false ;
protected int currentPage = 1 ;
protected SearchController instance = null ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private SearchEvent lastSearchEvent = null ;
private SearchBorderLayoutPanel searchBorderLayoutPanel ;
private DataSourceManager dataSourceManager ;
/ * *
* @param eventBus
2017-01-12 17:00:19 +01:00
* @param searchBorderLayoutPanel
2013-03-04 14:38:25 +01:00
* /
public SearchController ( EventBus eventBus , SearchBorderLayoutPanel searchBorderLayoutPanel ) {
SearchController . eventBus = eventBus ; //TODO Temporary solution
this . searchBorderLayoutPanel = searchBorderLayoutPanel ;
this . dataSourceManager = DataSourceManager . getInstance ( ) ;
this . streamPagingLoader = new StreamPagingLoader ( PAGE_SIZE ) ;
// initialize();
bind ( ) ;
instance = this ;
}
protected void switchDataSource ( SpeciesCapability resultType ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
setFiltersCriteria ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
DataSource currentDataSource = dataSourceManager . getDataSourceByResultType ( resultType ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
Log . trace ( " current data source: " + currentDataSource . getInfo ( ) ) ;
2017-01-12 17:00:19 +01:00
//SET DATASOURCE
2013-03-04 14:38:25 +01:00
this . streamPagingLoader . setDataSource ( currentDataSource ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private void setFiltersCriteria ( ) {
dataSourceManager . setActiveFilters ( isActiveFilterOnResult ) ;
dataSourceManager . setOnlySelected ( showOnlySelected ) ;
}
/ * *
* @return the streamPagingLoader
* /
public StreamPagingLoader getStreamPagingLoader ( ) {
return streamPagingLoader ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
protected void bind ( )
{
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( UpdateFilterOnResultEvent . TYPE , new UpdateFilterOnResultEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onUpdateFilter ( UpdateFilterOnResultEvent updateFilterOnResultEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
ResultFilterPanelManager . getInstance ( ) . updateDataSourceFilterById ( updateFilterOnResultEvent . getUpdateFilterId ( ) ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2017-02-16 17:15:45 +01:00
eventBus . addHandler ( StreamEvent . TYPE , new StreamCompletedEventEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
2017-02-16 17:15:45 +01:00
public void onStreamCompleteEvent ( StreamEvent streamEvent ) {
2017-01-12 17:00:19 +01:00
2017-02-16 17:15:45 +01:00
//ACTIVE SELECT ALL ROW
2013-03-04 14:38:25 +01:00
if ( lastSearchEvent . getResultType ( ) . equals ( SpeciesCapability . RESULTITEM ) )
2017-02-16 17:15:45 +01:00
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . getResultRowPanel ( ) . activeCheckAllRows ( streamEvent . isActiveFilter ( ) ) ;
2013-03-04 14:38:25 +01:00
else if ( lastSearchEvent . getResultType ( ) . equals ( SpeciesCapability . TAXONOMYITEM ) )
2017-02-16 17:15:45 +01:00
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . getTaxonomyRowPanel ( ) . activeCheckAllRows ( streamEvent . isActiveFilter ( ) ) ;
if ( streamEvent . getEvent ( ) . equals ( Event . COMPLETED ) )
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . visibleButtonStopSearch ( false ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( UpdateAllRowSelectionEvent . TYPE , new UpdateAllRowSelectionEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onUpdateAllRowSelection ( final UpdateAllRowSelectionEvent updateAllRowSelectionEvent ) {
SpeciesDiscovery . taxonomySearchService . updateRowSelections ( updateAllRowSelectionEvent . getSelectionValue ( ) , streamPagingLoader . getActiveFilterObject ( ) , new AsyncCallback < Integer > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error on selected all rows " , " An error occurred on selected all rows " + caught ) ;
Log . error ( " Error on selected all rows " , " An error occurred on selected all rows " + caught ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
@Override
public void onSuccess ( Integer result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result . intValue ( ) > 0 ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
boolean selected = updateAllRowSelectionEvent . getSelectionValue ( ) ;
2017-01-12 17:00:19 +01:00
2013-10-24 12:52:34 +02:00
String msgRow = result . intValue ( ) = = 1 ? " row was " : " rows were " ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
String msgSel = selected = = true ? " selected " : " deselected " ;
2013-10-24 12:52:34 +02:00
Info . display ( " Info " , result . intValue ( ) + " " + msgRow + " " + msgSel ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( updateAllRowSelectionEvent . getSearchType ( ) . equals ( SearchResultType . SPECIES_PRODUCT ) )
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . getResultRowPanel ( ) . selectAllRows ( selected ) ;
else if ( updateAllRowSelectionEvent . getSearchType ( ) . equals ( SearchResultType . TAXONOMY_ITEM ) )
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . getTaxonomyRowPanel ( ) . selectAllRows ( selected ) ;
}
}
} ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ReSubmitJobEvent . TYPE , new ReSubmitJobEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onResubmitJob ( ReSubmitJobEvent reSubmitJobEvent ) {
if ( reSubmitJobEvent . getLoadType ( ) . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
resubmitJob ( reSubmitJobEvent . getLoadType ( ) , reSubmitJobEvent . getJobOccurrenceModel ( ) . getJobIdentifier ( ) ) ;
}
else if ( reSubmitJobEvent . getLoadType ( ) . equals ( SearchResultType . TAXONOMY_ITEM ) ) {
resubmitJob ( reSubmitJobEvent . getLoadType ( ) , reSubmitJobEvent . getJobTaxonomyModel ( ) . getIdentifier ( ) ) ;
2017-02-16 12:44:41 +01:00
} else if ( reSubmitJobEvent . getLoadType ( ) . equals ( SearchResultType . GIS_LAYER_POINT ) ) {
resubmitJob ( reSubmitJobEvent . getLoadType ( ) , reSubmitJobEvent . getJobGisModel ( ) . getJobIdentifier ( ) ) ;
2017-01-12 17:00:19 +01:00
}
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ReLoadListJobEvent . TYPE , new ReLoadListJobEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onLoadJobList ( ReLoadListJobEvent loadJobListEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( loadJobListEvent . getLoadType ( ) ! = null )
excecuteGetJobs ( loadJobListEvent . getLoadType ( ) , true ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-07-17 16:31:22 +02:00
eventBus . addHandler ( SearchTypeSelectedEvent . TYPE , new SearchTypeSelectedEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-07-17 16:31:22 +02:00
@Override
public void onSearchTypeSelected ( SearchTypeSelectedEvent searchTypeSelectedEvent ) {
2017-01-12 17:00:19 +01:00
2013-07-17 16:31:22 +02:00
if ( searchTypeSelectedEvent . getType ( ) ! = null )
AdvancedSearchPanelManager . getInstance ( ) . disableFilterForSearchType ( searchTypeSelectedEvent . getType ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-07-17 16:31:22 +02:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2017-02-09 18:23:28 +01:00
eventBus . addHandler ( CreateGisLayerJobEvent . TYPE , new CreateGisLayerJobEventHandler ( ) {
@Override
2017-02-16 12:44:41 +01:00
public void onCreateGisLayerJob ( final CreateGisLayerJobEvent createGisLayerJobEvent ) {
2017-02-09 18:23:28 +01:00
2017-02-16 12:44:41 +01:00
SpeciesDiscovery . taxonomySearchService . retrieveOccurencesFromSelection ( new AsyncCallback < Integer > ( ) {
2017-02-09 18:23:28 +01:00
@Override
2017-02-16 12:44:41 +01:00
public void onSuccess ( Integer returnedPoints ) {
Long expectedPoints = createGisLayerJobEvent . getTotalPoints ( ) ;
Log . trace ( " Expected points: " + expectedPoints ) ;
if ( returnedPoints = = null | | returnedPoints . intValue ( ) = = 0 ) {
Info . display ( " Info " , " There are no occurrence points selected to create a gis layer " ) ;
return ;
}
Log . trace ( " Returned points: " + expectedPoints ) ;
2017-02-09 18:23:28 +01:00
2017-02-16 12:44:41 +01:00
SpeciesDiscovery . taxonomySearchService . createGisLayerJobFromSelectedOccurrenceKeys ( createGisLayerJobEvent . getJobName ( ) , createGisLayerJobEvent . getJobDescription ( ) , createGisLayerJobEvent . getTotalPoints ( ) , new AsyncCallback < JobGisLayerModel > ( ) {
2017-02-09 18:23:28 +01:00
2017-02-16 12:44:41 +01:00
@Override
public void onFailure ( Throwable caught ) {
2017-02-09 18:23:28 +01:00
2017-02-16 12:44:41 +01:00
Info . display ( " Error generating the map " , " An error occurred generating the map, retry " ) ;
Log . error ( " Error on loading " , " An error occurred on edit listner, retry. " + caught . getMessage ( ) ) ;
2017-02-10 15:18:57 +01:00
2017-02-16 12:44:41 +01:00
}
2017-02-10 15:18:57 +01:00
2017-02-16 12:44:41 +01:00
@Override
public void onSuccess ( JobGisLayerModel gisJob ) {
GWT . log ( " Returned gis job: " + gisJob ) ;
Info . display ( " Gis Layer Occurrence Job " , " Generating Gis layer: " + gisJob . getJobName ( ) + " submitted " ) ;
excecuteGetJobs ( SearchResultType . GIS_LAYER_POINT , false ) ;
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setIconGisLayerByCounter ( 1 ) ;
}
} ) ;
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error getting occurrences " , " Error getting occurrences, retry " ) ;
Log . trace ( " Error getting occurrences " , caught ) ;
2017-02-09 18:23:28 +01:00
}
} ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( SearchEvent . TYPE , new SearchEventHandler ( ) {
@Override
public void onSearch ( SearchEvent event ) {
2015-07-09 15:46:05 +02:00
GWT . log ( event . toString ( ) ) ;
2013-03-04 14:38:25 +01:00
Log . trace ( event . toString ( ) ) ;
lastSearchEvent = event ;
doActiveMaskLoadingGridAndButtonSearch ( true ) ;
2017-02-16 17:15:45 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . visibleButtonStopSearch ( true ) ;
2013-03-15 19:18:12 +01:00
if ( event . getType ( ) . equals ( SearchType . BY_COMMON_NAME ) | | event . getType ( ) . equals ( SearchType . BY_SCIENTIFIC_NAME ) ) {
2013-07-17 16:31:22 +02:00
search ( event . getType ( ) , event . getSearchTerm ( ) . trim ( ) , event . getUpperBoundLongitude ( ) , event . getUpperBoundLatitude ( ) , event . getLowerBoundLongitude ( ) , event . getLowerBoundLatitude ( ) , event . getFromDate ( ) , event . getToDate ( ) , event . getLstDataSources ( ) , event . getGroupByRank ( ) , event . getResultType ( ) , event . getListDataSourcesForSynonyms ( ) , event . getListDataSourcesForUnfold ( ) ) ;
2013-03-15 19:18:12 +01:00
}
else {
2013-03-04 14:38:25 +01:00
searchByQuery ( event . getQuery ( ) ) ;
2013-03-15 19:18:12 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2017-02-16 17:15:45 +01:00
eventBus . addHandler ( StopCurrentSearchEvent . TYPE , new StopCurrentSearchEventHandler ( ) {
@Override
public void onAbortCurrentSearch ( StopCurrentSearchEvent abortCurrentSearchEvent ) {
SpeciesDiscovery . taxonomySearchService . userStopSearch ( new AsyncCallback < Void > ( ) {
@Override
public void onFailure ( Throwable caught ) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess ( Void result ) {
// TODO Auto-generated method stub
}
} ) ;
}
} ) ;
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( CreateOccurrenceJobEvent . TYPE , new CreateOccurrenceJobEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onCreateSpeciesJob ( CreateOccurrenceJobEvent createOccurrenceJobEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
List < JobOccurrencesModel > listJobOccurrenceModel = new ArrayList < JobOccurrencesModel > ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( createOccurrenceJobEvent . getListDataSourceFound ( ) = = null ) {
Info . display ( " Error on loading " , " An error occurred on recover data sources, please close window and try again. " ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( ! createOccurrenceJobEvent . isByDataSource ( ) ) { //ONE JOB FOR ALL DATASOURCE
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
String jobName = createOccurrenceJobEvent . getSearchTerm ( ) + " occurrences " ;
List < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > dataSourceList = new ArrayList < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > ( ) ;
for ( String dataSource : createOccurrenceJobEvent . getListDataSourceFound ( ) ) {
dataSourceList . add ( new org . gcube . portlets . user . speciesdiscovery . shared . DataSource ( dataSource , dataSource ) ) ;
}
2013-03-04 14:38:25 +01:00
listJobOccurrenceModel . add ( new JobOccurrencesModel ( " " , jobName , createOccurrenceJobEvent . getSearchTerm ( ) , dataSourceList , createOccurrenceJobEvent . getFileFormat ( ) , createOccurrenceJobEvent . getSaveEnum ( ) , createOccurrenceJobEvent . isByDataSource ( ) , createOccurrenceJobEvent . getExpectedOccurrences ( ) ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
} else { //IS BY DATASOURCE - ONE JOB FOR EACH DATASOURCE
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
for ( String dataSource : createOccurrenceJobEvent . getListDataSourceFound ( ) ) {
// System.out.println("########DATASOURCE FOUND: "+dataSource);
2013-07-18 18:32:28 +02:00
// String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from " +dataSource;
String jobName = createOccurrenceJobEvent . getSearchTerm ( ) + " occurrences " ;
2013-03-04 14:38:25 +01:00
List < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > dataSourceList = new ArrayList < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > ( ) ;
dataSourceList . add ( new org . gcube . portlets . user . speciesdiscovery . shared . DataSource ( dataSource , dataSource ) ) ;
listJobOccurrenceModel . add ( new JobOccurrencesModel ( " " , jobName , createOccurrenceJobEvent . getSearchTerm ( ) , dataSourceList , createOccurrenceJobEvent . getFileFormat ( ) , createOccurrenceJobEvent . getSaveEnum ( ) , createOccurrenceJobEvent . isByDataSource ( ) ) ) ;
}
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . createOccurrencesJob ( listJobOccurrenceModel , createOccurrenceJobEvent . getFileFormat ( ) , createOccurrenceJobEvent . getSaveEnum ( ) , createOccurrenceJobEvent . isByDataSource ( ) , createOccurrenceJobEvent . getExpectedOccurrences ( ) , new AsyncCallback < List < JobOccurrencesModel > > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
2013-03-04 16:56:06 +01:00
Info . display ( " Error " , " Sorry, An error occurred on create job. Please try again later " ) ;
2013-03-04 14:38:25 +01:00
Log . error ( " Error on loading " , " An error occurred on create job, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
@Override
public void onSuccess ( List < JobOccurrencesModel > result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result ! = null ) {
2013-10-24 12:52:34 +02:00
int jobs = result . size ( ) ;
if ( jobs > 0 ) {
String msg = jobs = = 1 ? " was " : " were " ;
Info . display ( " Species Occurrence Job " , result . size ( ) + " occurrence job " + msg + " submitted " ) ;
2013-03-04 14:38:25 +01:00
excecuteGetJobs ( SearchResultType . OCCURRENCE_POINT , false ) ;
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setIconOccurrenceByCounter ( result . size ( ) ) ;
}
else {
Info . display ( " Species Occurrence Job " , " An error occurred on submit job, retry " ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
}
} ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ActiveMaskLoadingGrid . TYPE , new ActiveMaskLoadingGridHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onActiveMaskLoadingGrid ( ActiveMaskLoadingGrid activeLoadingGrid ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
doActiveMaskLoadingGridAndButtonSearch ( activeLoadingGrid . isActive ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( SaveJobEvent . TYPE , new SaveJobEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSaveJob ( SaveJobEvent saveJobEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( saveJobEvent . getItemType ( ) . equals ( SearchResultType . TAXONOMY_ITEM ) ) {
saveTaxonomyJob ( saveJobEvent . getJobTaxonomyModel ( ) , saveJobEvent . getScientificName ( ) , saveJobEvent . getListDataSources ( ) , saveJobEvent . getRank ( ) ) ;
}
else if ( saveJobEvent . getItemType ( ) . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
saveOccurencesJob ( saveJobEvent . getJobOccurrenceModel ( ) , saveJobEvent . getScientificName ( ) , saveJobEvent . getListDataSources ( ) ) ;
2017-02-16 12:44:41 +01:00
} else if ( saveJobEvent . getItemType ( ) . equals ( SearchResultType . GIS_LAYER_POINT ) ) {
saveGisLayerJob ( saveJobEvent . getJobGisLayer ( ) ) ;
2013-03-04 14:38:25 +01:00
}
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
eventBus . addHandler ( SaveJobErrorEvent . TYPE , new SaveJobErrorEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
@Override
public void onSaveJobError ( SaveJobErrorEvent saveJobErrorEvent ) {
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
if ( saveJobErrorEvent . getItemType ( ) . equals ( SearchResultType . TAXONOMY_ITEM ) ) {
saveTaxonomyJobError ( saveJobErrorEvent . getJobTaxonomyModel ( ) , saveJobErrorEvent . getScientificName ( ) , saveJobErrorEvent . getListDataSources ( ) , saveJobErrorEvent . getRank ( ) ) ;
}
else if ( saveJobErrorEvent . getItemType ( ) . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
saveOccurencesJobError ( saveJobErrorEvent . getJobOccurrenceModel ( ) , saveJobErrorEvent . getScientificName ( ) , saveJobErrorEvent . getListDataSources ( ) ) ;
}
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( CreateTaxonomyJobEvent . TYPE , new CreateTaxonomyJobEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onCreateSpeciesJob ( CreateTaxonomyJobEvent createSpeciesJobEvent ) {
switch ( createSpeciesJobEvent . getJobType ( ) ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
case BYCHILDREN :
2013-07-17 16:31:22 +02:00
2013-10-24 12:52:34 +02:00
LightTaxonomyRow taxonomy = createSpeciesJobEvent . getTaxonomy ( ) ;
2017-01-12 17:00:19 +01:00
2013-05-20 18:50:24 +02:00
SpeciesDiscovery . taxonomySearchService . createTaxonomyJobByChildren ( taxonomy . getServiceId ( ) , taxonomy . getName ( ) , taxonomy . getRank ( ) , createSpeciesJobEvent . getDataSourceName ( ) , new AsyncCallback < JobTaxonomyModel > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
2013-03-04 16:56:06 +01:00
Info . display ( " Error " , " Sorry, An error occurred on create job. Please try again later " ) ;
2013-03-04 14:38:25 +01:00
Log . error ( " Error on loading " , " An error occurred on create job by children, retry. " + caught . getMessage ( ) ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( JobTaxonomyModel result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result ! = null ) {
Info . display ( " Species Taxonomy Job " , " A new taxonomy job was submitted " ) ;
excecuteGetJobs ( SearchResultType . TAXONOMY_ITEM , false ) ;
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setIconTaxonomyByCounter ( 1 ) ;
}
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
break ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
case BYIDS :
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . createTaxonomyJobByIds ( lastSearchEvent . getSearchTerm ( ) , lastSearchEvent . getLstDataSources ( ) , new AsyncCallback < JobTaxonomyModel > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
Log . error ( " Error on loading " , " An error occurred on create job by ids, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( JobTaxonomyModel result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result ! = null ) {
Info . display ( " Species Taxonomy Job " , " A new taxonomy job was submitted " ) ;
excecuteGetJobs ( SearchResultType . TAXONOMY_ITEM , false ) ;
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setIconTaxonomyByCounter ( 1 ) ;
}
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
break ;
default :
break ;
2017-01-12 17:00:19 +01:00
}
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( CompletedLoadDataSourceEvent . TYPE , new CompletedLoadDataSourceEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onCompletedLoadDataSource ( CompletedLoadDataSourceEvent completedLoadDataSourceEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . unmask ( ) ;
eventBus . fireEvent ( new CapabilitySelectedEvent ( searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . getSelectedCapability ( ) ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ChangeFilterClassificationOnResultEvent . TYPE , new ChangeFilterClassificationOnResultEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onChangeFilter ( ChangeFilterClassificationOnResultEvent changeFilterClassificationOnResultEvent ) {
ResultFilterPanelManager . getInstance ( ) . updateFilterCounterForClassification ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( CapabilitySelectedEvent . TYPE , new CapabilitySelectedEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onCapabilitySelected ( CapabilitySelectedEvent capabilitySelectedEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
AdvancedSearchPanelManager . getInstance ( ) . setCurrentCapability ( capabilitySelectedEvent . getCapability ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
switch ( capabilitySelectedEvent . getCapability ( ) ) {
case RESULTITEM :
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . setValueCheckValidateOcccurrences ( true ) ;
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . setVisibleCheckValidateOcccurrences ( true ) ;
break ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
default :
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . setValueCheckValidateOcccurrences ( false ) ;
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . setVisibleCheckValidateOcccurrences ( false ) ;
} ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
// //TODO CHANGE
// searchBorderLayoutPanel.getSpeciesCenterPanel().setCurrentView(capabilitySelectedEvent.getCapability());
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( UpdateRowSelectionEvent . TYPE , new UpdateRowSelectionEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onUpdateRowSelection ( final UpdateRowSelectionEvent updateRowSelectionEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
Log . trace ( " in update..... rowid " + updateRowSelectionEvent . getRowId ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . updateRowSelection ( updateRowSelectionEvent . getRowId ( ) , updateRowSelectionEvent . getSelectionValue ( ) , new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void result ) {
Log . trace ( " rowid " + updateRowSelectionEvent . getRowId ( ) + " updated " ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error on loading " , " An error occurred on check row, please retry. " ) ;
Log . error ( " Error on loading " , " An error occurred on check row, please retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
} ) ;
eventBus . addHandler ( ShowOccurrencesEvent . TYPE , new ShowOccurrencesEventHandler ( ) {
@Override
public void onShowOccurrences ( ShowOccurrencesEvent event ) {
openOccurenceWindow ( ) ;
}
} ) ;
eventBus . addHandler ( SaveItemsEvent . TYPE , new SaveItemsEventHandler ( ) {
@Override
public void onSaveOccurrences ( final SaveItemsEvent event ) {
if ( event . getItemType ( ) . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
//OLD CODE***********
SpeciesDiscovery . taxonomySearchService . getCountOfOccurrencesBatch ( new AsyncCallback < OccurrencesStatus > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Log . error ( " Error on loading " , " An error occurred on count of occurrence point, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
@Override
public void onSuccess ( OccurrencesStatus result ) {
MessageDialog dialog ;
if ( event . getExpectedPoints ( ) > result . getSize ( ) ) {
dialog = new MessageDialog ( " Info " , " Loading in progress " , " On server are available only " + result . getSize ( ) + " of " + event . getExpectedPoints ( ) + " occurrence points. Do you want continue? " ) ;
dialog . getMessageBoxConfirm ( ) . addCallback ( new Listener < MessageBoxEvent > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public void handleEvent ( MessageBoxEvent be ) {
//IF NOT CANCELLED
String clickedButton = be . getButtonClicked ( ) . getItemId ( ) ;
if ( clickedButton . equals ( Dialog . YES ) )
saveOccurences ( event . getFileFormat ( ) , event . getCsvType ( ) ) ;
}
2017-01-12 17:00:19 +01:00
} ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
else
saveOccurences ( event . getFileFormat ( ) , event . getCsvType ( ) ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
//END OLD CODE***********
saveOccurences ( event . getFileFormat ( ) , event . getCsvType ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
else
if ( event . getItemType ( ) . equals ( SearchResultType . TAXONOMY_ITEM ) )
saveTaxonomy ( event . getFileFormat ( ) ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ShowOnlySelectedRowEvent . TYPE , new ShowOnlySelectedRowEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onShowOnlySelectedRow ( ShowOnlySelectedRowEvent event ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
showFilterResults ( event . isOnlySelected ( ) ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( LoadDataSourceEvent . TYPE , new LoadDataSourceEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onLoadDataSource ( LoadDataSourceEvent loadDataSourceEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . mask ( " Loading data sources... " , ConstantsSpeciesDiscovery . LOADINGSTYLE ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
loadDataSourceFromService ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ViewDetailsOfSelectedEvent . TYPE , new ViewDetailsOfSelectedEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onViewDetails ( ViewDetailsOfSelectedEvent viewDetailsOfSelectedEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
// final ViewDetailsWindow view = new ViewDetailsWindow(instance, lastSearchEvent.getResultType(), lastSearchEvent.getType());
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
final ViewDetailsWindow view = new ViewDetailsWindow ( lastSearchEvent ) ;
2013-03-04 14:38:25 +01:00
//IF SELECTED CAPABILITY IS OCCURENCES - IS CALL LOAD OCCURENCES METHOD
if ( lastSearchEvent . getResultType ( ) . getName ( ) . compareTo ( SpeciesCapability . RESULTITEM . getName ( ) ) = = 0 ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
Scheduler . get ( ) . scheduleDeferred ( new ScheduledCommand ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void execute ( ) {
view . loadOccurences ( ) ;
}
} ) ;
}
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( ActiveFilterOnResultEvent . TYPE , new ActiveFilterOnResultEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onActiveFilter ( ActiveFilterOnResultEvent activeFilterOnResultEvent ) {
// for(Integer id: activeFilterOnResultEvent.getActiveFilterObject().getListByClassification()){
// Log.trace("current id "+ id + " size " +activeFilterOnResultEvent.getActiveFilterObject().getListByClassification().size());
// }
doActiveMaskLoadingGridAndButtonSearch ( true ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
activeFilterOnResult ( true ) ;
setOnlySelected ( false ) ;
updateOnlySelectedOnManager ( false ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
ResultFilter filterObj = activeFilterOnResultEvent . getActiveFilterObject ( ) ;
streamPagingLoader . setActiveFilterObject ( filterObj ) ;
streamPagingLoader . reloadPageForFiltering ( filterObj . getNumberOfData ( ) , true ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . setFilterActive ( true , filterObj . getFilterValue ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( SetCommonNamesEvent . TYPE , new SetCommonNamesEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSetCommonNames ( SetCommonNamesEvent setCommonNamesEvent ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
final BaseModelData data = setCommonNamesEvent . getBaseModelData ( ) ;
final ResultRow row = ( ResultRow ) data . get ( SpeciesGridFields . ROW . getId ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . loadListCommonNameByRowId ( " " + row . getId ( ) , new AsyncCallback < ArrayList < CommonName > > ( ) {
@Override
public void onFailure ( Throwable caught ) {
// Window.alert(caught.getMessage());
Info . display ( " Error on loading " , " An error occurred on loading Common Names, retry. " ) ;
Log . error ( " Error in SetCommonNamesEvent: " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
@Override
public void onSuccess ( ArrayList < CommonName > result ) {
if ( result ! = null ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
String matchingTaxonName = data . get ( SpeciesGridFields . MATCHING_NAME . getId ( ) ) ;
String matchingAccordionTo = data . get ( SpeciesGridFields . MATCHING_AUTHOR . getId ( ) ) ;
String matchingCredits = data . get ( SpeciesGridFields . MATCHING_CREDITS . getId ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
String commonNames = getCommonNamesHTML ( matchingTaxonName , matchingAccordionTo , matchingCredits , result ) ;
data . set ( SpeciesGridFields . COMMON_NAMES . getId ( ) , commonNames ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
row . setCommonNames ( result ) ;
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . addHandler ( DisableFilterEvent . TYPE , new DisableFilterEventHandler ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onDisableFilter ( DisableFilterEvent disableFilterEvent ) {
doActiveMaskLoadingGridAndButtonSearch ( true ) ;
streamPagingLoader . reloadPageWithoutFiltering ( ) ;
disableFilters ( ) ;
// updateOnlySelectedOnManager();
}
} ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public void resubmitJob ( SearchResultType resultType , String jobIdentifier ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( jobIdentifier ! = null ) {
if ( resultType . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . resubmitOccurrencesJob ( jobIdentifier , new AsyncCallback < List < JobOccurrencesModel > > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
// TODO Auto-generated method stub
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( List < JobOccurrencesModel > result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result ! = null & & result . size ( ) > 0 )
excecuteGetJobs ( SearchResultType . OCCURRENCE_POINT , false ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-02-16 12:44:41 +01:00
} else if ( resultType . equals ( SearchResultType . TAXONOMY_ITEM ) ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . resubmitTaxonomyJob ( jobIdentifier , new AsyncCallback < JobTaxonomyModel > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error on resubmit " , " An error occurred on resubmit job, retry. " ) ;
Log . error ( " Error on resubmit " , " An error occurred on resubmit job, retry. " + caught . getMessage ( ) ) ;
caught . printStackTrace ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( JobTaxonomyModel result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result ! = null )
excecuteGetJobs ( SearchResultType . TAXONOMY_ITEM , false ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
2017-01-12 17:00:19 +01:00
2017-02-16 12:44:41 +01:00
} else if ( resultType . equals ( SearchResultType . GIS_LAYER_POINT ) ) {
SpeciesDiscovery . taxonomySearchService . resubmitGisLayerJob ( jobIdentifier , new AsyncCallback < JobGisLayerModel > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error on resubmit " , " An error occurred on resubmit job, retry. " ) ;
Log . error ( " Error on resubmit " , " An error occurred on resubmit job, retry. " + caught . getMessage ( ) ) ;
caught . printStackTrace ( ) ;
}
@Override
public void onSuccess ( JobGisLayerModel result ) {
if ( result ! = null )
excecuteGetJobs ( SearchResultType . GIS_LAYER_POINT , false ) ;
}
} ) ;
2013-03-04 14:38:25 +01:00
}
}
else
Info . display ( " Error " , " job identifier is wrong " ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
protected void activeFilterOnResult ( boolean bool ) {
isActiveFilterOnResult = bool ;
dataSourceManager . setActiveFilters ( isActiveFilterOnResult ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
protected void disableFilters ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
activeFilterOnResult ( false ) ;
streamPagingLoader . resetFilters ( ) ;
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . setFilterActive ( false , " " ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
protected void loadDataSourceFromService ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . loadDataSourceList ( new AsyncCallback < List < DataSourceModel > > ( ) {
@Override
public void onFailure ( Throwable caught ) {
2013-03-04 16:47:57 +01:00
new MessageBoxAlert ( " Error " , caught . getMessage ( ) + " . Please, try your request again later. " , null ) ;
2015-07-09 15:46:05 +02:00
GWT . log ( " loadDataSourceFromService error: " + caught . getMessage ( ) ) ;
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . unmask ( ) ;
2013-03-04 16:47:57 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . activeButtonSearch ( false ) ;
2017-02-16 17:15:45 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . visibleButtonStopSearch ( false ) ;
2013-03-04 14:38:25 +01:00
}
@Override
public void onSuccess ( List < DataSourceModel > result ) {
2015-07-09 15:46:05 +02:00
GWT . log ( " LOADED " + result . size ( ) + " plugin's " ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result ! = null & & result . size ( ) > 0 )
AdvancedSearchPanelManager . getInstance ( ) . loadDataSource ( result ) ;
else
Info . display ( " Error " , " No data sources are loaded, retry " ) ;
// ResultFilterPanelManager.getInstance().loadDataSource(result);
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . fireEvent ( new CompletedLoadDataSourceEvent ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
protected void doActiveMaskLoadingGridAndButtonSearch ( boolean mask ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . setMaskGridPanel ( mask ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 18:01:08 +01:00
if ( mask )
searchBorderLayoutPanel . getSpeciesWestPanel ( ) . mask ( ) ;
else
searchBorderLayoutPanel . getSpeciesWestPanel ( ) . unmask ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . activeButtonSearch ( ! mask ) ;
}
protected void showFilterResults ( boolean onlySelected )
{
Log . trace ( " showFilterResults ******* onlySelected " + onlySelected ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
setOnlySelected ( onlySelected ) ;
updateOnlySelectedOnManager ( onlySelected ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
streamPagingLoader . reset ( ) ;
streamPagingLoader . pollingState ( ) ;
if ( onlySelected ) {
disableFilters ( ) ;
streamPagingLoader . setPage ( 0 ) ;
} else {
Log . trace ( " currentPage: " + currentPage ) ;
currentPage = streamPagingLoader . getCurrentPage ( ) ;
streamPagingLoader . setPage ( currentPage ) ;
}
}
public void openOccurenceWindow ( ) {
final OccurrencesWindow occurencesWindow = new OccurrencesWindow ( ) ;
occurencesWindow . show ( ) ;
Scheduler . get ( ) . scheduleDeferred ( new ScheduledCommand ( ) {
@Override
public void execute ( ) {
2017-01-12 17:00:19 +01:00
occurencesWindow . loadOccurences ( ) ;
2013-03-04 14:38:25 +01:00
}
} ) ;
}
public void saveOccurences ( final SaveFileFormat fileFormat , final OccurrencesSaveEnum typeCSV ) {
String fileName = " Occurrences " ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
switch ( fileFormat ) {
case CSV : fileName + = " .csv " ; break ;
case DARWIN_CORE : fileName + = " .xml " ; break ;
}
2017-01-12 17:00:19 +01:00
2015-07-22 17:19:38 +02:00
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save " + fileFormat . toString ( ) + " As... " , fileName , false ) ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Saving in progress " , " ... " ) ;
2015-07-09 15:46:05 +02:00
SpeciesDiscovery . taxonomySearchService . saveSelectedOccurrencePoints ( parent . getId ( ) , fileName , fileFormat , typeCSV , new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void result ) {
2017-01-12 17:00:19 +01:00
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
2015-07-09 15:46:05 +02:00
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
navigator . show ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
public void saveTaxonomyJobError ( final JobTaxonomyModel jobTaxonomyModel , final String scientificName , final List < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > listDataSources , final String rank ) {
// IN THIS CASE THERE IS ONE DATASOURCE
final String dataSourceName = listDataSources . get ( 0 ) ! = null ? listDataSources . get ( 0 ) . getName ( ) : " no datasource " ;
2013-07-18 18:32:28 +02:00
// final String fileName = "Error on DWCA " +rank + " -"+scientificName +"- from "+dataSourceName+".zip";
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
final String fileName = " Error file: " + jobTaxonomyModel . getName ( ) + " from " + dataSourceName + " .txt " ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
SpeciesDiscovery . taxonomySearchService . isAvailableTaxonomyJobReportError ( jobTaxonomyModel . getIdentifier ( ) , new AsyncCallback < Boolean > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
}
@Override
public void onSuccess ( Boolean result ) {
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
if ( result )
saveTaxonomyJobErrorFile ( ) ;
else
Info . display ( " Info " , " The selected job has not got an error file " ) ;
}
private void saveTaxonomyJobErrorFile ( ) {
2017-01-12 17:00:19 +01:00
2015-07-22 17:19:38 +02:00
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save the file with job Error/s As... " , fileName , false ) ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Saving in progress " , " ... " ) ;
2015-07-09 15:46:05 +02:00
SpeciesDiscovery . taxonomySearchService . saveTaxonomyJobError ( jobTaxonomyModel . getIdentifier ( ) , parent . getId ( ) , fileName , scientificName , dataSourceName , new AsyncCallback < Boolean > ( ) {
@Override
public void onSuccess ( Boolean result ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
if ( result ) {
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
changeStatusJob ( SearchResultType . TAXONOMY_ITEM , jobTaxonomyModel . getIdentifier ( ) , DownloadState . SAVED ) ;
}
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
navigator . show ( ) ;
2013-07-16 19:36:40 +02:00
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public void saveTaxonomyJob ( final JobTaxonomyModel jobTaxonomyModel , final String scientificName , final List < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > listDataSources , String rank ) {
// IN THIS CASE THERE IS ONE DATASOURCE
final String dataSourceName = listDataSources . get ( 0 ) ! = null ? listDataSources . get ( 0 ) . getName ( ) : " no datasource " ;
2013-07-18 18:32:28 +02:00
String fileName = jobTaxonomyModel . getName ( ) + " from " + dataSourceName + " - DWCA.zip " ;
2015-07-09 15:46:05 +02:00
2015-07-22 17:19:38 +02:00
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save DWCA As... " , fileName , false ) ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Saving in progress " , " ... " ) ;
2015-07-09 15:46:05 +02:00
SpeciesDiscovery . taxonomySearchService . saveTaxonomyJob ( jobTaxonomyModel . getIdentifier ( ) , parent . getId ( ) , fileName , scientificName , dataSourceName , new AsyncCallback < Boolean > ( ) {
@Override
public void onSuccess ( Boolean result ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
if ( result ) {
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
changeStatusJob ( SearchResultType . TAXONOMY_ITEM , jobTaxonomyModel . getIdentifier ( ) , DownloadState . SAVED ) ;
}
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
navigator . show ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
private void saveOccurencesJobError ( final JobOccurrencesModel jobOccurrencesModel , final String scientificName , List < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > dataSourceList ) {
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
String dataSourceName = " " ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
for ( org . gcube . portlets . user . speciesdiscovery . shared . DataSource dataSource : dataSourceList ) {
2013-07-18 18:32:28 +02:00
dataSourceName + = dataSource . getName ( ) + " , " ;
2013-07-16 19:36:40 +02:00
}
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
//remove last - char
2013-07-18 18:32:28 +02:00
if ( dataSourceName . endsWith ( " , " ) )
dataSourceName = dataSourceName . substring ( 0 , dataSourceName . length ( ) - 1 ) ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
final String dataSources = dataSourceName ;
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
final String fileName = " Error file: " + jobOccurrencesModel . getJobName ( ) + " from " + dataSourceName + " .txt " ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
SpeciesDiscovery . taxonomySearchService . isAvailableOccurrenceJobReportError ( jobOccurrencesModel . getJobIdentifier ( ) , new AsyncCallback < Boolean > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-07-16 19:36:40 +02:00
}
@Override
public void onSuccess ( Boolean result ) {
if ( result ) {
saveOccurrenceJobError ( ) ;
}
else
Info . display ( " Info " , " The selected job has not got an error file " ) ;
}
private void saveOccurrenceJobError ( ) {
2017-01-12 17:00:19 +01:00
2015-07-22 17:19:38 +02:00
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save the Error File As... " , fileName , false ) ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Saving in progress " , " ... " ) ;
2015-07-09 15:46:05 +02:00
SpeciesDiscovery . taxonomySearchService . saveOccurrenceJobError ( jobOccurrencesModel , parent . getId ( ) , fileName , scientificName , dataSources , new AsyncCallback < Boolean > ( ) {
@Override
public void onSuccess ( Boolean result ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
if ( result ) {
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
changeStatusJob ( SearchResultType . OCCURRENCE_POINT , jobOccurrencesModel . getJobIdentifier ( ) , DownloadState . SAVED ) ;
}
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
navigator . show ( ) ;
2013-07-16 19:36:40 +02:00
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2017-02-16 12:44:41 +01:00
private void saveGisLayerJob ( final JobGisLayerModel jobGisLayer ) {
String fileName = jobGisLayer . getJobName ( ) ;
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save Gis Layer " , fileName , false ) ;
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
Info . display ( " Saving in progress " , " ... " ) ;
SpeciesDiscovery . taxonomySearchService . saveGisLayerAsWsLink ( jobGisLayer , parent . getId ( ) , fileName , new AsyncCallback < Boolean > ( ) {
@Override
public void onSuccess ( Boolean result ) {
if ( result ) {
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
changeStatusJob ( SearchResultType . GIS_LAYER_POINT , jobGisLayer . getJobIdentifier ( ) , DownloadState . SAVED ) ;
}
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
2017-02-23 17:13:30 +01:00
navigator . setZIndex ( XDOM . getTopZIndex ( ) + 1000 ) ;
2017-02-16 12:44:41 +01:00
navigator . show ( ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private void saveOccurencesJob ( final JobOccurrencesModel jobOccurrencesModel , final String scientificName , List < org . gcube . portlets . user . speciesdiscovery . shared . DataSource > dataSourceList ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
String dataSourceName = " " ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
for ( org . gcube . portlets . user . speciesdiscovery . shared . DataSource dataSource : dataSourceList ) {
2013-07-18 18:32:28 +02:00
dataSourceName + = dataSource . getName ( ) + " , " ;
2013-03-04 14:38:25 +01:00
}
//remove last - char
2013-07-18 18:32:28 +02:00
if ( dataSourceName . endsWith ( " , " ) )
dataSourceName = dataSourceName . substring ( 0 , dataSourceName . lastIndexOf ( " , " ) ) ;
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
String extension = " " ;
String suffix = " " ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
switch ( jobOccurrencesModel . getFileFormat ( ) ) {
case CSV : {
2013-07-18 18:32:28 +02:00
suffix = " CSV " + jobOccurrencesModel . getCsvType ( ) ;
2013-03-04 14:38:25 +01:00
extension = " csv " ;
} break ;
case DARWIN_CORE : {
extension = " xml " ;
2013-07-18 18:32:28 +02:00
suffix = " DwC " ;
2013-03-04 14:38:25 +01:00
} break ;
}
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
// String fileName = "Occurrences results of "+scientificName +"- from "+dataSourceName+" - "+suffix+"."+extension;
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
String fileName = jobOccurrencesModel . getJobName ( ) + " from " + dataSourceName + " - " + suffix + " . " + extension ;
2015-07-09 15:46:05 +02:00
final String dataSources = dataSourceName ;
2015-07-22 17:19:38 +02:00
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save " + jobOccurrencesModel . getFileFormat ( ) . toString ( ) + " As... " , fileName , false ) ;
2015-07-09 15:46:05 +02:00
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Saving in progress " , " ... " ) ;
2015-07-09 15:46:05 +02:00
SpeciesDiscovery . taxonomySearchService . saveOccurrenceJob ( jobOccurrencesModel , parent . getId ( ) , fileName , scientificName , dataSources , new AsyncCallback < Boolean > ( ) {
@Override
public void onSuccess ( Boolean result ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
if ( result ) {
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
changeStatusJob ( SearchResultType . OCCURRENCE_POINT , jobOccurrencesModel . getJobIdentifier ( ) , DownloadState . SAVED ) ;
}
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
navigator . show ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public void changeStatusJob ( SearchResultType jobType , String jobId , DownloadState state ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( jobType . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
SpeciesDiscovery . taxonomySearchService . changeStatusOccurrenceJob ( jobId , state , new AsyncCallback < Boolean > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
Log . error ( " Error on change status " , " An error occurred on change status, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( Boolean result ) {
if ( result )
excecuteGetJobs ( SearchResultType . OCCURRENCE_POINT , true ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
} ) ;
} else if ( jobType . equals ( SearchResultType . TAXONOMY_ITEM ) ) {
SpeciesDiscovery . taxonomySearchService . changeStatusTaxonomyJob ( jobId , state , new AsyncCallback < Boolean > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
Log . error ( " Error on change status " , " An error occurred on change status, retry. " + caught . getMessage ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( Boolean result ) {
if ( result )
excecuteGetJobs ( SearchResultType . TAXONOMY_ITEM , true ) ;
2017-01-12 17:00:19 +01:00
2017-02-16 12:44:41 +01:00
}
} ) ;
} else if ( jobType . equals ( SearchResultType . GIS_LAYER_POINT ) ) {
SpeciesDiscovery . taxonomySearchService . changeStatusGisLayerJob ( jobId , state , new AsyncCallback < Boolean > ( ) {
@Override
public void onFailure ( Throwable caught ) {
Log . error ( " Error on change status " , " An error occurred on change status, retry. " + caught . getMessage ( ) ) ;
}
@Override
public void onSuccess ( Boolean result ) {
if ( result )
excecuteGetJobs ( SearchResultType . GIS_LAYER_POINT , true ) ;
2013-03-04 14:38:25 +01:00
}
} ) ;
}
2017-02-16 12:44:41 +01:00
//TODO
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public void saveTaxonomy ( final SaveFileFormat fileFormat ) {
String fileName = " Taxonomy " ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
switch ( fileFormat ) {
case DARWIN_CORE_ARCHIVE : fileName + = " .zip " ; break ;
}
2015-07-22 17:19:38 +02:00
final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog ( " Save " + fileFormat . toString ( ) + " As... " , fileName , false ) ;
2015-07-09 15:46:05 +02:00
WorskpaceExplorerSaveNotificationListener listener = new WorskpaceExplorerSaveNotificationListener ( ) {
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onSaving ( Item parent , final String fileName ) {
GWT . log ( " onSaving parent: " + parent + " , fileName " + fileName ) ;
navigator . hide ( ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Saving in progress " , " ... " ) ;
2015-07-09 15:46:05 +02:00
SpeciesDiscovery . taxonomySearchService . saveSelectedTaxonomyPoints ( parent . getId ( ) , fileName , fileFormat , new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void result ) {
2017-01-12 17:00:19 +01:00
Info . display ( " File saved " , " The " + fileName + " file has been saved in the workspace. " ) ;
2015-07-09 15:46:05 +02:00
}
@Override
public void onFailure ( Throwable caught ) {
Info . display ( " Error saving the file " , " An error occurred saving the file, retry. " ) ;
Log . error ( " Error saving the file " , " An error occurred saving the file, retry. " + caught . getMessage ( ) ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onAborted ( ) {
GWT . log ( " onAborted " ) ;
}
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
@Override
public void onFailed ( Throwable throwable ) {
GWT . log ( " onFailed " ) ;
}
} ;
2017-01-12 17:00:19 +01:00
2015-07-09 15:46:05 +02:00
navigator . addWorkspaceExplorerSaveNotificationListener ( listener ) ;
navigator . show ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-02-09 18:23:28 +01:00
//MOVED
// public void showOccurrencesMap()
// {
// final MessageBox progress = MessageBox.wait("Generating map", "Calculating occurrence points", "generating...");
//
// SpeciesDiscovery.taxonomySearchService.generateMapFromSelectedOccurrencePoints(new AsyncCallback<String>() {
//
// @Override
// public void onFailure(Throwable caught) {
// progress.close();
// Info.display("Error generating the map", "An error occurred generating the map, retry");
// Log.error("Error on loading", "An error occurred on edit listner, retry." +caught.getMessage());
//
// }
//
// @Override
// public void onSuccess(String layerName) {
// progress.close();
// showMap(layerName);
// }
// });
// }
public void showMap ( final String layerName ) {
2013-03-04 14:38:25 +01:00
2016-10-13 15:31:34 +02:00
Log . trace ( " Obtaining public link for layer : " + layerName ) ;
2017-01-12 17:00:19 +01:00
Info . display ( " Just moment... " , " Generating link to layer " ) ;
final DialogBox box = new DialogBox ( true ) ;
box . setText ( " Link to Occurrence Layer (CTRL+C to copy) " ) ;
final MessageForm form = new MessageForm ( true , " Generating link... " ) {
@Override
public void closeHandler ( ) {
box . hide ( ) ;
}
} ;
box . setWidget ( form ) ;
box . center ( ) ;
2016-10-13 15:31:34 +02:00
SpeciesDiscovery . gisInfoService . getGisLinkByLayerName ( layerName , new AsyncCallback < String > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
2016-10-13 15:31:34 +02:00
public void onFailure ( Throwable caught ) {
Info . display ( " Error showing the map " , " An error occurred while opening the map. Please retry " ) ;
Log . error ( " Error on opening map " , " An error occurred while getting gis info for layer : " + layerName + " . " + caught . getMessage ( ) ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
2016-10-13 15:31:34 +02:00
public void onSuccess ( String result ) {
2017-01-12 17:00:19 +01:00
form . setTextMessage ( result , true ) ;
//com.google.gwt.user.client.Window.open(result,"Occurrence Map","");
2013-03-04 14:38:25 +01:00
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private void setOnlySelected ( boolean b ) {
showOnlySelected = b ;
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . activeBtnShowOnlySelected ( b ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private void updateOnlySelectedOnManager ( boolean showOnlySelected ) {
dataSourceManager . setOnlySelected ( showOnlySelected ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public void reset ( ) {
streamPagingLoader . reset ( ) ;
streamPagingLoader . setActiveFilterObject ( null ) ;
// isActiveFilterOnResult = false;
activeFilterOnResult ( false ) ;
2017-01-12 17:00:19 +01:00
2013-07-17 16:31:22 +02:00
//ADDED 17/07/2013
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . getResultRowPanel ( ) . getClassicGridView ( ) . unmask ( ) ;
searchBorderLayoutPanel . getSpeciesWestPanel ( ) . unmask ( ) ;
searchBorderLayoutPanel . getSpeciesWestPanel ( ) . resetFilters ( ) ;
searchBorderLayoutPanel . getSpeciesNorthPanel ( ) . enableSearch ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private void switchView ( SpeciesCapability resultType ) {
Log . trace ( " switchView ... " ) ;
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . updateCurrentGridView ( resultType ) ;
}
2013-03-15 19:18:12 +01:00
private AsyncCallback < Void > initSearchCallback ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
reset ( ) ;
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . setFilterActive ( false , " " ) ;
setOnlySelected ( false ) ;
return new AsyncCallback < Void > ( ) {
@Override
public void onSuccess ( Void voi ) {
streamPagingLoader . startLoading ( false ) ;
2013-07-18 18:32:28 +02:00
loadLastQuery ( false ) ;
2013-03-04 14:38:25 +01:00
}
@Override
public void onFailure ( Throwable caught ) {
2013-07-18 18:32:28 +02:00
loadLastQuery ( true ) ;
2013-07-17 16:31:22 +02:00
Info . display ( " Error during the search " , caught . getMessage ( ) ) ;
2013-03-04 14:38:25 +01:00
Log . error ( " Error during the search " , caught . getMessage ( ) ) ;
reset ( ) ;
streamPagingLoader . resetFilters ( ) ;
}
} ;
}
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
private AsyncCallback < SearchByQueryParameter > initSearchByQueryCallback ( ) {
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
reset ( ) ;
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . setFilterActive ( false , " " ) ;
setOnlySelected ( false ) ;
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
return new AsyncCallback < SearchByQueryParameter > ( ) {
2013-03-04 14:38:25 +01:00
@Override
2013-03-15 19:18:12 +01:00
public void onSuccess ( SearchByQueryParameter queryParameters ) {
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
SpeciesCapability capability = Util . getCapabilityFromResultType ( queryParameters . getSearchResultType ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
//UPDATING LAST SEARCH EVENT FOR UPDATE THE GUI
lastSearchEvent . setResultType ( capability ) ;
lastSearchEvent . setMapTermsSearched ( queryParameters . getTerms ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-07-15 17:44:36 +02:00
System . out . println ( " queryParameters.getTerms() " + queryParameters . getTerms ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-07-15 17:44:36 +02:00
if ( queryParameters . getTerms ( ) ! = null ) {
String terms = " " ;
for ( SearchType key : queryParameters . getTerms ( ) . keySet ( ) ) {
terms + = queryParameters . getTerms ( ) . get ( key ) + " , " ;
}
2017-01-12 17:00:19 +01:00
2013-07-15 17:44:36 +02:00
if ( terms . length ( ) > 2 ) {
terms = terms . substring ( 0 , terms . length ( ) - 1 ) ;
}
terms = terms . replaceAll ( " \\ [ " , " " ) . replaceAll ( " \\ ] " , " " ) ; //REMOVE brackets
2017-01-12 17:00:19 +01:00
2013-07-15 17:44:36 +02:00
lastSearchEvent . setSearchTerm ( terms ) ;
}
2013-03-04 14:38:25 +01:00
setDataSourceType ( capability ) ;
switchView ( capability ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . activeToolBarButtons ( true ) ;
// eventBus.fireEvent(new SearchStartedEvent());
streamPagingLoader . startLoading ( false ) ;
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
loadLastQuery ( false ) ;
2013-03-04 14:38:25 +01:00
}
@Override
public void onFailure ( Throwable caught ) {
2013-07-03 17:11:35 +02:00
doActiveMaskLoadingGridAndButtonSearch ( false ) ;
2013-07-17 16:31:22 +02:00
Info . display ( " Error during the search " , caught . getMessage ( ) ) ;
2013-03-04 14:38:25 +01:00
Log . error ( " Error during the search " , caught . getMessage ( ) ) ;
reset ( ) ;
streamPagingLoader . resetFilters ( ) ;
2013-07-18 18:32:28 +02:00
loadLastQuery ( true ) ;
2013-03-04 14:38:25 +01:00
}
} ;
}
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
protected void loadLastQuery ( boolean isError ) {
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
if ( isError ) {
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setLastQueryAsEmpty ( ) ;
return ;
}
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
SpeciesDiscovery . taxonomySearchService . getLastQuery ( new AsyncCallback < String > ( ) {
@Override
public void onFailure ( Throwable caught ) {
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setLastQueryAsEmpty ( ) ;
}
@Override
public void onSuccess ( String query ) {
GWT . log ( " load last Query: " + query ) ;
2017-01-12 17:00:19 +01:00
2013-07-18 18:32:28 +02:00
if ( query ! = null & & ! query . isEmpty ( ) )
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setLastQuery ( query ) ;
else
searchBorderLayoutPanel . getSpeciesSouthPanel ( ) . setLastQueryAsEmpty ( ) ;
}
} ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
protected void searchByQuery ( String query ) {
Log . trace ( " IN SEARCH BY QUERY... " + query ) ;
2013-03-15 19:18:12 +01:00
AsyncCallback < SearchByQueryParameter > callback = initSearchByQueryCallback ( ) ;
2013-07-15 17:44:36 +02:00
//VALIDATOR
2017-01-12 17:00:19 +01:00
2013-07-15 17:44:36 +02:00
query = SearchTermValidator . replaceOccurrenceTermWithProduct ( query ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . searchByQuery ( query , callback ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . fireEvent ( new SearchStartedEvent ( ) ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-07-17 16:31:22 +02:00
protected void search ( SearchType type , String searchTerm , Number upperBoundLongitude , Number upperBoundLatitude , Number lowerBoundLongitude , Number lowerBoundLatitude , Date fromDate , Date toDate , List < DataSourceModel > listDataSources , String groupRank , SpeciesCapability resultType , List < DataSourceModel > listDataSourcesForSynonyms , List < DataSourceModel > listDataSourcesForUnfold )
2013-03-04 14:38:25 +01:00
{
2015-07-09 15:46:05 +02:00
GWT . log ( " IN SEARCH.............. " ) ;
2013-03-04 14:38:25 +01:00
Log . trace ( " IN SEARCH.............. " ) ;
2017-01-12 17:00:19 +01:00
2013-03-15 19:18:12 +01:00
AsyncCallback < Void > callback = initSearchCallback ( ) ;
2017-01-12 17:00:19 +01:00
Coordinate upperCoordinate = upperBoundLatitude ! = null & & upperBoundLongitude ! = null ? new Coordinate ( upperBoundLatitude . floatValue ( ) , upperBoundLongitude . floatValue ( ) ) : null ;
Coordinate lowerCoordinate = lowerBoundLatitude ! = null & & lowerBoundLongitude ! = null ? new Coordinate ( lowerBoundLatitude . floatValue ( ) , lowerBoundLongitude . floatValue ( ) ) : null ;
2013-03-04 14:38:25 +01:00
2013-07-17 16:31:22 +02:00
SearchFilters filters = new SearchFilters ( upperCoordinate , lowerCoordinate , fromDate , toDate , listDataSources , groupRank , resultType , listDataSourcesForSynonyms , listDataSourcesForUnfold ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
Log . trace ( " **********result type: " + filters . getResultType ( ) ) ;
2013-07-15 17:44:36 +02:00
//VALIDATOR
searchTerm = SearchTermValidator . validateQueryTerm ( searchTerm ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
switch ( type ) {
2017-01-12 17:00:19 +01:00
case BY_SCIENTIFIC_NAME :
2015-07-09 15:46:05 +02:00
GWT . log ( " search BY_SCIENTIFIC_NAME " ) ;
2017-01-12 17:00:19 +01:00
SpeciesDiscovery . taxonomySearchService . searchByScientificName ( searchTerm , filters , callback ) ;
2013-03-04 14:38:25 +01:00
break ;
2017-01-12 17:00:19 +01:00
case BY_COMMON_NAME :
2015-07-09 15:46:05 +02:00
GWT . log ( " search BY_COMMON_NAME " ) ;
2017-01-12 17:00:19 +01:00
SpeciesDiscovery . taxonomySearchService . searchByCommonName ( searchTerm , filters , callback ) ;
2013-03-04 14:38:25 +01:00
break ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
Log . trace ( " resultType " + resultType ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
setDataSourceType ( resultType ) ;
switchView ( resultType ) ;
searchBorderLayoutPanel . getSpeciesCenterPanel ( ) . activeToolBarButtons ( true ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
eventBus . fireEvent ( new SearchStartedEvent ( ) ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
private void setDataSourceType ( SpeciesCapability resultType ) {
switchDataSource ( resultType ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
protected String getCommonNamesHTML ( String scientificName , String author , String credits , List < CommonName > commonNames )
{
StringBuilder html = new StringBuilder ( " <p><h1 style= \" color: #385F95; \" > " ) ;
html . append ( scientificName ) ;
html . append ( " </h1> " ) ;
if ( commonNames . size ( ) > 0 ) html . append ( " aka : " ) ;
html . append ( " <table> " ) ;
Set < String > insertedLanguages = new HashSet < String > ( ) ;
for ( CommonName commonName : commonNames ) {
if ( insertedLanguages . contains ( commonName . getLanguage ( ) ) ) continue ;
else insertedLanguages . add ( commonName . getLanguage ( ) ) ;
html . append ( " <tr><td><b> " ) ;
html . append ( commonName . getLanguage ( ) ) ;
html . append ( " :</b></td><td> " ) ;
html . append ( commonName . getName ( ) ) ;
html . append ( " </td></tr> " ) ;
}
html . append ( " <tr></tr> " ) ;
html . append ( " <tr><td><b>Inserted by: </b></td><td> " ) ;
html . append ( author ) ;
html . append ( " </td></tr> " ) ;
html . append ( " <tr><td><b>Credits: </b></td><td> " ) ;
html . append ( credits ) ;
html . append ( " </td></tr> " ) ;
html . append ( " </table> " ) ;
html . append ( " </p> " ) ;
return html . toString ( ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
public EventBus getEventBus ( ) {
return eventBus ;
}
public SearchEvent getLastSearchEvent ( ) {
return lastSearchEvent ;
2017-01-12 17:00:19 +01:00
}
2013-03-04 14:38:25 +01:00
public static void excecuteGetJobs ( SearchResultType type , final boolean resetStructures ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
System . out . println ( " New rpc get list SpeciesJobs....... " + type ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( type . equals ( SearchResultType . TAXONOMY_ITEM ) ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( resetStructures )
TaxonomyJobSpeciesPanel . getInstance ( eventBus ) . getGridJob ( ) . mask ( " Loading " , ConstantsSpeciesDiscovery . LOADINGSTYLE ) ;
SpeciesDiscovery . taxonomySearchService . getListTaxonomyJobs ( new AsyncCallback < List < JobTaxonomyModel > > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
2017-01-12 17:00:19 +01:00
2017-03-20 14:43:11 +01:00
if ( caught instanceof SessionExpired )
CheckSession . showLogoutDialog ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( List < JobTaxonomyModel > result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( resetStructures )
TaxonomyJobSpeciesPanel . getInstance ( eventBus ) . getGridJob ( ) . unmask ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result . size ( ) > 0 ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( resetStructures )
TaxonomyJobSpeciesPanel . getInstance ( eventBus ) . resetStructures ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
TaxonomyJobSpeciesPanel . getInstance ( eventBus ) . addListJob ( result ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
} ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
else if ( type . equals ( SearchResultType . OCCURRENCE_POINT ) ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( resetStructures )
OccurrenceJobSpeciesPanel . getInstance ( eventBus ) . getGridJob ( ) . mask ( " Loading " , ConstantsSpeciesDiscovery . LOADINGSTYLE ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
SpeciesDiscovery . taxonomySearchService . getListOccurrencesJob ( new AsyncCallback < List < JobOccurrencesModel > > ( ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onFailure ( Throwable caught ) {
2017-01-12 17:00:19 +01:00
2017-03-20 14:43:11 +01:00
if ( caught instanceof SessionExpired )
CheckSession . showLogoutDialog ( ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
@Override
public void onSuccess ( List < JobOccurrencesModel > result ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( resetStructures )
OccurrenceJobSpeciesPanel . getInstance ( eventBus ) . getGridJob ( ) . unmask ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( result . size ( ) > 0 ) {
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
if ( resetStructures )
OccurrenceJobSpeciesPanel . getInstance ( eventBus ) . resetStructures ( ) ;
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
OccurrenceJobSpeciesPanel . getInstance ( eventBus ) . addListJob ( result ) ;
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2017-02-10 15:18:57 +01:00
} ) ;
2017-02-16 12:44:41 +01:00
}
else if ( type . equals ( SearchResultType . GIS_LAYER_POINT ) ) {
2017-02-10 15:18:57 +01:00
if ( resetStructures )
GisLayerJobSpeciesPanel . getInstance ( eventBus ) . getGridJob ( ) . mask ( " Loading " , ConstantsSpeciesDiscovery . LOADINGSTYLE ) ;
2017-02-10 18:04:01 +01:00
//TODO
2017-02-10 15:18:57 +01:00
SpeciesDiscovery . taxonomySearchService . getListGisLayerJob ( new AsyncCallback < List < JobGisLayerModel > > ( ) {
@Override
public void onFailure ( Throwable caught ) {
2017-03-20 14:43:11 +01:00
if ( caught instanceof SessionExpired )
CheckSession . showLogoutDialog ( ) ;
2017-02-10 15:18:57 +01:00
}
@Override
public void onSuccess ( List < JobGisLayerModel > result ) {
if ( resetStructures )
GisLayerJobSpeciesPanel . getInstance ( eventBus ) . getGridJob ( ) . unmask ( ) ;
if ( result . size ( ) > 0 ) {
if ( resetStructures )
GisLayerJobSpeciesPanel . getInstance ( eventBus ) . resetStructures ( ) ;
GisLayerJobSpeciesPanel . getInstance ( eventBus ) . addListJob ( result ) ;
}
}
} ) ;
2013-03-04 14:38:25 +01:00
}
2017-01-12 17:00:19 +01:00
2013-03-04 14:38:25 +01:00
}
}