/** Stops presenter if no data left (all removed) */ protected void stopIfEmpty() { if (data.getWorkouts().size() == 0 && data.getNutrition() == null && data.getMeasurements().size() == 0 && data.getCardios().size() == 0 && data.getRuns().size() == 0) { stop(); } }
/** Shows all data */ protected void showData() { try { unbindPresenters(); // workouts if (data.getWorkouts() != null) { for (WorkoutModel w : data.getWorkouts()) { // if only link if (showOnlyLinks) { final WorkoutLinkPresenter wp = new WorkoutLinkPresenter( rpcService, eventBus, (WorkoutLinkDisplay) GWT.create(WorkoutLinkView.class), w, false); addNewPresenter(wp); } else { final WorkoutPresenter wp = new WorkoutPresenter( rpcService, eventBus, (WorkoutDisplay) GWT.create(WorkoutView.class), w); addNewPresenter(wp); } } } // nutrition if (data.getNutrition() != null) { // if only link if (showOnlyLinks) { // set date data.getNutrition().setDate(CommonUtils.getDateGmt(data.getDate())); final NutritionDayLinkPresenter wp = new NutritionDayLinkPresenter( rpcService, eventBus, (NutritionDayLinkDisplay) GWT.create(NutritionDayLinkView.class), data.getNutrition()); addNewPresenter(wp); } else { final NutritionDayPresenter wp = new NutritionDayPresenter( rpcService, eventBus, (NutritionDayDisplay) GWT.create(NutritionDayView.class), data.getUser().getUid(), CommonUtils.getDateGmt(data.getDate()), data.getNutrition()); addNewPresenter(wp); } } if (data.getMeasurements() != null) { // measurement for (MeasurementValueModel m : data.getMeasurements()) { final MeasurementValueLinkPresenter wp = new MeasurementValueLinkPresenter( rpcService, eventBus, (MeasurementValueLinkDisplay) GWT.create(MeasurementValueLinkView.class), m); addNewPresenter(wp); } } // cardio if (data.getCardios() != null) { for (CardioValueModel m : data.getCardios()) { final CardioValueLinkPresenter wp = new CardioValueLinkPresenter( rpcService, eventBus, (CardioValueLinkDisplay) GWT.create(CardioValueLinkView.class), m); addNewPresenter(wp); } } // run if (data.getRuns() != null) { for (RunValueModel m : data.getRuns()) { final RunValueLinkPresenter wp = new RunValueLinkPresenter( rpcService, eventBus, (RunValueLinkDisplay) GWT.create(RunValueLinkView.class), m); addNewPresenter(wp); } } } catch (Exception e) { Motiver.showException(e); } }
@Override public void onBind() { display.setDate(data.getDate()); display.showOnlyLinks(showOnlyLinks); // EVENT: workout value removed addEventHandler( WorkoutRemovedEvent.TYPE, new WorkoutRemovedEventHandler() { @Override public void onWorkoutRemoved(WorkoutRemovedEvent event) { // if this day boolean found = false; for (WorkoutModel m : data.getWorkouts()) { if (event.getWorkout().equals(m)) { data.getWorkouts().remove(m); found = true; break; } } // check if day empty if (found) { stopIfEmpty(); } } }); // EVENT: cardio value removed addEventHandler( CardioValueRemovedEvent.TYPE, new CardioValueRemovedEventHandler() { @Override public void onCardioValueRemoved(CardioValueRemovedEvent event) { // if this day boolean found = false; for (CardioValueModel m : data.getCardios()) { if (event.getCardioValue().equals(m)) { data.getCardios().remove(m); found = true; break; } } // check if day empty if (found) { stopIfEmpty(); } } }); // EVENT: run value removed addEventHandler( RunValueRemovedEvent.TYPE, new RunValueRemovedEventHandler() { @Override public void onRunValueRemoved(RunValueRemovedEvent event) { // if this day boolean found = false; for (RunValueModel m : data.getRuns()) { if (event.getRunValue().equals(m)) { data.getRuns().remove(m); found = true; break; } } // check if day empty if (found) { stopIfEmpty(); } } }); // EVENT: measurement value removed addEventHandler( MeasurementValueRemovedEvent.TYPE, new MeasurementValueRemovedEventHandler() { @Override public void onMeasurementValueRemoved(MeasurementValueRemovedEvent event) { // if this day boolean found = false; for (MeasurementValueModel m : data.getMeasurements()) { if (event.getMeasurementValue().equals(m)) { data.getMeasurements().remove(m); found = true; break; } } // check if day empty if (found) { stopIfEmpty(); } } }); }