Ejemplo n.º 1
0
    private void updateViewModel() {

      setText(null);
      setGraphic(null);

      if (getItem() != null) {

        BorderPane mainBox = new BorderPane();
        mainBox.setPadding(new Insets(3.0, 5.0, 3.0, 3.0));

        VBox taskNameDisplay = new VBox();
        taskNameDisplay.setAlignment(Pos.CENTER_LEFT);
        Text taskNameText = new Text();
        taskNameDisplay.getChildren().addAll(taskNameText);

        HBox priorityDueDateDisplay = new HBox();
        priorityDueDateDisplay.setAlignment(Pos.CENTER_RIGHT);
        Text taskPriorityText = new Text();
        Text taskDueDateText = new Text();
        taskPriorityText.setScaleX(1.25);
        taskPriorityText.setScaleY(1.25);
        priorityDueDateDisplay.setSpacing(40);
        priorityDueDateDisplay.getChildren().addAll(taskDueDateText, taskPriorityText);

        mainBox.leftProperty().set(taskNameDisplay);
        mainBox.rightProperty().set(priorityDueDateDisplay);

        mainBox.setMargin(mainBox.getLeft(), new Insets(0, 20, 0, 0));

        Task currentTask = getItem();
        int currentTaskPriority = currentTask.getPriority();

        // setting task name to be displayed by the cell
        taskNameText.setText(currentTask.getTaskTitle());

        // setting task due date to be displayed by the cell
        if (currentTask.getTaskDueDate() != null) {

          LocalDate currentDueDate = currentTask.getTaskDueDate();
          taskDueDateText.setText(
              currentDueDate.getMonthValue()
                  + "/"
                  + currentDueDate.getDayOfMonth()
                  + "/"
                  + currentDueDate.getYear());
        }

        // setting task priority to be displayed by the cell
        switch (currentTaskPriority) {
          case 1:
            {
              taskPriorityText.setText("!");
              taskPriorityText.setFill(Color.web("#28ae33"));
              break;
            }
          case 2:
            {
              taskPriorityText.setText("!!");
              taskPriorityText.setFill(Color.web("#babf23"));
              break;
            }
          case 3:
            {
              taskPriorityText.setText("!!!");
              taskPriorityText.setFill(Color.web("#ee0606"));
              break;
            }
          default:
            {
            }
        }

        if (!currentTask.getComplete()) {
          taskNameText.setStrikethrough(false);
        } else {
          // if task is completed, strike out the task name

          mainBox.setOpacity(0.5);
          taskNameText.setStrikethrough(true);
        }

        setText(null);
        setGraphic(mainBox);
      }
    }