This commit is contained in:
Henry Dugmore 2020-04-25 18:24:18 +01:00
commit 3c61739104
445 changed files with 6524 additions and 7 deletions

71
.gitignore vendored Normal file
View file

@ -0,0 +1,71 @@
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

View file

@ -3,7 +3,7 @@ Meeting: Weekly Project Meeting
Persons present: All members, except Luke Wybar(law39 - family emergency), Waylen Watts(ncw - needed in emergency).
Place and date of meeting: Online, Tuesday 14th April 2020, 1:10pm
Circulation list: All project members, plus project manager
Author: Oscar Pocock
Author: Brad Corbet
Date of minutes: 14th April 2020.
Version: 1.1
Time Taken: 1:10pm
@ -31,7 +31,7 @@ Matters arising
9 - COMPLETE, Brad to do spikework on the 'Translation' test, creating a demo in JavaFX. (Point 41 of minutes of 31st March) ACTION: brc9
10 - INVESTIGATING, Waylen to do spikework on the 'Six Meanings' test, creating a demo in JavaFX. (Point 42 of minutes of 31st March) ACTION: ncw
10 - ONGOING, Waylen to do spikework on the 'Six Meanings' test, creating a demo in JavaFX. (Point 42 of minutes of 31st March) ACTION: ncw
11 - ONGOING, Kain to implement the program's JSON processing using the spikework to help him. (Point 43 of minutes of 31st March) ACTION: kab74

View file

@ -0,0 +1,72 @@
Project: Group Project 20
Meeting: Weekly Project Meeting
Persons present: All members.
Place and date of meeting: Online, Tuesday 21th April 2020, 1:10pm
Circulation list: All project members, plus project manager
Author: Brad Corbett (brc9)
Date of minutes: 21st April 2020.
Version: 1.0
Time Taken: 1:10pm
Matters arising
===============
1 - ONGOING, Oscar to change UI Specification according to issues raised. (Point 3 of minutes of 31st March) ACTION: osp1.
2 - COMPLETE, Luke to do spikework regarding the live-searching of the dictionary. (Point 35 of minutes of 31st March) ACTION: law39
3 - COMPLETE, Tom to develop his Flashcard spikework more by looking further into the different JavaFX panes. (Point 36 of minutes of 31st March) ACTION: top19
4 - Any rough spikework should be pushed to your individual dev folder, before merging it with the directory src. (Point 37 of minutes of 31st March)
5 - ONGOING, Oscar to do spikework on reordering/sorting of the dictionary. (Point 39 of minutes of 31st March) ACTION: osp1
6 - COMPLETE, Marcin to do spikework on the 'Match the Meanings' test, creating a demo in JavaFX. (Point 40 of minutes of 31st March) ACTION: maj83
7 - ONGOING, Waylen to do spikework on the 'Six Meanings' test, creating a demo in JavaFX. (Point 42 of minutes of 31st March) ACTION: ncw
8 - ONGOING, Kain to implement the program's JSON processing using the spikework to help him. (Point 43 of minutes of 31st March) ACTION: kab74
9 - ONGOING, Henry to implement the program's 'Add Word' screen. (Point 44 of minutes of 31st March) ACTION: hjd3
10 - ONGOING, Oscar to make a start on implementing the program's Dictionary display. (Point 45 of minutes of 31st March) ACTION: osp1
11 - ONGOING, Tom and Luke to make the shared code controller, working out what it will contain. (Point 46 of minutes of 31st March) ACTION: top19, law39
12 - Anyone who is struggling with spikework can feel free to ask for help in the discord. (Point 47 of minutes of 31st March)
13 - COMPLETE, Oscar and Tom to help Henry implement the Add Word screen. ACTION: top19, osp1, hjd3 (Point 17 of minutes of 14th April)
14 - COMPLETE, Brad to bring his spikework on Translation test more in line with design specification e.g. correct layout, using words from practice list. ACTION: brc9 (Point 18 of minutes of 14th April)
15 - COMPLETE, Marcin to bring the spikework more towards a final project-esque piece of code i.e. correct layout, words from practice list. ACTION: maj83 (Point 19 of minutes of 14th April)
16 - ONGOING, Kain to help format the project ready for development, by creating classes and packages. ACTION: kab74 (Point 20 of minutes of 14th of April)
17 - ONGOING, Everyone to start doing JavaDoc and proper comments. ACTION: Everyone (Point 21 of minutes of 14th of April)
18 - ONGOING, Oscar to start work on Practice List page. ACTION: osp1 (Point 22 of minutes of 14th of April)
New business
============
19 - Reminder for everyone to be available between 0900 and 1800 during integration week, with a suggested 1 hour, 30 minute break at some point in the day.
20 - Oscar to create generic voice channels for individuals to join during Integration Week if people need to talk to other members of the group.
21 - Daily meetings planned for 10am and 5pm during Integration week.
22 - Luke and Kain to work on demo for live searching. ACTION: kab74, law39
23 - Brad to raise issues for problems brought up with Design Spec by Kain. ACTION: brc9
24 - Brad to change blog site collection website to reflect current members of the group. ACTION: brc9
25 - Henry to look into JUnit testing. ACTION: hjd3
AOB
===
None.
Minutes by brc9, 21/04/2020.

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/hellofx.iml" filepath="$PROJECT_DIR$/.idea/hellofx.iml" />
</modules>
</component>
</project>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -1,11 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/../../../20200331/brc9/translationFX/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/brc9/translationFX/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200331/brc9/translationFX/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/.idea/workspace.xml" afterDir="false" />
</list>
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -92,6 +88,8 @@
<workItem from="1586788738519" duration="8777000" />
<workItem from="1586853342350" duration="6464000" />
<workItem from="1586866035893" duration="398000" />
<workItem from="1586869197672" duration="229000" />
<workItem from="1587051259984" duration="118000" />
</task>
<servers />
</component>

View file

@ -105,4 +105,10 @@ public class DictionaryEntry {
"practiceWord = " + isPracticeWord;
}
@Override
public boolean equals(Object obj){
DictionaryEntry otherObject = (DictionaryEntry) obj;
return (this.getEnglishWord().equals(otherObject.getEnglishWord())) && this.getWelshWord().equals(otherObject.getWelshWord());
}
}

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="Welsh Vocabulary Tutor" />
</profile>
</annotationProcessing>
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View file

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,409 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/target/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/App.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-68">
<caret line="27" column="31" lean-forward="true" selection-start-line="27" selection-start-column="31" selection-end-line="27" selection-end-column="31" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/translationTest.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="10" column="264" selection-start-line="10" selection-start-column="264" selection-end-line="10" selection-end-column="264" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryEntry.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="18" column="30" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="30" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="765">
<caret line="64" column="26" selection-start-line="64" selection-start-column="26" selection-end-line="64" selection-end-column="26" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/PrimaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="273">
<caret line="59" column="9" lean-forward="true" selection-start-line="59" selection-start-column="9" selection-end-line="59" selection-end-column="9" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>println</find>
<find>list</find>
</findStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../../../.." />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/primary.fxml" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/SecondaryController.java" />
<option value="$PROJECT_DIR$/src/main/java/jsonStuff/JsonProcessing.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryEntry.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryController.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/WelshDictionary.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/App.java" />
<option value="$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/translationTest.fxml" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/PrimaryController.java" />
</list>
</option>
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="importAutomatically" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-7" />
<option name="width" value="974" />
<option name="height" value="788" />
</component>
<component name="ProjectId" id="1ZuzdvhY95vKxjmCaMLe5YQbnXd" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="1" id="Add" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name=".idea" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="assets" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="group20" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="Welsh Vocabulary Tutor" type="b2602c69:ProjectViewProjectNode" />
<item name="Welsh Vocabulary Tutor" type="462c0819:PsiDirectoryNode" />
<item name="target" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1587451303629" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../../../../src/Welsh Vocabulary Tutor" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\user\Documents\CS22120\gp20\dev\20200414\brc9\translationWork\Welsh Vocabulary Tutor\src\main\resources\assets" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="uk.ac.aber.cs22120.group20" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\user\Documents\CS22120\gp20\dev\20200414\brc9\translationWork\Welsh Vocabulary Tutor\src\main" />
<recent name="C:\Users\user\Documents\CS22120\gp20\dev\20200414\brc9\translationWork\Welsh Vocabulary Tutor\src\main\java" />
<recent name="C:\Users\user\Documents\CS22120\06-04-2020-DevWork\src\Welsh Vocabulary Tutor\src\main\resources\uk\ac\aber\cs22120\group20" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="App" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="uk.ac.aber.cs22120.group20.App" />
<module name="Welsh Vocabulary Tutor" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="uk.ac.aber.cs22120.group20.WelshDictionary" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.App" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="" />
<created>1585703857421</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1585703857421</updated>
<workItem from="1585703861677" duration="881000" />
</task>
<servers />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24886535" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.3289689" />
<window_info anchor="bottom" id="Run" order="2" weight="0.3289689" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Terminal" order="7" />
<window_info anchor="bottom" id="Event Log" order="8" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="9" />
<window_info anchor="bottom" id="Messages" order="10" weight="0.3289689" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Maven" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Capture Analysis" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
</layout>
<layout-to-restore>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2647504" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.3289689" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Terminal" order="7" />
<window_info anchor="bottom" id="Event Log" order="8" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="9" />
<window_info anchor="bottom" id="Messages" order="10" weight="0.3289689" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Maven" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Capture Analysis" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
</layout-to-restore>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="WindowStateProjectService">
<state width="1878" height="282" key="GridCell.Tab.0.bottom" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.center" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.left" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.right" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state x="441" y="95" key="SettingsEditor" timestamp="1585703966325">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="441" y="95" key="SettingsEditor/0.0.1920.1040@0.0.1920.1040" timestamp="1585703966325" />
</component>
<component name="editorHistoryManager">
<entry file="jar://C:/Program Files/Java/jdk-11.0.2/lib/src.zip!/java.base/java/lang/Thread.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="833" selection-start-line="833" selection-end-line="833" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/jsonStuff/WelshDictionary.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/jsonStuff/JsonProcessing.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/WelshDictionary.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="13" column="16" selection-start-line="13" selection-start-column="16" selection-end-line="13" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/primary.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="13" selection-start-line="14" selection-start-column="13" selection-end-line="14" selection-end-column="13" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/SecondaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="11" column="28" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/App.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-68">
<caret line="27" column="31" lean-forward="true" selection-start-line="27" selection-start-column="31" selection-end-line="27" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryEntry.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="18" column="30" selection-start-line="18" selection-start-column="30" selection-end-line="18" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="765">
<caret line="64" column="26" selection-start-line="64" selection-start-column="26" selection-end-line="64" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/translationTest.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="10" column="264" selection-start-line="10" selection-start-column="264" selection-end-line="10" selection-end-column="264" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/PrimaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="273">
<caret line="59" column="9" lean-forward="true" selection-start-line="59" selection-start-column="9" selection-end-line="59" selection-end-column="9" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -0,0 +1,44 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>uk.ac.aber.cs22120.group20</groupId>
<artifactId>Welsh Vocabulary Tutor</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.1</version>
<configuration>
<mainClass>uk.ac.aber.cs22120.group20.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,7 @@
module uk.ac.aber.cs22120.group20 {
requires javafx.controls;
requires javafx.fxml;
opens uk.ac.aber.cs22120.group20 to javafx.fxml;
exports uk.ac.aber.cs22120.group20;
}

View file

@ -0,0 +1,63 @@
package uk.ac.aber.cs22120.group20;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
/**
* Launch class of the Welsh Vocabulary tutor Application
*
* @author Brad Corbett [brc9]
* @author Henry Dugmore [hjd3]
* @author Kain Bryan-Jones [kab74]
* @author Luke Wybar [law39]
* @author Marcin Jakob [maj83]
* @author Oscar Pocock [osp1]
* @author Tom Perry [top1]
* @author Waylen Watts [ncw]
*
* @version 0.1
*/
public class App extends Application {
private static Scene scene;
public static LinkedList<DictionaryEntry> dictionary = new LinkedList<>();
@Override
public void start(Stage stage) throws IOException {
dictionary.add(new DictionaryEntry("abbey", "abaty", "nm", false));
dictionary.add(new DictionaryEntry("believe", "credu", "verb", true));
dictionary.add(new DictionaryEntry("concert", "cyngerdd", "nm", false));
dictionary.add(new DictionaryEntry("disease", "clefyd", "nm", true));
dictionary.add(new DictionaryEntry("extremely", "dros ben", "other", false));
scene = new Scene(loadFXML("translationTest"));
stage.setScene(scene);
stage.show();
}
static void setRoot(String fxml) throws IOException {
scene.setRoot(loadFXML(fxml));
}
private static Parent loadFXML(String fxml) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource( fxml + ".fxml"));
return fxmlLoader.load();
}
public static void main(String[] args) {
launch();
}
}

View file

@ -0,0 +1,142 @@
/**
* @(#) DictionaryController.java 0,1 2020/04/07
* <p>
* Copyright (c) 2020 Aberystwyth University.
* All rights reserved.
*/
package uk.ac.aber.cs22120.group20;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableRow;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
import javafx.util.Callback;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
/**
* A class that handles the keyboard and mouse input and interaction for the 'Dictionary Page' which is
* defined by 'dictionary.fxml'
*
* @author Brad Corbett [brc9]
* @author Henry Dugmore [hjd3]
* @author Kain Bryan-Jones [kab74]
* @author Luke Wybar [law39]
* @author Marcin Jakob [maj83]
* @author Oscar Pocock [osp1]
* @author Tom Perry [top1]
* @author Waylen Watts [ncw]
* @version 0.1 Initial development.
* @see DictionaryEntry
* @see App
*/
public class DictionaryController implements Initializable {
public static Stage primaryStage = null;
@FXML
private TableView<DictionaryEntry> table;
@FXML
private TableColumn<DictionaryEntry, String> english = new TableColumn<>();
@FXML
private TableColumn<DictionaryEntry, String> welsh = new TableColumn<>();
// public ObservableList<DictionaryEntry> list = FXCollections.observableArrayList(
// new DictionaryEntry("abbey", "abaty", "nm", false),
// new DictionaryEntry("believe", "credu", "verb", true),
// new DictionaryEntry("concert", "cyngerdd", "nm", false),
// new DictionaryEntry("disease", "clefyd", "nm", true),
// new DictionaryEntry("extremely", "dros ben", "other", false),
// new DictionaryEntry("flu", "ffliw", "nm", false)
// );
public ObservableList<DictionaryEntry> list = FXCollections.observableArrayList();
/**
* Switches to the primary scene.
*
* @throws IOException
*/
@FXML
private void switchToPrimary() throws IOException {
App.setRoot("primary");
}
/**
* Sets up the table and loads the words into it.
*
* @param url
* @param resourceBundle
*/
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
list.addAll(App.dictionary);
table.setRowFactory(tv -> {
TableRow<DictionaryEntry> row = new TableRow<DictionaryEntry>() {
@Override
protected void updateItem(DictionaryEntry dictionaryEntry, boolean b) {
super.updateItem(dictionaryEntry, b);
if (!isEmpty()) {
if (dictionaryEntry.isPracticeWord()) {
setStyle("-fx-background-color: gray;");
} else {
setStyle(" ");
}
}
}
};
row.setOnMouseClicked(mouseEvent -> {
if (mouseEvent.getClickCount() == 1 && (!row.isEmpty())) {
if (row.getItem().isPracticeWord()) {
App.dictionary.get(list.indexOf(row.getItem())).setPracticeWord(false);
// row.getItem().setPracticeWord(false);
}
else if (!row.getItem().isPracticeWord()) {
App.dictionary.get(list.indexOf(row.getItem())).setPracticeWord(true);
// row.getItem().setPracticeWord(true);
}
table.getSelectionModel().clearSelection();
}
});
return row;}
);
welsh.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<DictionaryEntry, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<DictionaryEntry, String> dictionaryEntryStringCellDataFeatures) {
if (dictionaryEntryStringCellDataFeatures.getValue().getWordType().equals("nm")) {
return new SimpleStringProperty(dictionaryEntryStringCellDataFeatures.getValue().getWelsh() + " {nm}");
}
else if (dictionaryEntryStringCellDataFeatures.getValue().getWordType().equals("nf")) {
return new SimpleStringProperty(dictionaryEntryStringCellDataFeatures.getValue().getWelsh() + " {nf}");
}
else {
return new SimpleStringProperty(dictionaryEntryStringCellDataFeatures.getValue().getWelsh());
}
}
});
english.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<DictionaryEntry, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<DictionaryEntry, String> dictionaryEntryStringCellDataFeatures) {
if (dictionaryEntryStringCellDataFeatures.getValue().getWordType().equals("verb")) {
return new SimpleStringProperty("to " + dictionaryEntryStringCellDataFeatures.getValue().getEnglish());
}
else {
return new SimpleStringProperty(dictionaryEntryStringCellDataFeatures.getValue().getEnglish());
}
}
});
// welsh.setCellValueFactory(new PropertyValueFactory<DictionaryEntry, String>("welsh"));
// english.setCellValueFactory(new PropertyValueFactory<DictionaryEntry, String>("english"));
table.setItems(list);
}
}

View file

@ -0,0 +1,80 @@
/**
* @(#) DictionaryEntry.java 0,1 2020/04/07
* <p>
* Copyright (c) 2020 Aberystwyth University.
* All rights reserved.
*/
package uk.ac.aber.cs22120.group20;
import uk.ac.aber.cs22120.group20.DictionaryController;
/**
* A class that demonstrates how a controller works.
*
* @author Brad Corbett [brc9]
* @author Henry Dugmore [hjd3]
* @author Kain Bryan-Jones [kab74]
* @author Luke Wybar [law39]
* @author Marcin Jakob [maj83]
* @author Oscar Pocock [osp1]
* @author Tom Perry [top1]
* @author Waylen Watts [ncw]
* @version 0.1 Initial development
* @see DictionaryController
*/
public class DictionaryEntry {
private String english;
private String welsh;
private String 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
* @param practiceWord determines if the entry is in the practice list
* @see App
* @see DictionaryController
*/
public DictionaryEntry(String english, String welsh, String wordType, Boolean practiceWord) {
this.english = english;
this.welsh = welsh;
this.wordType = wordType;
this.practiceWord = practiceWord;
}
public String getEnglish() {
return english;
}
public void setEnglish(String english) {
this.english = english;
}
public String getWelsh() {
return welsh;
}
public void setWelsh(String welsh) {
this.welsh = welsh;
}
public String getWordType() {
return wordType;
}
public void setWordType(String wordType) {
this.wordType = wordType;
}
public Boolean isPracticeWord() {
return practiceWord;
}
public void setPracticeWord(Boolean practiceWord) {
this.practiceWord = practiceWord;
}
}

View file

@ -0,0 +1,151 @@
package uk.ac.aber.cs22120.group20;
import java.io.IOException;
import java.util.ArrayList;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.text.Text;
import java.util.Random;
/**
* Placeholder Controller
*/
public class PrimaryController {
ArrayList<DictionaryEntry> practiceList = new ArrayList<>();
ArrayList<Integer> numbersUsed = new ArrayList<Integer>();
int correctGuessesInt = 0;
int incorrectGuessesInt = 0;
int chosenWord = 0;
@FXML
private TextField translationBox;
@FXML
private Text typeOfTest;
@FXML
private Text wordToTranslate;
@FXML
private Text correctGuesses;
@FXML
private Text incorrectGuesses;
@FXML
private ImageView submitButton;
Random rand = new Random();
boolean englishOrWelsh = false; // False means English to Welsh, true means Welsh to English
@FXML
private void initialize(){
submitButton.setImage(new Image ("file:src/main/resources/assets/right-icon.png"));
for(DictionaryEntry entry : App.dictionary){
if(entry.isPracticeWord()){
practiceList.add(entry);
}
}
chosenWord = (rand.nextInt(practiceList.size()));
numbersUsed.add(chosenWord);
englishOrWelsh = rand.nextBoolean();
correctGuesses.setText("Correct Guesses: 0");
incorrectGuesses.setText("Incorrect Guesses: 0");
if(englishOrWelsh){
wordToTranslate.setText(practiceList.get(chosenWord).getEnglish());
}
else{
wordToTranslate.setText(practiceList.get(chosenWord).getWelsh());
}
}
@FXML
private void switchToSecondary() throws IOException {
App.setRoot("secondary");
}
@FXML
void translateWord() {
if(englishOrWelsh) {
if (translationBox.getText().equals(practiceList.get(chosenWord).getWelsh())) {
correctGuessesInt++;
} else {
incorrectGuessesInt++;
}
}
else{
if (translationBox.getText().equals(practiceList.get(chosenWord).getEnglish())) {
correctGuessesInt++;
} else {
incorrectGuessesInt++;
}
}
correctGuesses.setText("Correct Guesses: " + correctGuessesInt);
incorrectGuesses.setText("Incorrect Guesses: " + incorrectGuessesInt);
do{
chosenWord = (rand.nextInt(practiceList.size()));
}while((numbersUsed.contains(chosenWord)) && numbersUsed.size() < practiceList.size());
numbersUsed.add(chosenWord);
if(numbersUsed.size() > practiceList.size()){
wordToTranslate.setText("Test Complete");
submitButton.setVisible(false);
}
if(englishOrWelsh){
wordToTranslate.setText(practiceList.get(chosenWord).getEnglish());
}
else{
wordToTranslate.setText(practiceList.get(chosenWord).getWelsh());
}
if(numbersUsed.size() > practiceList.size()){
wordToTranslate.setText("Test Complete");
}
}
}

View file

@ -0,0 +1,14 @@
package uk.ac.aber.cs22120.group20;
import java.io.IOException;
import javafx.fxml.FXML;
/**
* Placeholder Controller
*/
public class SecondaryController {
@FXML
private void switchToPrimary() throws IOException {
App.setRoot("primary");
}
}

View file

@ -0,0 +1,50 @@
package uk.ac.aber.cs22120.group20;
public class WelshDictionary {
private String english;
private String welsh;
private String wordType;
public WelshDictionary() {
}
public WelshDictionary(String english, String welsh, String wordType) {
this.english = english;
this.welsh = welsh;
this.wordType = wordType;
}
public String getEnglish() {
return english;
}
public void setEnglish(String english) {
this.english = english;
}
public String getWelsh() {
return welsh;
}
public void setWelsh(String welsh) {
this.welsh = welsh;
}
public String getWordType() {
return wordType;
}
public void setWordType(String wordType) {
this.wordType = wordType;
}
@Override
public String toString() {
return "WelshDictionary{" +
"english='" + english + '\'' +
", welsh='" + welsh + '\'' +
", wordType='" + wordType + '\'' +
'}';
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Boi" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<TitledPane animated="false" prefHeight="400.0" prefWidth="600.0" text="Learn">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TextField fx:id="translationBox" layoutX="205.0" layoutY="199.0" prefHeight="45.0" prefWidth="188.0" promptText="Enter translation here" />
<Text fx:id="typeOfTest" fill="#8d8d8d" layoutX="246.0" layoutY="343.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Translation">
<font>
<Font name="System Italic" size="22.0" />
</font>
</Text>
<Text fx:id="wordToTranslate" layoutX="165.0" layoutY="147.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Word To Translate">
<font>
<Font size="33.0" />
</font>
</Text>
<Text fx:id="correctGuesses" layoutX="407.0" layoutY="20.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Correct Guesses: 0" wrappingWidth="227.18359375">
<font>
<Font size="17.0" />
</font>
</Text>
<Text fx:id="incorrectGuesses" layoutX="407.0" layoutY="43.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Incorrect Guesses: 0">
<font>
<Font size="17.0" />
</font>
</Text>
<ImageView fx:id="submitButton" fitHeight="46.0" fitWidth="69.0" layoutX="398.0" layoutY="199.0" onMouseClicked="#translateWord" pickOnBounds="true" preserveRatio="true" />
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</Pane>

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Boi" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<TitledPane animated="false" prefHeight="400.0" prefWidth="600.0" text="Learn">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<TextField fx:id="translationBox" layoutX="205.0" layoutY="199.0" prefHeight="45.0" prefWidth="188.0" promptText="Enter translation here" />
<Text fx:id="typeOfTest" fill="#8d8d8d" layoutX="246.0" layoutY="343.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Translation">
<font>
<Font name="System Italic" size="22.0" />
</font>
</Text>
<Text fx:id="wordToTranslate" layoutX="165.0" layoutY="147.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Word To Translate">
<font>
<Font size="33.0" />
</font>
</Text>
<Text fx:id="correctGuesses" layoutX="407.0" layoutY="20.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Correct Guesses: 0" wrappingWidth="227.18359375">
<font>
<Font size="17.0" />
</font>
</Text>
<Text fx:id="incorrectGuesses" layoutX="407.0" layoutY="43.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Incorrect Guesses: 0">
<font>
<Font size="17.0" />
</font>
</Text>
<ImageView fx:id="submitButton" fitHeight="46.0" fitWidth="69.0" layoutX="398.0" layoutY="199.0" onMouseClicked="#translateWord" pickOnBounds="true" preserveRatio="true" />
</children>
</AnchorPane>
</content>
</TitledPane>
</children>
</Pane>

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="Welsh Vocabulary Tutor" />
</profile>
</annotationProcessing>
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11.0.6 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View file

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/src/main/java/JSON/DictionaryEntry.java" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200407/kab74/Welsh Vocabulary Tutor/src/main/java/JSON/DictionaryEntry.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_base_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_base_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_controls_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_controls_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_fxml_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_fxml_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_graphics_win_11.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/Maven__org_openjfx_javafx_graphics_linux_11.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/com_fasterxml_jackson_core_jackson_databind_2_9_4.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/libraries/com_fasterxml_jackson_core_jackson_databind_2_9_4.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/Welsh Vocabulary Tutor.iml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200421/law39/Welsh Vocabulary Tutor/Welsh Vocabulary Tutor.iml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../../.." />
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="importAutomatically" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectId" id="1ZuzdvhY95vKxjmCaMLe5YQbnXd" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1586203717298" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="App" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="uk.ac.aber.cs22120.group20.App" />
<module name="Welsh Vocabulary Tutor" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="uk.ac.aber.cs22120.group20.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.App" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b436be74-9b31-4913-bf6e-41784cacd483" name="Default Changelist" comment="" />
<created>1585703857421</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1585703857421</updated>
<workItem from="1585703861677" duration="881000" />
<workItem from="1587051369795" duration="11000" />
<workItem from="1587054283250" duration="26000" />
<workItem from="1587388308725" duration="10988000" />
<workItem from="1587458518156" duration="2015000" />
<workItem from="1587730315755" duration="13046000" />
<workItem from="1587807634142" duration="19000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="COLUMN_ORDER" />
</State>
</value>
</entry>
</map>
</option>
</component>
<component name="WindowStateProjectService">
<state width="1878" height="282" key="GridCell.Tab.0.bottom" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.bottom/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.center" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.center/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.left" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.left/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state width="1878" height="282" key="GridCell.Tab.0.right" timestamp="1585703985278">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1878" height="282" key="GridCell.Tab.0.right/0.0.1920.1040@0.0.1920.1040" timestamp="1585703985278" />
<state x="441" y="95" key="SettingsEditor" timestamp="1585703966325">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="441" y="95" key="SettingsEditor/0.0.1920.1040@0.0.1920.1040" timestamp="1585703966325" />
</component>
</project>

View file

@ -0,0 +1,44 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>uk.ac.aber.cs22120.group20</groupId>
<artifactId>Welsh Vocabulary Tutor</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.1</version>
<configuration>
<mainClass>uk.ac.aber.cs22120.group20.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

View file

@ -0,0 +1,7 @@
module uk.ac.aber.cs22120.group20 {
requires javafx.controls;
requires javafx.fxml;
opens uk.ac.aber.cs22120.group20 to javafx.fxml;
exports uk.ac.aber.cs22120.group20;
}

View file

@ -0,0 +1,27 @@
package uk.ac.aber.cs22120.group20.javafx;
import javafx.scene.Scene;
/**
* Programs main class that contains a list of the loaded dictionary definitions and is
* responsible for running the application.
* Launch class of the Welsh Vocabulary tutor Application
* @author Kain Bryan-Jones [kab74]
* @author Brad Corbett [brc9]
* @author Henry Dugmore [hjd3]
* @author Marcin Jakob [maj83]
* @author Tom Perry [top1]
* @author Oscar Pocock [osp1]
* @author Waylen Watts [ncw]
* @author Luke Wybar [law39]
* @version 0.1
* @See
*/
public class Application {
public static void main(String[] args) {
}
}

View file

@ -0,0 +1,20 @@
package uk.ac.aber.cs22120.group20.javafx;
/**
* Class that contains all the scenes for the JavaFX user interface and will be responsible
* for initiating the transition to new ones.
* @Author
* @Version
* @See
*/
public class ScreenSwitch extends SharedCodeController {
/**
* Method that is responsible for the switching between
* JavaFX, with it taking the new scenes name as a parameter.
*/
public void swap(SceneEnum newScene){
}
}

View file

@ -0,0 +1,12 @@
package uk.ac.aber.cs22120.group20.javafx;
/**
* Abstract class that contains all the shared FXML elements between the
* different controller classes including the sliding menu and the test score counter, to reduce code
* duplication. This will be extended by all the controller classes.
* @Author
* @Version
* @See
*/
abstract public class SharedCodeController {
}

View file

@ -0,0 +1,31 @@
package uk.ac.aber.cs22120.group20.json;
import java.io.*;
import java.util.*;
/**
* Contains functions responsible for saving and loading to and from the JSON file
* which will be provided by the user, using the Jackson JSON library.
* @Author
* @Version
* @See
*/
public class JSONProcessor {
/**
* Method for loading the list of
* dictionary definitions from a JSON file.
* @param dictionaryFile
*/
public LinkedList<WelshDictionary> load(File dictionaryFile){
}
/**
* Method for saving
* the list of dictionary definitions to a JSON file.
*/
public void save(File dictionaryFile, LinkedList<WelshDictionary> words){
}
}

View file

@ -0,0 +1,119 @@
package uk.ac.aber.cs22120.group20.json;
/**
* Class containing all the fields needed for storing dictionary definitions including
* Welsh and English translations along with its word type and whether its a practice word or not.
* @Author
* @Version
* @See
*/
public class WelshDictionary implements Comparable<WelshDictionary>{
private String welshWord;
private String englishWord;
private String wordType;
private boolean isPracticeWord;
private String practiceWord;
/**
* Default constructor for WelshDictionary.
*/
public WelshDictionary(){};
/**
*
* @param englishWord
* @param welshWord
* @param wordType
* @param isPracticeWord
*/
public WelshDictionary(String englishWord, String welshWord, String wordType, Boolean isPracticeWord){
}
/**
*
* @return
*/
public String getWelshWord(){
return welshWord;
}
/**
*
* @return
*/
public String getEnglishWord(){
return englishWord;
}
/**
*
* @return
*/
public String getWordType(){
return wordType;
}
/**
*
* @return
*/
public boolean isPracticeWord(){
return isPracticeWord();
}
/**
*
* @param welshWord
*/
public void setWelshWord(String welshWord){
this.welshWord=welshWord;
}
/**
*
* @param englishWord
*/
public void setEnglishWord(String englishWord){
this.englishWord=englishWord;
}
/**
*
* @param wordType
*/
public void setWordType(String wordType){
this.wordType=wordType;
}
/**
*
* @param practiceWord
*/
public void setPracticeWord(String practiceWord){
this.practiceWord() = practiceWord;
}
/**
*
* @param o
* @return
*/
@Override
public boolean equals(Object o){
}
/**
*
* @param welshDictionary
* @return
*/
@Override
public int compareTo(WelshDictionary welshDictionary) {
return 0;
}
}

View file

@ -0,0 +1,57 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
import java.util.LinkedList;
/**
* Class that contains methods to create a randomised list of questions that will
* contain a random distribution of question types.
* @Author
* @Version
* @See
*/
public class AssessmentGenerator extends Question{
/**
* Method that will generate a randomized list of questions consisting of random distribution of questions
* types, using the dictionarys practice words as the parameter.
* @param wordList
* @return
*/
public LinkedList<Question> generateAssessment(LinkedList<WelshDictionary> wordList){
}
/**
* Method
* that will generate a list of questions that are the type Match The Meanings, using the dictionary's
* practice words as the parameter.
* @return
*/
public LinkedList<Question> generateWordMatch(LinkedList<WelshDictionary>){
}
/**
* Method
* that will generate a list of questions that are the type 6 Meanings, using the dictionary's practice
* words as the parameter.
* @return
*/
public LinkedList<Question> generateSixMeanings(LinkedList<WelshDictionar>){
}
/**
* Method that
* will generate a list of questions that are the type Translation, using the dictionary's practice words as
* the parameter.
* @return
*/
public LinkedList<Question> generateWordEnter(LinkedList<WelshDictionary>){
}
}

View file

@ -0,0 +1,24 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Abstract class contains the basic information that all the shared information between the
* types of test questions including the questions correct answers and possible answers. All question
* classes will extend this class.
* @Author
* @Version
* @See
*/
public class Question {
/**
* Constructor for
* WordEnterQuestion that takes a WelshDictionary object that is being tested on as the parameter.
* @param correctAnswer
*/
public wordEnterQuestion(WelshDictionary correctAnswer){
}
}

View file

@ -0,0 +1,26 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Six Meanings question
* type, including the correct answer along with the five other possible answers. This class will be used by
* the AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class SixMeaningsQuestion extends Question {
/**
* Constructor for SixMeaningQuestion that takes one WelshDictionary object that is being
* tested along with the full list of words which will be used to generate randomized possible answers as
* the parameters.
* @param correctAnswer
* @param dictionary
*/
public sixMeaningQuestions(WelshDictionary correctAnswer, LinkedList<WelshDictionary> dictionary){
}
}

View file

@ -0,0 +1,25 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Translation question type,
* including the practice definition that is being tested. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class WordEnterQuestion extends Question{
/**
* Constructor for
* WordEnterQuestion that takes a WelshDictionary object that is being tested on as the parameter.
* @param correctAnswer
*/
public WordEnterQuestion(WelshDictionary correctAnswer){
}
}

View file

@ -0,0 +1,25 @@
package uk.ac.aber.cs22120.group20.selfassessment;
import uk.ac.aber.cs22120.group20.json.WelshDictionary;
/**
* Class that contains all the details needed for the Match the Meanings
* question type, including the 4 different practice definitions. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @Author
* @Version
* @See
*/
public class WordMatchQuestion {
/**
* Class that contains all the details needed for the Match the Meanings
* question type, including the 4 different practice definitions. This class will be used by the
* AssessmentGenerator and extends the Question class.
* @param correctAnswers
*/
public WordMatchQuestion(WelshDictionary[] correctAnswers){
}
}

View file

@ -0,0 +1,28 @@
package uk.ac.aber.cs22120.group20.test;
/**
* Class that contains methods which will be used to test that the JSON package classes are
* correctly loading and saving to and from the JSON file.
* @Author
* @Version
* @See
*/
public class JSONTest {
/**
* JUnit test to check that the JSON file has been correctly loaded.
*/
@test public void testLoad(){
}
/**
* JUnit test to check that any changes to the list of definitions are
* updated and saved to the JSON file accordingly.
*/
@test public void testSave(){
}
}

View file

@ -0,0 +1,54 @@
package uk.ac.aber.cs22120.group20.test;
/**
* Class that contains methods to test that the application class is correctly storing the full
* list of dictionary definitions.
* Furthermore, this class will also test that the elements such as the sliding menu and score counter are
* working as intended, along with testing that scenes are ending and transitioning correctly when
* applicable.
* @Author
* @Version
* @See
*/
public class JavaFXTest {
/**
* Tests to confirm that the dictionary definitions loaded match to an
* identical base set.
*/
@test public void testDefinition(){
}
/**
* Test to confirm that the user score counter correctly increases
* by increments on one.
*/
@test public void testScoreCounter(){
}
/**
* A preset search test to confirm that words are being searched for
* correctly.
*/
@test public void testFindWord(){
}
/**
* A test to check that a new word is correctly added and saved to
* the JSON file.
*/
@test public void testAddWord(){
}
/**
*A test to check that the JSON file is correctly updated when a
* word is removed.
*/
@test public void testRemoveWord(){
}
}

View file

@ -0,0 +1,36 @@
package uk.ac.aber.cs22120.group20.test;
/**
* This class will test that the lists pulled in the self-assessment package are indeed
* random, while also pulling the matching data from the dictionary.
* @Author
* @Version
* @See
*/
public class SelfAssesmentTest {
/**
* Test to confirm that the random number return is working
* correctly.
*/
@test
public void testRandomReturn(){
}
/**
* Test to check and confirm that the game types are
* either made available or are locked off depending on the number of practice list questions.
*/
@test
public void testAvailableSelfAssessment(){
}
/**
* Test that will check that an input by a user is correctly checked
* to the correct answer.
*/
@test
public void testUserAnswer(){}
}

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Primary View" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.PrimaryController">
<children>
<Label text="Primary View" />
<Button fx:id="primaryButton" text="Switch to Secondary View" onAction="#switchToSecondary"/>
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Button?>
<?import javafx.geometry.Insets?>
<VBox alignment="CENTER" spacing="20.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.SecondaryController">
<children>
<Label text="Secondary View" />
<Button fx:id="secondaryButton" text="Switch to Primary View" onAction="#switchToPrimary" />
</children>
<padding>
<Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
</padding>
</VBox>

18
dev/20200414/kab74/issues Normal file
View file

@ -0,0 +1,18 @@
* sharedCodeController description is different in classes than design spec.
* Design spec "public" is with lower case p.
* Design spec when listing function names shouldn't end with semicolon
* Changed setters and getters and field variables in WelshDictionary to comply
more with QA9's point on real word objects.
* What is SceneEnum? I can't find it anywhere. And is that really a good name?
* I Renamed self-assessment package because java doesn't allow '-' in name of package.
* TestUser in design spec has no brackets.
* TestFindWord also has no brackets
* No description for class 4.2.2
* 4.2.2 changed 'words' to 'wordList' to comply with QA9 real word object point.
* Rearanged authors on 'Application' to be alphabetical by surname.
* 4.2.4 it is illegal to state an array size in method signature(Design spec).
* WelshDictionary setter/getter for practice word should check whether the word
is a practice word first.
* WelshDictionary wordType should be an Enum.

View file

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>

View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="lib">
<CLASSES>
<root url="file://$PROJECT_DIR$/../javafx-sdk-14/lib" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="file://$PROJECT_DIR$/../javafx-sdk-14/lib" />
</SOURCES>
<jarDirectory url="file://$PROJECT_DIR$/../javafx-sdk-14/lib" recursive="false" />
<jarDirectory url="file://$PROJECT_DIR$/../javafx-sdk-14/lib" recursive="false" type="SOURCES" />
</library>
</component>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Match the meaning.iml" filepath="$PROJECT_DIR$/Match the meaning.iml" />
</modules>
</component>
</project>

View file

@ -0,0 +1,413 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="fbb2a4a0-47c2-4eac-8067-df2e585c83b3" name="Default Changelist" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="23" selection-start-line="23" selection-end-line="23" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/MyController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="114" selection-start-line="114" selection-end-line="114" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/DictionaryEntry.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<caret line="27" selection-start-line="27" selection-end-line="27" />
<folding>
<element signature="e#684#685#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/MatchTheMeaning.fxml">
<provider editor-type-id="JavaFX-Scene-Builder" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275">
<caret line="55" column="86" lean-forward="true" selection-start-line="55" selection-start-column="86" selection-end-line="55" selection-end-column="86" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/DictionaryEntry.java" />
<option value="$PROJECT_DIR$/src/Main.java" />
<option value="$PROJECT_DIR$/src/MyController.java" />
<option value="$PROJECT_DIR$/src/MatchTheMeaning.fxml" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-9" />
<option name="y" value="-9" />
<option name="width" value="1938" />
<option name="height" value="1058" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes />
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1587042602227" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../javafx-sdk-14/lib" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Main" />
<module name="Match the meaning" />
<option name="VM_PARAMETERS" value="--module-path C:\Users\Marcin\Desktop\javafx-sdk-14\lib --add-modules javafx.controls,javafx.fxml" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.Main" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="fbb2a4a0-47c2-4eac-8067-df2e585c83b3" name="Default Changelist" comment="" />
<created>1586778885037</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1586778885037</updated>
<workItem from="1586778888266" duration="4356000" />
<workItem from="1586790476649" duration="5671000" />
<workItem from="1586796522495" duration="9386000" />
<workItem from="1587035664037" duration="6621000" />
<workItem from="1587208556418" duration="3298000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="29332000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" weight="0.08848614" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.21776815" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.3163597" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Terminal" order="10" />
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
<window_info anchor="bottom" id="Messages" order="12" weight="0.32936078" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Database" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Maven" order="6" />
<window_info anchor="right" id="Capture Analysis" order="7" />
<window_info anchor="right" id="Palette&#9;" order="8" />
</layout>
<layout-to-restore>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.08848614" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Image Layers" order="2" />
<window_info id="Designer" order="3" />
<window_info id="UI Designer" order="4" />
<window_info id="Capture Tool" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.21776815" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Terminal" order="10" />
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
<window_info anchor="bottom" id="Messages" order="12" weight="0.32936078" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="Database" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info anchor="right" id="Maven" order="6" />
<window_info anchor="right" id="Capture Analysis" order="7" />
<window_info anchor="right" id="Palette&#9;" order="8" />
</layout-to-restore>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/MyController.java</url>
<line>108</line>
<properties />
<option name="timeStamp" value="11" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/out/production/Match the meaning/DictionaryEntry.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="23" selection-start-line="23" selection-end-line="23" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.controls.jar!/javafx/scene/control/ComboBoxBase.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="213">
<caret line="135" selection-start-line="135" selection-end-line="135" />
<folding>
<element signature="e#4575#4576#0" expanded="true" />
<element signature="e#4608#4609#0" expanded="true" />
<element signature="e#4778#4779#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.base.jar!/javafx/beans/property/DoublePropertyBase.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="70" selection-start-line="70" selection-end-line="70" />
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.graphics.jar!/javafx/stage/Window.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="163">
<caret line="435" selection-start-line="435" selection-end-line="435" />
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.fxml.jar!/javafx/fxml/FXMLLoader.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="2424" selection-start-line="2424" selection-end-line="2424" />
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.controls.jar!/javafx/scene/control/Labeled.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="202">
<caret line="91" selection-start-line="91" selection-end-line="91" />
<folding>
<element signature="e#3123#3124#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/MatchTheMeaning.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="275">
<caret line="55" column="86" lean-forward="true" selection-start-line="55" selection-start-column="86" selection-end-line="55" selection-end-column="86" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.base.jar!/javafx/beans/binding/StringExpression.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="16" selection-start-line="16" selection-end-line="16" />
<folding>
<element signature="e#460#461#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$PROJECT_DIR$/../javafx-sdk-14/lib/javafx.base.jar!/javafx/beans/property/StringPropertyBase.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="219">
<caret line="63" selection-start-line="63" selection-end-line="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/DictionaryEntry.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="357">
<caret line="27" selection-start-line="27" selection-end-line="27" />
<folding>
<element signature="e#684#685#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/MyController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="416">
<caret line="114" selection-start-line="114" selection-end-line="114" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>11</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>Match the meaning</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
<option value="0.6" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>lib</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="MyController">
<children>
<Button fx:id="ConfirmButton" layoutX="271.0" layoutY="321.0" mnemonicParsing="false" text="Confirm" onAction="#checkAnswers" />
<Label layoutX="248.0" layoutY="356.0" text="Match the meaning" />
<ComboBox fx:id="word1" layoutX="448.0" layoutY="118.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<ComboBox fx:id="word2" layoutX="448.0" layoutY="153.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<ComboBox fx:id="word3" layoutX="448.0" layoutY="188.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<ComboBox fx:id="word4" layoutX="448.0" layoutY="223.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<Label fx:id="WelshWord1" layoutX="343.0" layoutY="122.0" text="Welsh word#3" />
<Label fx:id="WelshWord2" layoutX="343.0" layoutY="157.0" text="Welsh word#2" />
<Label fx:id="WelshWord3" layoutX="343.0" layoutY="192.0" text="Welsh word#1" />
<Label fx:id="WelshWord4" layoutX="343.0" layoutY="227.0" text="Welsh word#4" />
<Label fx:id="EngWord1" layoutX="115.0" layoutY="122.0" text="English Word #1" />
<Label fx:id="EngWord2" layoutX="115.0" layoutY="157.0" text="English Word #2" />
<Label fx:id="EngWord3" layoutX="115.0" layoutY="192.0" text="English Word #3" />
<Label fx:id="EngWord4" layoutX="115.0" layoutY="227.0" text="English Word #4" />
<Label layoutX="105.0" layoutY="122.0" text="1." />
<Label layoutX="105.0" layoutY="157.0" text="2." />
<Label layoutX="105.0" layoutY="192.0" text="3." />
<Label layoutX="105.0" layoutY="227.0" text="4." />
<Label layoutX="367.0" layoutY="23.0" text="Correct answers:" />
<Label layoutX="368.0" layoutY="53.0" text="Wrong answers:" />
<Label fx:id="CorrectAnswer" layoutX="463.0" layoutY="23.0" text="0" />
<Label fx:id="WrongAnswer" layoutX="463.0" layoutY="53.0" text="0" />
</children>
</Pane>

View file

@ -0,0 +1,64 @@
public class DictionaryEntry {
private String english;
private String welsh;
private String wordType;
private boolean practiceWord;
public DictionaryEntry(){
practiceWord = false;
}
public DictionaryEntry(String english, String welsh, String wordType ){
this.english = english;
this.welsh = welsh;
this.wordType = wordType;
}
public String getEnglish() {
return english;
}
public void setEnglish(String english) {
this.english = english;
}
public String getWelsh() {
return welsh;
}
public void setWelsh(String welsh) {
this.welsh = welsh;
}
public String getWordType() {
return wordType;
}
public void setWordType(String wordType) {
this.wordType = wordType;
}
public boolean isPracticeWord() {
return practiceWord;
}
public void setPracticeWord(boolean practiceWord) {
this.practiceWord = practiceWord;
}
@Override
public String toString() {
return "english='" + english + "'\t" +
"welsh='" + welsh + "'\t" +
"wordType='" + wordType + "'" +
"practiceWord = " + practiceWord;
}
}

View file

@ -0,0 +1,31 @@
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import java.util.LinkedList;
public class Main extends Application{
public static LinkedList<DictionaryEntry> dictionary = new LinkedList();
public static void main(String[] args) {
dictionary.add(new DictionaryEntry("abbey", "abaty", "nm"));
dictionary.add(new DictionaryEntry("believe", "credu", "verb"));
dictionary.add(new DictionaryEntry("concert", "cyngerdd", "nm"));
dictionary.add(new DictionaryEntry("disease", "clefyd", "nm"));
dictionary.add(new DictionaryEntry("extremely", "dros ben", "other"));
dictionary.add(new DictionaryEntry("flu", "ffliw", "nm"));
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception{
Pane mainPane = FXMLLoader.load(Main.class.getResource("MatchTheMeaning.fxml"));
primaryStage.setScene(new Scene(mainPane));
primaryStage.show();
}
}

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.String?>
<?import javafx.collections.FXCollections?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="MyController">
<children>
<Button fx:id="ConfirmButton" layoutX="271.0" layoutY="321.0" mnemonicParsing="false" text="Confirm" onAction="#checkAnswers" />
<Label layoutX="248.0" layoutY="356.0" text="Match the meaning" />
<ComboBox fx:id="word1" layoutX="448.0" layoutY="118.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<ComboBox fx:id="word2" layoutX="448.0" layoutY="153.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<ComboBox fx:id="word3" layoutX="448.0" layoutY="188.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<ComboBox fx:id="word4" layoutX="448.0" layoutY="223.0" prefHeight="25.0" prefWidth="58.0">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="1" />
<String fx:value="2" />
<String fx:value="3" />
<String fx:value="4" />
</FXCollections>
</items>
</ComboBox>
<Label fx:id="WelshWord1" layoutX="343.0" layoutY="122.0" text="Welsh word#3" />
<Label fx:id="WelshWord2" layoutX="343.0" layoutY="157.0" text="Welsh word#2" />
<Label fx:id="WelshWord3" layoutX="343.0" layoutY="192.0" text="Welsh word#1" />
<Label fx:id="WelshWord4" layoutX="343.0" layoutY="227.0" text="Welsh word#4" />
<Label fx:id="EngWord1" layoutX="115.0" layoutY="122.0" text="English Word #1" />
<Label fx:id="EngWord2" layoutX="115.0" layoutY="157.0" text="English Word #2" />
<Label fx:id="EngWord3" layoutX="115.0" layoutY="192.0" text="English Word #3" />
<Label fx:id="EngWord4" layoutX="115.0" layoutY="227.0" text="English Word #4" />
<Label layoutX="105.0" layoutY="122.0" text="1." />
<Label layoutX="105.0" layoutY="157.0" text="2." />
<Label layoutX="105.0" layoutY="192.0" text="3." />
<Label layoutX="105.0" layoutY="227.0" text="4." />
<Label layoutX="367.0" layoutY="23.0" text="Correct answers:" />
<Label layoutX="368.0" layoutY="53.0" text="Wrong answers:" />
<Label fx:id="CorrectAnswer" layoutX="463.0" layoutY="23.0" text="0" />
<Label fx:id="WrongAnswer" layoutX="463.0" layoutY="53.0" text="0" />
</children>
</Pane>

View file

@ -0,0 +1,141 @@
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import java.net.URL;
import java.util.*;
public class MyController implements Initializable {
private Random rand = new Random();
public LinkedList<DictionaryEntry> setOfQuestions=new LinkedList<>();
private ArrayList<Integer> temp1 = new ArrayList<>(Arrays.asList(0,1,2,3));
private int corAns = 0;
private int wrongAns = 0;
@FXML
private ComboBox<String> word1;
@FXML
private ComboBox<String> word2;
@FXML
private ComboBox<String> word3;
@FXML
private ComboBox<String> word4;
@FXML
private Label EngWord1;
@FXML
private Label EngWord2;
@FXML
private Label EngWord3;
@FXML
private Label EngWord4;
@FXML
private Label WelshWord1;
@FXML
private Label WelshWord2;
@FXML
private Label WelshWord3;
@FXML
private Label WelshWord4;
@FXML
private Label CorrectAnswer;
@FXML
private Label WrongAnswer;
private void TestLabel(LinkedList<DictionaryEntry> questions, ArrayList<Integer> randOrder){
EngWord1.setText(questions.get(0).getEnglish());
EngWord2.setText(questions.get(1).getEnglish());
EngWord3.setText(questions.get(2).getEnglish());
EngWord4.setText(questions.get(3).getEnglish());
Collections.shuffle(randOrder);
WelshWord1.setText(questions.get(randOrder.get(0)).getWelsh());
WelshWord2.setText(questions.get(randOrder.get(1)).getWelsh());
WelshWord3.setText(questions.get(randOrder.get(2)).getWelsh());
WelshWord4.setText(questions.get(randOrder.get(3)).getWelsh());
}
private LinkedList<DictionaryEntry> getQuestions(LinkedList<DictionaryEntry> dictionary){
boolean isDuplicate = false;
do{
int rand_q=rand.nextInt(dictionary.size()-1);
DictionaryEntry pickedQuestion = dictionary.get(rand_q);
if(setOfQuestions.size()>=1){
for (DictionaryEntry setOfQuestion : setOfQuestions) {
if (setOfQuestion.equals(pickedQuestion)) {
isDuplicate = true;
break;
}
}
if(!isDuplicate){
setOfQuestions.add(pickedQuestion);
}
}else{
setOfQuestions.add(pickedQuestion);
}
isDuplicate =false;
}while(setOfQuestions.size()<5);
return setOfQuestions;
}
public void checkAnswers(){
int w1 = Integer.parseInt(word1.getValue())-1;
int w2 = Integer.parseInt(word2.getValue())-1;
int w3 = Integer.parseInt(word3.getValue())-1;
int w4 = Integer.parseInt(word4.getValue())-1;
if(setOfQuestions.get(w1).getWelsh().equals(WelshWord1.getText())){
corAns++;
}else wrongAns++;
if(setOfQuestions.get(w2).getWelsh().equals(WelshWord2.getText())){
corAns++;
}else wrongAns++;
if(setOfQuestions.get(w3).getWelsh().equals(WelshWord3.getText())){
corAns++;
}else wrongAns++;
if(setOfQuestions.get(w4).getWelsh().equals(WelshWord4.getText())){
corAns++;
}else wrongAns++;
CorrectAnswer.setText(Integer.toString(corAns));
WrongAnswer.setText(Integer.toString(wrongAns));
setOfQuestions.clear();
abc();
}
private void abc(){
getQuestions(Main.dictionary);
TestLabel(setOfQuestions,temp1);
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
this.abc();
}
}

View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.openjfx:javafx-base:win:11">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-base/11/javafx-base-11-win.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-base/11/javafx-base-11-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-base/11/javafx-base-11-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.openjfx:javafx-controls:win:11">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-controls/11/javafx-controls-11-win.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-controls/11/javafx-controls-11-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-controls/11/javafx-controls-11-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.openjfx:javafx-fxml:win:11">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-fxml/11/javafx-fxml-11-win.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-fxml/11/javafx-fxml-11-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-fxml/11/javafx-fxml-11-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.openjfx:javafx-graphics:win:11">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-graphics/11/javafx-graphics-11-win.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-graphics/11/javafx-graphics-11-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/openjfx/javafx-graphics/11/javafx-graphics-11-sources.jar!/" />
</SOURCES>
</library>
</component>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
</component>
</project>

Some files were not shown because too many files have changed in this diff Show more