OOP-Projects-Java

Log | Files | Refs | README

commit 1757c8042b7d0260da04e75b2d26c685f201bd0c
parent 5cdc5e68839f3a145fcfea12d77a0d326d501560
Author: William Lindholm <a22willi@student.his.se>
Date:   Wed, 29 Mar 2023 13:52:29 +0200

Changed sort to use separate comparator classes

Diffstat:
MOOP2023_a22willi_a21liltr_assignment2/src/assignment2/TaskHandler.java | 26++++----------------------
AOOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByName.java | 15+++++++++++++++
AOOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByState.java | 15+++++++++++++++
AOOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByType.java | 15+++++++++++++++
4 files changed, 49 insertions(+), 22 deletions(-)

diff --git a/OOP2023_a22willi_a21liltr_assignment2/src/assignment2/TaskHandler.java b/OOP2023_a22willi_a21liltr_assignment2/src/assignment2/TaskHandler.java @@ -14,7 +14,7 @@ import javax.swing.SwingUtilities; import se.his.it401g.todo.Task; import se.his.it401g.todo.TaskListener; -public class TaskHandler implements TaskListener, Comparator<Task> { +public class TaskHandler implements TaskListener { private JPanel taskList; private JScrollPane scrollPane; private JLabel taskProgress; @@ -62,16 +62,6 @@ public class TaskHandler implements TaskListener, Comparator<Task> { return taskList; } - /** - * Sorts components in taskList according to specific requirements. - * @param sortingOption - */ - @Override - public int compare(Object o1, Object o2) { - // TODO Auto-generated method stub - return 0; - } - public void sort(String sortingOption) { List<Task> sortedList = new ArrayList<Task>(); for (int i = 0; i < taskList.getComponentCount(); i++) { @@ -81,21 +71,13 @@ public class TaskHandler implements TaskListener, Comparator<Task> { switch (sortingOption) { case "Alphabetical": - Collections.sort(sortedList, - (o1, o2) -> - o1.getText().toLowerCase() - .compareTo(o2.getText().toLowerCase())); + Collections.sort(sortedList, new comparators.SortByName()); break; case "Type": - Collections.sort(sortedList, - (o1, o2) -> - o1.getTaskType() - .compareTo(o2.getTaskType())); + Collections.sort(sortedList, new comparators.SortByType()); break; case "Completed": - Collections.sort(sortedList, - (o1, o2) -> - Boolean.compare(o1.isComplete(), o2.isComplete())); + Collections.sort(sortedList, new comparators.SortByState()); break; default: diff --git a/OOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByName.java b/OOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByName.java @@ -0,0 +1,15 @@ +package comparators; + +import java.util.Comparator; + +import se.his.it401g.todo.Task; + +public class SortByName implements Comparator<Task> { + + @Override + public int compare(Task o1, Task o2) { + //compare names (after converting to lowercase + return o1.getText().toLowerCase().compareTo(o2.getText().toLowerCase()); + } + +} diff --git a/OOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByState.java b/OOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByState.java @@ -0,0 +1,15 @@ +package comparators; + +import java.util.Comparator; + +import se.his.it401g.todo.Task; + +public class SortByState implements Comparator<Task> { + + @Override + public int compare(Task o1, Task o2) { + //sort based on completion. + return Boolean.compare(o1.isComplete(), o2.isComplete()); + } + +} diff --git a/OOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByType.java b/OOP2023_a22willi_a21liltr_assignment2/src/comparators/SortByType.java @@ -0,0 +1,15 @@ +package comparators; + +import java.util.Comparator; + +import se.his.it401g.todo.Task; + +public class SortByType implements Comparator<Task> { + + @Override + public int compare(Task o1, Task o2) { + //compare based on the type of task + return o1.getTaskType().compareTo(o2.getTaskType()); + } + +}