2018-07-05 18:29:38 +02:00
|
|
|
package org.gcube.portlets.user.accountingdashboard.client.application.mainarea.filter;
|
|
|
|
|
2018-07-17 19:15:10 +02:00
|
|
|
import java.util.Date;
|
2018-07-06 17:48:46 +02:00
|
|
|
import java.util.logging.Level;
|
2018-07-05 18:29:38 +02:00
|
|
|
import java.util.logging.Logger;
|
|
|
|
|
|
|
|
import org.gcube.portlets.user.accountingdashboard.client.application.controller.Controller;
|
2018-07-06 17:48:46 +02:00
|
|
|
import org.gcube.portlets.user.accountingdashboard.client.application.event.ScopeDataEvent;
|
2018-07-09 19:08:52 +02:00
|
|
|
import org.gcube.portlets.user.accountingdashboard.shared.data.RequestReportData;
|
2018-07-06 17:48:46 +02:00
|
|
|
import org.gcube.portlets.user.accountingdashboard.shared.data.ScopeData;
|
2018-07-05 18:29:38 +02:00
|
|
|
|
2018-07-19 17:59:37 +02:00
|
|
|
import com.google.gwt.i18n.client.DateTimeFormat;
|
2018-07-05 18:29:38 +02:00
|
|
|
import com.google.inject.Inject;
|
|
|
|
import com.google.web.bindery.event.shared.EventBus;
|
|
|
|
import com.gwtplatform.mvp.client.HasUiHandlers;
|
|
|
|
import com.gwtplatform.mvp.client.PresenterWidget;
|
|
|
|
import com.gwtplatform.mvp.client.View;
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author Giancarlo Panichi
|
|
|
|
*
|
|
|
|
*/
|
2018-07-06 17:48:46 +02:00
|
|
|
public class FilterAreaPresenter extends PresenterWidget<FilterAreaPresenter.FilterAreaView>
|
|
|
|
implements FilterAreaUiHandlers {
|
2018-07-05 18:29:38 +02:00
|
|
|
|
|
|
|
private static Logger logger = Logger.getLogger("");
|
|
|
|
|
|
|
|
interface FilterAreaView extends View, HasUiHandlers<FilterAreaPresenter> {
|
|
|
|
|
2018-07-06 17:48:46 +02:00
|
|
|
void displayScopeData(ScopeData scopeData);
|
|
|
|
|
2018-07-05 18:29:38 +02:00
|
|
|
}
|
|
|
|
|
2018-07-19 17:59:37 +02:00
|
|
|
@SuppressWarnings("unused")
|
2018-07-05 18:29:38 +02:00
|
|
|
private EventBus eventBus;
|
|
|
|
private Controller controller;
|
|
|
|
|
|
|
|
@Inject
|
2018-07-06 17:48:46 +02:00
|
|
|
FilterAreaPresenter(EventBus eventBus, FilterAreaView view, Controller controller) {
|
2018-07-05 18:29:38 +02:00
|
|
|
super(eventBus, view);
|
|
|
|
this.eventBus = eventBus;
|
|
|
|
this.controller = controller;
|
|
|
|
getView().setUiHandlers(this);
|
|
|
|
addProviders();
|
|
|
|
bindToEvent();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void addProviders() {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void bindToEvent() {
|
|
|
|
|
2018-07-06 17:48:46 +02:00
|
|
|
controller.getEventBus().addHandler(ScopeDataEvent.TYPE, new ScopeDataEvent.ScopeDataEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onData(ScopeDataEvent event) {
|
|
|
|
logger.log(Level.FINE, "ScopeDataEvent received");
|
|
|
|
getView().displayScopeData(event.getScopeData());
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2018-07-05 18:29:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void onBind() {
|
|
|
|
super.onBind();
|
2018-07-06 17:48:46 +02:00
|
|
|
controller.getTree();
|
2018-07-05 18:29:38 +02:00
|
|
|
}
|
|
|
|
|
2018-07-09 19:08:52 +02:00
|
|
|
@Override
|
|
|
|
public void getReport(RequestReportData requestReportData) {
|
2018-07-17 19:15:10 +02:00
|
|
|
if(checkDate(requestReportData.getDateFrom(),requestReportData.getDateTo())){
|
|
|
|
controller.getReport(requestReportData);
|
|
|
|
}
|
2018-07-09 19:08:52 +02:00
|
|
|
|
|
|
|
}
|
2018-07-17 19:15:10 +02:00
|
|
|
|
2018-07-19 17:59:37 +02:00
|
|
|
private boolean checkDate(String dateStart, String dateEnd) {
|
|
|
|
DateTimeFormat dateTimeFormat = DateTimeFormat.getFormat("yyyy-MM-dd");
|
|
|
|
|
|
|
|
Date dateStartD = null;
|
|
|
|
try {
|
|
|
|
logger.fine("DateTemp1: " + dateStart);
|
|
|
|
dateStartD = dateTimeFormat.parse(dateStart);
|
|
|
|
logger.fine("DateStart: " + dateStartD);
|
|
|
|
} catch (Exception e) {
|
|
|
|
logger.log(Level.SEVERE, "Error in start date: " + e.getLocalizedMessage(), e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Date dateEndD = null;
|
|
|
|
try {
|
|
|
|
logger.fine("DateTemp2: " + dateEnd);
|
|
|
|
dateEndD = dateTimeFormat.parse(dateEnd);
|
|
|
|
logger.fine("DateEnd: " + dateEndD);
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
logger.log(Level.SEVERE, "Error in end date: " + e.getLocalizedMessage(), e);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (dateStartD.compareTo(dateEndD) > 0) {
|
2018-07-17 19:15:10 +02:00
|
|
|
controller.errorShow("Attention the start date must be less than the end date!");
|
|
|
|
return false;
|
|
|
|
} else {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
2018-07-09 19:08:52 +02:00
|
|
|
|
2018-07-05 18:29:38 +02:00
|
|
|
}
|