Skip to content
Snippets Groups Projects
Commit 76a17268 authored by Trym Hamer Gudvangen's avatar Trym Hamer Gudvangen
Browse files

styles: use auto-checkstyle to format code

parent 75600fe9
Branches
Tags
2 merge requests!34Feat/create story gui,!7Feat/part three
Pipeline #230714 passed
Showing
with 151 additions and 141 deletions
......@@ -3,7 +3,6 @@ package edu.ntnu.idatt2001.group_30.paths;
import edu.ntnu.idatt2001.group_30.paths.model.Player;
import edu.ntnu.idatt2001.group_30.paths.model.Story;
import edu.ntnu.idatt2001.group_30.paths.model.goals.*;
import java.io.File;
import java.util.List;
import java.util.Objects;
......
......@@ -5,8 +5,6 @@ import static edu.ntnu.idatt2001.group_30.paths.PathsSingleton.INSTANCE;
import edu.ntnu.idatt2001.group_30.paths.model.filehandling.StoryFileReader;
import edu.ntnu.idatt2001.group_30.paths.view.views.NewStoryView;
import edu.ntnu.idatt2001.group_30.paths.view.views.PlaythroughView;
import java.io.File;
import java.io.IOException;
......@@ -25,5 +23,4 @@ public class NewGameController extends Controller {
throw new RuntimeException(ex);
}
}
}
package edu.ntnu.idatt2001.group_30.paths.controller;
import static edu.ntnu.idatt2001.group_30.paths.PathsSingleton.INSTANCE;
import edu.ntnu.idatt2001.group_30.paths.model.Passage;
import edu.ntnu.idatt2001.group_30.paths.model.Story;
import edu.ntnu.idatt2001.group_30.paths.model.filehandling.StoryFileWriter;
import edu.ntnu.idatt2001.group_30.paths.view.views.NewStoryView;
import javafx.stage.FileChooser;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import static edu.ntnu.idatt2001.group_30.paths.PathsSingleton.INSTANCE;
import javafx.stage.FileChooser;
public class NewStoryController extends Controller {
......@@ -30,9 +29,7 @@ public class NewStoryController extends Controller{
public void saveStory(Story story) throws IOException {
FileChooser fileChooser = new FileChooser();
fileChooser.setInitialDirectory(new File("./src/main/resources/story-files"));
fileChooser.getExtensionFilters().add(
new FileChooser.ExtensionFilter("Paths files", "*.paths")
);
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Paths files", "*.paths"));
File selectedFile = fileChooser.showSaveDialog(null);
if (selectedFile != null) {
......
......@@ -86,7 +86,6 @@ public class StoryFileWriter {
writeStory(story, file);
}
//TODO: add test for story files...
/**
......
......@@ -23,5 +23,4 @@ public class DefaultInputField {
textField.setPromptText(prompt);
return new HBox(labelText, textField);
}
}
......@@ -9,9 +9,7 @@ public abstract class AbstractPopUp {
protected abstract void setupUiComponents();
protected abstract void setupBehavior();
protected abstract void createPopUp();
}
......@@ -100,7 +100,8 @@ public class GoalsPopUp extends AbstractPopUp{
System.err.println("Something is wrong with the trash image resource link");
}
content = new VBox(
content =
new VBox(
new Label("Health:"),
healthField,
new Label("Gold:"),
......@@ -149,19 +150,18 @@ public class GoalsPopUp extends AbstractPopUp{
popUp.close();
}
});
}
@Override
protected void createPopUp() {
popUp = PopUp
popUp =
PopUp
.<ScrollPane>create()
.withTitle("Add goals to your player")
.withoutCloseButton()
.withContent(scrollPane)
.withDialogSize(400, 750);
popUp.showAndWait();
}
}
......@@ -8,6 +8,7 @@ import edu.ntnu.idatt2001.group_30.paths.model.actions.ActionType;
import edu.ntnu.idatt2001.group_30.paths.model.utils.TextValidation;
import edu.ntnu.idatt2001.group_30.paths.view.components.table.ActionTable;
import edu.ntnu.idatt2001.group_30.paths.view.components.table.TableDisplay;
import java.util.HashMap;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
......@@ -15,8 +16,6 @@ import javafx.scene.control.*;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import java.util.HashMap;
public class LinkPopUp extends AbstractPopUp {
private TextField textField;
......@@ -56,7 +55,6 @@ public class LinkPopUp extends AbstractPopUp{
createPopUp();
}
@Override
protected void setupUiComponents() {
textField = new TextField();
......@@ -74,25 +72,27 @@ public class LinkPopUp extends AbstractPopUp{
actionTextField = new TextField();
removeActionButton = new Button("Remove Action");
removeActionButton.setDisable(true);
addActionButton = new Button("Add Action");
HBox actionHbox = new HBox(actionComboBox, actionTextField, addActionButton);
actionHbox.setAlignment(Pos.CENTER);
actionTable = new ActionTable<>(new TableDisplay.Builder<Action<?>>()
actionTable =
new ActionTable<>(
new TableDisplay.Builder<Action<?>>()
.addColumnWithComplexValue("Type", action -> action.getClass().getSimpleName())
.addColumnWithComplexValue("Value", action -> action.getActionValue().toString()));
.addColumnWithComplexValue("Value", action -> action.getActionValue().toString())
);
actionTable.setItems(actions);
actionTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
content = new VBox(
content =
new VBox(
new Label("Link Text:"),
textField,
new Label("Link Reference:"),
......@@ -106,20 +106,19 @@ public class LinkPopUp extends AbstractPopUp{
content.setAlignment(Pos.CENTER);
content.setSpacing(20);
}
@Override
protected void setupBehavior() {
removeActionButton.setOnAction(event -> actions.remove(actionTable.getSelectionModel().getSelectedItem()));
actionTable.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
actionTable
.getSelectionModel()
.selectedItemProperty()
.addListener((obs, oldSelection, newSelection) -> {
removeActionButton.setDisable(newSelection == null);
});
addActionButton.setOnAction(e -> {
if (actionComboBox.getValue() != null) {
actions.add(ActionFactory.getAction(actionComboBox.getValue(), actionTextField.getText()));
......@@ -137,7 +136,8 @@ public class LinkPopUp extends AbstractPopUp{
}
});
actionComboBox.setCellFactory(listView -> new ListCell<>() {
actionComboBox.setCellFactory(listView ->
new ListCell<>() {
@Override
protected void updateItem(ActionType actionType, boolean empty) {
super.updateItem(actionType, empty);
......@@ -146,19 +146,23 @@ public class LinkPopUp extends AbstractPopUp{
} else {
setText(actionType.getDisplayName());
switch (actionType) {
case SCORE_ACTION, GOLD_ACTION, HEALTH_ACTION -> actionTextField.setTextFormatter(TextValidation.createIntegerTextFormatter());
case SCORE_ACTION, GOLD_ACTION, HEALTH_ACTION -> actionTextField.setTextFormatter(
TextValidation.createIntegerTextFormatter()
);
case INVENTORY_ACTION -> actionTextField.setTextFormatter(null);
}
}
}
});
}
);
actionComboBox.setButtonCell(actionComboBox.getCellFactory().call(null));
}
@Override
protected void createPopUp() {
popUp = PopUp
popUp =
PopUp
.<VBox>create()
.withTitle("Create a Link")
.withoutCloseButton()
......
package edu.ntnu.idatt2001.group_30.paths.view.components.pop_up;
import edu.ntnu.idatt2001.group_30.paths.model.Passage;
import edu.ntnu.idatt2001.group_30.paths.model.Link;
import edu.ntnu.idatt2001.group_30.paths.model.Passage;
import edu.ntnu.idatt2001.group_30.paths.view.components.table.LinkTable;
import edu.ntnu.idatt2001.group_30.paths.view.components.table.TableDisplay;
import javafx.collections.FXCollections;
......@@ -63,9 +63,10 @@ public class PassagePopUp extends AbstractPopUp{
saveButton = new Button("Save");
linkTable = new LinkTable<>(new TableDisplay.Builder<Link>()
.addColumn("Link Title", "text")
.addColumn("Reference", "reference"));
linkTable =
new LinkTable<>(
new TableDisplay.Builder<Link>().addColumn("Link Title", "text").addColumn("Reference", "reference")
);
linkTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
linkTable.setItems(links);
......@@ -82,7 +83,8 @@ public class PassagePopUp extends AbstractPopUp{
HBox linkTableButtonHBox = new HBox(editLinkButton, addLinkButton, removeLinkButton);
linkTableButtonHBox.setAlignment(Pos.CENTER);
content = new VBox(
content =
new VBox(
new Label("Passage Title:"),
titleField,
new Label("Passage Content:"),
......@@ -108,13 +110,14 @@ public class PassagePopUp extends AbstractPopUp{
});
removeLinkButton.setOnAction(e -> links.remove(linkTable.getSelectionModel().getSelectedItem()));
linkTable.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
linkTable
.getSelectionModel()
.selectedItemProperty()
.addListener((obs, oldSelection, newSelection) -> {
removeLinkButton.setDisable(newSelection == null);
editLinkButton.setDisable(newSelection == null);
});
addLinkButton.setOnAction(e -> {
Link newLink = new LinkPopUp(this.passages).getLink();
if (newLink != null) {
......@@ -122,12 +125,13 @@ public class PassagePopUp extends AbstractPopUp{
}
});
saveButton.setOnAction(e -> {
if (titleField.getText().isBlank() || contentArea.getText().isBlank()) {
AlertDialog.showWarning("The title or content cannot be blank.");
} else if (this.passages.stream().anyMatch(passage1 -> passage1.getTitle().equals(titleField.getText())
&& passage != passage1)) {
} else if (
this.passages.stream()
.anyMatch(passage1 -> passage1.getTitle().equals(titleField.getText()) && passage != passage1)
) {
AlertDialog.showWarning("A passage with the title " + titleField.getText() + " already exists.");
} else {
this.passage = new Passage(titleField.getText(), contentArea.getText());
......@@ -140,7 +144,8 @@ public class PassagePopUp extends AbstractPopUp{
@Override
protected void createPopUp() {
popUp = PopUp
popUp =
PopUp
.<VBox>create()
.withTitle("Create a Passage")
.withoutCloseButton()
......
......@@ -63,7 +63,8 @@ public class StatsPopUp extends AbstractPopUp{
@Override
protected void createPopUp() {
popUp = PopUp
popUp =
PopUp
.<VBox>create()
.withTitle("Add stats to your player")
.withoutCloseButton()
......
......@@ -14,5 +14,4 @@ public class PassageTable<Passage> extends TableDisplay<Passage> {
public PassageTable(Builder<Passage> tableBuilder) {
super(tableBuilder);
}
}
package edu.ntnu.idatt2001.group_30.paths.view.components.table;
import java.util.function.Function;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import java.util.function.Function;
/**
* This class concerns itself with building a table view filled with the desired information in columns. It does so
* by using a TableBuilder.
......@@ -59,7 +58,9 @@ public class TableDisplay<T> extends TableView<T> {
*/
public Builder<T> addColumnWithComplexValue(String infoHeader, Function<T, String> complexValueFunction) {
TableColumn<T, String> column = new TableColumn<>(infoHeader);
column.setCellValueFactory(cellData -> new SimpleStringProperty(complexValueFunction.apply(cellData.getValue())));
column.setCellValueFactory(cellData ->
new SimpleStringProperty(complexValueFunction.apply(cellData.getValue()))
);
column.setStyle("-fx-alignment: CENTER");
this.tableColumns.add(column);
return this;
......
......@@ -117,8 +117,6 @@ public class CreatePlayerView extends View<BorderPane> {
getParentPane().getBottom().setTranslateY(-50);
getParentPane().getBottom().setTranslateX(10);
VBox bottomBox = new VBox(nameField, continueButton);
bottomBox.setSpacing(20);
bottomBox.setAlignment(Pos.CENTER);
......
package edu.ntnu.idatt2001.group_30.paths.view.views;
import static edu.ntnu.idatt2001.group_30.paths.PathsSingleton.INSTANCE;
import edu.ntnu.idatt2001.group_30.paths.controller.NewStoryController;
import edu.ntnu.idatt2001.group_30.paths.controller.StageManager;
import edu.ntnu.idatt2001.group_30.paths.model.Link;
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;
import edu.ntnu.idatt2001.group_30.paths.view.components.table.PassageTable;
import edu.ntnu.idatt2001.group_30.paths.view.components.table.TableDisplay;
import java.net.URL;
import java.util.Objects;
import java.util.stream.Collectors;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
......@@ -25,10 +28,6 @@ import javafx.scene.layout.HBox;
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> {
private final NewStoryController newStoryController;
......@@ -38,10 +37,8 @@ public class NewStoryView extends View<BorderPane> {
private final Button removePassageButton;
private final Button editPassageButton;
public NewStoryView() {
super(BorderPane.class);
newStoryController = new NewStoryController();
if (INSTANCE.getStory() != null) {
......@@ -50,16 +47,16 @@ public class NewStoryView extends View<BorderPane> {
if (story != null) title = story.getTitle();
passages = story == null ? FXCollections.observableArrayList() :
FXCollections.observableArrayList(story.getPassages());
passages =
story == null
? FXCollections.observableArrayList()
: FXCollections.observableArrayList(story.getPassages());
Text titleText = DefaultText.big("Create a new/edit a Story");
Text labelText = new Text("Story Title: ");
TextField textField = new TextField(title);
textField.setPromptText("Enter story title");
HBox titleBox = new HBox(labelText, textField);
titleBox.setSpacing(20);
......@@ -67,17 +64,18 @@ public class NewStoryView extends View<BorderPane> {
titleBox.setAlignment(Pos.CENTER);
PassageTable<Passage> passageTable = new PassageTable<>(new TableDisplay.Builder<Passage>()
PassageTable<Passage> passageTable = new PassageTable<>(
new TableDisplay.Builder<Passage>()
.addColumn("Name of Passage", "title")
.addColumn("Passage Content", "content")
.addColumnWithComplexValue("Links", passage -> passage == null ?
null :
passage.getLinks().stream()
.map(Link::getText)
.collect(Collectors.joining(", "))
));
.addColumnWithComplexValue(
"Links",
passage ->
passage == null
? null
: passage.getLinks().stream().map(Link::getText).collect(Collectors.joining(", "))
)
);
passageTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
passageTable.setItems(passages);
......@@ -86,8 +84,16 @@ public class NewStoryView extends View<BorderPane> {
removePassageButton = new Button("Remove Passage");
removePassageButton.setDisable(true);
removePassageButton.setOnAction(e -> {
passages.forEach(passage -> passage.getLinks().removeIf(link ->
Objects.equals(link.getReference(), passageTable.getSelectionModel().getSelectedItem().getTitle())));
passages.forEach(passage ->
passage
.getLinks()
.removeIf(link ->
Objects.equals(
link.getReference(),
passageTable.getSelectionModel().getSelectedItem().getTitle()
)
)
);
passages.remove(passageTable.getSelectionModel().getSelectedItem());
});
......@@ -98,22 +104,29 @@ public class NewStoryView extends View<BorderPane> {
if (selectedPassage != null) {
Passage updatedPassage = new PassagePopUp(passages, selectedPassage).getPassage();
if (updatedPassage != null && !selectedPassage.equals(updatedPassage)) {
passages.forEach(passage -> passage.getLinks().replaceAll(link ->
link.getReference().equals(selectedPassage.getTitle()) ?
new Link(link.getText(), updatedPassage.getTitle()) : link
));
passages.forEach(passage ->
passage
.getLinks()
.replaceAll(link ->
link.getReference().equals(selectedPassage.getTitle())
? new Link(link.getText(), updatedPassage.getTitle())
: link
)
);
passages.remove(selectedPassage);
passages.add(updatedPassage);
}
}
});
passageTable.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
passageTable
.getSelectionModel()
.selectedItemProperty()
.addListener((obs, oldSelection, newSelection) -> {
removePassageButton.setDisable(newSelection == null);
editPassageButton.setDisable(newSelection == null);
});
Button addPassageButton = new Button();
URL imageUrl = getClass().getResource("/images/plus.png");
if (imageUrl != null) {
......@@ -131,8 +144,10 @@ public class NewStoryView extends View<BorderPane> {
addPassageButton.setOnAction(event -> {
if (passages.isEmpty()) {
AlertDialog.showInformation("Every story needs an opening passage.", "The opening passage" +
" will by default be the first passage added.");
AlertDialog.showInformation(
"Every story needs an opening passage.",
"The opening passage" + " will by default be the first passage added."
);
}
PassagePopUp passagePopUp = new PassagePopUp(passages);
if (passagePopUp.getPassage() != null) this.passages.addAll(passagePopUp.getPassage());
......@@ -143,8 +158,7 @@ public class NewStoryView extends View<BorderPane> {
try {
newStoryController.addStory(title, passages);
StageManager.getInstance().setCurrentView(new LoadGameView());
}
catch (Exception ex) {
} catch (Exception ex) {
AlertDialog.showWarning(ex.getMessage());
}
});
......@@ -162,5 +176,4 @@ public class NewStoryView extends View<BorderPane> {
getParentPane().setRight(editTableButtons);
getParentPane().getRight().setTranslateX(-50);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment