diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/javafx/Application.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/javafx/Application.java index dd38524..0208d9c 100644 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/javafx/Application.java +++ b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/javafx/Application.java @@ -6,6 +6,7 @@ */ package uk.ac.aber.cs221.group20.javafx; +import javafx.application.Platform; import javafx.stage.FileChooser; import javafx.stage.Stage; import uk.ac.aber.cs221.group20.json.DictionaryEntry; @@ -96,6 +97,14 @@ public class Application extends javafx.application.Application { practiceList.add(entry); } } + + //When the user closes the application, it will automatically write the dictionary to a json file. + stage.setOnCloseRequest(e -> { + jsonProcessing.writeOutJson(jsonFileFinalLocation.getAbsolutePath(), Application.dictionary); + Platform.exit(); + System.exit(0); + }); + new ScreenSwitch(stage); // Initialise the ScreenSwitch class, passing the programs Stage as the parameter in order to display the first screen. } } \ No newline at end of file diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/json/DictionaryEntry.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/json/DictionaryEntry.java index 98359fb..6666ffb 100644 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/json/DictionaryEntry.java +++ b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/json/DictionaryEntry.java @@ -18,89 +18,145 @@ import uk.ac.aber.cs221.group20.javafx.Application; * @author Luke Wybar [law39] * @author Marcin Jakob [maj83] * @author Oscar Pocock [osp1] - * @author Tom Perry [top1] + * @author Tom Perry [top19] * @author Waylen Watts [ncw] * @version 0.1 Initial development * @see DictionaryController */ public class DictionaryEntry { - private String english; - private String welsh; - public enum wordTypeEnum { - nm, nf, verb, other - } - private wordTypeEnum wordType; -// private String wordType; - private Boolean practiceWord; + // /////////////////// // + // Instance variables. // + // /////////////////// // - /** - * Creates a new instance of a DictionaryEntry - */ - public DictionaryEntry() { - practiceWord = false; - } + private String english; + private String welsh; + public enum wordTypeEnum { + nm, nf, verb, other + } + private wordTypeEnum wordType; + private Boolean practiceWord; - /** - * Creates new instance of a DictionaryEntry - * - * @param english english translation of the word - * @param welsh welsh translation of the word - * @param wordType type of word - * @see Application - * @see DictionaryController - */ - public DictionaryEntry(String english, String welsh, wordTypeEnum wordType) { - this.english = english; - this.welsh = welsh; -// this.wordType = wordType; - this.wordType = wordType; - } + // ///////////// // + // Constructors. // + // ///////////// // - public String getEnglish() { - return english; - } + /** + * Default constructor for DictionaryEntry. + */ + public DictionaryEntry() { + practiceWord = false; + } - public void setEnglish(String english) { - this.english = english.trim(); - } + /** + * Constructor that creates an instance of DictionaryEntry when given 'english', 'welsh' and 'wordType' parameters. + * + * @param english english translation of the word + * @param welsh welsh translation of the word + * @param wordType type of word + * @see Application + * @see DictionaryController + */ + public DictionaryEntry(String english, String welsh, wordTypeEnum wordType) { + this.english = english; + this.welsh = welsh; + this.wordType = wordType; + } - public String getWelsh() { - return welsh; - } + // ////////////////////// // + // Read/Write properties. // + // ////////////////////// // - public void setWelsh(String welsh) { - this.welsh = welsh.trim(); - } + /** + * Getter method for the 'english variable'. + * + * @return Current value of 'english'. + */ + public String getEnglish() { + return english; + } - public wordTypeEnum getWordType() { - return wordType; - } -// public word getWordType() { -// return wordType; -// } + /** + * Setter for the 'english' variable. + * + * @param english New String value for 'english'. + */ + public void setEnglish(String english) { + this.english = english.trim(); + } - public void setWordType(wordTypeEnum wordType) { - this.wordType = wordType; - } + /** + * Getter for the 'welsh' variable. + * + * @return Current value of 'welsh'. + */ + public String getWelsh() { + return welsh; + } -// public void setWordType(String wordType) { -// this.wordType = wordType; -// } + /** + * Setter for the 'welsh' variable. + * + * @param welsh New String value for 'welsh'. + */ + public void setWelsh(String welsh) { + this.welsh = welsh.trim(); + } + /** + * Getter for the 'wordType' enum variable. + * + * @return Current value of the 'wordType'. + * @see wordTypeEnum + */ + public wordTypeEnum getWordType() { + return wordType; + } + + /** + * Setter for the 'wordType' enum variable. + * + * @param wordType New wordTypeEnum value for the 'wordType'. + * @see wordTypeEnum + */ + public void setWordType(wordTypeEnum wordType) { + this.wordType = wordType; + } + + /** + * Getter for the 'practiceWord' variable. + * + * @return Current value of 'practiceWord' + */ public Boolean isPracticeWord() { - return practiceWord; - } + return practiceWord; + } - public void setPracticeWord(Boolean practiceWord) { - this.practiceWord = practiceWord; - } + /** + * Setter for the 'practiceWord' variable. + * + * @param practiceWord New boolean value for 'practiceWord'. + */ + public void setPracticeWord(Boolean practiceWord) { + this.practiceWord = practiceWord; + } - @Override - public boolean equals(Object entry) { - DictionaryEntry otherEntry = (DictionaryEntry) entry; + // //////// // + // Methods. // + // //////// // - return ((this.getWelsh().equalsIgnoreCase(otherEntry.getWelsh()) || this.getEnglish().equalsIgnoreCase(otherEntry.getWelsh())) && - this.getWordType().equals(otherEntry.getWordType())); - } + /** + * Overidden equals method that checks to see if two Dictionary objects are equal to each other. This work by checking if the objects 'english' or 'welsh' variables are + * equal with the same 'wordType'. + * + * @param entry Object that the DictionaryEntry object is comparing itself to. + * @return Returns true (if equal) or false (not equal). + */ + @Override + public boolean equals(Object entry) { + DictionaryEntry otherEntry = (DictionaryEntry) entry; // Cast the object to be a DictionaryEntry. + + return ((this.getWelsh().equalsIgnoreCase(otherEntry.getWelsh()) || this.getEnglish().equalsIgnoreCase(otherEntry.getWelsh())) && + this.getWordType().equals(otherEntry.getWordType())); // Check it they're equal by looking if they have equal 'welsh' or 'english' with the same 'wordType'. + } } diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/test/FlashcardControllerTest.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/test/FlashcardControllerTest.java deleted file mode 100644 index 18a4f72..0000000 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/test/FlashcardControllerTest.java +++ /dev/null @@ -1,7 +0,0 @@ -package uk.ac.aber.cs221.group20.test; - -import static org.junit.jupiter.api.Assertions.*; - -class FlashcardControllerTest { - -} \ No newline at end of file diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/test/TranslationControllerTest.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/test/TranslationControllerTest.java deleted file mode 100644 index 85d90c3..0000000 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs221/group20/test/TranslationControllerTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package uk.ac.aber.cs221.group20.test; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import uk.ac.aber.cs221.group20.json.DictionaryEntry; -import uk.ac.aber.cs221.group20.selfassessment.AssessmentGenerator; -import uk.ac.aber.cs221.group20.javafx.TranslationController; -import uk.ac.aber.cs221.group20.json.DictionaryEntry; -import uk.ac.aber.cs221.group20.selfassessment.AssessmentGenerator; -import uk.ac.aber.cs221.group20.selfassessment.Question; - -import java.util.LinkedList; -import java.util.Random; - -import static org.junit.jupiter.api.Assertions.*; - -public class TranslationControllerTest { - LinkedList practiceList = new LinkedList<>(); - DictionaryEntry word1 = new DictionaryEntry("english1", "welsh1", "verb"); - DictionaryEntry word2 = new DictionaryEntry("english2", "welsh2", "verb"); - DictionaryEntry word3 = new DictionaryEntry("english3", "welsh3", "verb"); - Random rand = new Random(); - int chosenWord; - - TranslationController controllerToTest = new TranslationController(); - - - @BeforeEach - public void fillList(){ - - practiceList.add(word1); - practiceList.add(word2); - practiceList.add(word3); - chosenWord = rand.nextInt(practiceList.size()); - TranslationController.answer = practiceList.get(0); - - System.out.println(controllerToTest.wordToTranslate.getText()); - - - - } - - @Test - public void testRightWord(){ - - if(AssessmentGenerator.isEnglish){ - assertEquals(TranslationController.answer.getEnglish(), controllerToTest.wordToTranslate.getText()); - } - else{ - assertEquals("welsh1", controllerToTest.wordToTranslate.getText()); - } - - } - - -} \ No newline at end of file