diff --git a/src/main/java/edu/ntnu/idatt2001/group_30/paths/view/views/NewStoryView.java b/src/main/java/edu/ntnu/idatt2001/group_30/paths/view/views/NewStoryView.java index bdb7cd3d2bf182beba7143dfa59bbc1935824a65..ce960239bc933969d480723f520843e153680022 100644 --- a/src/main/java/edu/ntnu/idatt2001/group_30/paths/view/views/NewStoryView.java +++ b/src/main/java/edu/ntnu/idatt2001/group_30/paths/view/views/NewStoryView.java @@ -7,7 +7,6 @@ import edu.ntnu.idatt2001.group_30.paths.model.Passage; import edu.ntnu.idatt2001.group_30.paths.model.Story; import static edu.ntnu.idatt2001.group_30.paths.PathsSingleton.INSTANCE; - import edu.ntnu.idatt2001.group_30.paths.view.components.common.DefaultText; import edu.ntnu.idatt2001.group_30.paths.view.components.pop_up.AlertDialog; import edu.ntnu.idatt2001.group_30.paths.view.components.pop_up.PassagePopUp; @@ -27,6 +26,7 @@ import javafx.scene.layout.VBox; import javafx.scene.text.Text; import java.net.URL; +import java.util.Objects; import java.util.stream.Collectors; public class NewStoryView extends View<BorderPane> { @@ -63,9 +63,7 @@ public class NewStoryView extends View<BorderPane> { HBox titleBox = new HBox(labelText, textField); titleBox.setSpacing(20); - textField.setOnKeyTyped(event -> { - title = textField.getText(); - }); + textField.setOnKeyTyped(event -> title = textField.getText()); titleBox.setAlignment(Pos.CENTER); @@ -87,7 +85,11 @@ public class NewStoryView extends View<BorderPane> { removePassageButton = new Button("Remove Passage"); removePassageButton.setDisable(true); - removePassageButton.setOnAction(e -> passages.remove(passageTable.getSelectionModel().getSelectedItem())); + removePassageButton.setOnAction(e -> { + passages.forEach(passage -> passage.getLinks().removeIf(link -> + Objects.equals(link.getReference(), passageTable.getSelectionModel().getSelectedItem().getTitle()))); + passages.remove(passageTable.getSelectionModel().getSelectedItem()); + }); editPassageButton = new Button("Edit Passage"); editPassageButton.setDisable(true); @@ -95,7 +97,15 @@ public class NewStoryView extends View<BorderPane> { Passage selectedPassage = passageTable.getSelectionModel().getSelectedItem(); if (selectedPassage != null) { Passage updatedPassage = new PassagePopUp(passages, selectedPassage).getPassage(); - if(updatedPassage != null) { + if(updatedPassage != null && !selectedPassage.equals(updatedPassage)) { + passages.forEach(passage -> { + System.out.println(passage.getTitle()); + System.out.println(passage.getLinks()); + passage.getLinks().replaceAll(link -> + link.getReference().equals(selectedPassage.getTitle()) ? + new Link(link.getText(), updatedPassage.getTitle()) : link + ); + }); passages.remove(selectedPassage); passages.add(updatedPassage); }