137 lines
3.8 KiB
Java
Executable File
137 lines
3.8 KiB
Java
Executable File
package org.gcube.portlets.user.accountingdashboard.client.application.mainarea.filter;
|
|
|
|
import java.util.Date;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
import org.gcube.portlets.user.accountingdashboard.client.application.controller.Controller;
|
|
import org.gcube.portlets.user.accountingdashboard.client.application.event.EnvironmentEvent;
|
|
import org.gcube.portlets.user.accountingdashboard.client.application.event.ScopeDataEvent;
|
|
import org.gcube.portlets.user.accountingdashboard.shared.data.RequestReportData;
|
|
import org.gcube.portlets.user.accountingdashboard.shared.data.ScopeData;
|
|
import org.gcube.portlets.user.accountingdashboard.shared.env.EnvironmentData;
|
|
import org.gcube.portlets.user.accountingdashboard.shared.options.TreeOptions;
|
|
|
|
import com.google.gwt.i18n.client.DateTimeFormat;
|
|
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
|
|
*
|
|
*/
|
|
public class FilterAreaPresenter extends PresenterWidget<FilterAreaPresenter.FilterAreaView>
|
|
implements FilterAreaUiHandlers {
|
|
|
|
private static Logger logger = Logger.getLogger("");
|
|
|
|
interface FilterAreaView extends View, HasUiHandlers<FilterAreaPresenter> {
|
|
|
|
void displayScopeData(ScopeData scopeData);
|
|
|
|
void setEnvironment(EnvironmentData environmentData);
|
|
|
|
}
|
|
|
|
@SuppressWarnings("unused")
|
|
private EventBus eventBus;
|
|
private Controller controller;
|
|
|
|
@Inject
|
|
FilterAreaPresenter(EventBus eventBus, FilterAreaView view, Controller controller) {
|
|
super(eventBus, view);
|
|
this.eventBus = eventBus;
|
|
this.controller = controller;
|
|
getView().setUiHandlers(this);
|
|
addProviders();
|
|
bindToEvent();
|
|
}
|
|
|
|
private void addProviders() {
|
|
|
|
}
|
|
|
|
private void bindToEvent() {
|
|
|
|
controller.getEventBus().addHandler(ScopeDataEvent.TYPE, new ScopeDataEvent.ScopeDataEventHandler() {
|
|
|
|
@Override
|
|
public void onData(ScopeDataEvent event) {
|
|
logger.log(Level.FINE, "ScopeDataEvent received");
|
|
getView().displayScopeData(event.getScopeData());
|
|
|
|
}
|
|
});
|
|
|
|
controller.getEventBus().addHandler(EnvironmentEvent.TYPE, new EnvironmentEvent.EnvironmentEventHandler() {
|
|
|
|
@Override
|
|
public void onInit(EnvironmentEvent event) {
|
|
logger.log(Level.FINE, "EnvironmentEvent received");
|
|
getView().setEnvironment(event.getEnvironmentData());
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void onBind() {
|
|
super.onBind();
|
|
controller.getEnvironment();
|
|
controller.getTree();
|
|
}
|
|
|
|
@Override
|
|
public void updateTreeOptions(TreeOptions treeOptions) {
|
|
logger.fine("UpdateTreeOption: " + treeOptions);
|
|
controller.setTreeOptions(treeOptions);
|
|
controller.getTree();
|
|
}
|
|
|
|
@Override
|
|
public void getReport(RequestReportData requestReportData) {
|
|
if (checkDate(requestReportData.getDateFrom(), requestReportData.getDateTo())) {
|
|
controller.getReport(requestReportData);
|
|
}
|
|
|
|
}
|
|
|
|
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) {
|
|
controller.errorShow("Attention the start date must be less than the end date!");
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
}
|