Added Add Word Screen

Added fully functional add word screen that displays errors for existing entry and blank fields.
Adds words to dictionary list if no errors.
This commit is contained in:
Henry Dugmore 2020-04-25 18:20:42 +01:00
parent 8a984edecb
commit 5102439215
24 changed files with 1027 additions and 0 deletions

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,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,449 @@
<?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$/../../osp1/Welsh Vocabulary Tutor/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/jsonStuff/JsonProcessing.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/jsonStuff/JsonProcessing.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/jsonStuff/WelshDictionary.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/jsonStuff/WelshDictionary.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/module-info.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/module-info.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/AddController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/AddController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/App.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/App.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/PrimaryController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/PrimaryController.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/ViewboxController$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/ViewboxController$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/ViewboxController.class" beforeDir="false" afterPath="$PROJECT_DIR$/../../../20200302/osp1/Viewpane/hellofx/target/classes/org/openjfx/javaFX/ViewboxController.class" 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" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/target/classes/jsonStuff/JsonProcessing.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/target/classes/jsonStuff/WelshDictionary.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/target/classes/module-info.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/target/classes/org/openjfx/javaFX/App.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../../20200331/top19/flashcardfx/hellofx/target/classes/org/openjfx/javaFX/PrimaryController.class" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/../../osp1/Welsh Vocabulary Tutor/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../osp1/Welsh Vocabulary Tutor/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../osp1/Welsh Vocabulary Tutor/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../osp1/Welsh Vocabulary Tutor/.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="DefaultGradleProjectSettings">
<option name="isMigrated" value="true" />
</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="408">
<caret line="31" column="40" selection-start-line="31" selection-start-column="40" selection-end-line="31" selection-end-column="40" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</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="442">
<caret line="58" column="21" lean-forward="true" selection-start-line="58" selection-start-column="21" selection-end-line="58" selection-end-column="21" />
<folding>
<element signature="e#2025#2026#0" expanded="true" />
<element signature="e#2109#2110#0" expanded="true" />
<element signature="e#2169#2170#0" expanded="true" />
<element signature="e#2245#2246#0" expanded="true" />
<element signature="e#2311#2312#0" expanded="true" />
<element signature="e#2399#2400#0" expanded="true" />
<element signature="e#2473#2474#0" expanded="true" />
<element signature="e#2578#2579#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/addWord.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="22" selection-start-line="14" selection-start-column="22" selection-end-line="14" selection-end-column="22" />
</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/SecondaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="35" selection-start-column="35" selection-end-column="35" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/PrimaryController.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret selection-end-line="14" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/AddWordController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="524">
<caret line="72" column="16" selection-start-line="72" selection-start-column="16" selection-end-line="72" selection-end-column="16" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="jar://C:/Program Files/Java/jdk-11.0.3/lib/src.zip!/java.base/jdk/internal/reflect/NativeMethodAccessorImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="68" column="33" selection-start-line="68" selection-start-column="33" selection-end-line="68" selection-end-column="33" />
</state>
</provider>
</entry>
</file>
</leaf>
</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/java/uk/ac/aber/cs22120/group20/SecondaryController.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/PrimaryController.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/App.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/AddWordController.java" />
<option value="$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/DictionaryEntry.java" />
</list>
</option>
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="importAutomatically" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-7" />
<option name="width" value="1212" />
<option name="height" value="1047" />
</component>
<component name="ProjectId" id="1ZuzdvhY95vKxjmCaMLe5YQbnXd" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<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="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="java" 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="java" 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="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="group20" 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="SHARE_PROJECT_CONFIGURATION_FILES" 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$" />
<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="CopyClassDialog.RECENTS_KEY">
<recent name="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="1586965417769" duration="5394000" />
<workItem from="1586972617251" duration="38000" />
<workItem from="1587409739142" duration="3423000" />
<workItem from="1587450810058" duration="1154000" />
<workItem from="1587468106343" duration="3858000" />
<workItem from="1587699489827" duration="152000" />
<workItem from="1587827907431" duration="4377000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="18396000" />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="0" width="1212" height="1047" extended-state="0" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1857639" />
<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.13238512" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.07658643" />
<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="Docker" order="10" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="11" />
<window_info anchor="bottom" id="Messages" order="12" weight="0.32784313" />
<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" />
<window_info anchor="right" id="Database" order="8" />
</layout>
<layout-to-restore>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.29912663" />
<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="Docker" order="0" show_stripe_button="false" />
<window_info anchor="bottom" id="Database Changes" order="1" />
<window_info anchor="bottom" id="Messages" order="2" weight="0.32936078" />
<window_info anchor="bottom" id="Message" order="3" />
<window_info anchor="bottom" id="Find" order="4" />
<window_info anchor="bottom" id="Run" order="5" visible="true" weight="0.13434453" />
<window_info anchor="bottom" id="Debug" order="6" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="7" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="8" weight="0.4" />
<window_info anchor="bottom" id="TODO" 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="Version Control" order="12" />
<window_info anchor="right" id="Database" order="0" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="1" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="2" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="3" weight="0.25" />
<window_info anchor="right" id="Palette" order="4" />
<window_info anchor="right" id="Maven" order="5" />
<window_info anchor="right" id="Theme Preview" 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="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="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="408">
<caret line="31" column="40" selection-start-line="31" selection-start-column="40" selection-end-line="31" selection-end-column="40" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</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>
<caret column="35" selection-start-column="35" selection-end-column="35" />
</state>
</provider>
</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>
<caret selection-end-line="14" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk-11.0.3/lib/src.zip!/java.base/jdk/internal/reflect/NativeMethodAccessorImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="68" column="33" selection-start-line="68" selection-start-column="33" selection-end-line="68" selection-end-column="33" />
</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="442">
<caret line="58" column="21" lean-forward="true" selection-start-line="58" selection-start-column="21" selection-end-line="58" selection-end-column="21" />
<folding>
<element signature="e#2025#2026#0" expanded="true" />
<element signature="e#2109#2110#0" expanded="true" />
<element signature="e#2169#2170#0" expanded="true" />
<element signature="e#2245#2246#0" expanded="true" />
<element signature="e#2311#2312#0" expanded="true" />
<element signature="e#2399#2400#0" expanded="true" />
<element signature="e#2473#2474#0" expanded="true" />
<element signature="e#2578#2579#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/resources/uk/ac/aber/cs22120/group20/addWord.fxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="22" selection-start-line="14" selection-start-column="22" selection-end-line="14" selection-end-column="22" />
</state>
</provider>
<provider editor-type-id="JavaFX-Scene-Builder" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/uk/ac/aber/cs22120/group20/AddWordController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="524">
<caret line="72" column="16" selection-start-line="72" selection-start-column="16" selection-end-line="72" selection-end-column="16" />
<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,111 @@
package uk.ac.aber.cs22120.group20;
import javafx.beans.Observable;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import java.io.IOException;
import java.security.AllPermission;
/**
* Add Word Controller
*/
public class AddWordController {
@FXML private TextField welsh;
@FXML private TextField english;
@FXML private ComboBox<String> wordType;
public TextField getWelsh() {
return welsh;
}
public TextField getEnglish() {
return english;
}
@FXML
private void initialize(){
wordType.getItems().addAll("Masculine noun", "Feminine noun", "Verb", "Other");
System.out.println("Test");
}
@FXML protected void addButtonClick (ActionEvent actionEvent){
boolean entryFound = false;
if (english.getText().equals("") || welsh.getText().equals("")|| wordType.getValue().equals("Type")){
Alert error = new Alert(Alert.AlertType.ERROR);
error.setTitle("Error");
error.setHeaderText("Entry Not Saved");
error.setContentText("One or more fields are blank");
error.showAndWait();
}
else {
for (DictionaryEntry entry : App.dictionary){
entryFound = false;
DictionaryEntry newEntry = new DictionaryEntry(english.getText(),welsh.getText(),wordType.getValue(),false);
if(entry.equals(newEntry)){
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Error");
alert.setHeaderText("Entry Not Saved");
alert.setContentText("This entry already exists");
alert.showAndWait();
entryFound = true;
break;
}
else{
continue;
}
}
if(!entryFound){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Success");
alert.setHeaderText("Entry Saved");
alert.setContentText("Entry Added");
alert.showAndWait();
DictionaryEntry dictionaryEntry = new DictionaryEntry(english.getText(), welsh.getText(), wordType.getValue(), false);
App.dictionary.contains(dictionaryEntry);
App.dictionary.add(dictionaryEntry);
System.out.println(App.dictionary.toString());
}
}
}
// @Override
// public boolean equals(Object obj) {
// DictionaryEntry otherObject = (DictionaryEntry) obj;
// return (this.getEnglish().equals(otherObject.getEnglish()) && this.getWelsh().equals(otherObject.getWelsh()));
// }
@FXML
private void switchToPrimary() throws IOException {
App.setRoot("Primary");
}
// add character methods for characters ch, dd, ff, ng, ll, ph, rh, th
public void addCharch(ActionEvent actionEvent) { welsh.appendText("ch"); }
public void addChardd(ActionEvent actionEvent) { welsh.appendText("dd"); }
public void addCharff(ActionEvent actionEvent) { welsh.appendText("ff"); }
public void addCharng(ActionEvent actionEvent) { welsh.appendText("ng"); }
public void addCharll(ActionEvent actionEvent) { welsh.appendText("ll"); }
public void addCharph(ActionEvent actionEvent) { welsh.appendText("ph"); }
public void addCharrh(ActionEvent actionEvent) { welsh.appendText("rh"); }
public void addCharth(ActionEvent actionEvent) { welsh.appendText("th"); }
}

View file

@ -0,0 +1,51 @@
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.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 {
scene = new Scene(loadFXML("primary"));
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,101 @@
/**
* @(#) 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;
@Override
public String toString() {
return "DictionaryEntry{" +
"english='" + english + '\'' +
", welsh='" + welsh + '\'' +
", wordType='" + wordType + '\'' +
", practiceWord=" + 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;
}
// may cause problems
public boolean equals(DictionaryEntry obj) {
if(obj.getEnglish().equals(this.getEnglish()) && obj.getWelsh().equals(this.getWelsh()) && obj.getWordType().equals(this.getWordType())){
return true;
}
else{
return false;
}
}
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,14 @@
package uk.ac.aber.cs22120.group20;
import java.io.IOException;
import javafx.fxml.FXML;
/**
* Placeholder Controller
*/
public class PrimaryController {
@FXML
private void switchToSecondary() throws IOException {
App.setRoot("secondary");
}
}

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("addWord");
}
}

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="506.0" prefWidth="702.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.AddWordController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="84.33331298828125" minWidth="10.0" prefWidth="10.666646321614593" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="273.3333536783854" minWidth="10.0" prefWidth="273.3333536783854" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="87.3333740234375" minWidth="7.6666259765625" prefWidth="7.6666259765625" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.66668701171875" minHeight="10.0" prefHeight="50.66668701171875" vgrow="SOMETIMES" />
<RowConstraints maxHeight="46.33333333333332" minHeight="10.0" prefHeight="46.33333333333332" vgrow="SOMETIMES" />
<RowConstraints maxHeight="37.666646321614564" minHeight="10.0" prefHeight="37.666646321614564" vgrow="SOMETIMES" />
<RowConstraints maxHeight="34.3333740234375" minHeight="10.0" prefHeight="34.3333740234375" vgrow="SOMETIMES" />
<RowConstraints maxHeight="123.99998474121094" minHeight="10.0" prefHeight="76.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="110.0" minHeight="10.0" prefHeight="31.66668701171872" vgrow="SOMETIMES" />
<RowConstraints maxHeight="133.0" minHeight="10.0" prefHeight="28.999979654947936" vgrow="SOMETIMES" />
<RowConstraints maxHeight="129.33331298828125" minHeight="10.0" prefHeight="129.33331298828125" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label alignment="CENTER" prefHeight="17.0" prefWidth="105.0" text="English" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label alignment="CENTER" prefHeight="17.0" prefWidth="105.0" text="Welsh" GridPane.columnIndex="5" GridPane.rowIndex="2" />
<ComboBox fx:id="wordType" prefHeight="25.0" prefWidth="275.0" promptText="Type" GridPane.columnIndex="3" GridPane.rowIndex="3" />
<Button mnemonicParsing="false" onAction="#addButtonClick" prefHeight="25.0" prefWidth="274.0" text="Add Word" GridPane.columnIndex="3" GridPane.rowIndex="4" />
<TextField fx:id="english" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<TextField fx:id="welsh" GridPane.columnIndex="5" GridPane.rowIndex="3" />
<Button mnemonicParsing="false" onAction="#switchToPrimary" prefHeight="25.0" prefWidth="107.0" text="Switch Scene" GridPane.columnIndex="1" GridPane.rowIndex="5" />
<GridPane prefHeight="55.0" prefWidth="258.0" GridPane.columnIndex="3" GridPane.rowIndex="5">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharch" prefHeight="25.0" prefWidth="35.0" text="ch" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addChardd" prefHeight="25.0" prefWidth="34.0" text="dd" GridPane.columnIndex="1" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharff" prefHeight="25.0" prefWidth="34.0" text="ff" GridPane.columnIndex="2" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharng" prefHeight="25.0" prefWidth="34.0" text="ng" GridPane.columnIndex="3" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharll" prefHeight="25.0" prefWidth="34.0" text="ll" GridPane.columnIndex="4" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharph" prefHeight="25.0" prefWidth="34.0" text="ph" GridPane.columnIndex="5" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharrh" prefHeight="25.0" prefWidth="34.0" text="rh" GridPane.columnIndex="6" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharth" prefHeight="25.0" prefWidth="34.0" text="th" GridPane.columnIndex="7" />
</children>
</GridPane>
</children>
</GridPane>

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,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="506.0" prefWidth="702.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="uk.ac.aber.cs22120.group20.AddWordController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="84.33331298828125" minWidth="10.0" prefWidth="10.666646321614593" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="273.3333536783854" minWidth="10.0" prefWidth="273.3333536783854" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="87.3333740234375" minWidth="7.6666259765625" prefWidth="7.6666259765625" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="50.66668701171875" minHeight="10.0" prefHeight="50.66668701171875" vgrow="SOMETIMES" />
<RowConstraints maxHeight="46.33333333333332" minHeight="10.0" prefHeight="46.33333333333332" vgrow="SOMETIMES" />
<RowConstraints maxHeight="37.666646321614564" minHeight="10.0" prefHeight="37.666646321614564" vgrow="SOMETIMES" />
<RowConstraints maxHeight="34.3333740234375" minHeight="10.0" prefHeight="34.3333740234375" vgrow="SOMETIMES" />
<RowConstraints maxHeight="123.99998474121094" minHeight="10.0" prefHeight="76.0" vgrow="SOMETIMES" />
<RowConstraints maxHeight="110.0" minHeight="10.0" prefHeight="31.66668701171872" vgrow="SOMETIMES" />
<RowConstraints maxHeight="133.0" minHeight="10.0" prefHeight="28.999979654947936" vgrow="SOMETIMES" />
<RowConstraints maxHeight="129.33331298828125" minHeight="10.0" prefHeight="129.33331298828125" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Label alignment="CENTER" prefHeight="17.0" prefWidth="105.0" text="English" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label alignment="CENTER" prefHeight="17.0" prefWidth="105.0" text="Welsh" GridPane.columnIndex="5" GridPane.rowIndex="2" />
<ComboBox fx:id="wordType" prefHeight="25.0" prefWidth="275.0" promptText="Type" GridPane.columnIndex="3" GridPane.rowIndex="3" />
<Button mnemonicParsing="false" onAction="#addButtonClick" prefHeight="25.0" prefWidth="274.0" text="Add Word" GridPane.columnIndex="3" GridPane.rowIndex="4" />
<TextField fx:id="english" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<TextField fx:id="welsh" GridPane.columnIndex="5" GridPane.rowIndex="3" />
<Button mnemonicParsing="false" onAction="#switchToPrimary" prefHeight="25.0" prefWidth="107.0" text="Switch Scene" GridPane.columnIndex="1" GridPane.rowIndex="5" />
<GridPane prefHeight="55.0" prefWidth="258.0" GridPane.columnIndex="3" GridPane.rowIndex="5">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharch" prefHeight="25.0" prefWidth="35.0" text="ch" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addChardd" prefHeight="25.0" prefWidth="34.0" text="dd" GridPane.columnIndex="1" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharff" prefHeight="25.0" prefWidth="34.0" text="ff" GridPane.columnIndex="2" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharng" prefHeight="25.0" prefWidth="34.0" text="ng" GridPane.columnIndex="3" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharll" prefHeight="25.0" prefWidth="34.0" text="ll" GridPane.columnIndex="4" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharph" prefHeight="25.0" prefWidth="34.0" text="ph" GridPane.columnIndex="5" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharrh" prefHeight="25.0" prefWidth="34.0" text="rh" GridPane.columnIndex="6" />
<Button minHeight="-Infinity" minWidth="-Infinity" mnemonicParsing="false" onAction="#addCharth" prefHeight="25.0" prefWidth="34.0" text="th" GridPane.columnIndex="7" />
</children>
</GridPane>
</children>
</GridPane>

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>