From eade500141d5fb782c596646a1858ea9761a2469 Mon Sep 17 00:00:00 2001
From: conradsoon <18553610+conradsoon@users.noreply.github.com>
Date: Mon, 6 Nov 2023 22:43:05 +0800
Subject: [PATCH 1/4] Fix two-scroll bar bug
---
src/main/resources/view/NotesWindow.fxml | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/main/resources/view/NotesWindow.fxml b/src/main/resources/view/NotesWindow.fxml
index 4f2db31b55d..bca9024174e 100644
--- a/src/main/resources/view/NotesWindow.fxml
+++ b/src/main/resources/view/NotesWindow.fxml
@@ -15,9 +15,7 @@
-
-
-
+
From 135f7cf979888253a9db1ba62ce90b893617c7ce Mon Sep 17 00:00:00 2001
From: conradsoon <18553610+conradsoon@users.noreply.github.com>
Date: Mon, 6 Nov 2023 22:55:43 +0800
Subject: [PATCH 2/4] Add word wrap and resizing window
---
.../java/seedu/address/ui/NotesWindow.java | 23 +++++++++++++++++++
src/main/resources/view/NotesWindow.fxml | 4 ++--
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/main/java/seedu/address/ui/NotesWindow.java b/src/main/java/seedu/address/ui/NotesWindow.java
index fe9dce39180..fc008196e5d 100644
--- a/src/main/java/seedu/address/ui/NotesWindow.java
+++ b/src/main/java/seedu/address/ui/NotesWindow.java
@@ -6,6 +6,8 @@
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
+import javafx.scene.control.Label;
+import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
@@ -77,6 +79,27 @@ private void populateListView(List notes) {
notesObservableList.add(note.toString());
}
notesListView.setItems(notesObservableList);
+ notesListView.setCellFactory(listView -> new ListCell() {
+ @Override
+ protected void updateItem(String note, boolean empty) {
+ super.updateItem(note, empty);
+ if (empty || note == null) {
+ setText(null);
+ setGraphic(null);
+ } else {
+ Label label = new Label(note);
+ label.setWrapText(true);
+ label.prefWidthProperty().bind(listView.widthProperty().subtract(40));
+ setGraphic(label);
+ }
+ }
+ });
+
+ // make sure the width is always correct even after resizing the window
+ notesListView.widthProperty().addListener((observable) -> {
+ notesListView.refresh();
+ });
+
}
@FXML
diff --git a/src/main/resources/view/NotesWindow.fxml b/src/main/resources/view/NotesWindow.fxml
index bca9024174e..14b71644227 100644
--- a/src/main/resources/view/NotesWindow.fxml
+++ b/src/main/resources/view/NotesWindow.fxml
@@ -6,7 +6,7 @@
-
@@ -15,7 +15,7 @@
-
+
From a4308c79cbe2d2d3323cab228f65be5395e63b9a Mon Sep 17 00:00:00 2001
From: conradsoon <18553610+conradsoon@users.noreply.github.com>
Date: Mon, 6 Nov 2023 23:16:11 +0800
Subject: [PATCH 3/4] Add index for notes
---
.../java/seedu/address/ui/NotesWindow.java | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/src/main/java/seedu/address/ui/NotesWindow.java b/src/main/java/seedu/address/ui/NotesWindow.java
index fc008196e5d..df8881854e8 100644
--- a/src/main/java/seedu/address/ui/NotesWindow.java
+++ b/src/main/java/seedu/address/ui/NotesWindow.java
@@ -25,7 +25,7 @@ public class NotesWindow extends UiPart {
private static final String FXML = "NotesWindow.fxml";
@FXML
- private ListView notesListView;
+ private ListView notesListView;
private final Person person;
@@ -73,21 +73,18 @@ public void focus() {
getRoot().requestFocus();
}
- private void populateListView(List notes) {
- ObservableList notesObservableList = FXCollections.observableArrayList();
- for (Note note : notes) {
- notesObservableList.add(note.toString());
- }
+ private void populateListView(ObservableList notes) {
+ ObservableList notesObservableList = FXCollections.observableArrayList(notes);
notesListView.setItems(notesObservableList);
- notesListView.setCellFactory(listView -> new ListCell() {
+ notesListView.setCellFactory(listView -> new ListCell() {
@Override
- protected void updateItem(String note, boolean empty) {
+ protected void updateItem(Note note, boolean empty) {
super.updateItem(note, empty);
if (empty || note == null) {
setText(null);
setGraphic(null);
} else {
- Label label = new Label(note);
+ Label label = new Label((getIndex() + 1) + ". " + note.toString());
label.setWrapText(true);
label.prefWidthProperty().bind(listView.widthProperty().subtract(40));
setGraphic(label);
@@ -99,7 +96,6 @@ protected void updateItem(String note, boolean empty) {
notesListView.widthProperty().addListener((observable) -> {
notesListView.refresh();
});
-
}
@FXML
@@ -108,7 +104,7 @@ void handleClose() {
stage.close();
}
- public ListView getNotesListView() {
+ public ListView getNotesListView() {
return notesListView;
}
}
From 22cf1e8bad37c6165f2db77bd19d5072a1a6f0b0 Mon Sep 17 00:00:00 2001
From: conradsoon <18553610+conradsoon@users.noreply.github.com>
Date: Mon, 6 Nov 2023 23:32:31 +0800
Subject: [PATCH 4/4] Fix test
---
src/main/java/seedu/address/ui/NotesWindow.java | 5 -----
src/test/java/seedu/address/ui/NotesWindowTest.java | 11 +++++++++--
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/main/java/seedu/address/ui/NotesWindow.java b/src/main/java/seedu/address/ui/NotesWindow.java
index df8881854e8..c5a85e1bcc7 100644
--- a/src/main/java/seedu/address/ui/NotesWindow.java
+++ b/src/main/java/seedu/address/ui/NotesWindow.java
@@ -1,6 +1,5 @@
package seedu.address.ui;
-import java.util.List;
import java.util.logging.Logger;
import javafx.collections.FXCollections;
@@ -69,10 +68,6 @@ public void hide() {
getRoot().hide();
}
- public void focus() {
- getRoot().requestFocus();
- }
-
private void populateListView(ObservableList notes) {
ObservableList notesObservableList = FXCollections.observableArrayList(notes);
notesListView.setItems(notesObservableList);
diff --git a/src/test/java/seedu/address/ui/NotesWindowTest.java b/src/test/java/seedu/address/ui/NotesWindowTest.java
index 2ac60697379..6ac0847febf 100644
--- a/src/test/java/seedu/address/ui/NotesWindowTest.java
+++ b/src/test/java/seedu/address/ui/NotesWindowTest.java
@@ -14,8 +14,10 @@
import org.testfx.framework.junit5.ApplicationTest;
import javafx.application.Platform;
+import javafx.collections.ObservableList;
import javafx.scene.input.KeyCode;
import javafx.stage.Stage;
+import seedu.address.model.person.Note;
import seedu.address.model.person.Person;
public class NotesWindowTest extends ApplicationTest {
@@ -43,9 +45,14 @@ public void setUp() {
@Test
public void displayNotes_correctNumberOfItemsAndContent_displaysExpectedNotes() {
interact(() -> {
- List expectedNotes = Arrays.asList("Likes to swim", "Likes to run", "Is a chad");
+ List expectedNotes = Arrays.asList(
+ new Note("Likes to swim"),
+ new Note("Likes to run"),
+ new Note("Is a chad")
+ );
verifyThat("#notesListView", hasItems(3));
- assertTrue(notesWindow.getNotesListView().getItems().containsAll(expectedNotes));
+ ObservableList actualNotes = notesWindow.getNotesListView().getItems();
+ assertTrue(actualNotes.containsAll(expectedNotes));
});
}