All Classes and Interfaces
+Organization entities.SavedCharity entities.User entities.diff --git a/docs/javadoc/allclasses-index.html b/docs/javadoc/allclasses-index.html new file mode 100644 index 0000000..c468f7f --- /dev/null +++ b/docs/javadoc/allclasses-index.html @@ -0,0 +1,160 @@ + + +
+ +Organization entities.SavedCharity entities.User entities.AboutUsScreen instance.AccountScreen instance.ApiClient instance.AuthController instance.Donation instance.DonationScreen instance.FavoriteController with default DAO implementations.FavoriteController with the given DAO dependencies.ResultSet to a User object.Organization instance.OrganizationController with default DAO implementations.OrganizationController with the given dependencies.Organization entities.OrganizationsScreen instance.SavedCharity instance.SavedCharity entities.SavedCharity instance.TopMenu for the specified current screen.User instance from existing data.User instance.User entities.
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
+
+
+Bitstream Vera Fonts Copyright
+------------------------------
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation files (the "Font Software"), to reproduce and distribute the
+Font Software, including without limitation the rights to use, copy, merge,
+publish, distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright and trademark notices and this permission notice shall
+be included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional glyphs or characters may be added to the Fonts, only if the fonts
+are renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream
+Vera" names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
+ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
+FONT SOFTWARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome
+Foundation, and Bitstream Inc., shall not be used in advertising or
+otherwise to promote the sale, use or other dealings in this Font Software
+without prior written authorization from the Gnome Foundation or Bitstream
+Inc., respectively. For further information, contact: fonts at gnome dot
+org.
+
+Arev Fonts Copyright
+------------------------------
+
+Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the fonts accompanying this license ("Fonts") and
+associated documentation files (the "Font Software"), to reproduce
+and distribute the modifications to the Bitstream Vera Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute, and/or sell copies of the Font Software, and to permit
+persons to whom the Font Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be included in all copies of one or more of the Font Software
+typefaces.
+
+The Font Software may be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may be
+modified and additional glyphs or characters may be added to the
+Fonts, only if the fonts are renamed to names not containing either
+the words "Tavmjong Bah" or the word "Arev".
+
+This License becomes null and void to the extent applicable to Fonts
+or Font Software that has been modified and is distributed under the
+"Tavmjong Bah Arev" names.
+
+The Font Software may be sold as part of a larger software package but
+no copy of one or more of the Font Software typefaces may be sold by
+itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
+TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the name of Tavmjong Bah shall not
+be used in advertising or otherwise to promote the sale, use or other
+dealings in this Font Software without prior written authorization
+from Tavmjong Bah. For further information, contact: tavmjong @ free
+. fr.
+
+TeX Gyre DJV Math
+-----------------
+Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
+
+Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski
+(on behalf of TeX users groups) are in public domain.
+
+Letters imported from Euler Fraktur from AMSfonts are (c) American
+Mathematical Society (see below).
+Bitstream Vera Fonts Copyright
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera
+is a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated
+documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish,
+distribute,
+and/or sell copies of the Font Software, and to permit persons to whom
+the Font Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright and trademark notices and this permission notice
+shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and
+additional
+glyphs or characters may be added to the Fonts, only if the fonts are
+renamed
+to names not containing either the words "Bitstream" or the word "Vera".
+
+This License becomes null and void to the extent applicable to Fonts or
+Font Software
+that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but
+no copy
+of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
+FOUNDATION
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
+SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE
+THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
+Except as contained in this notice, the names of GNOME, the GNOME
+Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the GNOME Foundation or Bitstream Inc., respectively.
+For further information, contact: fonts at gnome dot org.
+
+AMSFonts (v. 2.2) copyright
+
+The PostScript Type 1 implementation of the AMSFonts produced by and
+previously distributed by Blue Sky Research and Y&Y, Inc. are now freely
+available for general use. This has been accomplished through the
+cooperation
+of a consortium of scientific publishers with Blue Sky Research and Y&Y.
+Members of this consortium include:
+
+Elsevier Science IBM Corporation Society for Industrial and Applied
+Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS)
+
+In order to assure the authenticity of these fonts, copyright will be
+held by
+the American Mathematical Society. This is not meant to restrict in any way
+the legitimate use of the fonts, such as (but not limited to) electronic
+distribution of documents containing these fonts, inclusion of these fonts
+into other public domain or commercial font collections or computer
+applications, use of the outline data to create derivative fonts and/or
+faces, etc. However, the AMS does require that the AMS copyright notice be
+removed from any derivative versions of the fonts which have been altered in
+any way. In addition, to ensure the fidelity of TeX documents using Computer
+Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces,
+has requested that any alterations which yield different font metrics be
+given a different name.
+
+
diff --git a/docs/javadoc/legal/jquery.md b/docs/javadoc/legal/jquery.md
new file mode 100644
index 0000000..a763ec6
--- /dev/null
+++ b/docs/javadoc/legal/jquery.md
@@ -0,0 +1,26 @@
+## jQuery v3.7.1
+
+### jQuery License
+```
+jQuery v 3.7.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+```
diff --git a/docs/javadoc/legal/jqueryUI.md b/docs/javadoc/legal/jqueryUI.md
new file mode 100644
index 0000000..46bfbaa
--- /dev/null
+++ b/docs/javadoc/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.14.1
+
+### jQuery UI License
+```
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/docs/javadoc/member-search-index.js b/docs/javadoc/member-search-index.js
new file mode 100644
index 0000000..47dbdc2
--- /dev/null
+++ b/docs/javadoc/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"no.ntnu.idatt1005.group03.UI","c":"AboutUsScreen","l":"AboutUsScreen(User)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.Model.User)","k":"3"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AccountScreen","l":"AccountScreen(User)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.Model.User)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"addDonation(Donation)","u":"addDonation(no.ntnu.idatt1005.group03.Model.Donation)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"SavedCharityDAO","l":"addFavorite(SavedCharity)","u":"addFavorite(no.ntnu.idatt1005.group03.Model.SavedCharity)"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"addFavorite(User, Organization)","u":"addFavorite(no.ntnu.idatt1005.group03.Model.User,no.ntnu.idatt1005.group03.Model.Organization)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"addFavoriteOrganization(Organization)","u":"addFavoriteOrganization(no.ntnu.idatt1005.group03.Model.Organization)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"addHeader(GridPane, boolean)","u":"addHeader(javafx.scene.layout.GridPane,boolean)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Role","l":"ADMIN","k":"0"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"amount","k":"1"},{"p":"no.ntnu.idatt1005.group03.Service","c":"ApiClient","l":"API_URL","k":"2"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"apiClient","k":"1"},{"p":"no.ntnu.idatt1005.group03.Service","c":"ApiClient","l":"ApiClient()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03","c":"App","l":"App()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"authController","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"AuthController","l":"AuthController(UserRepository)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.DAO.UserRepository)","k":"3"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"authScene","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"cachedOrganizations","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"category","k":"1"},{"p":"no.ntnu.idatt1005.group03.Service","c":"ApiClient","l":"client","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"createBackButton()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"createBaseGrid()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"createDonateButton(TextField, Label)","u":"createDonateButton(javafx.scene.control.TextField,javafx.scene.control.Label)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AccountScreen","l":"createDonationLog()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"createFavoriteButton()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"createFavoriteSection()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"createHeaderSection()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"createLoginRoot()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AccountScreen","l":"createLogoutSection()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AboutUsScreen","l":"createMainContent()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"createOrgNameLabel()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"createOrgRow(Organization, String)","u":"createOrgRow(no.ntnu.idatt1005.group03.Model.Organization,java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AccountScreen","l":"createProfileSection()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"createSearchBox(GridPane)","u":"createSearchBox(javafx.scene.layout.GridPane)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"createSignUpRoot()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"createWebsiteButton(Label)","u":"createWebsiteButton(javafx.scene.control.Label)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"currentUser","k":"2"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"DatabaseConnection","l":"DatabaseConnection()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"date","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"date","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"Donation(String, String, int, LocalDate, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.time.LocalDate,java.lang.String)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"donations","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"DonationScreen(Organization, User)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.Model.Organization,no.ntnu.idatt1005.group03.Model.User)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"email","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"favoriteController","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"favoriteController","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"favoriteController","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"FavoriteController()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"FavoriteController(SavedCharityDAO, OrganizationDAO)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.DAO.SavedCharityDAO,no.ntnu.idatt1005.group03.DAO.OrganizationDAO)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"favoriteOrganizations","k":"1"},{"p":"no.ntnu.idatt1005.group03.Service","c":"ApiClient","l":"fetchOrganizations()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepository","l":"findAll()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"findAll()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepository","l":"findByEmail(String)","u":"findByEmail(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"findByEmail(String)","u":"findByEmail(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepository","l":"findById(String)","u":"findById(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"findById(String)","u":"findById(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"OrganizationDAO","l":"findByOrgNumber(String)","u":"findByOrgNumber(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepository","l":"findByUserName(String)","u":"findByUserName(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"findByUserName(String)","u":"findByUserName(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"OrganizationDAO","l":"getAllOrganizations()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"OrganizationDAO","l":"getAllVerifiedOrganizations()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"getAmount()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"getCategory()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"DatabaseConnection","l":"getConnection()","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"getCurrentUser()","k":"6"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"getDate()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"getDate()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getDonations()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getEmail()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getFavoriteOrganizations()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"SavedCharityDAO","l":"getFavoritesFromUser(String)","u":"getFavoritesFromUser(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"getId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"getId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"getId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"getName()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"getOrganizationId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"getOrganizationId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"getOrganizationId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"getOrganizationName()"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"getOrganizations()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"getOrgNumber()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getPassword()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getRole()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"getStatus()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"getUserId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"getUserId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"getUserId()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"getUsername()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"getWebsiteUrl()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"handleLogin(String, String)","u":"handleLogin(java.lang.String,java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"handleSignUp(String, String, String, String)","u":"handleSignUp(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"id","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"id","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"id","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"id","k":"1"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"DatabaseConnection","l":"initializeDatabase()","k":"6"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"isAdmin()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"isApprovedByIK()"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"isFavoriteOrganization(Organization)","u":"isFavoriteOrganization(no.ntnu.idatt1005.group03.Model.Organization)"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"loadFavorites(User)","u":"loadFavorites(no.ntnu.idatt1005.group03.Model.User)"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"AuthController","l":"login(String, String)","u":"login(java.lang.String,java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"loginErrLabel","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"LoginScreen()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"logout()","k":"6"},{"p":"no.ntnu.idatt1005.group03","c":"App","l":"main(String[])","u":"main(java.lang.String[])","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"mainStage","k":"2"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"mapRowToUser(ResultSet)","u":"mapRowToUser(java.sql.ResultSet)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"name","k":"1"},{"p":"no.ntnu.idatt1005.group03.Service","c":"ApiClient","l":"objectMapper","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"organization","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"Organization()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"Organization(String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"OrganizationController()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"OrganizationController(OrganizationDAO, ApiClient)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.DAO.OrganizationDAO,no.ntnu.idatt1005.group03.Service.ApiClient)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"organizationDAO","k":"1"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"OrganizationDAO","l":"OrganizationDAO()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"organizationId","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"organizationId","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"organizationId","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"organizationName","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"OrganizationsScreen(User)","u":"%3Cinit%3E(no.ntnu.idatt1005.group03.Model.User)","k":"3"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"orgController","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"orgDAO","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"orgNumber","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"passwordHash","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"refreshCache()"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"refreshOrgGrid(GridPane, List)","u":"refreshOrgGrid(javafx.scene.layout.GridPane,java.util.List)"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"AuthController","l":"register(String, String, String, String)","u":"register(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"SavedCharityDAO","l":"removeFavorite(SavedCharity)","u":"removeFavorite(no.ntnu.idatt1005.group03.Model.SavedCharity)"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"removeFavorite(User, Organization)","u":"removeFavorite(no.ntnu.idatt1005.group03.Model.User,no.ntnu.idatt1005.group03.Model.Organization)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"removeFavoriteOrganization(Organization)","u":"removeFavoriteOrganization(no.ntnu.idatt1005.group03.Model.Organization)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"role","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Role","l":"Role()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepository","l":"save(User)","u":"save(no.ntnu.idatt1005.group03.Model.User)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"save(User)","u":"save(no.ntnu.idatt1005.group03.Model.User)"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"OrganizationDAO","l":"saveAll(List)","u":"saveAll(java.util.List)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"SavedCharity(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"savedCharityDAO","k":"1"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"SavedCharityDAO","l":"SavedCharityDAO()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"SavedOrganization(String, String, LocalDate)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.time.LocalDate)","k":"3"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"ScreenManager()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"searchOrganizations(String)","u":"searchOrganizations(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"setCurrentUser(User)","u":"setCurrentUser(no.ntnu.idatt1005.group03.Model.User)","k":"6"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"setFavoriteOrganizations(List)","u":"setFavoriteOrganizations(java.util.List)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"setMainStage(Stage)","u":"setMainStage(javafx.stage.Stage)","k":"6"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"setName(String)","u":"setName(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"setOrgNumber(String)","u":"setOrgNumber(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"setStatus(String)","u":"setStatus(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"setupGrid(GridPane)","u":"setupGrid(javafx.scene.layout.GridPane)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"setWebsiteUrl(String)","u":"setWebsiteUrl(java.lang.String)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"showAboutUsScreen()","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"showAccountScreen()","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"showDonationScreen(Organization)","u":"showDonationScreen(no.ntnu.idatt1005.group03.Model.Organization)","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"showHomeScreen()","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"showRoot(Stage, Parent, String, String)","u":"showRoot(javafx.stage.Stage,javafx.scene.Parent,java.lang.String,java.lang.String)","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"ScreenManager","l":"showScene(Stage, Scene, String)","u":"showScene(javafx.stage.Stage,javafx.scene.Scene,java.lang.String)","k":"6"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"signUpErrLabel","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"stage","k":"1"},{"p":"no.ntnu.idatt1005.group03","c":"App","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AboutUsScreen","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AccountScreen","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"LoginScreen","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"status","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"OrganizationController","l":"syncOrganizationsFromApi()"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"FavoriteController","l":"toggleFavorite(User, Organization)","u":"toggleFavorite(no.ntnu.idatt1005.group03.Model.User,no.ntnu.idatt1005.group03.Model.Organization)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"TopMenu","l":"TopMenu(String)","u":"%3Cinit%3E(java.lang.String)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"toString()"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"DatabaseConnection","l":"URL","k":"2"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AccountScreen","l":"user","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"DonationScreen","l":"user","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"user","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Role","l":"USER","k":"0"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"User(String, String, String, Role)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,no.ntnu.idatt1005.group03.Model.Role)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"User(String, String, String, String, Role)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,no.ntnu.idatt1005.group03.Model.Role)","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Donation","l":"userId","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedCharity","l":"userId","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"SavedOrganization","l":"userId","k":"1"},{"p":"no.ntnu.idatt1005.group03.Model","c":"User","l":"username","k":"1"},{"p":"no.ntnu.idatt1005.group03.Controller","c":"AuthController","l":"userRepository","k":"1"},{"p":"no.ntnu.idatt1005.group03.DAO","c":"UserRepositoryDAO","l":"UserRepositoryDAO()","u":"%3Cinit%3E()","k":"3"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Role","l":"valueOf(String)","u":"valueOf(java.lang.String)","k":"6"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Role","l":"values()","k":"6"},{"p":"no.ntnu.idatt1005.group03.Model","c":"Organization","l":"websiteUrl","k":"1"},{"p":"no.ntnu.idatt1005.group03.UI","c":"AboutUsScreen","l":"wrapInScrollPane(VBox)","u":"wrapInScrollPane(javafx.scene.layout.VBox)"},{"p":"no.ntnu.idatt1005.group03.UI","c":"OrganizationsScreen","l":"wrapInScrollPane(VBox)","u":"wrapInScrollPane(javafx.scene.layout.VBox)"}];updateSearchResults();
\ No newline at end of file
diff --git a/docs/javadoc/module-search-index.js b/docs/javadoc/module-search-index.js
new file mode 100644
index 0000000..0d59754
--- /dev/null
+++ b/docs/javadoc/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/App.html b/docs/javadoc/no/ntnu/idatt1005/group03/App.html
new file mode 100644
index 0000000..75db2c3
--- /dev/null
+++ b/docs/javadoc/no/ntnu/idatt1005/group03/App.html
@@ -0,0 +1,233 @@
+
+
+
+
+This class serves as the main entry point of the application. It is part of the +overall application bootstrap layer and is responsible for starting the JavaFX runtime, +initializing the database, and launching the first user interface screen.
+ +When the application starts, the database schema is initialized before the login +screen is displayed to the user.
javafx.application.Application.ParametersSTYLESHEET_CASPIAN, STYLESHEET_MODENAgetHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stopThis method initializes the database and launches the login screen on the provided +primary stage. If the user interface fails to load, an error message is printed.
start in class javafx.application.ApplicationprimaryStage - the primary JavaFX stage for the applicationargs - command-line arguments passed to the applicationThis class is part of the controller layer in the MVC architecture and is responsible
+for coordinating login and registration logic between the user interface and the data access layer.
+It validates user input, communicates with the UserRepository, and returns authentication
+results to the caller.
The controller supports login by either username or email address, and it ensures that +registration only succeeds when the provided user information is valid and unique.
AuthController(UserRepository userRepository) AuthController instance.AuthController instance.userRepository - the user repository used for retrieving and storing user dataNullPointerException - if userRepository is nullIf either input is null or blank, the login attempt fails immediately and an empty
+Optional is returned. The method first tries to find a user by username, and if
+no match is found, it then attempts to find a user by email. Authentication succeeds only
+if the provided password matches the stored password value.
loginInput - the username or email entered by the userpassword - the password entered by the userOptional containing the authenticated user if login succeeds,
+ or an empty Optional if login failsRegistration succeeds only if all input values are non-null and non-blank, the password
+and confirmation password match, and no existing user is found with the same username or email.
+A newly registered user is assigned the default role Role.USER.
username - the desired usernameemail - the email address of the new userpassword - the password for the new userconfirmPassword - the confirmation of the passwordOptional containing the newly created user if registration succeeds,
+ or an empty Optional if registration failsThis class is part of the controller layer in the MVC architecture and is responsible +for coordinating favorite-related actions between the user interface, the data access layer, +and the user model. It manages the addition, removal, loading, and toggling of a user's +favorite organizations.
+ +The controller stores favorite relationships using SavedCharityDAO and retrieves
+organization details through OrganizationDAO. It also keeps the user's in-memory
+favorite organization list synchronized with the persisted data.
private final OrganizationDAOprivate final SavedCharityDAOFavoriteController with default DAO implementations.FavoriteController(SavedCharityDAO savedCharityDAO,
+ OrganizationDAO organizationDAO) FavoriteController with the given DAO dependencies.voidaddFavorite(User user,
+ Organization organization) voidloadFavorites(User user) voidremoveFavorite(User user,
+ Organization organization) voidtoggleFavorite(User user,
+ Organization organization) FavoriteController with default DAO implementations.
+
+This constructor creates a SavedCharityDAO and an OrganizationDAO
+for use by the controller.
FavoriteController with the given DAO dependencies.
+
+This constructor supports dependency injection, which is useful for testing +and for supplying alternative DAO implementations.
savedCharityDAO - the DAO used to store and remove favorite relationshipsorganizationDAO - the DAO used to retrieve organization detailsNullPointerException - if savedCharityDAO or organizationDAO is nullThe favorite relationship is first stored through the data access layer, and the +organization is then added to the user's in-memory list of favorite organizations.
user - the user who is adding the favorite organizationorganization - the organization to add as a favoriteThe method retrieves saved favorite relationships for the user, resolves the corresponding +organizations through the organization data access layer, and updates the user's in-memory +list of favorite organizations.
user - the user whose favorites should be loadedThe favorite relationship is removed through the data access layer, and the organization +is then removed from the user's in-memory list of favorite organizations.
user - the user who is removing the favorite organizationorganization - the organization to remove from favoritesIf the organization is already marked as a favorite, it is removed. Otherwise, +it is added to the user's favorites.
user - the user whose favorite list should be updatedorganization - the organization to toggleThis class is part of the controller layer in the MVC architecture and is responsible +for coordinating access to organization data between the user interface, the data access layer, +and the external API layer. It maintains a local cache of organizations and provides operations +for retrieving, searching, and synchronizing organization data.
+ +When the controller is created, it attempts to load organizations from the database. +If no organizations are found, it automatically fetches data from the external API and stores +the result in the database.
private final ApiClientprivate List<Organization> private final OrganizationDAOOrganizationController with default DAO implementations.OrganizationController(OrganizationDAO orgDAO,
+ ApiClient apiClient) OrganizationController with the given dependencies.voidsearchOrganizations(String query) voidOrganizationController with default DAO implementations.
+
+The controller initializes its data access object and loads organizations +from the database into an internal cache. If the database does not contain any +organizations, the controller attempts to synchronize organization data from the API.
OrganizationController with the given dependencies.
+
+This constructor supports dependency injection, allowing custom implementations
+of OrganizationDAO and ApiClient to be provided (e.g., for testing).
When initialized, the controller loads organizations from the database into an +internal cache. If no organizations are found, it automatically attempts to fetch +and store data from the external API.
orgDAO - the DAO used to access and persist organization dataapiClient - the client used to fetch organization data from the external APINullPointerException - if orgDAO or apiClient is nullIf the query is null or blank, the full list of cached organizations is returned. +Otherwise, the method returns all organizations whose name or category contains the +given query string, ignoring case.
query - the search query used to filter organizationsThis method reloads the cached organization list by retrieving the latest +organizations from the data access layer.
This method fetches organizations from the external API using ApiClient.
+If new organizations are returned, they are saved to the database and the internal
+cache is refreshed. If no organizations are returned, the method assumes that the
+local data is already up to date.
If an error occurs during synchronization, the exception is caught and an error +message is printed to the standard error output.
private final FavoriteControllerfavoriteControllerprivate FavoriteControllerfavoriteControllerprivate final FavoriteControllerfavoriteControllerprivate final OrganizationControllerorgControllerThis class is part of the DAO layer in the MVC architecture and is responsible +for managing the database connection used by the application's data access objects. +It also contains logic for initializing the database schema required by the system.
+ +The class uses SQLite as the underlying database and creates the necessary tables +for organizations, users, and saved charities if they do not already exist.
private static Connectionstatic voidConnection to the databaseSQLException - if a database access error occurs or the connection cannot be establishedThis method creates tables for organizations, users, and saved charities. +It also enables SQLite foreign key support before executing the table creation statements.
+ +If initialization succeeds, a success message is printed to the console. +If an error occurs, an error message and the reason are printed instead.
Organization entities.
+
+This class is part of the DAO layer in the MVC architecture and is responsible +for persisting and retrieving organization data from the database. It handles storage, +lookup, and retrieval of organizations used throughout the application.
+ +The class uses JDBC to communicate with the database and maps rows from the
+organizations table to Organization objects.
findByOrgNumber(String orgNumber) voidsaveAll(List<Organization> organizations) Each organization is inserted into the organizations table if it does not
+already exist. Existing entries are ignored.
organizations - the list of organizations to saveNullPointerException - if organizations is nullA verified organization is defined as an organization whose status is
+approved.
orgNumber - the organization number to search fornull if no organization exists
+ with the given organization numberSavedCharity entities.
+
+This class is part of the DAO layer in the MVC architecture and is responsible +for storing and retrieving the relationship between users and their saved organizations. +It handles persistence of favorite organizations in the database.
+ +The class uses JDBC to communicate with the database and maps rows from the
+saved_charities table to SavedCharity objects.
voidaddFavorite(SavedCharity charity) getFavoritesFromUser(String userId) voidremoveFavorite(SavedCharity charity) If the same user-organization relationship already exists, the insert is ignored.
charity - the saved charity entry to addNullPointerException - if charity is nullThe entry is identified by the combination of user ID and organization ID.
charity - the saved charity entry to removeNullPointerException - if charity is nulluserId - the ID of the user whose saved charities should be retrievedNullPointerException - if userId is nullUserRepositoryDAOThis interface is part of the DAO layer in the MVC architecture and specifies
+the operations required for storing and retrieving User entities. It provides
+an abstraction between the controller layer and the concrete persistence implementation.
Implementations of this interface are responsible for handling access to the underlying +data source, such as a database.
findAll()findByEmail(String email) findByUserName(String username) voidUserRepositoryUser entities.
+
+This class is part of the DAO layer in the MVC architecture and is responsible
+for persisting and retrieving user data from the database. It implements the
+UserRepository interface and acts as the concrete data access component for
+user-related operations.
The class uses JDBC to communicate with the database and maps rows from the
+users table to User objects.
findAll()findByEmail(String email) findByUserName(String username) private UserResultSet to a User object.voidThe user is inserted into the users table with its ID, username, email,
+password, and role.
save in interface UserRepositoryuser - the user to saveNullPointerException - if user is nullRuntimeException - if a database access error occurs while saving the userfindById in interface UserRepositoryid - the ID of the user to findOptional containing the matching user if found, otherwise an empty OptionalRuntimeException - if a database access error occurs while searching for the userfindByUserName in interface UserRepositoryusername - the username of the user to findOptional containing the matching user if found, otherwise an empty OptionalRuntimeException - if a database access error occurs while searching for the userfindByEmail in interface UserRepositoryemail - the email address of the user to findOptional containing the matching user if found, otherwise an empty OptionalRuntimeException - if a database access error occurs while searching for the userfindAll in interface UserRepositoryRuntimeException - if a database access error occurs while retrieving usersResultSet to a User object.rs - the result set containing user dataUser object created from the current rowSQLException - if a database access error occurs while reading the result setprivate final OrganizationDAOorganizationDAOprivate final OrganizationDAOorgDAO FavoriteController(SavedCharityDAO savedCharityDAO,
+ OrganizationDAO organizationDAO) FavoriteController with the given DAO dependencies. OrganizationController(OrganizationDAO orgDAO,
+ ApiClient apiClient) OrganizationController with the given dependencies.private final SavedCharityDAOsavedCharityDAO FavoriteController(SavedCharityDAO savedCharityDAO,
+ OrganizationDAO organizationDAO) FavoriteController with the given DAO dependencies.private final UserRepositoryuserRepository AuthController(UserRepository userRepository) AuthController instance.Organization entities.SavedCharity entities.User entities.Organization entities.SavedCharity entities.+This class is part of the model layer in the MVC architecture and is responsible +for storing and representing donation data. It contains information about the donor, +the organization, the donation amount, and the date of the donation. +
+Each donation is assigned a unique identifier upon creation.
intgetDate()getId()Donation instance.
+ + A unique ID is automatically generated for each donation. The amount must be positive, + and all other fields must be non-null. +
userId - the ID of the user making the donationorganizationId - the ID of the organization receiving the donationamount - the donation amount (must be greater than 0)date - the date the donation was madeorganizationName - the name of the organizationIllegalArgumentException - if amount <= 0NullPointerException - if any of userId, organizationId,
+ date, or organizationName is nullThis class is part of the model layer in the MVC architecture and is responsible +for storing and representing organization data. It is typically populated from external +API responses using Jackson for JSON deserialization.
+ +The class includes basic information such as organization number, name, status, +and website URL, as well as a category used for grouping or filtering organizations.
Organization(String orgNumber,
+ String name,
+ String status,
+ String websiteUrl) Organization instance.getName()booleanvoidsetCategory(String category) voidvoidsetOrgNumber(String orgNumber) voidvoidsetWebsiteUrl(String websiteUrl) toString()Organization instance.
+All fields must be non-nullorgNumber - the unique organization numbername - the name of the organizationstatus - the approval status of the organizationwebsiteUrl - the website URL of the organizationorgNumber - the organization number to setname - the organization name to setstatus - the status to setwebsiteUrl - the website URL to setcategory - the category to setAn organization is considered approved if its status is equal to
+"approved" (case-insensitive).
true if the organization is approved, otherwise falseSerializable, Comparable<Role>, ConstableThis enum is part of the model layer in the MVC architecture and is used +to define different levels of access and permissions within the application.
+ +The role determines what actions a user is allowed to perform, such as accessing +administrative features or standard user functionality.
Enum.EnumDesc<E>Users with this role can perform actions such as viewing +organizations and making donations.
Users with this role have access to administrative functionality such as +managing organizations, users, or system settings.
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum class has no constant with the specified nameNullPointerException - if the argument is nullThis class is part of the model layer in the MVC architecture and is responsible +for storing and representing the relationship between a user and an organization the user +has marked as a favorite.
+ +Each saved charity entry links a user to an organization and is assigned a unique +identifier when created in the application.
SavedCharity(String userId,
+ String organizationId) SavedCharity instance.SavedCharity instance.
+
+A unique ID is automatically generated for each saved charity entry.
userId - the ID of the user saving the organizationorganizationId - the ID of the saved organizationNullPointerException - if userId or organizationId is nullThis class is part of the model layer in the MVC architecture and is responsible +for storing and representing data about organizations that a user has chosen to save.
+ +Each saved charity entry links a user to an organization and includes the date +when the organization was saved.
SavedOrganization(String userId,
+ String organizationId,
+ LocalDate date) SavedCharity instance.SavedCharity instance.
+
+A unique ID is automatically generated for each saved charity. All fields must be non-null.
userId - the ID of the user saving the organizationorganizationId - the ID of the saved organizationdate - the date the organization was savedNullPointerException - if any of userId, organizationId, or date is nullThis class is part of the model layer in the MVC architecture and is responsible +for storing and representing user-related data. It includes authentication information, +user role, and associations such as donations and favorite organizations.
+ +Each user is assigned a unique identifier and can have multiple donations and saved +organizations linked to their account.
voidaddDonation(Donation donation) voidgetEmail()getId()getRole()booleanisAdmin()booleanvoidvoidsetFavoriteOrganizations(List<Organization> favoriteOrganizations) User instance.
+
+A unique ID is automatically generated for each user. All fields must be non-null.
username - the username of the useremail - the email address of the userpasswordHash - the hashed password of the userrole - the role assigned to the userNullPointerException - if any parameter is nullUser instance from existing data.
+
+This constructor is typically used when loading user data from a database, +where the unique identifier is already defined.
id - the unique identifier of the userusername - the username of the useremail - the email address of the userpasswordHash - the hashed password of the userrole - the role assigned to the userNullPointerException - if any parameter is nulltrue if the user is an admin, otherwise falsedonation - the donation to addIf the organization is not already in the list, it will be added to the +beginning of the list.
org - the organization to addThe organization is matched by organization number. If no matching favorite +organization is found, the list remains unchanged.
org - the organization to remove from the favorites listThe organization is matched by organization number.
org - the organization to checktrue if the organization is in the favorites list, otherwise falseA new copy of the provided list is created to avoid storing the original list reference +directly.
favoriteOrganizations - the new list of favorite organizationsNullPointerException - if favoriteOrganizations is nullgetDonations()voidaddDonation(Donation donation) private List<Organization> cachedOrganizationsgetOrganizations()searchOrganizations(String query) voidaddFavorite(User user,
+ Organization organization) voidremoveFavorite(User user,
+ Organization organization) voidtoggleFavorite(User user,
+ Organization organization) findByOrgNumber(String orgNumber) getAllOrganizations()getAllVerifiedOrganizations()voidsaveAll(List<Organization> organizations) getFavoriteOrganizations()voidaddFavoriteOrganization(Organization org) booleanisFavoriteOrganization(Organization org) voidremoveFavoriteOrganization(Organization org) voidsetFavoriteOrganizations(List<Organization> favoriteOrganizations) fetchOrganizations()private javafx.scene.layout.HBoxcreateOrgRow(Organization org,
+ String styleClass) static voidshowDonationScreen(Organization org) private voidrefreshOrgGrid(javafx.scene.layout.GridPane orgGrid,
+ List<Organization> organizations) DonationScreen(Organization organization,
+ User user) DonationScreen instance.enum getRole()static Rolestatic Role[]values()getFavoritesFromUser(String userId) voidaddFavorite(SavedCharity charity) voidremoveFavorite(SavedCharity charity) register(String username,
+ String email,
+ String password,
+ String confirmPassword) voidaddFavorite(User user,
+ Organization organization) voidloadFavorites(User user) voidremoveFavorite(User user,
+ Organization organization) voidtoggleFavorite(User user,
+ Organization organization) private UsermapRowToUser(ResultSet rs) ResultSet to a User object.findAll()findAll()findByEmail(String email) findByEmail(String email) findByUserName(String username) findByUserName(String username) private static UsercurrentUserprivate final Useruserprivate final Useruserprivate final Useruserstatic UsergetCurrentUser()static voidsetCurrentUser(User user) AboutUsScreen(User user) AboutUsScreen instance. AccountScreen(User user) AccountScreen instance. DonationScreen(Organization organization,
+ User user) DonationScreen instance. OrganizationsScreen(User user) OrganizationsScreen instance.This class is part of the service layer in the MVC architecture and is responsible +for communicating with an external API to retrieve organization data. It acts as the +integration component between the application and the Innsamlingskontrollen public API.
+ +The class uses Java's HttpClient to send HTTP requests and Jackson's
+ObjectMapper to deserialize the JSON response into a list of
+Organization objects.
private static final Stringprivate final HttpClientprivate final com.fasterxml.jackson.databind.ObjectMapperApiClient instance.
+
+The client initializes the HTTP client and JSON object mapper used +to communicate with the external API and parse the response.
This method sends an HTTP GET request to the configured API endpoint.
+If the request is successful, the JSON response is deserialized into a list
+of Organization objects.
Exception - if the HTTP request fails, the response status is not 200,
+ or the response cannot be parsedprivate final ApiClientapiClient OrganizationController(OrganizationDAO orgDAO,
+ ApiClient apiClient) OrganizationController with the given dependencies.This class is part of the UI layer in the MVC architecture and is responsible +for presenting informational content about the application. It builds and displays a +JavaFX screen containing a top menu, a large image, and a button for navigating back +to the home screen.
+ +The screen content is wrapped in a ScrollPane to support vertical scrolling
+when the content exceeds the available window height.
private javafx.scene.layout.VBoxvoidstart(javafx.stage.Stage stage) private javafx.scene.control.ScrollPanewrapInScrollPane(javafx.scene.layout.VBox content) AboutUsScreen instance.user - the current user context for the screenThis method creates the layout, applies the stylesheet, sets the scene on the stage, +and shows the window.
stage - the JavaFX stage on which the screen will be displayedThis class is part of the UI layer in the MVC architecture and is responsible +for presenting account-related information to the user. It builds and displays a JavaFX +screen containing the user's profile details, donation history, and logout option.
+ +The screen is composed of separate sections for profile information, donation records, +and logout functionality.
private javafx.scene.layout.VBoxprivate javafx.scene.layout.VBoxprivate javafx.scene.layout.VBoxvoidstart(javafx.stage.Stage stage) AccountScreen instance.user - the currently logged-in user whose account information will be displayedThis method creates the layout, applies the stylesheet, sets the scene on the stage, +and shows the window.
stage - the JavaFX stage on which the screen will be displayedThis class is part of the UI layer in the MVC architecture and is responsible +for presenting donation-related actions to the user. It allows the user to view the +selected organization, visit its website, add or remove it from favorites, and register +a donation.
+ +The screen validates donation input before creating a Donation object and
+adding it to the current user's donation list.
private final FavoriteControllerprivate final Organizationprivate final UserDonationScreen(Organization organization,
+ User user) DonationScreen instance.private javafx.scene.control.Buttonprivate javafx.scene.control.ButtoncreateDonateButton(javafx.scene.control.TextField amountInput,
+ javafx.scene.control.Label feedbackLabel) private javafx.scene.control.Buttonprivate javafx.scene.control.Labelprivate javafx.scene.control.ButtoncreateWebsiteButton(javafx.scene.control.Label websiteFeedbackLabel) voidstart(javafx.stage.Stage stage) DonationScreen instance.organization - the organization the user may donate touser - the currently logged-in userThis method creates the layout, applies the stylesheet, sets the scene on the stage, +and shows the window.
stage - the JavaFX stage on which the screen will be displayedThis class is part of the UI layer in the MVC architecture and serves as the +entry point for user authentication. It provides two scenes: one for user registration +and one for user login. The class coordinates user input with the authentication +controller and handles navigation to the home screen after successful authentication.
+ +The class extends Application and is responsible for initializing the
+primary stage used for login and registration.
javafx.application.Application.Parametersprivate AuthControllerprivate javafx.scene.Sceneprivate FavoriteControllerprivate javafx.scene.control.Labelprivate javafx.scene.control.Labelprivate javafx.stage.StageSTYLESHEET_CASPIAN, STYLESHEET_MODENAprivate voidaddHeader(javafx.scene.layout.GridPane grid,
+ boolean isScene2) private javafx.scene.layout.GridPaneprivate javafx.scene.layout.GridPaneprivate javafx.scene.layout.GridPaneprivate voidhandleLogin(String usernameOrEmail,
+ String password) private voidhandleSignUp(String username,
+ String email,
+ String password,
+ String confirmPassword) voidstart(javafx.stage.Stage primaryStage) getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stopThis method creates the authentication controller and favorite controller, +initializes feedback labels, builds both the sign-up and login scenes, +and displays the initial scene.
start in class javafx.application.ApplicationprimaryStage - the primary JavaFX stage for the applicationThis class is part of the UI layer in the MVC architecture and is responsible +for presenting available organizations to the user. It allows the user to browse +organizations, search by name or category, view favorite organizations, mark or unmark +favorites, and navigate to the donation screen for a selected organization.
+ +The screen retrieves organization data through the OrganizationController
+and favorite-related actions through the FavoriteController.
private final FavoriteControllerprivate final OrganizationControllerprivate final UserOrganizationsScreen(User user) OrganizationsScreen instance.private javafx.scene.layout.VBoxprivate javafx.scene.text.Textprivate javafx.scene.layout.HBoxcreateOrgRow(Organization org,
+ String styleClass) private javafx.scene.layout.StackPanecreateSearchBox(javafx.scene.layout.GridPane orgGrid) private voidrefreshOrgGrid(javafx.scene.layout.GridPane orgGrid,
+ List<Organization> organizations) private voidsetupGrid(javafx.scene.layout.GridPane grid) voidstart(javafx.stage.Stage stage) private javafx.scene.control.ScrollPanewrapInScrollPane(javafx.scene.layout.VBox content) OrganizationsScreen instance.user - the currently logged-in userThis method creates the layout, loads the list of organizations, applies the stylesheet, +sets the scene on the stage, and shows the window.
stage - the JavaFX stage on which the screen will be displayedThis class is part of the UI layer in the MVC architecture and is responsible +for centralizing navigation between screens. It stores references to the main application +stage and the currently logged-in user, allowing different screens to be shown without +passing these values around manually each time.
+ +The class provides static methods for switching between the main screens of the +application, including the home screen, account screen, about screen, donation screen, +and login screen.
private static Userprivate static javafx.stage.Stageprivate static Userstatic voidlogout()static voidsetCurrentUser(User user) static voidsetMainStage(javafx.stage.Stage stage) static voidstatic voidstatic voidstatic voidstatic voidstatic voidstage - the main JavaFX stage of the applicationuser - the user to store as the current usernull if no user is logged instage - the stage to updateroot - the root node to displaytitle - the window titlestylesheet - the stylesheet URL to applyorg - the organization the user may donate toThis method clears the stored user reference and displays the login screen again.
javafx.css.Styleable, javafx.event.EventTargetThis class is part of the UI layer in the MVC architecture and is responsible +for providing a consistent navigation header for the main screens of the application. +It includes a clickable logo, navigation links, and an account button.
+ +The menu highlights the currently active screen and disables navigation for that +screen by showing it as styled text instead of an active link or button.
alignment, fillHeight, spacingbackground, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthneedsLayoutaccessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visibleUSE_COMPUTED_SIZE, USE_PREF_SIZEBASELINE_OFFSET_SAME_AS_HEIGHTalignmentProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, fillHeightProperty, getAlignment, getBaselineOffset, getClassCssMetaData, getContentBias, getCssMetaData, getHgrow, getMargin, getSpacing, isFillHeight, layoutChildren, requestLayout, setAlignment, setFillHeight, setHgrow, setMargin, setSpacing, spacingPropertygetChildrenbackgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthPropertygetChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBoundsaccessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visiblePropertyclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetStyleableNodeTopMenu for the specified current screen.
+
+The menu adapts its navigation behavior depending on which screen is currently +displayed. The active screen is visually highlighted, while navigation controls +for other screens remain available.
currentScreen - the name of the currently active screenUse the +↓ +/ +↑ + keys to move between search results and the +← +/ +→ + keys to switch between result tabs.
+The URL template below may be useful to configure this page as a search engine or bookmarklet in browsers that support this feature.
+link + +Loading search index...
+ + +