From f82797b6f1b35bf6931b1b2d65d371c3a1f74475 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 12 Jan 2017 16:00:19 +0000 Subject: [PATCH] Added a panel to show link to occurrence layer git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/speciesdiscovery@141533 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/SearchController.java | 807 +++++++++--------- .../client/window/MessageForm.java | 176 ++++ .../client/window/MessageForm.ui.xml | 37 + 3 files changed, 604 insertions(+), 416 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.java create mode 100644 src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.ui.xml diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java index 30b22b4..a5bc09d 100644 --- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java +++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java @@ -1,5 +1,5 @@ /** - * + * */ package org.gcube.portlets.user.speciesdiscovery.client; @@ -71,6 +71,7 @@ import org.gcube.portlets.user.speciesdiscovery.client.util.stream.DataSourceMan import org.gcube.portlets.user.speciesdiscovery.client.util.stream.StreamPagingLoader; import org.gcube.portlets.user.speciesdiscovery.client.window.MessageBoxAlert; import org.gcube.portlets.user.speciesdiscovery.client.window.MessageDialog; +import org.gcube.portlets.user.speciesdiscovery.client.window.MessageForm; import org.gcube.portlets.user.speciesdiscovery.client.windowdetail.ViewDetailsWindow; import org.gcube.portlets.user.speciesdiscovery.shared.CommonName; import org.gcube.portlets.user.speciesdiscovery.shared.Coordinate; @@ -106,6 +107,7 @@ 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; +import com.google.gwt.user.client.ui.DialogBox; /** * @author "Federico De Faveri defaveri@isti.cnr.it" - "Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it" @@ -121,7 +123,7 @@ public class SearchController { protected boolean isActiveFilterOnResult = false; protected int currentPage = 1; protected SearchController instance = null; - + private SearchEvent lastSearchEvent = null; private SearchBorderLayoutPanel searchBorderLayoutPanel; @@ -130,7 +132,7 @@ public class SearchController { /** * @param eventBus - * @param searchBorderLayoutPanel + * @param searchBorderLayoutPanel */ public SearchController(EventBus eventBus, SearchBorderLayoutPanel searchBorderLayoutPanel) { SearchController.eventBus = eventBus; //TODO Temporary solution @@ -143,18 +145,18 @@ public class SearchController { } protected void switchDataSource(SpeciesCapability resultType){ - + setFiltersCriteria(); - + DataSource currentDataSource = dataSourceManager.getDataSourceByResultType(resultType); - + Log.trace("current data source: " + currentDataSource.getInfo()); - - //SET DATASOURCE + + //SET DATASOURCE this.streamPagingLoader.setDataSource(currentDataSource); } - + private void setFiltersCriteria(){ dataSourceManager.setActiveFilters(isActiveFilterOnResult); dataSourceManager.setOnlySelected(showOnlySelected); @@ -167,35 +169,35 @@ public class SearchController { public StreamPagingLoader getStreamPagingLoader() { return streamPagingLoader; } - + protected void bind() { - + eventBus.addHandler(UpdateFilterOnResultEvent.TYPE, new UpdateFilterOnResultEventHandler() { - + @Override public void onUpdateFilter(UpdateFilterOnResultEvent updateFilterOnResultEvent) { - + ResultFilterPanelManager.getInstance().updateDataSourceFilterById(updateFilterOnResultEvent.getUpdateFilterId()); } }); - + eventBus.addHandler(ActiveButtonCheckAllRowEvent.TYPE, new ActiveButtonCheckAllRowEventHandler() { - + @Override public void onActiveCkeckAllRow(ActiveButtonCheckAllRowEvent activeFilterCheckAllRowEvent) { - + if(lastSearchEvent.getResultType().equals(SpeciesCapability.RESULTITEM)) searchBorderLayoutPanel.getSpeciesCenterPanel().getResultRowPanel().activeCheckAllRows(activeFilterCheckAllRowEvent.isActiveFilter()); else if(lastSearchEvent.getResultType().equals(SpeciesCapability.TAXONOMYITEM)) searchBorderLayoutPanel.getSpeciesCenterPanel().getTaxonomyRowPanel().activeCheckAllRows(activeFilterCheckAllRowEvent.isActiveFilter()); - + } }); - + eventBus.addHandler(UpdateAllRowSelectionEvent.TYPE, new UpdateAllRowSelectionEventHandler() { - + @Override public void onUpdateAllRowSelection(final UpdateAllRowSelectionEvent updateAllRowSelectionEvent) { @@ -205,22 +207,22 @@ public class SearchController { 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); - + } @Override public void onSuccess(Integer result) { - + if(result.intValue()>0){ - + boolean selected = updateAllRowSelectionEvent.getSelectionValue(); - + String msgRow = result.intValue()==1?"row was":"rows were"; - + String msgSel = selected==true?"selected":"deselected"; Info.display("Info", result.intValue()+" "+msgRow+" "+msgSel); - + if(updateAllRowSelectionEvent.getSearchType().equals(SearchResultType.SPECIES_PRODUCT)) searchBorderLayoutPanel.getSpeciesCenterPanel().getResultRowPanel().selectAllRows(selected); else if(updateAllRowSelectionEvent.getSearchType().equals(SearchResultType.TAXONOMY_ITEM)) @@ -230,9 +232,9 @@ public class SearchController { }); } }); - + eventBus.addHandler(ReSubmitJobEvent.TYPE, new ReSubmitJobEventHandler() { - + @Override public void onResubmitJob(ReSubmitJobEvent reSubmitJobEvent) { if(reSubmitJobEvent.getLoadType().equals(SearchResultType.OCCURRENCE_POINT)){ @@ -240,33 +242,33 @@ public class SearchController { } else if(reSubmitJobEvent.getLoadType().equals(SearchResultType.TAXONOMY_ITEM)){ resubmitJob(reSubmitJobEvent.getLoadType(), reSubmitJobEvent.getJobTaxonomyModel().getIdentifier()); - } + } } }); - + eventBus.addHandler(ReLoadListJobEvent.TYPE, new ReLoadListJobEventHandler() { - + @Override public void onLoadJobList(ReLoadListJobEvent loadJobListEvent) { - + if(loadJobListEvent.getLoadType()!=null) excecuteGetJobs(loadJobListEvent.getLoadType(), true); } }); - + eventBus.addHandler(SearchTypeSelectedEvent.TYPE, new SearchTypeSelectedEventHandler() { - + @Override public void onSearchTypeSelected(SearchTypeSelectedEvent searchTypeSelectedEvent) { - + if(searchTypeSelectedEvent.getType()!=null) AdvancedSearchPanelManager.getInstance().disableFilterForSearchType(searchTypeSelectedEvent.getType()); - + } }); - - - + + + eventBus.addHandler(SearchEvent.TYPE, new SearchEventHandler() { @Override @@ -274,39 +276,39 @@ public class SearchController { //Info.display("Event", event.toString()); GWT.log(event.toString()); Log.trace(event.toString()); - + lastSearchEvent = event; doActiveMaskLoadingGridAndButtonSearch(true); - + // ResultFilterPanelManager.getInstance().setGroupByRank(event.getGroupByRank()); - + if(event.getType().equals(SearchType.BY_COMMON_NAME) || event.getType().equals(SearchType.BY_SCIENTIFIC_NAME)){ 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()); } else{ searchByQuery(event.getQuery()); } - + } }); - - + + eventBus.addHandler(CreateOccurrenceJobEvent.TYPE, new CreateOccurrenceJobEventHandler() { - + @Override public void onCreateSpeciesJob(CreateOccurrenceJobEvent createOccurrenceJobEvent) { - + List listJobOccurrenceModel = new ArrayList(); - + if(createOccurrenceJobEvent.getListDataSourceFound()==null){ Info.display("Error on loading", "An error occurred on recover data sources, please close window and try again."); } - + if(!createOccurrenceJobEvent.isByDataSource()){ //ONE JOB FOR ALL DATASOURCE /* String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from"; - + List dataSourceList = new ArrayList(); for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) { @@ -314,9 +316,9 @@ public class SearchController { jobName+=" "+dataSource; } */ - + String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences"; - + List dataSourceList = new ArrayList(); for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) { @@ -324,37 +326,37 @@ public class SearchController { } listJobOccurrenceModel.add(new JobOccurrencesModel("", jobName,createOccurrenceJobEvent.getSearchTerm(), dataSourceList, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource(), createOccurrenceJobEvent.getExpectedOccurrences())); - + }else{ //IS BY DATASOURCE - ONE JOB FOR EACH DATASOURCE - + for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) { - + // System.out.println("########DATASOURCE FOUND: "+dataSource); - + // String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from " +dataSource; - + String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences"; - + List dataSourceList = new ArrayList(); - + 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())); } } - + SpeciesDiscovery.taxonomySearchService.createOccurrencesJob(listJobOccurrenceModel, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource(), createOccurrenceJobEvent.getExpectedOccurrences(), new AsyncCallback>() { - + @Override public void onFailure(Throwable caught) { Info.display("Error", "Sorry, An error occurred on create job. Please try again later"); Log.error("Error on loading", "An error occurred on create job, retry." +caught.getMessage()); - + } @Override public void onSuccess(List result) { - + if(result!=null){ int jobs = result.size(); if(jobs>0){ @@ -366,30 +368,30 @@ public class SearchController { else{ Info.display("Species Occurrence Job","An error occurred on submit job, retry"); } - + } } }); } }); - - + + eventBus.addHandler(ActiveMaskLoadingGrid.TYPE, new ActiveMaskLoadingGridHandler() { - + @Override public void onActiveMaskLoadingGrid(ActiveMaskLoadingGrid activeLoadingGrid) { - + doActiveMaskLoadingGridAndButtonSearch(activeLoadingGrid.isActive()); - + } }); - + eventBus.addHandler(SaveJobEvent.TYPE, new SaveJobEventHandler() { - + @Override public void onSaveJob(SaveJobEvent saveJobEvent) { - + if(saveJobEvent.getItemType().equals(SearchResultType.TAXONOMY_ITEM)){ saveTaxonomyJob(saveJobEvent.getJobTaxonomyModel(), saveJobEvent.getScientificName(), saveJobEvent.getListDataSources(), saveJobEvent.getRank()); } @@ -399,12 +401,12 @@ public class SearchController { } }); - + eventBus.addHandler(SaveJobErrorEvent.TYPE, new SaveJobErrorEventHandler() { - + @Override public void onSaveJobError(SaveJobErrorEvent saveJobErrorEvent) { - + if(saveJobErrorEvent.getItemType().equals(SearchResultType.TAXONOMY_ITEM)){ saveTaxonomyJobError(saveJobErrorEvent.getJobTaxonomyModel(), saveJobErrorEvent.getScientificName(), saveJobErrorEvent.getListDataSources(), saveJobErrorEvent.getRank()); } @@ -414,29 +416,29 @@ public class SearchController { } }); - + eventBus.addHandler(CreateTaxonomyJobEvent.TYPE, new CreateTaxonomyJobEventHandler() { - + @Override public void onCreateSpeciesJob(CreateTaxonomyJobEvent createSpeciesJobEvent) { switch (createSpeciesJobEvent.getJobType()) { - + case BYCHILDREN: LightTaxonomyRow taxonomy = createSpeciesJobEvent.getTaxonomy(); - + SpeciesDiscovery.taxonomySearchService.createTaxonomyJobByChildren(taxonomy.getServiceId(), taxonomy.getName(), taxonomy.getRank(), createSpeciesJobEvent.getDataSourceName(), new AsyncCallback() { - + @Override public void onFailure(Throwable caught) { Info.display("Error", "Sorry, An error occurred on create job. Please try again later"); Log.error("Error on loading", "An error occurred on create job by children, retry." +caught.getMessage()); } - + @Override public void onSuccess(JobTaxonomyModel result) { - + if(result!=null){ Info.display("Species Taxonomy Job","A new taxonomy job was submitted"); excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false); @@ -444,99 +446,99 @@ public class SearchController { } } }); - - + + break; - + case BYIDS: - + SpeciesDiscovery.taxonomySearchService.createTaxonomyJobByIds(lastSearchEvent.getSearchTerm(), lastSearchEvent.getLstDataSources(), new AsyncCallback() { - + @Override public void onFailure(Throwable caught) { Log.error("Error on loading", "An error occurred on create job by ids, retry." +caught.getMessage()); - + } - + @Override public void onSuccess(JobTaxonomyModel result) { - + if(result!=null){ Info.display("Species Taxonomy Job","A new taxonomy job was submitted"); excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false); searchBorderLayoutPanel.getSpeciesSouthPanel().setIconTaxonomyByCounter(1); } } - + }); - + break; default: break; - } + } } }); - + eventBus.addHandler(CompletedLoadDataSourceEvent.TYPE, new CompletedLoadDataSourceEventHandler() { - + @Override public void onCompletedLoadDataSource(CompletedLoadDataSourceEvent completedLoadDataSourceEvent) { - + searchBorderLayoutPanel.getSpeciesNorthPanel().unmask(); eventBus.fireEvent(new CapabilitySelectedEvent(searchBorderLayoutPanel.getSpeciesNorthPanel().getSelectedCapability())); - + } }); - + eventBus.addHandler(ChangeFilterClassificationOnResultEvent.TYPE, new ChangeFilterClassificationOnResultEventHandler() { - + @Override public void onChangeFilter(ChangeFilterClassificationOnResultEvent changeFilterClassificationOnResultEvent) { ResultFilterPanelManager.getInstance().updateFilterCounterForClassification(); - + } }); - + eventBus.addHandler(CapabilitySelectedEvent.TYPE, new CapabilitySelectedEventHandler() { - + @Override public void onCapabilitySelected(CapabilitySelectedEvent capabilitySelectedEvent) { - + AdvancedSearchPanelManager.getInstance().setCurrentCapability(capabilitySelectedEvent.getCapability()); - + switch (capabilitySelectedEvent.getCapability()) { case RESULTITEM: - + searchBorderLayoutPanel.getSpeciesNorthPanel().setValueCheckValidateOcccurrences(true); searchBorderLayoutPanel.getSpeciesNorthPanel().setVisibleCheckValidateOcccurrences(true); break; - + default: searchBorderLayoutPanel.getSpeciesNorthPanel().setValueCheckValidateOcccurrences(false); searchBorderLayoutPanel.getSpeciesNorthPanel().setVisibleCheckValidateOcccurrences(false); }; - + // //TODO CHANGE // searchBorderLayoutPanel.getSpeciesCenterPanel().setCurrentView(capabilitySelectedEvent.getCapability()); - - + + } }); - + eventBus.addHandler(UpdateRowSelectionEvent.TYPE, new UpdateRowSelectionEventHandler() { - + @Override public void onUpdateRowSelection(final UpdateRowSelectionEvent updateRowSelectionEvent) { - + Log.trace("in update..... rowid "+ updateRowSelectionEvent.getRowId()); - + SpeciesDiscovery.taxonomySearchService.updateRowSelection(updateRowSelectionEvent.getRowId(), updateRowSelectionEvent.getSelectionValue(), new AsyncCallback() { @Override public void onSuccess(Void result) { Log.trace("rowid "+ updateRowSelectionEvent.getRowId() +" updated"); - + } @Override @@ -569,40 +571,40 @@ public class SearchController { @Override public void onFailure(Throwable caught) { Log.error("Error on loading", "An error occurred on count of occurrence point, retry." +caught.getMessage()); - + } @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() { - + public void handleEvent(MessageBoxEvent be) { //IF NOT CANCELLED String clickedButton = be.getButtonClicked().getItemId(); if(clickedButton.equals(Dialog.YES)) saveOccurences(event.getFileFormat(), event.getCsvType()); } - }); + }); } - + else saveOccurences(event.getFileFormat(), event.getCsvType()); } }); - + //END OLD CODE*********** saveOccurences(event.getFileFormat(), event.getCsvType()); - + } - + else if(event.getItemType().equals(SearchResultType.TAXONOMY_ITEM)) saveTaxonomy(event.getFileFormat()); @@ -615,36 +617,36 @@ public class SearchController { @Override public void onShowOccurrencesMap(final ShowOccurrencesMapEvent event) { - - + + SpeciesDiscovery.taxonomySearchService.getCountOfOccurrencesBatch(new AsyncCallback() { @Override public void onFailure(Throwable caught) { Log.error("Error on loading", "An error occurred on count of occurrence point, retry." +caught.getMessage()); - + } @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()+" occurrences points. Do you want continue?"); - + dialog.getMessageBoxConfirm().addCallback(new Listener() { - + public void handleEvent(MessageBoxEvent be) { //IF NOT CANCELLED String clickedButton = be.getButtonClicked().getItemId(); if(clickedButton.equals(Dialog.YES)) showOccurrencesMap(); } - }); + }); } - + else showOccurrencesMap(); } @@ -652,43 +654,43 @@ public class SearchController { }); } }); - + eventBus.addHandler(ShowOnlySelectedRowEvent.TYPE, new ShowOnlySelectedRowEventHandler() { - + @Override public void onShowOnlySelectedRow(ShowOnlySelectedRowEvent event) { - + showFilterResults(event.isOnlySelected()); } }); - - + + eventBus.addHandler(LoadDataSourceEvent.TYPE, new LoadDataSourceEventHandler() { - + @Override public void onLoadDataSource(LoadDataSourceEvent loadDataSourceEvent) { - + searchBorderLayoutPanel.getSpeciesNorthPanel().mask("Loading data sources...", ConstantsSpeciesDiscovery.LOADINGSTYLE); - + loadDataSourceFromService(); - + } }); - + eventBus.addHandler(ViewDetailsOfSelectedEvent.TYPE, new ViewDetailsOfSelectedEventHandler() { - + @Override public void onViewDetails(ViewDetailsOfSelectedEvent viewDetailsOfSelectedEvent) { - + // final ViewDetailsWindow view = new ViewDetailsWindow(instance, lastSearchEvent.getResultType(), lastSearchEvent.getType()); - + final ViewDetailsWindow view = new ViewDetailsWindow(lastSearchEvent); //IF SELECTED CAPABILITY IS OCCURENCES - IS CALL LOAD OCCURENCES METHOD if(lastSearchEvent.getResultType().getName().compareTo(SpeciesCapability.RESULTITEM.getName())==0){ - + Scheduler.get().scheduleDeferred(new ScheduledCommand() { - + @Override public void execute() { view.loadOccurences(); @@ -697,9 +699,9 @@ public class SearchController { } } }); - + eventBus.addHandler(ActiveFilterOnResultEvent.TYPE, new ActiveFilterOnResultEventHandler() { - + @Override public void onActiveFilter(ActiveFilterOnResultEvent activeFilterOnResultEvent) { @@ -707,30 +709,30 @@ public class SearchController { // Log.trace("current id "+ id + " size " +activeFilterOnResultEvent.getActiveFilterObject().getListByClassification().size()); // } doActiveMaskLoadingGridAndButtonSearch(true); - + activeFilterOnResult(true); setOnlySelected(false); updateOnlySelectedOnManager(false); - + ResultFilter filterObj = activeFilterOnResultEvent.getActiveFilterObject(); streamPagingLoader.setActiveFilterObject(filterObj); streamPagingLoader.reloadPageForFiltering(filterObj.getNumberOfData(), true); - + searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(true, filterObj.getFilterValue()); - + } }); - - + + eventBus.addHandler(SetCommonNamesEvent.TYPE, new SetCommonNamesEventHandler() { - + @Override public void onSetCommonNames(SetCommonNamesEvent setCommonNamesEvent) { - + final BaseModelData data = setCommonNamesEvent.getBaseModelData(); final ResultRow row = (ResultRow) data.get(SpeciesGridFields.ROW.getId()); - + SpeciesDiscovery.taxonomySearchService.loadListCommonNameByRowId(""+row.getId(), new AsyncCallback>() { @Override @@ -738,31 +740,31 @@ public class SearchController { // Window.alert(caught.getMessage()); Info.display("Error on loading", "An error occurred on loading Common Names, retry."); Log.error("Error in SetCommonNamesEvent: "+caught.getMessage()); - + } @Override public void onSuccess(ArrayListresult) { if(result!=null){ - + String matchingTaxonName = data.get(SpeciesGridFields.MATCHING_NAME.getId()); String matchingAccordionTo = data.get(SpeciesGridFields.MATCHING_AUTHOR.getId()); String matchingCredits = data.get(SpeciesGridFields.MATCHING_CREDITS.getId()); - + String commonNames = getCommonNamesHTML(matchingTaxonName, matchingAccordionTo, matchingCredits, result); data.set(SpeciesGridFields.COMMON_NAMES.getId(), commonNames); } - + row.setCommonNames(result); } }); - + } }); - + eventBus.addHandler(DisableFilterEvent.TYPE, new DisableFilterEventHandler() { - + @Override public void onDisableFilter(DisableFilterEvent disableFilterEvent) { @@ -772,75 +774,75 @@ public class SearchController { // updateOnlySelectedOnManager(); } }); - + } - + public void resubmitJob(SearchResultType resultType, String jobIdentifier){ - + if(jobIdentifier!=null){ if(resultType.equals(SearchResultType.OCCURRENCE_POINT)){ - + SpeciesDiscovery.taxonomySearchService.resubmitOccurrencesJob(jobIdentifier, new AsyncCallback>() { - + @Override public void onFailure(Throwable caught) { // TODO Auto-generated method stub - + } - + @Override public void onSuccess(List result) { - + if(result!=null && result.size()>0) excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, false); - + } }); } - + else if(resultType.equals(SearchResultType.TAXONOMY_ITEM)){ - + SpeciesDiscovery.taxonomySearchService.resubmitTaxonomyJob(jobIdentifier, new AsyncCallback() { - + @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(JobTaxonomyModel result) { - + if(result!=null) excecuteGetJobs(SearchResultType.TAXONOMY_ITEM, false); - + } }); - + } } else Info.display("Error", "job identifier is wrong"); - + } protected void activeFilterOnResult(boolean bool){ isActiveFilterOnResult = bool; dataSourceManager.setActiveFilters(isActiveFilterOnResult); } - + protected void disableFilters(){ - + activeFilterOnResult(false); streamPagingLoader.resetFilters(); searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(false, ""); } - - + + protected void loadDataSourceFromService() { - + SpeciesDiscovery.taxonomySearchService.loadDataSourceList(new AsyncCallback>() { @Override @@ -858,38 +860,38 @@ public class SearchController { @Override public void onSuccess(List result) { GWT.log("LOADED "+result.size()+" plugin's"); - + if(result!=null && result.size()>0) AdvancedSearchPanelManager.getInstance().loadDataSource(result); else Info.display("Error", "No data sources are loaded, retry"); // ResultFilterPanelManager.getInstance().loadDataSource(result); - + eventBus.fireEvent(new CompletedLoadDataSourceEvent()); } }); } - + protected void doActiveMaskLoadingGridAndButtonSearch(boolean mask) { - + searchBorderLayoutPanel.getSpeciesCenterPanel().setMaskGridPanel(mask); - + if(mask) searchBorderLayoutPanel.getSpeciesWestPanel().mask(); else searchBorderLayoutPanel.getSpeciesWestPanel().unmask(); - + searchBorderLayoutPanel.getSpeciesNorthPanel().activeButtonSearch(!mask); } protected void showFilterResults(boolean onlySelected) { Log.trace("showFilterResults ******* onlySelected "+onlySelected); - + setOnlySelected(onlySelected); updateOnlySelectedOnManager(onlySelected); - + streamPagingLoader.reset(); streamPagingLoader.pollingState(); @@ -911,7 +913,7 @@ public class SearchController { @Override public void execute() { - occurencesWindow.loadOccurences(); + occurencesWindow.loadOccurences(); } }); @@ -920,28 +922,28 @@ public class SearchController { public void saveOccurences(final SaveFileFormat fileFormat, final OccurrencesSaveEnum typeCSV) { String fileName = "Occurrences"; - + switch (fileFormat) { case CSV: fileName += ".csv"; break; case DARWIN_CORE: fileName += ".xml"; break; } - + final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog("Save "+fileFormat.toString()+" As... ", 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", "..."); - + + Info.display("Saving in progress", "..."); + SpeciesDiscovery.taxonomySearchService.saveSelectedOccurrencePoints(parent.getId(), fileName, fileFormat, typeCSV, new AsyncCallback() { @Override public void onSuccess(Void result) { - Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); + Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); } @Override @@ -951,44 +953,44 @@ public class SearchController { } }); } - + @Override public void onAborted() { GWT.log("onAborted"); } - + @Override public void onFailed(Throwable throwable) { GWT.log("onFailed"); } }; - + navigator.addWorkspaceExplorerSaveNotificationListener(listener); navigator.show(); } - - + + public void saveTaxonomyJobError(final JobTaxonomyModel jobTaxonomyModel, final String scientificName, final List listDataSources, final String rank) { // IN THIS CASE THERE IS ONE DATASOURCE final String dataSourceName = listDataSources.get(0)!=null?listDataSources.get(0).getName():"no datasource"; // final String fileName = "Error on DWCA " +rank + " -"+scientificName +"- from "+dataSourceName+".zip"; - + final String fileName = "Error file: "+jobTaxonomyModel.getName()+" from "+dataSourceName+".txt"; - + SpeciesDiscovery.taxonomySearchService.isAvailableTaxonomyJobReportError(jobTaxonomyModel.getIdentifier(), new AsyncCallback() { @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 onSuccess(Boolean result) { - + if(result) saveTaxonomyJobErrorFile(); else @@ -996,26 +998,26 @@ public class SearchController { } private void saveTaxonomyJobErrorFile() { - + final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog("Save the file with job Error/s As...", 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", "..."); - + + Info.display("Saving in progress", "..."); + SpeciesDiscovery.taxonomySearchService.saveTaxonomyJobError(jobTaxonomyModel.getIdentifier(), parent.getId(), fileName, scientificName, dataSourceName, new AsyncCallback() { @Override public void onSuccess(Boolean result) { - + if(result){ Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); - + changeStatusJob(SearchResultType.TAXONOMY_ITEM, jobTaxonomyModel.getIdentifier(), DownloadState.SAVED); } } @@ -1027,24 +1029,24 @@ public class SearchController { } }); } - + @Override public void onAborted() { GWT.log("onAborted"); } - + @Override public void onFailed(Throwable throwable) { GWT.log("onFailed"); } }; - + navigator.addWorkspaceExplorerSaveNotificationListener(listener); navigator.show(); } }); } - + public void saveTaxonomyJob(final JobTaxonomyModel jobTaxonomyModel, final String scientificName, final List listDataSources, String rank) { // IN THIS CASE THERE IS ONE DATASOURCE @@ -1053,24 +1055,24 @@ public class SearchController { String fileName = jobTaxonomyModel.getName() +" from "+dataSourceName+" - DWCA.zip"; final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog("Save DWCA As...", 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", "..."); + + Info.display("Saving in progress", "..."); SpeciesDiscovery.taxonomySearchService.saveTaxonomyJob(jobTaxonomyModel.getIdentifier(), parent.getId(), fileName, scientificName, dataSourceName, new AsyncCallback() { @Override public void onSuccess(Boolean result) { - + if(result){ Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); - + changeStatusJob(SearchResultType.TAXONOMY_ITEM, jobTaxonomyModel.getIdentifier(), DownloadState.SAVED); } } @@ -1082,46 +1084,46 @@ public class SearchController { } }); } - + @Override public void onAborted() { GWT.log("onAborted"); } - + @Override public void onFailed(Throwable throwable) { GWT.log("onFailed"); } }; - + navigator.addWorkspaceExplorerSaveNotificationListener(listener); navigator.show(); } - + private void saveOccurencesJobError(final JobOccurrencesModel jobOccurrencesModel,final String scientificName, List dataSourceList) { - + String dataSourceName = ""; - + for (org.gcube.portlets.user.speciesdiscovery.shared.DataSource dataSource : dataSourceList) { dataSourceName+= dataSource.getName() + ","; } - + //remove last - char if(dataSourceName.endsWith(",")) dataSourceName = dataSourceName.substring(0, dataSourceName.length()-1); - + final String dataSources = dataSourceName; - + final String fileName = "Error file: "+jobOccurrencesModel.getJobName()+" from "+dataSourceName+".txt"; - - + + SpeciesDiscovery.taxonomySearchService.isAvailableOccurrenceJobReportError(jobOccurrencesModel.getJobIdentifier(), new AsyncCallback() { @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 @@ -1134,23 +1136,23 @@ public class SearchController { } private void saveOccurrenceJobError() { - + final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog("Save the Error File As...", 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", "..."); + + Info.display("Saving in progress", "..."); SpeciesDiscovery.taxonomySearchService.saveOccurrenceJobError(jobOccurrencesModel, parent.getId(), fileName, scientificName, dataSources, new AsyncCallback() { @Override public void onSuccess(Boolean result) { - + if(result){ Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); changeStatusJob(SearchResultType.OCCURRENCE_POINT, jobOccurrencesModel.getJobIdentifier(), DownloadState.SAVED); @@ -1164,40 +1166,40 @@ public class SearchController { } }); } - + @Override public void onAborted() { GWT.log("onAborted"); } - + @Override public void onFailed(Throwable throwable) { GWT.log("onFailed"); } }; - + navigator.addWorkspaceExplorerSaveNotificationListener(listener); navigator.show(); } }); } - - + + private void saveOccurencesJob(final JobOccurrencesModel jobOccurrencesModel,final String scientificName, List dataSourceList) { - + String dataSourceName = ""; - + for (org.gcube.portlets.user.speciesdiscovery.shared.DataSource dataSource : dataSourceList) { dataSourceName+= dataSource.getName() + ","; } //remove last - char if(dataSourceName.endsWith(",")) dataSourceName = dataSourceName.substring(0, dataSourceName.lastIndexOf(",")); - + String extension = ""; String suffix = ""; - + switch (jobOccurrencesModel.getFileFormat()) { case CSV: { suffix = "CSV "+jobOccurrencesModel.getCsvType(); @@ -1208,26 +1210,26 @@ public class SearchController { suffix = "DwC"; } break; } - + // String fileName = "Occurrences results of "+scientificName +"- from "+dataSourceName+" - "+suffix+"."+extension; - + String fileName = jobOccurrencesModel.getJobName() +" from "+dataSourceName+" - "+suffix+"."+extension; final String dataSources = dataSourceName; final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog("Save "+jobOccurrencesModel.getFileFormat().toString() +" As...", 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", "..."); + + Info.display("Saving in progress", "..."); SpeciesDiscovery.taxonomySearchService.saveOccurrenceJob(jobOccurrencesModel, parent.getId(), fileName, scientificName, dataSources, new AsyncCallback() { @Override public void onSuccess(Boolean result) { - + if(result){ Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); changeStatusJob(SearchResultType.OCCURRENCE_POINT, jobOccurrencesModel.getJobIdentifier(), DownloadState.SAVED); @@ -1241,84 +1243,84 @@ public class SearchController { } }); } - + @Override public void onAborted() { GWT.log("onAborted"); } - + @Override public void onFailed(Throwable throwable) { GWT.log("onFailed"); } }; - + navigator.addWorkspaceExplorerSaveNotificationListener(listener); navigator.show(); } - - + + public void changeStatusJob(SearchResultType jobType, String jobId, DownloadState state){ - + if(jobType.equals(SearchResultType.OCCURRENCE_POINT)){ SpeciesDiscovery.taxonomySearchService.changeStatusOccurrenceJob(jobId, state, new AsyncCallback() { - + @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.OCCURRENCE_POINT, true); - + } }); }else if(jobType.equals(SearchResultType.TAXONOMY_ITEM)){ SpeciesDiscovery.taxonomySearchService.changeStatusTaxonomyJob(jobId, state, new AsyncCallback() { - + @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.TAXONOMY_ITEM, true); - + } }); } } - - + + public void saveTaxonomy(final SaveFileFormat fileFormat) { String fileName = "Taxonomy"; - + switch (fileFormat) { case DARWIN_CORE_ARCHIVE: fileName += ".zip"; break; } final WorkspaceExplorerSaveDialog navigator = new WorkspaceExplorerSaveDialog("Save "+fileFormat.toString() +" As...", 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", "..."); + + Info.display("Saving in progress", "..."); SpeciesDiscovery.taxonomySearchService.saveSelectedTaxonomyPoints(parent.getId(), fileName, fileFormat, new AsyncCallback() { @Override public void onSuccess(Void result) { - Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); + Info.display("File saved", "The "+fileName+" file has been saved in the workspace."); } @Override @@ -1328,18 +1330,18 @@ public class SearchController { } }); } - + @Override public void onAborted() { GWT.log("onAborted"); } - + @Override public void onFailed(Throwable throwable) { GWT.log("onFailed"); } }; - + navigator.addWorkspaceExplorerSaveNotificationListener(listener); navigator.show(); } @@ -1355,7 +1357,7 @@ public class SearchController { 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 @@ -1370,96 +1372,69 @@ public class SearchController { { Log.trace("Obtaining public link for layer : "+layerName); - + 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(); + SpeciesDiscovery.gisInfoService.getGisLinkByLayerName(layerName, new AsyncCallback() { - + @Override 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()); } - - + + @Override public void onSuccess(String result) { - com.google.gwt.user.client.Window.open(result,"Occurrence Map",""); + form.setTextMessage(result, true); + //com.google.gwt.user.client.Window.open(result,"Occurrence Map",""); } }); - - -// GisViewerParameters gisViewerParameters = new GisViewerParameters(); -// List layers = new ArrayList(); -// -//// layers.add(ConstantsSpeciesDiscovery.ENVIRONMENTS); -////// layers.add(ConstantsSpeciesDiscovery.WORLD_BORDERS); -//// layers.add(ConstantsSpeciesDiscovery.SST_AN_MEAN); -//// layers.add(ConstantsSpeciesDiscovery.PRIM_PROD_MEAN); -//// layers.add(ConstantsSpeciesDiscovery.SALINITY_MEAN); -//// layers.add(ConstantsSpeciesDiscovery.EEZALL); -//// layers.add(ConstantsSpeciesDiscovery.FAOAREA); -//// layers.add(ConstantsSpeciesDiscovery.LME); -//// layers.add(ConstantsSpeciesDiscovery.DEPTH_MEAN_ANNUAL); -// layers.add(layerName); -// -// gisViewerParameters.setOpeningLayers(layers); -// GCubeGisViewer gisViewer = new GCubeGisViewer(gisViewerParameters); -// -// gisViewer.addSaveHandler(new SaveHandler() { -// -// @Override -// public void onSaveSuccess(SaveEvent event) { -// Log.trace("onSaveSuccess "+event); -// } -// -// @Override -// public void onSaveFailure(SaveEvent event) { -// Log.trace("onSaveFailure "+event); -// } -// -// @Override -// public void onSave(SaveEvent event) { -// Log.trace("onSave "+event); -// } -// }); -// -// gisViewer.setMaskOnSaveEvents(); -// -// gisViewer.show(); } - + private void setOnlySelected(boolean b){ showOnlySelected = b; searchBorderLayoutPanel.getSpeciesCenterPanel().activeBtnShowOnlySelected(b); } - - + + private void updateOnlySelectedOnManager(boolean showOnlySelected){ dataSourceManager.setOnlySelected(showOnlySelected); } - + public void reset(){ streamPagingLoader.reset(); streamPagingLoader.setActiveFilterObject(null); // isActiveFilterOnResult = false; activeFilterOnResult(false); - + //ADDED 17/07/2013 searchBorderLayoutPanel.getSpeciesCenterPanel().getResultRowPanel().getClassicGridView().unmask(); searchBorderLayoutPanel.getSpeciesWestPanel().unmask(); searchBorderLayoutPanel.getSpeciesWestPanel().resetFilters(); searchBorderLayoutPanel.getSpeciesNorthPanel().enableSearch(); } - + private void switchView(SpeciesCapability resultType) { Log.trace("switchView ... "); searchBorderLayoutPanel.getSpeciesCenterPanel().updateCurrentGridView(resultType); } private AsyncCallback initSearchCallback(){ - + reset(); searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(false, ""); setOnlySelected(false); @@ -1482,48 +1457,48 @@ public class SearchController { } }; } - + private AsyncCallback initSearchByQueryCallback(){ - + reset(); searchBorderLayoutPanel.getSpeciesCenterPanel().setFilterActive(false, ""); setOnlySelected(false); - + return new AsyncCallback() { @Override public void onSuccess(SearchByQueryParameter queryParameters) { - + SpeciesCapability capability = Util.getCapabilityFromResultType(queryParameters.getSearchResultType()); - + //UPDATING LAST SEARCH EVENT FOR UPDATE THE GUI lastSearchEvent.setResultType(capability); lastSearchEvent.setMapTermsSearched(queryParameters.getTerms()); - - + + System.out.println("queryParameters.getTerms() "+queryParameters.getTerms()); - + if(queryParameters.getTerms()!=null){ String terms = ""; for (SearchType key : queryParameters.getTerms().keySet()) { terms += queryParameters.getTerms().get(key)+","; } - + if(terms.length()>2){ terms = terms.substring(0, terms.length()-1); } terms = terms.replaceAll("\\[", "").replaceAll("\\]",""); //REMOVE brackets - + lastSearchEvent.setSearchTerm(terms); } setDataSourceType(capability); switchView(capability); - + searchBorderLayoutPanel.getSpeciesCenterPanel().activeToolBarButtons(true); // eventBus.fireEvent(new SearchStartedEvent()); streamPagingLoader.startLoading(false); - + loadLastQuery(false); } @@ -1539,26 +1514,26 @@ public class SearchController { } }; } - + protected void loadLastQuery(boolean isError){ - + if(isError){ searchBorderLayoutPanel.getSpeciesSouthPanel().setLastQueryAsEmpty(); return; } - + SpeciesDiscovery.taxonomySearchService.getLastQuery(new AsyncCallback() { @Override public void onFailure(Throwable caught) { - + searchBorderLayoutPanel.getSpeciesSouthPanel().setLastQueryAsEmpty(); } @Override public void onSuccess(String query) { GWT.log("load last Query: "+query); - + if(query!=null && !query.isEmpty()) searchBorderLayoutPanel.getSpeciesSouthPanel().setLastQuery(query); else @@ -1566,7 +1541,7 @@ public class SearchController { } }); } - + protected void searchByQuery(String query) { Log.trace("IN SEARCH BY QUERY..." + query); @@ -1574,62 +1549,62 @@ public class SearchController { AsyncCallback callback = initSearchByQueryCallback(); //VALIDATOR - + query = SearchTermValidator.replaceOccurrenceTermWithProduct(query); - + SpeciesDiscovery.taxonomySearchService.searchByQuery(query, callback); - + eventBus.fireEvent(new SearchStartedEvent()); - - + + } - + protected void search(SearchType type, String searchTerm, Number upperBoundLongitude, Number upperBoundLatitude, Number lowerBoundLongitude, Number lowerBoundLatitude, Date fromDate, Date toDate, List listDataSources, String groupRank, SpeciesCapability resultType, List listDataSourcesForSynonyms, List listDataSourcesForUnfold) { GWT.log("IN SEARCH.............."); Log.trace("IN SEARCH.............."); - + AsyncCallback callback = initSearchCallback(); - - 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; + + 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; SearchFilters filters = new SearchFilters(upperCoordinate, lowerCoordinate, fromDate, toDate, listDataSources, groupRank, resultType, listDataSourcesForSynonyms, listDataSourcesForUnfold); - + Log.trace("**********result type: " + filters.getResultType()); //VALIDATOR searchTerm = SearchTermValidator.validateQueryTerm(searchTerm); - - + + switch (type) { - - case BY_SCIENTIFIC_NAME: + + case BY_SCIENTIFIC_NAME: GWT.log("search BY_SCIENTIFIC_NAME"); - SpeciesDiscovery.taxonomySearchService.searchByScientificName(searchTerm, filters, callback); + SpeciesDiscovery.taxonomySearchService.searchByScientificName(searchTerm, filters, callback); break; - case BY_COMMON_NAME: + case BY_COMMON_NAME: GWT.log("search BY_COMMON_NAME"); - SpeciesDiscovery.taxonomySearchService.searchByCommonName(searchTerm, filters, callback); + SpeciesDiscovery.taxonomySearchService.searchByCommonName(searchTerm, filters, callback); break; } - + Log.trace("resultType "+ resultType); - + setDataSourceType(resultType); switchView(resultType); searchBorderLayoutPanel.getSpeciesCenterPanel().activeToolBarButtons(true); - + eventBus.fireEvent(new SearchStartedEvent()); } - + private void setDataSourceType(SpeciesCapability resultType) { switchDataSource(resultType); } - + protected String getCommonNamesHTML(String scientificName, String author, String credits, List commonNames) { StringBuilder html = new StringBuilder("

"); @@ -1668,82 +1643,82 @@ public class SearchController { return html.toString(); } - + public EventBus getEventBus() { return eventBus; } public SearchEvent getLastSearchEvent() { return lastSearchEvent; - } - + } + public static void excecuteGetJobs(SearchResultType type, final boolean resetStructures){ - - + + System.out.println("New rpc get list SpeciesJobs......." + type); - + if(type.equals(SearchResultType.TAXONOMY_ITEM)){ - + if(resetStructures) TaxonomyJobSpeciesPanel.getInstance(eventBus).getGridJob().mask("Loading", ConstantsSpeciesDiscovery.LOADINGSTYLE); SpeciesDiscovery.taxonomySearchService.getListTaxonomyJobs(new AsyncCallback>() { - + @Override public void onFailure(Throwable caught) { - + } - + @Override public void onSuccess(List result) { - + if(resetStructures) TaxonomyJobSpeciesPanel.getInstance(eventBus).getGridJob().unmask(); - + if(result.size()>0){ - + if(resetStructures) TaxonomyJobSpeciesPanel.getInstance(eventBus).resetStructures(); - + TaxonomyJobSpeciesPanel.getInstance(eventBus).addListJob(result); } - + } - + }); } - + else if(type.equals(SearchResultType.OCCURRENCE_POINT)){ - + if(resetStructures) OccurrenceJobSpeciesPanel.getInstance(eventBus).getGridJob().mask("Loading", ConstantsSpeciesDiscovery.LOADINGSTYLE); - + SpeciesDiscovery.taxonomySearchService.getListOccurrencesJob(new AsyncCallback>() { - + @Override public void onFailure(Throwable caught) { - + } - + @Override public void onSuccess(List result) { - + if(resetStructures) OccurrenceJobSpeciesPanel.getInstance(eventBus).getGridJob().unmask(); - + if(result.size()>0){ - + if(resetStructures) OccurrenceJobSpeciesPanel.getInstance(eventBus).resetStructures(); - + OccurrenceJobSpeciesPanel.getInstance(eventBus).addListJob(result); } - + } - + }); } - + } } diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.java new file mode 100644 index 0000000..d9ef560 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.java @@ -0,0 +1,176 @@ +/** + * + */ + +package org.gcube.portlets.user.speciesdiscovery.client.window; + +import com.github.gwtbootstrap.client.ui.Button; +import com.github.gwtbootstrap.client.ui.ControlGroup; +import com.github.gwtbootstrap.client.ui.Form; +import com.github.gwtbootstrap.client.ui.TextArea; +import com.github.gwtbootstrap.client.ui.constants.ResizeType; +import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Style.Unit; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.HasHorizontalAlignment; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Widget; + +/** + * The Class DialogInfo. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jan 12, 2017 + */ +public abstract class MessageForm extends Composite { + + /** + * + */ + private static final String LOADING_DEFAULT_MSG = "Loading..."; + @UiField + TextArea text_info; + @UiField + Button close_dialog; + @UiField + Form form_info; + @UiField + ControlGroup text_info_group; + @UiField + FlowPanel loading_field; + @UiField + HorizontalPanel hp_form_actions; + private Label loadingLabel = new Label(); + private static AbstractFormReleaseUiBinder uiBinder = + GWT.create(AbstractFormReleaseUiBinder.class); + private int width = 400; + + /** + * Close handler. + */ + public abstract void closeHandler(); + + /** + * The Interface AbstractFormReleaseUiBinder. + * + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jan 12, + * 2017 + */ + interface AbstractFormReleaseUiBinder extends UiBinder { + } + + /** + * Instantiates a new dialog info. + * + * @param waiting + * the waiting + * @param msgWaiting + * the msg waiting + */ + public MessageForm(boolean waiting, String msgWaiting) { + + initDialog(); + if (waiting) { + showWaiting(msgWaiting); + } + } + + /** + * Instantiates a new dialog info. + * + * @param msgInfo + * the msg info + */ + public MessageForm(String msgInfo) { + + initDialog(); + setTextMessage(msgInfo, true); + } + + /** + * Inits the dialog. + */ + private void initDialog() { + + initWidget(uiBinder.createAndBindUi(this)); + setWaitingMessageVisible(false); + text_info.setWidth(width - 10 + "px"); + text_info.setReadOnly(true); + text_info.setResize(ResizeType.VERTICAL); + close_dialog.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + + closeHandler(); + } + }); + hp_form_actions.setCellHorizontalAlignment( + close_dialog, HasHorizontalAlignment.ALIGN_RIGHT); + } + + /** + * Inits the waiting. + * + * @param msg + * the msg + */ + private void showWaiting(String msg) { + + HorizontalPanel hp = new HorizontalPanel(); + loadingLabel.getElement().getStyle().setMarginBottom(2, Unit.PX); + loadingLabel.getElement().getStyle().setMarginRight(2, Unit.PX); + // loadingLabel.setClose(false); + msg = msg == null || msg.isEmpty() ? LOADING_DEFAULT_MSG : msg; + loadingLabel.setText(msg); + HTML imgLoading = + new HTML( + ""); + loading_field.add(imgLoading); + setWaitingMessageVisible(true); + hp.add(loadingLabel); + hp.add(imgLoading); + loading_field.add(hp); + } + + /** + * Sets the waiting alert visible. + * + * @param bool + * the new waiting alert visible + */ + public void setWaitingMessageVisible(boolean bool) { + + loading_field.setVisible(bool); + // text_info.setEnabled(!bool); + } + + /** + * Sets the text message. + * + * @param msg + * the msg + * @param hideLoadingAlertIfShown + * the hide loading alert if shown + */ + public void setTextMessage(String msg, boolean hideLoadingAlertIfShown) { + + if (hideLoadingAlertIfShown) + setWaitingMessageVisible(false); + else + setWaitingMessageVisible(true); + + text_info.getElement().getStyle().setBackgroundColor("#fcfcfc"); + text_info.setText(msg); + //text_info.setVisible(true); + text_info.setFocus(true); + text_info.selectAll(); + //markText(text_info.getElement()); + } +} diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.ui.xml b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.ui.xml new file mode 100644 index 0000000..cd21352 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/window/MessageForm.ui.xml @@ -0,0 +1,37 @@ + + + + + + .margin-none { + margin-bottom: 0px; + } + + .loading-image { + color: red; + background-image: + url('data:image/gif;base64,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'); + } + + + + + + + + + + + + + + + + Close + + + + \ No newline at end of file