Added Load Focus Event

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/performfish-analytics-portlet@179313 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2019-05-07 16:42:24 +00:00
parent 6f74617aba
commit c432df0a7c
9 changed files with 241 additions and 116 deletions

View File

@ -62,19 +62,20 @@ public class PerformFishAnalytics implements EntryPoint {
isAnnualCall = Boolean.parseBoolean(annual);
GWT.log("Read decoded isAnnual at: "+isAnnualCall);
}catch (Exception e) {
GWT.log("Forcing isAnnual at TRUE");
isAnnualCall = false;
//silent
}
String batchtypeParam = initParams.get(PerformFishAnalyticsConstant.QUERY_STRING_BATCHTYPE_PARAM);
//IS ANNUAL CALL
if(isAnnualCall) {
//CALLING THE PORTLET WITH ANNUAL CONFIGURATION
batchtypeParam = PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name();
GWT.log("Hard cabling batchtypeParam as: "+batchtypeParam);
if(batchtypeParam==null || batchtypeParam.isEmpty()) {
batchtypeParam = PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name();
GWT.log("Hard cabling batchtypeParam as: "+batchtypeParam);
}
PerformFishInitParameter performFishInitParams = new PerformFishInitParameter();
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, batchtypeParam);
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, farmidParam);

View File

@ -18,6 +18,8 @@ import org.gcube.portlets.user.performfishanalytics.client.event.CallAlgorithmEv
import org.gcube.portlets.user.performfishanalytics.client.event.CallAlgorithmEventHandler;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadBatchesEvent;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadBatchesEventHandler;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadFocusEvent;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadFocusEventHandler;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadPopulationTypeEvent;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadPopulationTypeEventHandler;
import org.gcube.portlets.user.performfishanalytics.client.event.PerformFishFieldFormChangedEvent;
@ -74,6 +76,11 @@ public class PerformFishAnnualAnalyticsController {
/** The decrypt parameters. */
private PerformFishInitParameter decryptParameters;
/** The focus. */
//This value is read from the first value of AnnualTable_internal csv returned by PerformFish Service
private String focus = null;
/**
@ -148,90 +155,84 @@ public class PerformFishAnnualAnalyticsController {
}
});
eventBus.addHandler(LoadBatchesEvent.TYPE, new LoadBatchesEventHandler() {
@Override
public void onLoadBatches(LoadBatchesEvent loadBatchesEvent) {
viewAnnualController.hideErrors();
final Map<String, List<String>> mapParameters = new HashMap<String, List<String>>();
String farmId = decryptParameters.getParameters().get(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM);
String batchType = viewAnnualController.getForm().getBatchType();
List<String> listYear = viewAnnualController.getForm().getYear();
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, Arrays.asList(farmId));
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, Arrays.asList(batchType));
if(!listYear.isEmpty()){
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_QUARTER_PARAM, listYear);
}
final Modal modal = new Modal(true);
modal.setCloseVisible(false);
modal.hide(false);
final VerticalPanel vp = new VerticalPanel();
LoaderIcon loader = new LoaderIcon("Loading batch(es) from PerformFish service, please wait...");
vp.add(loader);
loader.show(true);
modal.add(vp);
PerformFishAnalyticsServiceAsync.Util.getInstance().submitRequestToPerformFishService(mapParameters, new AsyncCallback<PerformFishResponse>() {
@Override
public void onFailure(Throwable caught) {
modal.hide();
Window.alert(caught.getMessage());
}
@Override
public void onSuccess(PerformFishResponse performFishResponse) {
modal.hide();
viewAnnualController.managePerformFishServiceResponse(performFishResponse, mapParameters, POPULATION_LEVEL.BATCH);
}
});
modal.show();
}
});
eventBus.addHandler(PerformFishFieldFormChangedEvent.TYPE, new PerformFishFieldFormChangedEventHandler() {
@Override
public void onFieldFormChanged(
PerformFishFieldFormChangedEvent performFishFieldFormChangedEvent) {
viewAnnualController.setReloadPerformFishServiceData(true);
//viewAnnualController.setReloadPerformFishServiceData(true);
boolean isValidForm = viewAnnualController.validatePerformFishInputFields();
//viewController.resetBatchIdStatus();
if(isValidForm) {
//boolean isKPIsSelected = viewAnnualController.validateKPIFields();
int selectedKPIsSize = viewAnnualController.getSelectedKPIs().size();
if(selectedKPIsSize>0) {
viewAnnualController.enableAllAlgorithmsForSubmit(true);
}else
viewAnnualController.enableAllAlgorithmsForSubmit(false);
viewAnnualController.manageAlgorithmsSubmit(selectedKPIsSize);
}else {
//viewController.enableLoadBatches(false);
viewAnnualController.enableAllAlgorithmsForSubmit(false);
}
}
});
eventBus.addHandler(LoadFocusEvent.TYPE, new LoadFocusEventHandler() {
@Override
public void onLoadFocusEvent(LoadFocusEvent loadFocusEvent) {
final Map<String, List<String>> mapParameters = new HashMap<String, List<String>>();
String farmId = decryptParameters.getParameters().get(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM);
String batchType = decryptParameters.getParameters().get(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM);
//String batchType = viewAnnualController.getForm().getBatchType();
//List<String> listYear = viewAnnualController.getForm().getYear();
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, Arrays.asList(farmId));
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, Arrays.asList(batchType));
// if(!listYear.isEmpty()){
// mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_QUARTER_PARAM, listYear);
// }
// final Modal modal = new Modal(true);
// modal.setCloseVisible(false);
// modal.hide(false);
// final VerticalPanel vp = new VerticalPanel();
// LoaderIcon loader = new LoaderIcon("Loading batch(es) from PerformFish service, please wait...");
// vp.add(loader);
// loader.show(true);
// modal.add(vp);
PerformFishAnalyticsServiceAsync.Util.getInstance().submitRequestToPerformFishService(mapParameters, new AsyncCallback<PerformFishResponse>() {
@Override
public void onFailure(Throwable caught) {
//modal.hide();
Window.alert(caught.getMessage());
}
@Override
public void onSuccess(PerformFishResponse performFishResponse) {
//modal.hide();
viewAnnualController.managePerformFishServiceResponse(performFishResponse, mapParameters, POPULATION_LEVEL.BATCH);
}
});
//modal.show();
}
});
eventBus.addHandler(AddedBatchIdEvent.TYPE, new AddedBatchIdEventHandler() {
@Override
public void onAddedBatchId(AddedBatchIdEvent checkValidBatchIdEvent) {
boolean isBatchIdValid = viewAnnualController.validateBatchIdSelection();
if(isBatchIdValid)
viewAnnualController.enableAllAlgorithmsForSubmit(true);
else
viewAnnualController.enableAllAlgorithmsForSubmit(false);
// boolean isBatchIdValid = viewAnnualController.validateBatchIdSelection();
// if(isBatchIdValid)
// viewAnnualController.enableAllAlgorithmsForSubmit(true);
// else
// viewAnnualController.enableAllAlgorithmsForSubmit(false);
//viewController.resyncSelectedKPIs();
}
@ -243,42 +244,19 @@ public class PerformFishAnnualAnalyticsController {
@Override
public void onSubmitRequest(SubmitRequestEvent submitRequestEvent) {
boolean isValidBatchId = viewAnnualController.validateBatchIdSelection();
//boolean isValidBatchId = viewAnnualController.validateBatchIdSelection();
boolean isValidKPI = viewAnnualController.validateKPIFields();
List<KPI> selectedKPI = viewAnnualController.getSelectedKPIs();
viewAnnualController.manageAlgorithmsSubmit(selectedKPI.size());
if(isValidBatchId && isValidKPI){
switch (submitRequestEvent.getChartType()) {
case BOXPLOT:
//UNARY
//callAlgorithm(submitRequestEvent.getChartType(), viewController.getSelectedBatchID().get(0), selectedKPI, null);
break;
case SCATTER:
// if(selectedKPI.size()==2)
// callAlgorithm(submitRequestEvent.getChartType(), viewController.getSelectedBatchID().get(0), selectedKPI, null);
// else
// Window.alert("Something seems wrong... You must select exactly two KPIs to execute the "+submitRequestEvent.getChartType());
break;
case CORRELATION:
//callDataMinerServiceForChartTypeCorrelation(viewController.getPerformFishResponse(), viewController.getRequestMapParameters());
break;
case SPEEDOMETER:
//UNARY
//callAlgorithm(submitRequestEvent.getChartType(), viewController.getSelectedBatchID().get(0), selectedKPI, selectedKPI);
break;
default:
break;
if(focus!=null) {
if(isValidKPI){
submitRequestToDM(submitRequestEvent.getChartType());
}
}
return;
@ -286,6 +264,79 @@ public class PerformFishAnnualAnalyticsController {
});
}
private void submitRequestToDM(DataMinerAlgorithms dmAlgorithm) {
switch (dmAlgorithm) {
case BOXPLOT:
//UNARY
//callAlgorithm(submitRequestEvent.getChartType(), viewController.getSelectedBatchID().get(0), selectedKPI, null);
break;
case SCATTER:
// if(selectedKPI.size()==2)
// callAlgorithm(submitRequestEvent.getChartType(), viewController.getSelectedBatchID().get(0), selectedKPI, null);
// else
// Window.alert("Something seems wrong... You must select exactly two KPIs to execute the "+submitRequestEvent.getChartType());
break;
case CORRELATION:
//callDataMinerServiceForChartTypeCorrelation(viewController.getPerformFishResponse(), viewController.getRequestMapParameters());
break;
case SPEEDOMETER:
//UNARY
//callAlgorithm(submitRequestEvent.getChartType(), viewController.getSelectedBatchID().get(0), selectedKPI, selectedKPI);
break;
default:
break;
}
}
private void callPerformFishService(SubmitRequestEvent requestEvent) {
viewAnnualController.hideErrors();
final Map<String, List<String>> mapParameters = new HashMap<String, List<String>>();
String farmId = decryptParameters.getParameters().get(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM);
String batchType = viewAnnualController.getForm().getBatchType();
//List<String> listYear = viewAnnualController.getForm().getYear();
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, Arrays.asList(farmId));
mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, Arrays.asList(batchType));
// if(!listYear.isEmpty()){
// mapParameters.put(PerformFishAnalyticsConstant.PERFORM_FISH_QUARTER_PARAM, listYear);
// }
final Modal modal = new Modal(true);
modal.setCloseVisible(false);
modal.hide(false);
final VerticalPanel vp = new VerticalPanel();
LoaderIcon loader = new LoaderIcon("Loading batch(es) from PerformFish service, please wait...");
vp.add(loader);
loader.show(true);
modal.add(vp);
PerformFishAnalyticsServiceAsync.Util.getInstance().submitRequestToPerformFishService(mapParameters, new AsyncCallback<PerformFishResponse>() {
@Override
public void onFailure(Throwable caught) {
modal.hide();
Window.alert(caught.getMessage());
}
@Override
public void onSuccess(PerformFishResponse performFishResponse) {
modal.hide();
viewAnnualController.managePerformFishServiceResponse(performFishResponse, mapParameters, POPULATION_LEVEL.FARM);
}
});
modal.show();
}
/**
* Call data miner service for chart type correlation.

View File

@ -125,7 +125,7 @@ public class PerformFishAnnualAnalyticsViewController {
headerPage.showLoading(true, "Loading Data....");
westPanel = new VerticalPanel();
estPanel = new VerticalPanel();
recapPage = new RecapSubmitPage();
recapPage = new RecapSubmitPage(PerformFishAnnualAnalyticsController.eventBus);
tabPanel = new TabPanelView();
headerPage.add(new PortletTitle("PerformFISH Statistical Analysis"));

View File

@ -128,7 +128,7 @@ public class PerformFishAnalyticsViewController {
headerPage.showLoading(true, "Loading Data....");
westPanel = new VerticalPanel();
estPanel = new VerticalPanel();
recapPage = new RecapSubmitPage();
recapPage = new RecapSubmitPage(PerformFishAnalyticsController.eventBus);
tabPanel = new TabPanelView();
headerPage.add(new PortletTitle("PerformFISH Statistical Analysis"));

View File

@ -0,0 +1,36 @@
package org.gcube.portlets.user.performfishanalytics.client.event;
import com.google.gwt.event.shared.GwtEvent;
/**
* The Class LoadFocusEvent.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* May 7, 2019
*/
public class LoadFocusEvent extends GwtEvent<LoadFocusEventHandler> {
public static Type<LoadFocusEventHandler> TYPE = new Type<LoadFocusEventHandler>();
/**
* Instantiates a new load batches event.
*/
public LoadFocusEvent() {
}
/* (non-Javadoc)
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/
@Override
public Type<LoadFocusEventHandler> getAssociatedType() {
return TYPE;
}
/* (non-Javadoc)
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
*/
@Override
protected void dispatch(LoadFocusEventHandler handler) {
handler.onLoadFocusEvent(this);
}
}

View File

@ -0,0 +1,22 @@
package org.gcube.portlets.user.performfishanalytics.client.event;
import com.google.gwt.event.shared.EventHandler;
/**
* The Interface LoadFocusEventHandler.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
*
* May 7, 2019
*/
public interface LoadFocusEventHandler extends EventHandler {
/**
* On load focus event.
*
* @param loadFocusEvent the load focus event
*/
void onLoadFocusEvent(LoadFocusEvent loadFocusEvent);
}

View File

@ -9,7 +9,7 @@ import java.util.Map;
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant;
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant.POPULATION_LEVEL;
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsServiceAsync;
import org.gcube.portlets.user.performfishanalytics.client.controllers.PerformFishAnalyticsController;
import org.gcube.portlets.user.performfishanalytics.client.annualcontrollers.PerformFishAnnualAnalyticsController;
import org.gcube.portlets.user.performfishanalytics.client.event.AddedBatchIdEvent;
import org.gcube.portlets.user.performfishanalytics.client.view.LoaderIcon;
import org.gcube.portlets.user.performfishanalytics.shared.csv.CSVFile;
@ -107,7 +107,7 @@ public class AnnualListKPIView extends Composite {
GWT.log("PerformFish Response: "+performFishResponse);
String fileURL = performFishResponse.getMapParameters().get(PerformFishAnalyticsConstant.BATCHES_TABLE_INTERNAL);
/*String fileURL = performFishResponse.getMapParameters().get(PerformFishAnalyticsConstant.BATCHES_TABLE_INTERNAL);
GWT.log("BatchesTable_internal is: "+fileURL);
@ -148,7 +148,7 @@ public class AnnualListKPIView extends Composite {
List<CSVRow> rows = result.getValueRows();
if(rows==null || rows.isEmpty()){
PerformFishAnalyticsController.eventBus.fireEvent(new AddedBatchIdEvent());
PerformFishAnnualAnalyticsController.eventBus.fireEvent(new AddedBatchIdEvent());
return;
}
@ -162,11 +162,12 @@ public class AnnualListKPIView extends Composite {
// uib_list_batch_id.addItem(PerformFishAnalyticsConstant.DM_FOCUS_ID_ALL_VALUE, PerformFishAnalyticsConstant.DM_FOCUS_ID_ALL_VALUE);
// listBatchesID.add(PerformFishAnalyticsConstant.DM_FOCUS_ID_ALL_VALUE);
PerformFishAnalyticsController.eventBus.fireEvent(new AddedBatchIdEvent());
PerformFishAnnualAnalyticsController.eventBus.fireEvent(new AddedBatchIdEvent());
}
}
});
}
} */
}
/**

View File

@ -6,7 +6,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant;
import org.gcube.portlets.user.performfishanalytics.client.annualcontrollers.PerformFishAnnualAnalyticsController;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadFocusEvent;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadPopulationTypeEvent;
import org.gcube.portlets.user.performfishanalytics.client.event.PerformFishFieldFormChangedEvent;
import org.gcube.portlets.user.performfishanalytics.client.event.SelectedPopulationTypeEvent;
@ -173,19 +175,22 @@ public class PerformFishAnnualAnalitycsFormView extends Composite {
mapPopulation.put(populationName, result);
fillPopulationType(populationName, result, population);
//TODO CAN WE MOVE THIS CALL IN ANOTHER POSITION?
PerformFishAnnualAnalyticsController.eventBus.fireEvent(new LoadFocusEvent());
}
/**
* Fill year.
*
* @param listQuarter the list quarter
* @param listYear the list quarter
*/
private void fillYear(List<Year> listQuarter) {
private void fillYear(List<Year> listYear) {
field_select_year.clear();
if (listQuarter != null && listQuarter.size() > 0) {
if (listYear != null && listYear.size() > 0) {
field_select_year.setEnabled(true);
for (Year year : listQuarter) {
for (Year year : listYear) {
field_select_year.addItem(year.getName(), year.getId());
}
}
@ -214,8 +219,14 @@ public class PerformFishAnnualAnalitycsFormView extends Composite {
field_select_population_type.setEnabled(true);
mapPopulationType.clear();
for (PopulationType popType : result) {
field_select_population_type.addItem(
popType.getName(), popType.getId());
//TODO HARD-CABLED DUE TO MOCKUP PRESENTED BY GP
String batchTypeName = popType.getName();
if(popType.getName().equals(PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name())) {
batchTypeName = "Farm Data";
}
field_select_population_type.addItem(batchTypeName, popType.getId());
mapPopulationType.put(popType.getId(), popType);
// if(thCatalogueBean.isDefault()){
// field_select_catalogue_name.setSelectedValue(thCatalogueBean.getName());

View File

@ -9,7 +9,6 @@ import java.util.List;
import java.util.Set;
import org.gcube.portlets.user.performfishanalytics.client.DataMinerAlgorithms;
import org.gcube.portlets.user.performfishanalytics.client.controllers.PerformFishAnalyticsController;
import org.gcube.portlets.user.performfishanalytics.client.event.SubmitRequestEvent;
import org.gcube.portlets.user.performfishanalytics.shared.KPI;
@ -19,6 +18,7 @@ import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
@ -59,6 +59,8 @@ public class RecapSubmitPage extends Composite {
private HashMap<String, KPI> mapSelected = new HashMap<String, KPI>();
private HashMap<String, HTML> mapLabel = new HashMap<String, HTML>();
private HandlerManager theEventBus;
/**
* The Interface RecapSubmitPageUiBinder.
*
@ -79,9 +81,10 @@ public class RecapSubmitPage extends Composite {
* Note that depending on the widget that is used, it may be necessary to
* implement HasHTML instead of HasText.
*/
public RecapSubmitPage() {
public RecapSubmitPage(HandlerManager eventBus) {
initWidget(uiBinder.createAndBindUi(this));
this.theEventBus = eventBus;
recapPanel.getElement().getStyle().setProperty("width", "98%");
@ -92,7 +95,7 @@ public class RecapSubmitPage extends Composite {
DataMinerAlgorithms chartType = DataMinerAlgorithms.valueOf(uib_butt_descriptive_statistics.getName());
PerformFishAnalyticsController.eventBus.fireEvent(new SubmitRequestEvent(chartType));
theEventBus.fireEvent(new SubmitRequestEvent(chartType));
}
});
@ -104,7 +107,7 @@ public class RecapSubmitPage extends Composite {
DataMinerAlgorithms chartType = DataMinerAlgorithms.valueOf(uib_butt_speedometer.getName());
PerformFishAnalyticsController.eventBus.fireEvent(new SubmitRequestEvent(chartType));
theEventBus.fireEvent(new SubmitRequestEvent(chartType));
}
});
@ -115,7 +118,7 @@ public class RecapSubmitPage extends Composite {
DataMinerAlgorithms chartType = DataMinerAlgorithms.valueOf(uib_butt_scatter_plot.getName());
PerformFishAnalyticsController.eventBus.fireEvent(new SubmitRequestEvent(chartType));
theEventBus.fireEvent(new SubmitRequestEvent(chartType));
}
});
@ -127,7 +130,7 @@ public class RecapSubmitPage extends Composite {
DataMinerAlgorithms chartType = DataMinerAlgorithms.valueOf(uib_butt_correlation_analysis.getName());
PerformFishAnalyticsController.eventBus.fireEvent(new SubmitRequestEvent(chartType));
theEventBus.fireEvent(new SubmitRequestEvent(chartType));
}
});