From f085865d92bbe75f32724120e5da6f189f636952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Dip=C4=8D=C3=A1r?= <492666@mail.muni.cz> Date: Thu, 3 Feb 2022 17:37:48 +0100 Subject: [PATCH] Make TaskDialog not create a new Task instance if it's editing one --- .../muni/fi/pv168/project/data/task/Task.java | 16 ++++++++++++ .../pv168/project/ui/dialog/TaskDialog.java | 26 +++++++++---------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/main/java/cz/muni/fi/pv168/project/data/task/Task.java b/src/main/java/cz/muni/fi/pv168/project/data/task/Task.java index 2b40529a..f6c3d38f 100644 --- a/src/main/java/cz/muni/fi/pv168/project/data/task/Task.java +++ b/src/main/java/cz/muni/fi/pv168/project/data/task/Task.java @@ -42,6 +42,10 @@ public class Task implements ITask, Identifiable { public String getDescription() { return description; } + + public void setDescription(String description) { + this.description = description; + } public String getDueDateString() { return dueDate.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG)); @@ -50,6 +54,10 @@ public class Task implements ITask, Identifiable { public LocalDate getDueDate() { return dueDate; } + + public void setDueDate(LocalDate dueDate) { + this.dueDate = dueDate; + } public TaskStatus getTaskStatus() { return taskStatus; @@ -106,11 +114,19 @@ public class Task implements ITask, Identifiable { public Long getEstimatedTime() { return estimatedTime.getStandardHours(); } + + public void setEstimatedTime(Duration estimatedTime) { + this.estimatedTime = estimatedTime; + } @Override public String getTitle() { return title; } + + public void setTitle(String title) { + this.title = title; + } public boolean shouldShowUrgency() { return isUrgent() && !this.taskStatus.equals(TaskStatus.FINISHED); diff --git a/src/main/java/cz/muni/fi/pv168/project/ui/dialog/TaskDialog.java b/src/main/java/cz/muni/fi/pv168/project/ui/dialog/TaskDialog.java index 06205642..45d59ea5 100644 --- a/src/main/java/cz/muni/fi/pv168/project/ui/dialog/TaskDialog.java +++ b/src/main/java/cz/muni/fi/pv168/project/ui/dialog/TaskDialog.java @@ -4,6 +4,7 @@ import cz.muni.fi.pv168.project.data.task.Task; import cz.muni.fi.pv168.project.model.LocalDateModel; import org.jdatepicker.DateModel; import org.jdatepicker.JDatePicker; +import org.joda.time.Duration; import javax.swing.JLabel; import javax.swing.JPanel; @@ -61,24 +62,23 @@ public class TaskDialog extends AbstractLaidOutDialog<Task> { @Override Task getEntity() { - var task = Task.builder( - titleField.getText(), Long.parseLong(estimatedTimeField.getText()), (LocalDate) datePicker.getModel().getValue() - ) + if (entity != null) { + entity.setTitle(titleField.getText()); + entity.setDescription(descriptionField.getText()); + entity.setEstimatedTime(Duration.standardHours(Long.parseLong(estimatedTimeField.getText()))); + entity.setDueDate((LocalDate) datePicker.getModel().getValue()); + + return entity; + } + + return Task.builder( + titleField.getText(), Long.parseLong(estimatedTimeField.getText()), (LocalDate) datePicker.getModel().getValue() + ) .setDescription(descriptionField.getText()) .setCategories(List.of()) .setSubTasks(List.of()) .setDependencyTasks(List.of()) .build(); - - if (entity != null) { - task.setTaskStatus(entity.getTaskStatus()); - task.setCategories(entity.getCategories()); - task.setSubTasks(entity.getSubTasks()); - task.setDependencyTasks(entity.getDependencyTasks()); - task.setId(entity.getId()); - } - - return task; } public void setEntity(Task initialEntity) { -- GitLab