ListDataProvider<TaskProxy> listDataProvider = new ListDataProvider<TaskProxy>();
listDataProvider.addDataDisplay(tasksTable);
tasksList = listDataProvider.getList();
Element androidElement = getElement().getFirstChildElement().getFirstChildElement();
final Animation androidAnimation = new AndroidAnimation(androidElement);
tasksTable.setRowStyles(new RowStyles<TaskProxy>() {
public String getStyleNames(TaskProxy row, int rowIndex) {
Range visibleRange = tasksTable.getVisibleRange();
int lastRow = visibleRange.getStart() + visibleRange.getLength() - 1;
if (rowIndex == tasksList.size() - 1 || rowIndex == lastRow) {
return isDone(row) ? "task complete last" : "task incomplete last";
} else {
return isDone(row) ? "task complete" : "task incomplete";
}
}
});
tasksTable.dateColumn.setFieldUpdater(new FieldUpdater<TaskProxy, Date>() {
public void update(int index, TaskProxy task, Date value) {
CloudTasksRequest request = requestFactory.cloudTasksRequest();
TaskProxy updatedTask = request.edit(task);
updatedTask.setDueDate(value);
request.updateTask(updatedTask).fire();
}
});
tasksTable.doneColumn.setFieldUpdater(new FieldUpdater<TaskProxy, Boolean>() {
public void update(int index, TaskProxy task, Boolean value) {
CloudTasksRequest request = requestFactory.cloudTasksRequest();
TaskProxy updatedTask = request.edit(task);
updatedTask.setDone(value);
request.updateTask(updatedTask).fire();
}
});
tasksTable.deleteColumn.setFieldUpdater(new FieldUpdater<TaskProxy, String>() {
public void update(int index, TaskProxy task, String value) {
CloudTasksRequest request = requestFactory.cloudTasksRequest();
request.deleteTask(task).fire();
tasksList.remove(task);
}
});
taskInput.getElement().setPropertyString("placeholder", "Add new tasks here");
taskInput.addKeyUpHandler(new KeyUpHandler() {
public void onKeyUp(KeyUpEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
String message = taskInput.getText();
taskInput.setText("");
sendNewTaskToServer(message);
androidAnimation.run(400);
}
}
});
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {