PreviousMealsPshBtn.setVisible(false);
PreviousMealsFlexTable.setWidget(0, 2, PreviousMealsPshBtn);
PreviousMeals.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
Meal meal = meals.get(PreviousMeals.getSelectedIndex());
FlexTable flexTable = new FlexTable();
flexTable.setWidth("300px");
MealsListFlexTable.setWidget(0, 0, flexTable);
flexTable.setText(0, 0, "Items");
flexTable.setText(0, 1, "Qty");
flexTable.getCellFormatter().addStyleName(0, 0,
"calculatorlistheader");
flexTable.getCellFormatter().addStyleName(0, 1,
"calculatorlistheader");
for (int i = 0; i < meal.getFoodItems().size(); i++) {
flexTable.setText(i + 1, 0,
"- " + meal.getFoodItems().get(i).getName());
flexTable.setText(i + 1, 1, "x" + meal.getQuantity(i));
}
}
});
PreviousMealsPshBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (PreviousMeals.getSelectedIndex() == -1
|| PreviousMeals.getValue(PreviousMeals
.getSelectedIndex()) == null
|| PreviousMeals
.getValue(PreviousMeals.getSelectedIndex())
.trim().equals(""))
return;
FoodsFlexTable.setVisible(true);
Meal meal = meals.get(PreviousMeals.getSelectedIndex());
newMeal = new Meal();
for (FoodItem foodItem : meal.getFoodItems()) {
for (int i = 0; i < meal.getQuantity(foodItem); i++)
newMeal.addFoodItem(foodItem);
int row = newMeal.indexOfFoodItem(foodItem) + 1;
int qty = newMeal.getQuantity(foodItem);
final FoodItem foodItem2 = foodItem;
FoodsFlexTable.setText(row, 0, foodItem.getName());
FoodsFlexTable.setText(row, 1, "x" + qty);
FoodsFlexTable.setText(row, 2,
Double.toString((int) foodItem.getCalories() * qty));
FoodsFlexTable.setText(
row,
3,
Double.toString((int) foodItem.getFatCalories()
* qty));
FoodsFlexTable.setText(row, 4,
Double.toString((int) foodItem.getFatGrams() * qty));
FoodsFlexTable.setText(
row,
5,
Double.toString((int) foodItem.getCarbohydrates()
* qty));
FoodsFlexTable.setText(row, 6,
Double.toString((int) foodItem.getProtein() * qty));
TotalCalsTextBox.setText(Double.toString((int) newMeal
.totalCalories()));
Button removeFood = new Button("x");
removeFood.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
int removedIndex = newMeal
.indexOfFoodItem(foodItem2);
newMeal.removeFoodItem(removedIndex);
FoodsFlexTable.removeRow(removedIndex + 1);
TotalCalsTextBox.setText(Double
.toString((int) newMeal.totalCalories()));
}
});
FoodsFlexTable.setWidget(row, 7, removeFood);
}
}
});
MealsListFlexTable = new FlexTable();
MealVerticalPanel.add(MealsListFlexTable);
MealsListFlexTable.setWidth("500px");
// MealsListFlexTable.setStyleName("cw-FlexTable");
/* Workout / Exercise */
WorkoutVerticalPanel = new VerticalPanel();
tabPanel.add(WorkoutVerticalPanel, " Workout ", false);
WorkoutVerticalPanel.setSize("6cm", "4cm");
tabPanel.addStyleName("table-center");
WorkoutFlexTable = new FlexTable();
WorkoutVerticalPanel.add(WorkoutFlexTable);
WorkoutFlexTable.setWidth("500px");
Label lblExerciseItem = new Label("Exercise Item:");
WorkoutFlexTable.setWidget(0, 0, lblExerciseItem);
lblExerciseItem.setWidth("121px");
AddExercisePshBtn = new Button("Add");
AddExercisePshBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
addExercise();
}
});
NewExerciseItemList = new ListBox();
NewExerciseItemList.addKeyPressHandler(new KeyPressHandler() {
public void onKeyPress(KeyPressEvent event) {
if (event.getCharCode() == KeyCodes.KEY_ENTER) {
addExercise();
}
}
});
WorkoutFlexTable.setWidget(0, 1, NewExerciseItemList);
WorkoutFlexTable.setWidget(0, 2, AddExercisePshBtn);
AddExercisePshBtn.setWidth("50px");
ExercisesFlexTable = new FlexTable();
WorkoutVerticalPanel.add(new HTML("<br/><br/>"));
WorkoutVerticalPanel.add(ExercisesFlexTable);
ExercisesFlexTable.setWidth("500px");
ExercisesFlexTable.setText(0, 0, "Exercise Items");
ExercisesFlexTable.setText(0, 1, "Duration");
ExercisesFlexTable.setText(0, 2, "Calories Burned");
// ExercisesFlexTable.setStyleName("cw-FlexTable");
ExercisesFlexTable.getCellFormatter().addStyleName(0, 0,
"calculatorlistheader");
ExercisesFlexTable.getCellFormatter().addStyleName(0, 1,
"calculatorlistheader");
ExercisesFlexTable.getCellFormatter().addStyleName(0, 2,
"calculatorlistheader");
ExercisesFlexTable.setVisible(false);
Label lblTotalCaloriesBurned = new Label("Total Calories Burned:");
lblTotalCaloriesBurned.setStylePrimaryName("gwt-TotalCa");
WorkoutFlexTable.setWidget(3, 0, lblTotalCaloriesBurned);
lblTotalCaloriesBurned.setWidth("103px");
TotalCalsBurnedTextBox = new TextBox();
TotalCalsBurnedTextBox.setReadOnly(true);
TotalCalsBurnedTextBox.setText(Integer.toString(0));
WorkoutFlexTable.setWidget(3, 1, TotalCalsBurnedTextBox);
Label lblNewLabelW = new Label("Workout Name:");
WorkoutFlexTable.setWidget(4, 0, lblNewLabelW);
WorkoutLabelTextBox = new TextBox();
WorkoutFlexTable.setWidget(4, 1, WorkoutLabelTextBox);
SaveWorkoutPshBtn = new Button("Save");
SaveWorkoutPshBtn.setEnabled(true);
SaveWorkoutPshBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (WorkoutLabelTextBox.getText().trim().equals(""))
Window.alert("Please name this workout.");
else {
newWorkout.setLabel(WorkoutLabelTextBox.getText());
newWorkout.setDateOfWorkout(new Date());
workouts.add(newWorkout);
saveUserWorkout();
}
}
});
WorkoutFlexTable.setWidget(4, 2, SaveWorkoutPshBtn);
SaveWorkoutPshBtn.setSize("60px", "25px");
/* Previously stored Workouts */
WorkoutVerticalPanel.add(new HTML("</br></br>"));
PreviousWorkoutsFlexTable = new FlexTable();
WorkoutVerticalPanel.add(PreviousWorkoutsFlexTable);
PreviousWorkoutsFlexTable.setText(0, 0, "Previous Workouts:");
PreviousWorkoutsFlexTable.setVisible(false);
PreviousWorkouts = new ListBox();
PreviousWorkouts.setVisible(false);
PreviousWorkoutsFlexTable.setWidget(0, 1, PreviousWorkouts);
PreviousWorkoutsPshBtn = new Button("Copy Workout");
PreviousWorkoutsPshBtn.setVisible(false);
PreviousWorkoutsFlexTable.setWidget(0, 2, PreviousWorkoutsPshBtn);
PreviousWorkouts.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
Workout workout = workouts.get(PreviousWorkouts
.getSelectedIndex());
FlexTable flexTable = new FlexTable();
flexTable.setWidth("300px");
WorkoutsListFlexTable.setWidget(0, 0, flexTable);
flexTable.setText(0, 0, "Items");
flexTable.setText(0, 1, "Duration");
flexTable.getCellFormatter().addStyleName(0, 0,
"calculatorlistheader");
flexTable.getCellFormatter().addStyleName(0, 1,
"calculatorlistheader");
for (int i = 0; i < workout.getExerciseItems().size(); i++) {
flexTable.setText(i + 1, 0, "- "
+ workout.getExerciseItems().get(i).getName());
flexTable.setText(i + 1, 1, workout.getDuration(i)
+ " mins");
}
}
});
PreviousWorkoutsPshBtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (PreviousWorkouts.getSelectedIndex() == -1
|| PreviousWorkouts.getValue(PreviousWorkouts
.getSelectedIndex()) == null
|| PreviousWorkouts
.getValue(PreviousWorkouts.getSelectedIndex())
.trim().equals(""))
return;
ExercisesFlexTable.setVisible(true);
Workout workout = workouts.get(PreviousWorkouts
.getSelectedIndex());
newWorkout = new Workout();
for (ExerciseItem exerciseItem : workout.getExerciseItems()) {
for (int i = 0; i < workout.getDuration(exerciseItem); i += 5)
newWorkout.addExerciseItem(exerciseItem);
int row = newWorkout.indexOfExerciseItem(exerciseItem) + 1;
int duration = newWorkout.getDuration(exerciseItem);
final ExerciseItem exerciseItem2 = exerciseItem;
ExercisesFlexTable.setText(row, 0, exerciseItem.getName());
ExercisesFlexTable.setText(row, 1, duration + " mins");
ExercisesFlexTable.setText(row, 2,
Double.toString((int) ((exerciseItem
.getBurnRate30() * duration) / 30.0)));
TotalCalsBurnedTextBox.setText(Double
.toString((int) newWorkout.totalCaloriesBurned()));
Button removeExercise = new Button("x");
removeExercise.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
int removedIndex = newWorkout
.indexOfExerciseItem(exerciseItem2);
newWorkout.removeExerciseItem(removedIndex);
ExercisesFlexTable.removeRow(removedIndex + 1);
TotalCalsBurnedTextBox.setText(Double
.toString((int) newWorkout
.totalCaloriesBurned()));
}
});
ExercisesFlexTable.setWidget(row, 3, removeExercise);
}
}
});
WorkoutsListFlexTable = new FlexTable();
WorkoutVerticalPanel.add(WorkoutsListFlexTable);
WorkoutsListFlexTable.setWidth("500px");
// WorkoutsListFlexTable.setStyleName("cw-FlexTable");
/* */
newMeal = new Meal(email);
newWorkout = new Workout(email);
startAsynchronous();
}