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 @@ + + + + +All Classes and Interfaces (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

All Classes and Interfaces

+
+
+
+
+
+
Class
+
Description
+ +
+
Displays the "About Us" screen in the application.
+
+ +
+
Displays the account screen for a logged-in user.
+
+ +
+
Provides access to external API data for organizations.
+
+ +
+
Starts the application and initializes required resources.
+
+ +
+
Handles authentication-related operations for users.
+
+ +
+
Provides access to the application's database and initializes required tables.
+
+ +
+
Represents a donation made by a user to an organization.
+
+ +
+
Displays the donation screen for a selected organization.
+
+ +
+
Handles favorite organization operations for users.
+
+ +
+
Displays the login and sign-up screen for the application.
+
+ +
+
Represents an organization
+
+ +
+
Handles organization-related operations in the application.
+
+ +
+
Provides database access for Organization entities.
+
+ +
+
Displays the main organization overview screen for the user.
+
+ +
+
Represents the role assigned to a user in the system.
+
+ +
+
Represents an organization saved by a user.
+
+ +
+
Provides database access for SavedCharity entities.
+
+ +
+
Represents an organization saved by a user.
+
+ +
+
Manages screen navigation and shared UI state in the application.
+
+ +
+
Represents the top navigation menu used across application screens.
+
+ +
+
Represents a user in the system.
+
+ +
+
Defines the contract for user data access operations.
+
+ +
+
Provides database access for User entities.
+
+
+
+
+ +
+
+ + diff --git a/docs/javadoc/allpackages-index.html b/docs/javadoc/allpackages-index.html new file mode 100644 index 0000000..d3d2a65 --- /dev/null +++ b/docs/javadoc/allpackages-index.html @@ -0,0 +1,76 @@ + + + + +All Packages (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

All Packages

+
+
Package Summary
+ + +
+
+ + diff --git a/docs/javadoc/constant-values.html b/docs/javadoc/constant-values.html new file mode 100644 index 0000000..d84a744 --- /dev/null +++ b/docs/javadoc/constant-values.html @@ -0,0 +1,98 @@ + + + + +Constant Field Values (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Constant Field Values

+
+
+

no.ntnu.*

+
    +
  • +
    no.ntnu.idatt1005.group03.DAO.DatabaseConnection
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    private static final String
    + +
    "jdbc:sqlite:./hmh.db"
    +
    +
  • +
+
    +
  • +
    no.ntnu.idatt1005.group03.Service.ApiClient
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    private static final String
    + +
    "https://app.innsamlingskontrollen.no/api/public/v1/all"
    +
    +
  • +
+
+ +
+
+ + diff --git a/docs/javadoc/element-list b/docs/javadoc/element-list new file mode 100644 index 0000000..8bd4653 --- /dev/null +++ b/docs/javadoc/element-list @@ -0,0 +1,6 @@ +no.ntnu.idatt1005.group03 +no.ntnu.idatt1005.group03.Controller +no.ntnu.idatt1005.group03.DAO +no.ntnu.idatt1005.group03.Model +no.ntnu.idatt1005.group03.Service +no.ntnu.idatt1005.group03.UI diff --git a/docs/javadoc/index-all.html b/docs/javadoc/index-all.html new file mode 100644 index 0000000..4e6509c --- /dev/null +++ b/docs/javadoc/index-all.html @@ -0,0 +1,819 @@ + + + + +Index (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Index

+
+A C D E F G H I L M N O P R S T U V W 
All Classes and Interfaces|All Packages|Constant Field Values +

A

+
+
AboutUsScreen - Class in no.ntnu.idatt1005.group03.UI
+
+
Displays the "About Us" screen in the application.
+
+
AboutUsScreen(User) - Constructor for class no.ntnu.idatt1005.group03.UI.AboutUsScreen
+
+
Constructs a new AboutUsScreen instance.
+
+
AccountScreen - Class in no.ntnu.idatt1005.group03.UI
+
+
Displays the account screen for a logged-in user.
+
+
AccountScreen(User) - Constructor for class no.ntnu.idatt1005.group03.UI.AccountScreen
+
+
Constructs a new AccountScreen instance.
+
+
addDonation(Donation) - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Adds a donation to this user's list of donations.
+
+
addFavorite(SavedCharity) - Method in class no.ntnu.idatt1005.group03.DAO.SavedCharityDAO
+
+
Adds a saved charity entry to the database.
+
+
addFavorite(User, Organization) - Method in class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
Adds an organization to the user's list of favorites.
+
+
addFavoriteOrganization(Organization) - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Adds an organization to the user's list of favorite organizations.
+
+
addHeader(GridPane, boolean) - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
ADMIN - Enum constant in enum class no.ntnu.idatt1005.group03.Model.Role
+
+
Represents an administrator with elevated privileges.
+
+
amount - Variable in class no.ntnu.idatt1005.group03.Model.Donation
+
 
+
API_URL - Static variable in class no.ntnu.idatt1005.group03.Service.ApiClient
+
 
+
apiClient - Variable in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
 
+
ApiClient - Class in no.ntnu.idatt1005.group03.Service
+
+
Provides access to external API data for organizations.
+
+
ApiClient() - Constructor for class no.ntnu.idatt1005.group03.Service.ApiClient
+
+
Constructs a new ApiClient instance.
+
+
App - Class in no.ntnu.idatt1005.group03
+
+
Starts the application and initializes required resources.
+
+
App() - Constructor for class no.ntnu.idatt1005.group03.App
+
 
+
authController - Variable in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
AuthController - Class in no.ntnu.idatt1005.group03.Controller
+
+
Handles authentication-related operations for users.
+
+
AuthController(UserRepository) - Constructor for class no.ntnu.idatt1005.group03.Controller.AuthController
+
+
Constructs a new AuthController instance.
+
+
authScene - Variable in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
+

C

+
+
cachedOrganizations - Variable in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
 
+
category - Variable in class no.ntnu.idatt1005.group03.Model.Organization
+
 
+
client - Variable in class no.ntnu.idatt1005.group03.Service.ApiClient
+
 
+
createBackButton() - Method in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
createBaseGrid() - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
createDonateButton(TextField, Label) - Method in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
createDonationLog() - Method in class no.ntnu.idatt1005.group03.UI.AccountScreen
+
 
+
createFavoriteButton() - Method in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
createFavoriteSection() - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
createHeaderSection() - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
createLoginRoot() - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
createLogoutSection() - Method in class no.ntnu.idatt1005.group03.UI.AccountScreen
+
 
+
createMainContent() - Method in class no.ntnu.idatt1005.group03.UI.AboutUsScreen
+
 
+
createOrgNameLabel() - Method in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
createOrgRow(Organization, String) - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
createProfileSection() - Method in class no.ntnu.idatt1005.group03.UI.AccountScreen
+
 
+
createSearchBox(GridPane) - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
createSignUpRoot() - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
createWebsiteButton(Label) - Method in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
currentUser - Static variable in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
 
+
+

D

+
+
DatabaseConnection - Class in no.ntnu.idatt1005.group03.DAO
+
+
Provides access to the application's database and initializes required tables.
+
+
DatabaseConnection() - Constructor for class no.ntnu.idatt1005.group03.DAO.DatabaseConnection
+
+
Prevents instantiation of this utility class.
+
+
date - Variable in class no.ntnu.idatt1005.group03.Model.Donation
+
 
+
date - Variable in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
 
+
Donation - Class in no.ntnu.idatt1005.group03.Model
+
+
Represents a donation made by a user to an organization.
+
+
Donation(String, String, int, LocalDate, String) - Constructor for class no.ntnu.idatt1005.group03.Model.Donation
+
+
Constructs a new Donation instance.
+
+
donations - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
DonationScreen - Class in no.ntnu.idatt1005.group03.UI
+
+
Displays the donation screen for a selected organization.
+
+
DonationScreen(Organization, User) - Constructor for class no.ntnu.idatt1005.group03.UI.DonationScreen
+
+
Constructs a new DonationScreen instance.
+
+
+

E

+
+
email - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
+

F

+
+
favoriteController - Variable in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
favoriteController - Variable in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
favoriteController - Variable in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
FavoriteController - Class in no.ntnu.idatt1005.group03.Controller
+
+
Handles favorite organization operations for users.
+
+
FavoriteController() - Constructor for class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
Constructs a new FavoriteController with default DAO implementations.
+
+
FavoriteController(SavedCharityDAO, OrganizationDAO) - Constructor for class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
Constructs a new FavoriteController with the given DAO dependencies.
+
+
favoriteOrganizations - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
fetchOrganizations() - Method in class no.ntnu.idatt1005.group03.Service.ApiClient
+
+
Fetches organizations from the external API.
+
+
findAll() - Method in interface no.ntnu.idatt1005.group03.DAO.UserRepository
+
+
Retrieves all users from the data source.
+
+
findAll() - Method in class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
Retrieves all users stored in the database.
+
+
findByEmail(String) - Method in interface no.ntnu.idatt1005.group03.DAO.UserRepository
+
+
Finds a user by email address.
+
+
findByEmail(String) - Method in class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
Finds a user by email address.
+
+
findById(String) - Method in interface no.ntnu.idatt1005.group03.DAO.UserRepository
+
+
Finds a user by its unique identifier.
+
+
findById(String) - Method in class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
Finds a user by its unique identifier.
+
+
findByOrgNumber(String) - Method in class no.ntnu.idatt1005.group03.DAO.OrganizationDAO
+
+
Finds an organization by its organization number.
+
+
findByUserName(String) - Method in interface no.ntnu.idatt1005.group03.DAO.UserRepository
+
+
Finds a user by username.
+
+
findByUserName(String) - Method in class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
Finds a user by username.
+
+
+

G

+
+
getAllOrganizations() - Method in class no.ntnu.idatt1005.group03.DAO.OrganizationDAO
+
+
Retrieves all organizations from the database.
+
+
getAllVerifiedOrganizations() - Method in class no.ntnu.idatt1005.group03.DAO.OrganizationDAO
+
+
Retrieves all verified organizations from the database.
+
+
getAmount() - Method in class no.ntnu.idatt1005.group03.Model.Donation
+
+
Returns the donation amount.
+
+
getCategory() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Returns the category of the organization.
+
+
getConnection() - Static method in class no.ntnu.idatt1005.group03.DAO.DatabaseConnection
+
+
Returns a new database connection to the application's SQLite database.
+
+
getCurrentUser() - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Returns the currently logged-in user.
+
+
getDate() - Method in class no.ntnu.idatt1005.group03.Model.Donation
+
+
Returns the date when the donation was made.
+
+
getDate() - Method in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
+
Returns the date when the organization was saved.
+
+
getDonations() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the list of donations made by this user.
+
+
getEmail() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the email address of this user.
+
+
getFavoriteOrganizations() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the list of the user's favorite organizations.
+
+
getFavoritesFromUser(String) - Method in class no.ntnu.idatt1005.group03.DAO.SavedCharityDAO
+
+
Retrieves all saved charity entries for a given user.
+
+
getId() - Method in class no.ntnu.idatt1005.group03.Model.Donation
+
+
Returns the unique identifier of this donation.
+
+
getId() - Method in class no.ntnu.idatt1005.group03.Model.SavedCharity
+
+
Returns the unique identifier of this saved charity entry.
+
+
getId() - Method in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
+
Returns the unique identifier of this saved organization.
+
+
getId() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the unique identifier of this user.
+
+
getName() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Returns the name of the organization.
+
+
getOrganizationId() - Method in class no.ntnu.idatt1005.group03.Model.Donation
+
+
Returns the ID of the organization receiving the donation.
+
+
getOrganizationId() - Method in class no.ntnu.idatt1005.group03.Model.SavedCharity
+
+
Returns the ID of the organization that was saved.
+
+
getOrganizationId() - Method in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
+
Returns the ID of the saved organization.
+
+
getOrganizationName() - Method in class no.ntnu.idatt1005.group03.Model.Donation
+
+
Returns the name of the organization receiving the donation.
+
+
getOrganizations() - Method in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
Returns the list of cached organizations.
+
+
getOrgNumber() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Returns the organization number.
+
+
getPassword() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the hashed password of this user.
+
+
getRole() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the role assigned to this user.
+
+
getStatus() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Returns the approval status of the organization.
+
+
getUserId() - Method in class no.ntnu.idatt1005.group03.Model.Donation
+
+
Returns the ID of the user who made the donation.
+
+
getUserId() - Method in class no.ntnu.idatt1005.group03.Model.SavedCharity
+
+
Returns the ID of the user who saved the organization.
+
+
getUserId() - Method in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
+
Returns the ID of the user who saved the organization.
+
+
getUsername() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Returns the username of this user.
+
+
getWebsiteUrl() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Returns the website URL of the organization.
+
+
+

H

+
+
handleLogin(String, String) - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
handleSignUp(String, String, String, String) - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
+

I

+
+
id - Variable in class no.ntnu.idatt1005.group03.Model.Donation
+
 
+
id - Variable in class no.ntnu.idatt1005.group03.Model.SavedCharity
+
 
+
id - Variable in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
 
+
id - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
initializeDatabase() - Static method in class no.ntnu.idatt1005.group03.DAO.DatabaseConnection
+
+
Initializes the database by creating the required tables if they do not already exist.
+
+
isAdmin() - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Checks whether this user has administrator privileges.
+
+
isApprovedByIK() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Checks whether the organization is approved.
+
+
isFavoriteOrganization(Organization) - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Checks whether a given organization is in the user's list of favorite organizations.
+
+
+

L

+
+
loadFavorites(User) - Method in class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
Loads all favorite organizations for the given user.
+
+
login(String, String) - Method in class no.ntnu.idatt1005.group03.Controller.AuthController
+
+
Attempts to authenticate a user with the given username or email and password.
+
+
loginErrLabel - Variable in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
LoginScreen - Class in no.ntnu.idatt1005.group03.UI
+
+
Displays the login and sign-up screen for the application.
+
+
LoginScreen() - Constructor for class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
logout() - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Logs out the current user and returns to the login screen.
+
+
+

M

+
+
main(String[]) - Static method in class no.ntnu.idatt1005.group03.App
+
+
Launches the JavaFX application.
+
+
mainStage - Static variable in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
 
+
mapRowToUser(ResultSet) - Method in class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
Maps the current row of a ResultSet to a User object.
+
+
+

N

+
+
name - Variable in class no.ntnu.idatt1005.group03.Model.Organization
+
 
+
no.ntnu.idatt1005.group03 - package no.ntnu.idatt1005.group03
+
 
+
no.ntnu.idatt1005.group03.Controller - package no.ntnu.idatt1005.group03.Controller
+
 
+
no.ntnu.idatt1005.group03.DAO - package no.ntnu.idatt1005.group03.DAO
+
 
+
no.ntnu.idatt1005.group03.Model - package no.ntnu.idatt1005.group03.Model
+
 
+
no.ntnu.idatt1005.group03.Service - package no.ntnu.idatt1005.group03.Service
+
 
+
no.ntnu.idatt1005.group03.UI - package no.ntnu.idatt1005.group03.UI
+
 
+
+

O

+
+
objectMapper - Variable in class no.ntnu.idatt1005.group03.Service.ApiClient
+
 
+
organization - Variable in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
Organization - Class in no.ntnu.idatt1005.group03.Model
+
+
Represents an organization
+
+
Organization() - Constructor for class no.ntnu.idatt1005.group03.Model.Organization
+
+
Default constructor required by Jackson for JSON deserialization.
+
+
Organization(String, String, String, String) - Constructor for class no.ntnu.idatt1005.group03.Model.Organization
+
+
Constructs a new Organization instance.
+
+
OrganizationController - Class in no.ntnu.idatt1005.group03.Controller
+
+
Handles organization-related operations in the application.
+
+
OrganizationController() - Constructor for class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
Constructs a new OrganizationController with default DAO implementations.
+
+
OrganizationController(OrganizationDAO, ApiClient) - Constructor for class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
Constructs a new OrganizationController with the given dependencies.
+
+
organizationDAO - Variable in class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
 
+
OrganizationDAO - Class in no.ntnu.idatt1005.group03.DAO
+
+
Provides database access for Organization entities.
+
+
OrganizationDAO() - Constructor for class no.ntnu.idatt1005.group03.DAO.OrganizationDAO
+
 
+
organizationId - Variable in class no.ntnu.idatt1005.group03.Model.Donation
+
 
+
organizationId - Variable in class no.ntnu.idatt1005.group03.Model.SavedCharity
+
 
+
organizationId - Variable in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
 
+
organizationName - Variable in class no.ntnu.idatt1005.group03.Model.Donation
+
 
+
OrganizationsScreen - Class in no.ntnu.idatt1005.group03.UI
+
+
Displays the main organization overview screen for the user.
+
+
OrganizationsScreen(User) - Constructor for class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
+
Constructs a new OrganizationsScreen instance.
+
+
orgController - Variable in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
orgDAO - Variable in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
 
+
orgNumber - Variable in class no.ntnu.idatt1005.group03.Model.Organization
+
 
+
+

P

+
+
passwordHash - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
+

R

+
+
refreshCache() - Method in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
Refreshes the internal cache of organizations from the database.
+
+
refreshOrgGrid(GridPane, List) - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
register(String, String, String, String) - Method in class no.ntnu.idatt1005.group03.Controller.AuthController
+
+
Attempts to register a new user with the given credentials.
+
+
removeFavorite(SavedCharity) - Method in class no.ntnu.idatt1005.group03.DAO.SavedCharityDAO
+
+
Removes a saved charity entry from the database.
+
+
removeFavorite(User, Organization) - Method in class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
Removes an organization from the user's list of favorites.
+
+
removeFavoriteOrganization(Organization) - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Removes an organization from the user's list of favorite organizations.
+
+
role - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
Role - Enum Class in no.ntnu.idatt1005.group03.Model
+
+
Represents the role assigned to a user in the system.
+
+
Role() - Constructor for enum class no.ntnu.idatt1005.group03.Model.Role
+
 
+
+

S

+
+
save(User) - Method in interface no.ntnu.idatt1005.group03.DAO.UserRepository
+
+
Saves a user to the data source.
+
+
save(User) - Method in class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
Saves a user to the database.
+
+
saveAll(List) - Method in class no.ntnu.idatt1005.group03.DAO.OrganizationDAO
+
+
Saves a list of organizations to the database.
+
+
SavedCharity - Class in no.ntnu.idatt1005.group03.Model
+
+
Represents an organization saved by a user.
+
+
SavedCharity(String, String) - Constructor for class no.ntnu.idatt1005.group03.Model.SavedCharity
+
+
Constructs a new SavedCharity instance.
+
+
savedCharityDAO - Variable in class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
 
+
SavedCharityDAO - Class in no.ntnu.idatt1005.group03.DAO
+
+
Provides database access for SavedCharity entities.
+
+
SavedCharityDAO() - Constructor for class no.ntnu.idatt1005.group03.DAO.SavedCharityDAO
+
 
+
SavedOrganization - Class in no.ntnu.idatt1005.group03.Model
+
+
Represents an organization saved by a user.
+
+
SavedOrganization(String, String, LocalDate) - Constructor for class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
+
Constructs a new SavedCharity instance.
+
+
ScreenManager - Class in no.ntnu.idatt1005.group03.UI
+
+
Manages screen navigation and shared UI state in the application.
+
+
ScreenManager() - Constructor for class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Prevents instantiation of this utility class.
+
+
searchOrganizations(String) - Method in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
Searches the cached organizations by name or category.
+
+
setCategory(String) - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Sets the category of the organization.
+
+
setCurrentUser(User) - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Sets the currently logged-in user.
+
+
setFavoriteOrganizations(List) - Method in class no.ntnu.idatt1005.group03.Model.User
+
+
Replaces the user's list of favorite organizations.
+
+
setMainStage(Stage) - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Sets the main stage used for screen navigation.
+
+
setName(String) - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Sets the name of the organization.
+
+
setOrgNumber(String) - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Sets the organization number.
+
+
setStatus(String) - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Sets the approval status of the organization.
+
+
setupGrid(GridPane) - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
setWebsiteUrl(String) - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Sets the website URL of the organization.
+
+
showAboutUsScreen() - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Displays the About Us screen for the current user.
+
+
showAccountScreen() - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Displays the account screen for the current user.
+
+
showDonationScreen(Organization) - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Displays the donation screen for the selected organization.
+
+
showHomeScreen() - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Displays the home screen for the current user.
+
+
showRoot(Stage, Parent, String, String) - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
Shows a new root on the given stage while reusing the existing scene when possible.
+
+
showScene(Stage, Scene, String) - Static method in class no.ntnu.idatt1005.group03.UI.ScreenManager
+
 
+
signUpErrLabel - Variable in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
stage - Variable in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
 
+
start(Stage) - Method in class no.ntnu.idatt1005.group03.App
+
+
Starts the JavaFX application.
+
+
start(Stage) - Method in class no.ntnu.idatt1005.group03.UI.AboutUsScreen
+
+
Builds and displays the About Us screen on the provided stage.
+
+
start(Stage) - Method in class no.ntnu.idatt1005.group03.UI.AccountScreen
+
+
Builds and displays the account screen on the provided stage.
+
+
start(Stage) - Method in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
+
Builds and displays the donation screen on the provided stage.
+
+
start(Stage) - Method in class no.ntnu.idatt1005.group03.UI.LoginScreen
+
+
Initializes and displays the login screen on the provided primary stage.
+
+
start(Stage) - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
+
Builds and displays the organizations screen on the provided stage.
+
+
status - Variable in class no.ntnu.idatt1005.group03.Model.Organization
+
 
+
syncOrganizationsFromApi() - Method in class no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
Synchronizes organizations from the external API to the database.
+
+
+

T

+
+
toggleFavorite(User, Organization) - Method in class no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
Toggles the favorite status of an organization for a user.
+
+
TopMenu - Class in no.ntnu.idatt1005.group03.UI
+
+
Represents the top navigation menu used across application screens.
+
+
TopMenu(String) - Constructor for class no.ntnu.idatt1005.group03.UI.TopMenu
+
+
Constructs a new TopMenu for the specified current screen.
+
+
toString() - Method in class no.ntnu.idatt1005.group03.Model.Organization
+
+
Returns a string representation of the organization.
+
+
+

U

+
+
URL - Static variable in class no.ntnu.idatt1005.group03.DAO.DatabaseConnection
+
 
+
user - Variable in class no.ntnu.idatt1005.group03.UI.AccountScreen
+
 
+
user - Variable in class no.ntnu.idatt1005.group03.UI.DonationScreen
+
 
+
user - Variable in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
User - Class in no.ntnu.idatt1005.group03.Model
+
+
Represents a user in the system.
+
+
User(String, String, String, String, Role) - Constructor for class no.ntnu.idatt1005.group03.Model.User
+
+
Constructs a User instance from existing data.
+
+
User(String, String, String, Role) - Constructor for class no.ntnu.idatt1005.group03.Model.User
+
+
Constructs a new User instance.
+
+
USER - Enum constant in enum class no.ntnu.idatt1005.group03.Model.Role
+
+
Represents a standard user with limited access rights.
+
+
userId - Variable in class no.ntnu.idatt1005.group03.Model.Donation
+
 
+
userId - Variable in class no.ntnu.idatt1005.group03.Model.SavedCharity
+
 
+
userId - Variable in class no.ntnu.idatt1005.group03.Model.SavedOrganization
+
 
+
username - Variable in class no.ntnu.idatt1005.group03.Model.User
+
 
+
userRepository - Variable in class no.ntnu.idatt1005.group03.Controller.AuthController
+
 
+
UserRepository - Interface in no.ntnu.idatt1005.group03.DAO
+
+
Defines the contract for user data access operations.
+
+
UserRepositoryDAO - Class in no.ntnu.idatt1005.group03.DAO
+
+
Provides database access for User entities.
+
+
UserRepositoryDAO() - Constructor for class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
 
+
+

V

+
+
valueOf(String) - Static method in enum class no.ntnu.idatt1005.group03.Model.Role
+
+
Returns the enum constant of this class with the specified name.
+
+
values() - Static method in enum class no.ntnu.idatt1005.group03.Model.Role
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
+

W

+
+
websiteUrl - Variable in class no.ntnu.idatt1005.group03.Model.Organization
+
 
+
wrapInScrollPane(VBox) - Method in class no.ntnu.idatt1005.group03.UI.AboutUsScreen
+
 
+
wrapInScrollPane(VBox) - Method in class no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
 
+
+A C D E F G H I L M N O P R S T U V W 
All Classes and Interfaces|All Packages|Constant Field Values + +
+
+ + diff --git a/docs/javadoc/index.html b/docs/javadoc/index.html new file mode 100644 index 0000000..0f4e546 --- /dev/null +++ b/docs/javadoc/index.html @@ -0,0 +1,78 @@ + + + + +Overview (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

help-me-help 1.0-SNAPSHOT API

+
+ + +
+
+ + diff --git a/docs/javadoc/legal/COPYRIGHT b/docs/javadoc/legal/COPYRIGHT new file mode 100644 index 0000000..7a42888 --- /dev/null +++ b/docs/javadoc/legal/COPYRIGHT @@ -0,0 +1,69 @@ +Copyright © 1993, 2025, Oracle and/or its affiliates. +All rights reserved. + +This software and related documentation are provided under a +license agreement containing restrictions on use and +disclosure and are protected by intellectual property laws. +Except as expressly permitted in your license agreement or +allowed by law, you may not use, copy, reproduce, translate, +broadcast, modify, license, transmit, distribute, exhibit, +perform, publish, or display any part, in any form, or by +any means. Reverse engineering, disassembly, or +decompilation of this software, unless required by law for +interoperability, is prohibited. + +The information contained herein is subject to change +without notice and is not warranted to be error-free. If you +find any errors, please report them to us in writing. + +If this is software or related documentation that is +delivered to the U.S. Government or anyone licensing it on +behalf of the U.S. Government, the following notice is +applicable: + +U.S. GOVERNMENT END USERS: Oracle programs, including any +operating system, integrated software, any programs +installed on the hardware, and/or documentation, delivered +to U.S. Government end users are "commercial computer +software" pursuant to the applicable Federal Acquisition +Regulation and agency-specific supplemental regulations. As +such, use, duplication, disclosure, modification, and +adaptation of the programs, including any operating system, +integrated software, any programs installed on the hardware, +and/or documentation, shall be subject to license terms and +license restrictions applicable to the programs. No other +rights are granted to the U.S. Government. + +This software or hardware is developed for general use in a +variety of information management applications. It is not +developed or intended for use in any inherently dangerous +applications, including applications that may create a risk +of personal injury. If you use this software or hardware in +dangerous applications, then you shall be responsible to +take all appropriate fail-safe, backup, redundancy, and +other measures to ensure its safe use. Oracle Corporation +and its affiliates disclaim any liability for any damages +caused by use of this software or hardware in dangerous +applications. + +Oracle and Java are registered trademarks of Oracle and/or +its affiliates. Other names may be trademarks of their +respective owners. + +Intel and Intel Xeon are trademarks or registered trademarks +of Intel Corporation. All SPARC trademarks are used under +license and are trademarks or registered trademarks of SPARC +International, Inc. AMD, Opteron, the AMD logo, and the AMD +Opteron logo are trademarks or registered trademarks of +Advanced Micro Devices. UNIX is a registered trademark of +The Open Group. + +This software or hardware and documentation may provide +access to or information on content, products, and services +from third parties. Oracle Corporation and its affiliates +are not responsible for and expressly disclaim all +warranties of any kind with respect to third-party content, +products, and services. Oracle Corporation and its +affiliates will not be responsible for any loss, costs, or +damages incurred due to your access to or use of third-party +content, products, or services. diff --git a/docs/javadoc/legal/LICENSE b/docs/javadoc/legal/LICENSE new file mode 100644 index 0000000..ee860d3 --- /dev/null +++ b/docs/javadoc/legal/LICENSE @@ -0,0 +1,118 @@ +Your use of this Program is governed by the No-Fee Terms and Conditions set +forth below, unless you have received this Program (alone or as part of another +Oracle product) under an Oracle license agreement (including but not limited to +the Oracle Master Agreement), in which case your use of this Program is governed +solely by such license agreement with Oracle. + +Oracle No-Fee Terms and Conditions (NFTC) + +Definitions + +"Oracle" refers to Oracle America, Inc. "You" and "Your" refers to (a) a company +or organization (each an "Entity") accessing the Programs, if use of the +Programs will be on behalf of such Entity; or (b) an individual accessing the +Programs, if use of the Programs will not be on behalf of an Entity. +"Program(s)" refers to Oracle software provided by Oracle pursuant to the +following terms and any updates, error corrections, and/or Program Documentation +provided by Oracle. "Program Documentation" refers to Program user manuals and +Program installation manuals, if any. If available, Program Documentation may be +delivered with the Programs and/or may be accessed from +www.oracle.com/documentation. "Separate Terms" refers to separate license terms +that are specified in the Program Documentation, readmes or notice files and +that apply to Separately Licensed Technology. "Separately Licensed Technology" +refers to Oracle or third party technology that is licensed under Separate Terms +and not under the terms of this license. + +Separately Licensed Technology + +Oracle may provide certain notices to You in Program Documentation, readmes or +notice files in connection with Oracle or third party technology provided as or +with the Programs. If specified in the Program Documentation, readmes or notice +files, such technology will be licensed to You under Separate Terms. Your rights +to use Separately Licensed Technology under Separate Terms are not restricted in +any way by the terms herein. For clarity, notwithstanding the existence of a +notice, third party technology that is not Separately Licensed Technology shall +be deemed part of the Programs licensed to You under the terms of this license. + +Source Code for Open Source Software + +For software that You receive from Oracle in binary form that is licensed under +an open source license that gives You the right to receive the source code for +that binary, You can obtain a copy of the applicable source code from +https://oss.oracle.com/sources/ or http://www.oracle.com/goto/opensourcecode. If +the source code for such software was not provided to You with the binary, You +can also receive a copy of the source code on physical media by submitting a +written request pursuant to the instructions in the "Written Offer for Source +Code" section of the latter website. + +------------------------------------------------------------------------------- + +The following license terms apply to those Programs that are not provided to You +under Separate Terms. + +License Rights and Restrictions + +Oracle grants to You, as a recipient of this Program, subject to the conditions +stated herein, a nonexclusive, nontransferable, limited license to: + +(a) internally use the unmodified Programs for the purposes of developing, +testing, prototyping and demonstrating your applications, and running the +Program for Your own personal use or internal business operations; and + +(b) redistribute the unmodified Program and Program Documentation, under the +terms of this License, provided that You do not charge Your licensees any fees +associated with such distribution or use of the Program, including, without +limitation, fees for products that include or are bundled with a copy of the +Program or for services that involve the use of the distributed Program. + +You may make copies of the Programs to the extent reasonably necessary for +exercising the license rights granted herein and for backup purposes. You are +granted the right to use the Programs to provide third party training in the use +of the Programs and associated Separately Licensed Technology only if there is +express authorization of such use by Oracle on the Program's download page or in +the Program Documentation. + +Your license is contingent on compliance with the following conditions: + +- You do not remove markings or notices of either Oracle's or a licensor's + proprietary rights from the Programs or Program Documentation; + +- You comply with all U.S. and applicable export control and economic sanctions + laws and regulations that govern Your use of the Programs (including technical + data); + +- You do not cause or permit reverse engineering, disassembly or decompilation + of the Programs (except as allowed by law) by You nor allow an associated + party to do so. + +For clarity, any source code that may be included in the distribution with the +Programs is provided solely for reference purposes and may not be modified, +unless such source code is under Separate Terms permitting modification. + +Ownership + +Oracle or its licensors retain all ownership and intellectual property rights to +the Programs. + +Information Collection + +The Programs' installation and/or auto-update processes, if any, may transmit a +limited amount of data to Oracle or its service provider about those processes +to help Oracle understand and optimize them. Oracle does not associate the data +with personally identifiable information. Refer to Oracle's Privacy Policy at +www.oracle.com/privacy. + +Disclaimer of Warranties; Limitation of Liability + +THE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ORACLE FURTHER +DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY +IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR +NONINFRINGEMENT. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL ORACLE BE LIABLE TO YOU FOR +DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT +LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git a/docs/javadoc/legal/dejavufonts.md b/docs/javadoc/legal/dejavufonts.md new file mode 100644 index 0000000..8c9e3cf --- /dev/null +++ b/docs/javadoc/legal/dejavufonts.md @@ -0,0 +1,191 @@ +## DejaVu fonts v2.37 + +### DejaVu License +
+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 @@ + + + + +App (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class App

+
+
java.lang.Object +
javafx.application.Application +
no.ntnu.idatt1005.group03.App
+
+
+
+
+
+
public class App +extends javafx.application.Application
+
Starts the application and initializes required resources. + +

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.

+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from class javafx.application.Application

    +javafx.application.Application.Parameters
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    +

    Fields inherited from class javafx.application.Application

    +STYLESHEET_CASPIAN, STYLESHEET_MODENA
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    App()
    +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    static void
    +
    main(String[] args)
    +
    +
    Launches the JavaFX application.
    +
    +
    void
    +
    start(javafx.stage.Stage primaryStage)
    +
    +
    Starts the JavaFX application.
    +
    +
    +
    +
    +
    +

    Methods inherited from class javafx.application.Application

    +getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
    +
    +

    Methods inherited from class Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      App

      +
      +
      public App()
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      +
      public void start(javafx.stage.Stage primaryStage)
      +
      Starts the JavaFX application. + +

      This 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.

      +
      +
      Specified by:
      +
      start in class javafx.application.Application
      +
      Parameters:
      +
      primaryStage - the primary JavaFX stage for the application
      +
      +
      +
      +
    • +
    • +
      +

      main

      +
      +
      public static void main(String[] args)
      +
      Launches the JavaFX application.
      +
      +
      Parameters:
      +
      args - command-line arguments passed to the application
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/AuthController.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/AuthController.html new file mode 100644 index 0000000..2326381 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/AuthController.html @@ -0,0 +1,277 @@ + + + + +AuthController (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class AuthController

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Controller.AuthController
+
+
+
+
+
public class AuthController +extends Object
+
Handles authentication-related operations for users. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      userRepository

      +
      +
      private final UserRepository userRepository
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AuthController

      +
      +
      public AuthController(UserRepository userRepository)
      +
      Constructs a new AuthController instance.
      +
      +
      Parameters:
      +
      userRepository - the user repository used for retrieving and storing user data
      +
      Throws:
      +
      NullPointerException - if userRepository is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      login

      +
      +
      public Optional<User> login(String loginInput, + String password)
      +
      Attempts to authenticate a user with the given username or email and password. + +

      If 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.

      +
      +
      Parameters:
      +
      loginInput - the username or email entered by the user
      +
      password - the password entered by the user
      +
      Returns:
      +
      an Optional containing the authenticated user if login succeeds, + or an empty Optional if login fails
      +
      +
      +
      +
    • +
    • +
      +

      register

      +
      +
      public Optional<User> register(String username, + String email, + String password, + String confirmPassword)
      +
      Attempts to register a new user with the given credentials. + +

      Registration 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.

      +
      +
      Parameters:
      +
      username - the desired username
      +
      email - the email address of the new user
      +
      password - the password for the new user
      +
      confirmPassword - the confirmation of the password
      +
      Returns:
      +
      an Optional containing the newly created user if registration succeeds, + or an empty Optional if registration fails
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/FavoriteController.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/FavoriteController.html new file mode 100644 index 0000000..cf9deb0 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/FavoriteController.html @@ -0,0 +1,346 @@ + + + + +FavoriteController (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class FavoriteController

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Controller.FavoriteController
+
+
+
+
+
public class FavoriteController +extends Object
+
Handles favorite organization operations for users. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      savedCharityDAO

      +
      +
      private final SavedCharityDAO savedCharityDAO
      +
      +
      +
    • +
    • +
      +

      organizationDAO

      +
      +
      private final OrganizationDAO organizationDAO
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      FavoriteController

      +
      +
      public FavoriteController()
      +
      Constructs a new FavoriteController with default DAO implementations. + +

      This constructor creates a SavedCharityDAO and an OrganizationDAO +for use by the controller.

      +
      +
      +
    • +
    • +
      +

      FavoriteController

      +
      +
      public FavoriteController(SavedCharityDAO savedCharityDAO, + OrganizationDAO organizationDAO)
      +
      Constructs a new FavoriteController with the given DAO dependencies. + +

      This constructor supports dependency injection, which is useful for testing +and for supplying alternative DAO implementations.

      +
      +
      Parameters:
      +
      savedCharityDAO - the DAO used to store and remove favorite relationships
      +
      organizationDAO - the DAO used to retrieve organization details
      +
      Throws:
      +
      NullPointerException - if savedCharityDAO or organizationDAO is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addFavorite

      +
      +
      public void addFavorite(User user, + Organization organization)
      +
      Adds an organization to the user's list of favorites. + +

      The 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.

      +
      +
      Parameters:
      +
      user - the user who is adding the favorite organization
      +
      organization - the organization to add as a favorite
      +
      +
      +
      +
    • +
    • +
      +

      loadFavorites

      +
      +
      public void loadFavorites(User user)
      +
      Loads all favorite organizations for the given user. + +

      The 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.

      +
      +
      Parameters:
      +
      user - the user whose favorites should be loaded
      +
      +
      +
      +
    • +
    • +
      +

      removeFavorite

      +
      +
      public void removeFavorite(User user, + Organization organization)
      +
      Removes an organization from the user's list of favorites. + +

      The 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.

      +
      +
      Parameters:
      +
      user - the user who is removing the favorite organization
      +
      organization - the organization to remove from favorites
      +
      +
      +
      +
    • +
    • +
      +

      toggleFavorite

      +
      +
      public void toggleFavorite(User user, + Organization organization)
      +
      Toggles the favorite status of an organization for a user. + +

      If the organization is already marked as a favorite, it is removed. Otherwise, +it is added to the user's favorites.

      +
      +
      Parameters:
      +
      user - the user whose favorite list should be updated
      +
      organization - the organization to toggle
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/OrganizationController.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/OrganizationController.html new file mode 100644 index 0000000..ce6ce30 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/OrganizationController.html @@ -0,0 +1,350 @@ + + + + +OrganizationController (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class OrganizationController

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Controller.OrganizationController
+
+
+
+
+
public class OrganizationController +extends Object
+
Handles organization-related operations in the application. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      orgDAO

      +
      +
      private final OrganizationDAO orgDAO
      +
      +
      +
    • +
    • +
      +

      apiClient

      +
      +
      private final ApiClient apiClient
      +
      +
      +
    • +
    • +
      +

      cachedOrganizations

      +
      +
      private List<Organization> cachedOrganizations
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      OrganizationController

      +
      +
      public OrganizationController()
      +
      Constructs a new OrganizationController 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

      +
      +
      public OrganizationController(OrganizationDAO orgDAO, + ApiClient apiClient)
      +
      Constructs a new 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.

      +
      +
      Parameters:
      +
      orgDAO - the DAO used to access and persist organization data
      +
      apiClient - the client used to fetch organization data from the external API
      +
      Throws:
      +
      NullPointerException - if orgDAO or apiClient is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getOrganizations

      +
      +
      public List<Organization> getOrganizations()
      +
      Returns the list of cached organizations.
      +
      +
      Returns:
      +
      a list of organizations currently stored in the internal cache
      +
      +
      +
      +
    • +
    • +
      +

      searchOrganizations

      +
      +
      public List<Organization> searchOrganizations(String query)
      +
      Searches the cached organizations by name or category. + +

      If 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.

      +
      +
      Parameters:
      +
      query - the search query used to filter organizations
      +
      Returns:
      +
      a list of organizations matching the search query
      +
      +
      +
      +
    • +
    • +
      +

      refreshCache

      +
      +
      public void refreshCache()
      +
      Refreshes the internal cache of organizations from the database. + +

      This method reloads the cached organization list by retrieving the latest +organizations from the data access layer.

      +
      +
      +
    • +
    • +
      +

      syncOrganizationsFromApi

      +
      +
      public void syncOrganizationsFromApi()
      +
      Synchronizes organizations from the external API to the database. + +

      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.

      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/AuthController.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/AuthController.html new file mode 100644 index 0000000..90a1a0b --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/AuthController.html @@ -0,0 +1,89 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Controller.AuthController (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Controller.AuthController

+
+
Packages that use AuthController
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/FavoriteController.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/FavoriteController.html new file mode 100644 index 0000000..e460ff7 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/FavoriteController.html @@ -0,0 +1,95 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Controller.FavoriteController (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Controller.FavoriteController

+
+
Packages that use FavoriteController
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/OrganizationController.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/OrganizationController.html new file mode 100644 index 0000000..b206549 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/class-use/OrganizationController.html @@ -0,0 +1,89 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Controller.OrganizationController (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Controller.OrganizationController

+
+
Packages that use OrganizationController
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-summary.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-summary.html new file mode 100644 index 0000000..002d13e --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-summary.html @@ -0,0 +1,119 @@ + + + + +no.ntnu.idatt1005.group03.Controller (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Package no.ntnu.idatt1005.group03.Controller

+
+
+
+
package no.ntnu.idatt1005.group03.Controller
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-tree.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-tree.html new file mode 100644 index 0000000..769ca5f --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-tree.html @@ -0,0 +1,79 @@ + + + + +no.ntnu.idatt1005.group03.Controller Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For Package no.ntnu.idatt1005.group03.Controller

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-use.html b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-use.html new file mode 100644 index 0000000..bc09fa5 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Controller/package-use.html @@ -0,0 +1,95 @@ + + + + +Uses of Package no.ntnu.idatt1005.group03.Controller (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Package
no.ntnu.idatt1005.group03.Controller

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/DatabaseConnection.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/DatabaseConnection.html new file mode 100644 index 0000000..afb455f --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/DatabaseConnection.html @@ -0,0 +1,258 @@ + + + + +DatabaseConnection (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class DatabaseConnection

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.DAO.DatabaseConnection
+
+
+
+
+
public class DatabaseConnection +extends Object
+
Provides access to the application's database and initializes required tables. + +

This 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.

+
+
+
+
    + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    private static final String
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Modifier
    +
    Constructor
    +
    Description
    +
    private
    + +
    +
    Prevents instantiation of this utility class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    static Connection
    + +
    +
    Returns a new database connection to the application's SQLite database.
    +
    +
    static void
    + +
    +
    Initializes the database by creating the required tables if they do not already exist.
    +
    +
    +
    +
    +
    +

    Methods inherited from class Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    + +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DatabaseConnection

      +
      +
      private DatabaseConnection()
      +
      Prevents instantiation of this utility class.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getConnection

      +
      +
      public static Connection getConnection() + throws SQLException
      +
      Returns a new database connection to the application's SQLite database.
      +
      +
      Returns:
      +
      a new Connection to the database
      +
      Throws:
      +
      SQLException - if a database access error occurs or the connection cannot be established
      +
      +
      +
      +
    • +
    • +
      +

      initializeDatabase

      +
      +
      public static void initializeDatabase()
      +
      Initializes the database by creating the required tables if they do not already exist. + +

      This 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.

      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/OrganizationDAO.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/OrganizationDAO.html new file mode 100644 index 0000000..409bad1 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/OrganizationDAO.html @@ -0,0 +1,252 @@ + + + + +OrganizationDAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class OrganizationDAO

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.DAO.OrganizationDAO
+
+
+
+
+
public class OrganizationDAO +extends Object
+
Provides database access for 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      OrganizationDAO

      +
      +
      public OrganizationDAO()
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      saveAll

      +
      +
      public void saveAll(List<Organization> organizations)
      +
      Saves a list of organizations to the database. + +

      Each organization is inserted into the organizations table if it does not +already exist. Existing entries are ignored.

      +
      +
      Parameters:
      +
      organizations - the list of organizations to save
      +
      Throws:
      +
      NullPointerException - if organizations is null
      +
      +
      +
      +
    • +
    • +
      +

      getAllOrganizations

      +
      +
      public List<Organization> getAllOrganizations()
      +
      Retrieves all organizations from the database.
      +
      +
      Returns:
      +
      a list of all organizations stored in the database
      +
      +
      +
      +
    • +
    • +
      +

      getAllVerifiedOrganizations

      +
      +
      public List<Organization> getAllVerifiedOrganizations()
      +
      Retrieves all verified organizations from the database. + +

      A verified organization is defined as an organization whose status is +approved.

      +
      +
      Returns:
      +
      a list of all verified organizations
      +
      +
      +
      +
    • +
    • +
      +

      findByOrgNumber

      +
      +
      public Organization findByOrgNumber(String orgNumber)
      +
      Finds an organization by its organization number.
      +
      +
      Parameters:
      +
      orgNumber - the organization number to search for
      +
      Returns:
      +
      the matching organization if found, or null if no organization exists + with the given organization number
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/SavedCharityDAO.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/SavedCharityDAO.html new file mode 100644 index 0000000..577ca7f --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/SavedCharityDAO.html @@ -0,0 +1,234 @@ + + + + +SavedCharityDAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class SavedCharityDAO

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.DAO.SavedCharityDAO
+
+
+
+
+
public class SavedCharityDAO +extends Object
+
Provides database access for SavedCharity 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SavedCharityDAO

      +
      +
      public SavedCharityDAO()
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addFavorite

      +
      +
      public void addFavorite(SavedCharity charity)
      +
      Adds a saved charity entry to the database. + +

      If the same user-organization relationship already exists, the insert is ignored.

      +
      +
      Parameters:
      +
      charity - the saved charity entry to add
      +
      Throws:
      +
      NullPointerException - if charity is null
      +
      +
      +
      +
    • +
    • +
      +

      removeFavorite

      +
      +
      public void removeFavorite(SavedCharity charity)
      +
      Removes a saved charity entry from the database. + +

      The entry is identified by the combination of user ID and organization ID.

      +
      +
      Parameters:
      +
      charity - the saved charity entry to remove
      +
      Throws:
      +
      NullPointerException - if charity is null
      +
      +
      +
      +
    • +
    • +
      +

      getFavoritesFromUser

      +
      +
      public List<SavedCharity> getFavoritesFromUser(String userId)
      +
      Retrieves all saved charity entries for a given user.
      +
      +
      Parameters:
      +
      userId - the ID of the user whose saved charities should be retrieved
      +
      Returns:
      +
      a list of saved charity entries associated with the given user
      +
      Throws:
      +
      NullPointerException - if userId is null
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/UserRepository.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/UserRepository.html new file mode 100644 index 0000000..29429dc --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/UserRepository.html @@ -0,0 +1,228 @@ + + + + +UserRepository (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Interface UserRepository

+
+
+
+
All Known Implementing Classes:
+
UserRepositoryDAO
+
+
+
+
public interface UserRepository
+
Defines the contract for user data access operations. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      save

      +
      +
      void save(User user)
      +
      Saves a user to the data source.
      +
      +
      Parameters:
      +
      user - the user to save
      +
      +
      +
      +
    • +
    • +
      +

      findById

      +
      +
      Optional<User> findById(String id)
      +
      Finds a user by its unique identifier.
      +
      +
      Parameters:
      +
      id - the ID of the user to find
      +
      Returns:
      +
      an Optional containing the matching user if found, otherwise an empty Optional
      +
      +
      +
      +
    • +
    • +
      +

      findByUserName

      +
      +
      Optional<User> findByUserName(String username)
      +
      Finds a user by username.
      +
      +
      Parameters:
      +
      username - the username of the user to find
      +
      Returns:
      +
      an Optional containing the matching user if found, otherwise an empty Optional
      +
      +
      +
      +
    • +
    • +
      +

      findByEmail

      +
      +
      Optional<User> findByEmail(String email)
      +
      Finds a user by email address.
      +
      +
      Parameters:
      +
      email - the email address of the user to find
      +
      Returns:
      +
      an Optional containing the matching user if found, otherwise an empty Optional
      +
      +
      +
      +
    • +
    • +
      +

      findAll

      +
      +
      List<User> findAll()
      +
      Retrieves all users from the data source.
      +
      +
      Returns:
      +
      a list of all users
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/UserRepositoryDAO.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/UserRepositoryDAO.html new file mode 100644 index 0000000..a345d9d --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/UserRepositoryDAO.html @@ -0,0 +1,320 @@ + + + + +UserRepositoryDAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class UserRepositoryDAO

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO
+
+
+
+
All Implemented Interfaces:
+
UserRepository
+
+
+
+
public class UserRepositoryDAO +extends Object +implements UserRepository
+
Provides database access for User 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      UserRepositoryDAO

      +
      +
      public UserRepositoryDAO()
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      save

      +
      +
      public void save(User user)
      +
      Saves a user to the database. + +

      The user is inserted into the users table with its ID, username, email, +password, and role.

      +
      +
      Specified by:
      +
      save in interface UserRepository
      +
      Parameters:
      +
      user - the user to save
      +
      Throws:
      +
      NullPointerException - if user is null
      +
      RuntimeException - if a database access error occurs while saving the user
      +
      +
      +
      +
    • +
    • +
      +

      findById

      +
      +
      public Optional<User> findById(String id)
      +
      Finds a user by its unique identifier.
      +
      +
      Specified by:
      +
      findById in interface UserRepository
      +
      Parameters:
      +
      id - the ID of the user to find
      +
      Returns:
      +
      an Optional containing the matching user if found, otherwise an empty Optional
      +
      Throws:
      +
      RuntimeException - if a database access error occurs while searching for the user
      +
      +
      +
      +
    • +
    • +
      +

      findByUserName

      +
      +
      public Optional<User> findByUserName(String username)
      +
      Finds a user by username.
      +
      +
      Specified by:
      +
      findByUserName in interface UserRepository
      +
      Parameters:
      +
      username - the username of the user to find
      +
      Returns:
      +
      an Optional containing the matching user if found, otherwise an empty Optional
      +
      Throws:
      +
      RuntimeException - if a database access error occurs while searching for the user
      +
      +
      +
      +
    • +
    • +
      +

      findByEmail

      +
      +
      public Optional<User> findByEmail(String email)
      +
      Finds a user by email address.
      +
      +
      Specified by:
      +
      findByEmail in interface UserRepository
      +
      Parameters:
      +
      email - the email address of the user to find
      +
      Returns:
      +
      an Optional containing the matching user if found, otherwise an empty Optional
      +
      Throws:
      +
      RuntimeException - if a database access error occurs while searching for the user
      +
      +
      +
      +
    • +
    • +
      +

      findAll

      +
      +
      public List<User> findAll()
      +
      Retrieves all users stored in the database.
      +
      +
      Specified by:
      +
      findAll in interface UserRepository
      +
      Returns:
      +
      a list of all users in the database
      +
      Throws:
      +
      RuntimeException - if a database access error occurs while retrieving users
      +
      +
      +
      +
    • +
    • +
      +

      mapRowToUser

      +
      +
      private User mapRowToUser(ResultSet rs) + throws SQLException
      +
      Maps the current row of a ResultSet to a User object.
      +
      +
      Parameters:
      +
      rs - the result set containing user data
      +
      Returns:
      +
      a User object created from the current row
      +
      Throws:
      +
      SQLException - if a database access error occurs while reading the result set
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/DatabaseConnection.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/DatabaseConnection.html new file mode 100644 index 0000000..68ebb28 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/DatabaseConnection.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.DAO.DatabaseConnection (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.DAO.DatabaseConnection

+
+No usage of no.ntnu.idatt1005.group03.DAO.DatabaseConnection + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/OrganizationDAO.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/OrganizationDAO.html new file mode 100644 index 0000000..49e802c --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/OrganizationDAO.html @@ -0,0 +1,110 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.DAO.OrganizationDAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.DAO.OrganizationDAO

+
+
Packages that use OrganizationDAO
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/SavedCharityDAO.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/SavedCharityDAO.html new file mode 100644 index 0000000..1be141c --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/SavedCharityDAO.html @@ -0,0 +1,101 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.DAO.SavedCharityDAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.DAO.SavedCharityDAO

+
+
Packages that use SavedCharityDAO
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/UserRepository.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/UserRepository.html new file mode 100644 index 0000000..8acc991 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/UserRepository.html @@ -0,0 +1,118 @@ + + + + +Uses of Interface no.ntnu.idatt1005.group03.DAO.UserRepository (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Interface
no.ntnu.idatt1005.group03.DAO.UserRepository

+
+
Packages that use UserRepository
+ +
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/UserRepositoryDAO.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/UserRepositoryDAO.html new file mode 100644 index 0000000..8dc8cc0 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/class-use/UserRepositoryDAO.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO

+
+No usage of no.ntnu.idatt1005.group03.DAO.UserRepositoryDAO + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-summary.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-summary.html new file mode 100644 index 0000000..d5e8819 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-summary.html @@ -0,0 +1,129 @@ + + + + +no.ntnu.idatt1005.group03.DAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Package no.ntnu.idatt1005.group03.DAO

+
+
+
+
package no.ntnu.idatt1005.group03.DAO
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-tree.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-tree.html new file mode 100644 index 0000000..006dc10 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-tree.html @@ -0,0 +1,86 @@ + + + + +no.ntnu.idatt1005.group03.DAO Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For Package no.ntnu.idatt1005.group03.DAO

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-use.html b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-use.html new file mode 100644 index 0000000..7d558fe --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/DAO/package-use.html @@ -0,0 +1,110 @@ + + + + +Uses of Package no.ntnu.idatt1005.group03.DAO (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Package
no.ntnu.idatt1005.group03.DAO

+
+ + +
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/Donation.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/Donation.html new file mode 100644 index 0000000..aff7b6e --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/Donation.html @@ -0,0 +1,402 @@ + + + + +Donation (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class Donation

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Model.Donation
+
+
+
+
+
public class Donation +extends Object
+
Represents a donation made by a user to an organization. +

+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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      id

      +
      +
      private final String id
      +
      +
      +
    • +
    • +
      +

      userId

      +
      +
      private final String userId
      +
      +
      +
    • +
    • +
      +

      organizationId

      +
      +
      private final String organizationId
      +
      +
      +
    • +
    • +
      +

      amount

      +
      +
      private final int amount
      +
      +
      +
    • +
    • +
      +

      date

      +
      +
      private final LocalDate date
      +
      +
      +
    • +
    • +
      +

      organizationName

      +
      +
      private final String organizationName
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Donation

      +
      +
      public Donation(String userId, + String organizationId, + int amount, + LocalDate date, + String organizationName)
      +
      Constructs a new Donation instance. +

      + A unique ID is automatically generated for each donation. The amount must be positive, + and all other fields must be non-null. +

      +
      +
      Parameters:
      +
      userId - the ID of the user making the donation
      +
      organizationId - the ID of the organization receiving the donation
      +
      amount - the donation amount (must be greater than 0)
      +
      date - the date the donation was made
      +
      organizationName - the name of the organization
      +
      Throws:
      +
      IllegalArgumentException - if amount <= 0
      +
      NullPointerException - if any of userId, organizationId, + date, or organizationName is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getId

      +
      +
      public String getId()
      +
      Returns the unique identifier of this donation.
      +
      +
      Returns:
      +
      the donation ID
      +
      +
      +
      +
    • +
    • +
      +

      getUserId

      +
      +
      public String getUserId()
      +
      Returns the ID of the user who made the donation.
      +
      +
      Returns:
      +
      the user ID
      +
      +
      +
      +
    • +
    • +
      +

      getOrganizationId

      +
      +
      public String getOrganizationId()
      +
      Returns the ID of the organization receiving the donation.
      +
      +
      Returns:
      +
      the organization ID
      +
      +
      +
      +
    • +
    • +
      +

      getAmount

      +
      +
      public int getAmount()
      +
      Returns the donation amount.
      +
      +
      Returns:
      +
      the donation amount
      +
      +
      +
      +
    • +
    • +
      +

      getDate

      +
      +
      public LocalDate getDate()
      +
      Returns the date when the donation was made.
      +
      +
      Returns:
      +
      the donation date
      +
      +
      +
      +
    • +
    • +
      +

      getOrganizationName

      +
      +
      public String getOrganizationName()
      +
      Returns the name of the organization receiving the donation.
      +
      +
      Returns:
      +
      the organization name
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/Organization.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/Organization.html new file mode 100644 index 0000000..907c5e8 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/Organization.html @@ -0,0 +1,514 @@ + + + + +Organization (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class Organization

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Model.Organization
+
+
+
+
+
public class Organization +extends Object
+
Represents an organization + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      orgNumber

      +
      +
      private String orgNumber
      +
      +
      +
    • +
    • +
      +

      name

      +
      +
      private String name
      +
      +
      +
    • +
    • +
      +

      status

      +
      +
      private String status
      +
      +
      +
    • +
    • +
      +

      websiteUrl

      +
      +
      private String websiteUrl
      +
      +
      +
    • +
    • +
      +

      category

      +
      +
      private String category
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Organization

      +
      +
      public Organization()
      +
      Default constructor required by Jackson for JSON deserialization.
      +
      +
      +
    • +
    • +
      +

      Organization

      +
      +
      public Organization(String orgNumber, + String name, + String status, + String websiteUrl)
      +
      Constructs a new Organization instance. +All fields must be non-null
      +
      +
      Parameters:
      +
      orgNumber - the unique organization number
      +
      name - the name of the organization
      +
      status - the approval status of the organization
      +
      websiteUrl - the website URL of the organization
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getOrgNumber

      +
      +
      public String getOrgNumber()
      +
      Returns the organization number.
      +
      +
      Returns:
      +
      the organization number
      +
      +
      +
      +
    • +
    • +
      +

      setOrgNumber

      +
      +
      public void setOrgNumber(String orgNumber)
      +
      Sets the organization number.
      +
      +
      Parameters:
      +
      orgNumber - the organization number to set
      +
      +
      +
      +
    • +
    • +
      +

      getName

      +
      +
      public String getName()
      +
      Returns the name of the organization.
      +
      +
      Returns:
      +
      the organization name
      +
      +
      +
      +
    • +
    • +
      +

      setName

      +
      +
      public void setName(String name)
      +
      Sets the name of the organization.
      +
      +
      Parameters:
      +
      name - the organization name to set
      +
      +
      +
      +
    • +
    • +
      +

      getStatus

      +
      +
      public String getStatus()
      +
      Returns the approval status of the organization.
      +
      +
      Returns:
      +
      the organization status
      +
      +
      +
      +
    • +
    • +
      +

      setStatus

      +
      +
      public void setStatus(String status)
      +
      Sets the approval status of the organization.
      +
      +
      Parameters:
      +
      status - the status to set
      +
      +
      +
      +
    • +
    • +
      +

      getWebsiteUrl

      +
      +
      public String getWebsiteUrl()
      +
      Returns the website URL of the organization.
      +
      +
      Returns:
      +
      the website URL
      +
      +
      +
      +
    • +
    • +
      +

      setWebsiteUrl

      +
      +
      public void setWebsiteUrl(String websiteUrl)
      +
      Sets the website URL of the organization.
      +
      +
      Parameters:
      +
      websiteUrl - the website URL to set
      +
      +
      +
      +
    • +
    • +
      +

      getCategory

      +
      +
      public String getCategory()
      +
      Returns the category of the organization.
      +
      +
      Returns:
      +
      the organization category
      +
      +
      +
      +
    • +
    • +
      +

      setCategory

      +
      +
      public void setCategory(String category)
      +
      Sets the category of the organization.
      +
      +
      Parameters:
      +
      category - the category to set
      +
      +
      +
      +
    • +
    • +
      +

      isApprovedByIK

      +
      +
      public boolean isApprovedByIK()
      +
      Checks whether the organization is approved. + +

      An organization is considered approved if its status is equal to +"approved" (case-insensitive).

      +
      +
      Returns:
      +
      true if the organization is approved, otherwise false
      +
      +
      +
      +
    • +
    • +
      +

      toString

      +
      +
      public String toString()
      +
      Returns a string representation of the organization.
      +
      +
      Overrides:
      +
      toString in class Object
      +
      Returns:
      +
      a formatted string containing key organization details
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/Role.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/Role.html new file mode 100644 index 0000000..ea30863 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/Role.html @@ -0,0 +1,291 @@ + + + + +Role (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Enum Class Role

+
+
java.lang.Object +
java.lang.Enum<Role> +
no.ntnu.idatt1005.group03.Model.Role
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Role>, Constable
+
+
+
+
public enum Role +extends Enum<Role>
+
Represents the role assigned to a user in the system. + +

This 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.

+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from class Enum

    +Enum.EnumDesc<E>
    +
    +
  • + +
  • +
    +

    Enum Constant Summary

    +
    Enum Constants
    +
    +
    Enum Constant
    +
    Description
    + +
    +
    Represents an administrator with elevated privileges.
    +
    + +
    +
    Represents a standard user with limited access rights.
    +
    +
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Modifier
    +
    Constructor
    +
    Description
    +
    private
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    static Role
    + +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    static Role[]
    + +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    +
    +
    + +
    +

    Methods inherited from class Object

    +getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      USER

      +
      +
      public static final Role USER
      +
      Represents a standard user with limited access rights. + +

      Users with this role can perform actions such as viewing +organizations and making donations.

      +
      +
      +
    • +
    • +
      +

      ADMIN

      +
      +
      public static final Role ADMIN
      +
      Represents an administrator with elevated privileges. + +

      Users with this role have access to administrative functionality such as +managing organizations, users, or system settings.

      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Role

      +
      +
      private Role()
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      +
      public static Role[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      +
      public static Role valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/SavedCharity.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/SavedCharity.html new file mode 100644 index 0000000..cb234b7 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/SavedCharity.html @@ -0,0 +1,297 @@ + + + + +SavedCharity (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class SavedCharity

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Model.SavedCharity
+
+
+
+
+
public class SavedCharity +extends Object
+
Represents an organization saved by a user. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      id

      +
      +
      private final String id
      +
      +
      +
    • +
    • +
      +

      organizationId

      +
      +
      private final String organizationId
      +
      +
      +
    • +
    • +
      +

      userId

      +
      +
      private final String userId
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SavedCharity

      +
      +
      public SavedCharity(String userId, + String organizationId)
      +
      Constructs a new SavedCharity instance. + +

      A unique ID is automatically generated for each saved charity entry.

      +
      +
      Parameters:
      +
      userId - the ID of the user saving the organization
      +
      organizationId - the ID of the saved organization
      +
      Throws:
      +
      NullPointerException - if userId or organizationId is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getId

      +
      +
      public String getId()
      +
      Returns the unique identifier of this saved charity entry.
      +
      +
      Returns:
      +
      the saved charity ID
      +
      +
      +
      +
    • +
    • +
      +

      getOrganizationId

      +
      +
      public String getOrganizationId()
      +
      Returns the ID of the organization that was saved.
      +
      +
      Returns:
      +
      the organization ID
      +
      +
      +
      +
    • +
    • +
      +

      getUserId

      +
      +
      public String getUserId()
      +
      Returns the ID of the user who saved the organization.
      +
      +
      Returns:
      +
      the user ID
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/SavedOrganization.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/SavedOrganization.html new file mode 100644 index 0000000..502c4ee --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/SavedOrganization.html @@ -0,0 +1,330 @@ + + + + +SavedOrganization (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class SavedOrganization

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Model.SavedOrganization
+
+
+
+
+
public class SavedOrganization +extends Object
+
Represents an organization saved by a user. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      id

      +
      +
      private final String id
      +
      +
      +
    • +
    • +
      +

      organizationId

      +
      +
      private final String organizationId
      +
      +
      +
    • +
    • +
      +

      userId

      +
      +
      private final String userId
      +
      +
      +
    • +
    • +
      +

      date

      +
      +
      private final LocalDate date
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SavedOrganization

      +
      +
      public SavedOrganization(String userId, + String organizationId, + LocalDate date)
      +
      Constructs a new SavedCharity instance. + +

      A unique ID is automatically generated for each saved charity. All fields must be non-null.

      +
      +
      Parameters:
      +
      userId - the ID of the user saving the organization
      +
      organizationId - the ID of the saved organization
      +
      date - the date the organization was saved
      +
      Throws:
      +
      NullPointerException - if any of userId, organizationId, or date is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getId

      +
      +
      public String getId()
      +
      Returns the unique identifier of this saved organization.
      +
      +
      Returns:
      +
      the saved organization ID
      +
      +
      +
      +
    • +
    • +
      +

      getOrganizationId

      +
      +
      public String getOrganizationId()
      +
      Returns the ID of the saved organization.
      +
      +
      Returns:
      +
      the organization ID
      +
      +
      +
      +
    • +
    • +
      +

      getUserId

      +
      +
      public String getUserId()
      +
      Returns the ID of the user who saved the organization.
      +
      +
      Returns:
      +
      the user ID
      +
      +
      +
      +
    • +
    • +
      +

      getDate

      +
      +
      public LocalDate getDate()
      +
      Returns the date when the organization was saved.
      +
      +
      Returns:
      +
      the saved date
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/User.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/User.html new file mode 100644 index 0000000..1495134 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/User.html @@ -0,0 +1,591 @@ + + + + +User (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class User

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Model.User
+
+
+
+
+
public class User +extends Object
+
Represents a user in the system. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      id

      +
      +
      private final String id
      +
      +
      +
    • +
    • +
      +

      username

      +
      +
      private final String username
      +
      +
      +
    • +
    • +
      +

      email

      +
      +
      private final String email
      +
      +
      +
    • +
    • +
      +

      passwordHash

      +
      +
      private final String passwordHash
      +
      +
      +
    • +
    • +
      +

      role

      +
      +
      private final Role role
      +
      +
      +
    • +
    • +
      +

      donations

      +
      +
      private final List<Donation> donations
      +
      +
      +
    • +
    • +
      +

      favoriteOrganizations

      +
      +
      private final List<Organization> favoriteOrganizations
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      User

      +
      +
      public User(String username, + String email, + String passwordHash, + Role role)
      +
      Constructs a new User instance. + +

      A unique ID is automatically generated for each user. All fields must be non-null.

      +
      +
      Parameters:
      +
      username - the username of the user
      +
      email - the email address of the user
      +
      passwordHash - the hashed password of the user
      +
      role - the role assigned to the user
      +
      Throws:
      +
      NullPointerException - if any parameter is null
      +
      +
      +
      +
    • +
    • +
      +

      User

      +
      +
      public User(String id, + String username, + String email, + String passwordHash, + Role role)
      +
      Constructs a User instance from existing data. + +

      This constructor is typically used when loading user data from a database, +where the unique identifier is already defined.

      +
      +
      Parameters:
      +
      id - the unique identifier of the user
      +
      username - the username of the user
      +
      email - the email address of the user
      +
      passwordHash - the hashed password of the user
      +
      role - the role assigned to the user
      +
      Throws:
      +
      NullPointerException - if any parameter is null
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getId

      +
      +
      public String getId()
      +
      Returns the unique identifier of this user.
      +
      +
      Returns:
      +
      the user ID
      +
      +
      +
      +
    • +
    • +
      +

      getUsername

      +
      +
      public String getUsername()
      +
      Returns the username of this user.
      +
      +
      Returns:
      +
      the username
      +
      +
      +
      +
    • +
    • +
      +

      getEmail

      +
      +
      public String getEmail()
      +
      Returns the email address of this user.
      +
      +
      Returns:
      +
      the email address
      +
      +
      +
      +
    • +
    • +
      +

      getPassword

      +
      +
      public String getPassword()
      +
      Returns the hashed password of this user.
      +
      +
      Returns:
      +
      the password hash
      +
      +
      +
      +
    • +
    • +
      +

      getRole

      +
      +
      public Role getRole()
      +
      Returns the role assigned to this user.
      +
      +
      Returns:
      +
      the user role
      +
      +
      +
      +
    • +
    • +
      +

      isAdmin

      +
      +
      public boolean isAdmin()
      +
      Checks whether this user has administrator privileges.
      +
      +
      Returns:
      +
      true if the user is an admin, otherwise false
      +
      +
      +
      +
    • +
    • +
      +

      addDonation

      +
      +
      public void addDonation(Donation donation)
      +
      Adds a donation to this user's list of donations.
      +
      +
      Parameters:
      +
      donation - the donation to add
      +
      +
      +
      +
    • +
    • +
      +

      getDonations

      +
      +
      public List<Donation> getDonations()
      +
      Returns the list of donations made by this user.
      +
      +
      Returns:
      +
      a list of donations
      +
      +
      +
      +
    • +
    • +
      +

      addFavoriteOrganization

      +
      +
      public void addFavoriteOrganization(Organization org)
      +
      Adds an organization to the user's list of favorite organizations. + +

      If the organization is not already in the list, it will be added to the +beginning of the list.

      +
      +
      Parameters:
      +
      org - the organization to add
      +
      +
      +
      +
    • +
    • +
      +

      removeFavoriteOrganization

      +
      +
      public void removeFavoriteOrganization(Organization org)
      +
      Removes an organization from the user's list of favorite organizations. + +

      The organization is matched by organization number. If no matching favorite +organization is found, the list remains unchanged.

      +
      +
      Parameters:
      +
      org - the organization to remove from the favorites list
      +
      +
      +
      +
    • +
    • +
      +

      isFavoriteOrganization

      +
      +
      public boolean isFavoriteOrganization(Organization org)
      +
      Checks whether a given organization is in the user's list of favorite organizations. + +

      The organization is matched by organization number.

      +
      +
      Parameters:
      +
      org - the organization to check
      +
      Returns:
      +
      true if the organization is in the favorites list, otherwise false
      +
      +
      +
      +
    • +
    • +
      +

      getFavoriteOrganizations

      +
      +
      public List<Organization> getFavoriteOrganizations()
      +
      Returns the list of the user's favorite organizations.
      +
      +
      Returns:
      +
      a list of favorite organizations
      +
      +
      +
      +
    • +
    • +
      +

      setFavoriteOrganizations

      +
      +
      public void setFavoriteOrganizations(List<Organization> favoriteOrganizations)
      +
      Replaces the user's list of favorite organizations. + +

      A new copy of the provided list is created to avoid storing the original list reference +directly.

      +
      +
      Parameters:
      +
      favoriteOrganizations - the new list of favorite organizations
      +
      Throws:
      +
      NullPointerException - if favoriteOrganizations is null
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Donation.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Donation.html new file mode 100644 index 0000000..4706918 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Donation.html @@ -0,0 +1,111 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Model.Donation (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Model.Donation

+
+
Packages that use Donation
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Organization.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Organization.html new file mode 100644 index 0000000..7f4e81c --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Organization.html @@ -0,0 +1,304 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Model.Organization (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Model.Organization

+
+
Packages that use Organization
+ +
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Role.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Role.html new file mode 100644 index 0000000..ef55d1f --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/Role.html @@ -0,0 +1,145 @@ + + + + +Uses of Enum Class no.ntnu.idatt1005.group03.Model.Role (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Enum Class
no.ntnu.idatt1005.group03.Model.Role

+
+
Packages that use Role
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/SavedCharity.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/SavedCharity.html new file mode 100644 index 0000000..2b3996b --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/SavedCharity.html @@ -0,0 +1,107 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Model.SavedCharity (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Model.SavedCharity

+
+
Packages that use SavedCharity
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/SavedOrganization.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/SavedOrganization.html new file mode 100644 index 0000000..bb104d6 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/SavedOrganization.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Model.SavedOrganization (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Model.SavedOrganization

+
+No usage of no.ntnu.idatt1005.group03.Model.SavedOrganization + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/User.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/User.html new file mode 100644 index 0000000..17bc72d --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/class-use/User.html @@ -0,0 +1,283 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Model.User (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Model.User

+
+
Packages that use User
+ +
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-summary.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-summary.html new file mode 100644 index 0000000..1a795ae --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-summary.html @@ -0,0 +1,133 @@ + + + + +no.ntnu.idatt1005.group03.Model (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Package no.ntnu.idatt1005.group03.Model

+
+
+
+
package no.ntnu.idatt1005.group03.Model
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-tree.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-tree.html new file mode 100644 index 0000000..b8ae123 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-tree.html @@ -0,0 +1,95 @@ + + + + +no.ntnu.idatt1005.group03.Model Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For Package no.ntnu.idatt1005.group03.Model

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-use.html b/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-use.html new file mode 100644 index 0000000..f1f4233 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Model/package-use.html @@ -0,0 +1,171 @@ + + + + +Uses of Package no.ntnu.idatt1005.group03.Model (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Package
no.ntnu.idatt1005.group03.Model

+
+ + +
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Service/ApiClient.html b/docs/javadoc/no/ntnu/idatt1005/group03/Service/ApiClient.html new file mode 100644 index 0000000..9f3d941 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Service/ApiClient.html @@ -0,0 +1,268 @@ + + + + +ApiClient (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class ApiClient

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.Service.ApiClient
+
+
+
+
+
public class ApiClient +extends Object
+
Provides access to external API data for organizations. + +

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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      API_URL

      +
      +
      private static final String API_URL
      +
      +
      See Also:
      +
      + +
      +
      +
      +
      +
    • +
    • +
      +

      objectMapper

      +
      +
      private final com.fasterxml.jackson.databind.ObjectMapper objectMapper
      +
      +
      +
    • +
    • +
      +

      client

      +
      +
      private final HttpClient client
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ApiClient

      +
      +
      public ApiClient()
      +
      Constructs a new ApiClient instance. + +

      The client initializes the HTTP client and JSON object mapper used +to communicate with the external API and parse the response.

      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      fetchOrganizations

      +
      +
      public List<Organization> fetchOrganizations() + throws Exception
      +
      Fetches organizations from the external API. + +

      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.

      +
      +
      Returns:
      +
      a list of organizations returned by the external API
      +
      Throws:
      +
      Exception - if the HTTP request fails, the response status is not 200, + or the response cannot be parsed
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Service/class-use/ApiClient.html b/docs/javadoc/no/ntnu/idatt1005/group03/Service/class-use/ApiClient.html new file mode 100644 index 0000000..6252e84 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Service/class-use/ApiClient.html @@ -0,0 +1,101 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.Service.ApiClient (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.Service.ApiClient

+
+
Packages that use ApiClient
+
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-summary.html b/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-summary.html new file mode 100644 index 0000000..fc51f1e --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-summary.html @@ -0,0 +1,111 @@ + + + + +no.ntnu.idatt1005.group03.Service (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Package no.ntnu.idatt1005.group03.Service

+
+
+
+
package no.ntnu.idatt1005.group03.Service
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-tree.html b/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-tree.html new file mode 100644 index 0000000..b28f359 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-tree.html @@ -0,0 +1,77 @@ + + + + +no.ntnu.idatt1005.group03.Service Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For Package no.ntnu.idatt1005.group03.Service

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-use.html b/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-use.html new file mode 100644 index 0000000..6adb2f9 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/Service/package-use.html @@ -0,0 +1,87 @@ + + + + +Uses of Package no.ntnu.idatt1005.group03.Service (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Package
no.ntnu.idatt1005.group03.Service

+
+ +
+
Package
+
Description
+ +
 
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/AboutUsScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/AboutUsScreen.html new file mode 100644 index 0000000..4b23f3f --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/AboutUsScreen.html @@ -0,0 +1,219 @@ + + + + +AboutUsScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class AboutUsScreen

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.UI.AboutUsScreen
+
+
+
+
+
public class AboutUsScreen +extends Object
+
Displays the "About Us" screen in the application. + +

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.

+
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
    +
    Constructs a new AboutUsScreen instance.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    private javafx.scene.layout.VBox
    + +
     
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
    +
    Builds and displays the About Us screen on the provided stage.
    +
    +
    private javafx.scene.control.ScrollPane
    +
    wrapInScrollPane(javafx.scene.layout.VBox content)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AboutUsScreen

      +
      +
      public AboutUsScreen(User user)
      +
      Constructs a new AboutUsScreen instance.
      +
      +
      Parameters:
      +
      user - the current user context for the screen
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      +
      public void start(javafx.stage.Stage stage)
      +
      Builds and displays the About Us screen on the provided stage. + +

      This method creates the layout, applies the stylesheet, sets the scene on the stage, +and shows the window.

      +
      +
      Parameters:
      +
      stage - the JavaFX stage on which the screen will be displayed
      +
      +
      +
      +
    • +
    • +
      +

      createMainContent

      +
      +
      private javafx.scene.layout.VBox createMainContent()
      +
      +
      +
    • +
    • +
      +

      wrapInScrollPane

      +
      +
      private javafx.scene.control.ScrollPane wrapInScrollPane(javafx.scene.layout.VBox content)
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/AccountScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/AccountScreen.html new file mode 100644 index 0000000..c5ffb9a --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/AccountScreen.html @@ -0,0 +1,267 @@ + + + + +AccountScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class AccountScreen

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.UI.AccountScreen
+
+
+
+
+
public class AccountScreen +extends Object
+
Displays the account screen for a logged-in user. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      user

      +
      +
      private final User user
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AccountScreen

      +
      +
      public AccountScreen(User user)
      +
      Constructs a new AccountScreen instance.
      +
      +
      Parameters:
      +
      user - the currently logged-in user whose account information will be displayed
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      +
      public void start(javafx.stage.Stage stage)
      +
      Builds and displays the account screen on the provided stage. + +

      This method creates the layout, applies the stylesheet, sets the scene on the stage, +and shows the window.

      +
      +
      Parameters:
      +
      stage - the JavaFX stage on which the screen will be displayed
      +
      +
      +
      +
    • +
    • +
      +

      createProfileSection

      +
      +
      private javafx.scene.layout.VBox createProfileSection()
      +
      +
      +
    • +
    • +
      +

      createDonationLog

      +
      +
      private javafx.scene.layout.VBox createDonationLog()
      +
      +
      +
    • +
    • +
      +

      createLogoutSection

      +
      +
      private javafx.scene.layout.VBox createLogoutSection()
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/DonationScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/DonationScreen.html new file mode 100644 index 0000000..9ec30ae --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/DonationScreen.html @@ -0,0 +1,321 @@ + + + + +DonationScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class DonationScreen

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.UI.DonationScreen
+
+
+
+
+
public class DonationScreen +extends Object
+
Displays the donation screen for a selected organization. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      organization

      +
      +
      private final Organization organization
      +
      +
      +
    • +
    • +
      +

      user

      +
      +
      private final User user
      +
      +
      +
    • +
    • +
      +

      favoriteController

      +
      +
      private final FavoriteController favoriteController
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      DonationScreen

      +
      +
      public DonationScreen(Organization organization, + User user)
      +
      Constructs a new DonationScreen instance.
      +
      +
      Parameters:
      +
      organization - the organization the user may donate to
      +
      user - the currently logged-in user
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      +
      public void start(javafx.stage.Stage stage)
      +
      Builds and displays the donation screen on the provided stage. + +

      This method creates the layout, applies the stylesheet, sets the scene on the stage, +and shows the window.

      +
      +
      Parameters:
      +
      stage - the JavaFX stage on which the screen will be displayed
      +
      +
      +
      +
    • +
    • +
      +

      createOrgNameLabel

      +
      +
      private javafx.scene.control.Label createOrgNameLabel()
      +
      +
      +
    • +
    • +
      +

      createWebsiteButton

      +
      +
      private javafx.scene.control.Button createWebsiteButton(javafx.scene.control.Label websiteFeedbackLabel)
      +
      +
      +
    • +
    • +
      +

      createFavoriteButton

      +
      +
      private javafx.scene.control.Button createFavoriteButton()
      +
      +
      +
    • +
    • +
      +

      createDonateButton

      +
      +
      private javafx.scene.control.Button createDonateButton(javafx.scene.control.TextField amountInput, + javafx.scene.control.Label feedbackLabel)
      +
      +
      +
    • +
    • +
      +

      createBackButton

      +
      +
      private javafx.scene.control.Button createBackButton()
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/LoginScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/LoginScreen.html new file mode 100644 index 0000000..67bcc30 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/LoginScreen.html @@ -0,0 +1,388 @@ + + + + +LoginScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class LoginScreen

+
+
java.lang.Object +
javafx.application.Application +
no.ntnu.idatt1005.group03.UI.LoginScreen
+
+
+
+
+
+
public class LoginScreen +extends javafx.application.Application
+
Displays the login and sign-up screen for the application. + +

This 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.

+
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from class javafx.application.Application

    +javafx.application.Application.Parameters
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    + + +
     
    +
    private javafx.scene.Scene
    + +
     
    + + +
     
    +
    private javafx.scene.control.Label
    + +
     
    +
    private javafx.scene.control.Label
    + +
     
    +
    private javafx.stage.Stage
    + +
     
    +
    +
    +

    Fields inherited from class javafx.application.Application

    +STYLESHEET_CASPIAN, STYLESHEET_MODENA
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    private void
    +
    addHeader(javafx.scene.layout.GridPane grid, + boolean isScene2)
    +
     
    +
    private javafx.scene.layout.GridPane
    + +
     
    +
    private javafx.scene.layout.GridPane
    + +
     
    +
    private javafx.scene.layout.GridPane
    + +
     
    +
    private void
    +
    handleLogin(String usernameOrEmail, + String password)
    +
     
    +
    private void
    +
    handleSignUp(String username, + String email, + String password, + String confirmPassword)
    +
     
    +
    void
    +
    start(javafx.stage.Stage primaryStage)
    +
    +
    Initializes and displays the login screen on the provided primary stage.
    +
    +
    +
    +
    +
    +

    Methods inherited from class javafx.application.Application

    +getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
    +
    +

    Methods inherited from class Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      authScene

      +
      +
      private javafx.scene.Scene authScene
      +
      +
      +
    • +
    • +
      +

      authController

      +
      +
      private AuthController authController
      +
      +
      +
    • +
    • +
      +

      stage

      +
      +
      private javafx.stage.Stage stage
      +
      +
      +
    • +
    • +
      +

      signUpErrLabel

      +
      +
      private javafx.scene.control.Label signUpErrLabel
      +
      +
      +
    • +
    • +
      +

      loginErrLabel

      +
      +
      private javafx.scene.control.Label loginErrLabel
      +
      +
      +
    • +
    • +
      +

      favoriteController

      +
      +
      private FavoriteController favoriteController
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      LoginScreen

      +
      +
      public LoginScreen()
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      +
      public void start(javafx.stage.Stage primaryStage)
      +
      Initializes and displays the login screen on the provided primary stage. + +

      This method creates the authentication controller and favorite controller, +initializes feedback labels, builds both the sign-up and login scenes, +and displays the initial scene.

      +
      +
      Specified by:
      +
      start in class javafx.application.Application
      +
      Parameters:
      +
      primaryStage - the primary JavaFX stage for the application
      +
      +
      +
      +
    • +
    • +
      +

      createSignUpRoot

      +
      +
      private javafx.scene.layout.GridPane createSignUpRoot()
      +
      +
      +
    • +
    • +
      +

      createLoginRoot

      +
      +
      private javafx.scene.layout.GridPane createLoginRoot()
      +
      +
      +
    • +
    • +
      +

      createBaseGrid

      +
      +
      private javafx.scene.layout.GridPane createBaseGrid()
      +
      +
      +
    • +
    • +
      +

      addHeader

      +
      +
      private void addHeader(javafx.scene.layout.GridPane grid, + boolean isScene2)
      +
      +
      +
    • +
    • +
      +

      handleSignUp

      +
      +
      private void handleSignUp(String username, + String email, + String password, + String confirmPassword)
      +
      +
      +
    • +
    • +
      +

      handleLogin

      +
      +
      private void handleLogin(String usernameOrEmail, + String password)
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/OrganizationsScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/OrganizationsScreen.html new file mode 100644 index 0000000..c4d8b55 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/OrganizationsScreen.html @@ -0,0 +1,344 @@ + + + + +OrganizationsScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class OrganizationsScreen

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.UI.OrganizationsScreen
+
+
+
+
+
public class OrganizationsScreen +extends Object
+
Displays the main organization overview screen for the user. + +

This 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.

+
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    + +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      OrganizationsScreen

      +
      +
      public OrganizationsScreen(User user)
      +
      Constructs a new OrganizationsScreen instance.
      +
      +
      Parameters:
      +
      user - the currently logged-in user
      +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      +
      public void start(javafx.stage.Stage stage)
      +
      Builds and displays the organizations screen on the provided stage. + +

      This method creates the layout, loads the list of organizations, applies the stylesheet, +sets the scene on the stage, and shows the window.

      +
      +
      Parameters:
      +
      stage - the JavaFX stage on which the screen will be displayed
      +
      +
      +
      +
    • +
    • +
      +

      createHeaderSection

      +
      +
      private javafx.scene.text.Text createHeaderSection()
      +
      +
      +
    • +
    • +
      +

      createSearchBox

      +
      +
      private javafx.scene.layout.StackPane createSearchBox(javafx.scene.layout.GridPane orgGrid)
      +
      +
      +
    • +
    • +
      +

      createFavoriteSection

      +
      +
      private javafx.scene.layout.VBox createFavoriteSection()
      +
      +
      +
    • +
    • +
      +

      createOrgRow

      +
      +
      private javafx.scene.layout.HBox createOrgRow(Organization org, + String styleClass)
      +
      +
      +
    • +
    • +
      +

      refreshOrgGrid

      +
      +
      private void refreshOrgGrid(javafx.scene.layout.GridPane orgGrid, + List<Organization> organizations)
      +
      +
      +
    • +
    • +
      +

      setupGrid

      +
      +
      private void setupGrid(javafx.scene.layout.GridPane grid)
      +
      +
      +
    • +
    • +
      +

      wrapInScrollPane

      +
      +
      private javafx.scene.control.ScrollPane wrapInScrollPane(javafx.scene.layout.VBox content)
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/ScreenManager.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/ScreenManager.html new file mode 100644 index 0000000..e1821f6 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/ScreenManager.html @@ -0,0 +1,403 @@ + + + + +ScreenManager (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class ScreenManager

+
+
java.lang.Object +
no.ntnu.idatt1005.group03.UI.ScreenManager
+
+
+
+
+
public class ScreenManager +extends Object
+
Manages screen navigation and shared UI state in the application. + +

This 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.

+
+
+
+
    + +
  • +
    +

    Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    private static User
    + +
     
    +
    private static javafx.stage.Stage
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Modifier
    +
    Constructor
    +
    Description
    +
    private
    + +
    +
    Prevents instantiation of this utility class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    static User
    + +
    +
    Returns the currently logged-in user.
    +
    +
    static void
    + +
    +
    Logs out the current user and returns to the login screen.
    +
    +
    static void
    + +
    +
    Sets the currently logged-in user.
    +
    +
    static void
    +
    setMainStage(javafx.stage.Stage stage)
    +
    +
    Sets the main stage used for screen navigation.
    +
    +
    static void
    + +
    +
    Displays the About Us screen for the current user.
    +
    +
    static void
    + +
    +
    Displays the account screen for the current user.
    +
    +
    static void
    + +
    +
    Displays the donation screen for the selected organization.
    +
    +
    static void
    + +
    +
    Displays the home screen for the current user.
    +
    +
    static void
    +
    showRoot(javafx.stage.Stage stage, + javafx.scene.Parent root, + String title, + String stylesheet)
    +
    +
    Shows a new root on the given stage while reusing the existing scene when possible.
    +
    +
    static void
    +
    showScene(javafx.stage.Stage stage, + javafx.scene.Scene scene, + String title)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      mainStage

      +
      +
      private static javafx.stage.Stage mainStage
      +
      +
      +
    • +
    • +
      +

      currentUser

      +
      +
      private static User currentUser
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ScreenManager

      +
      +
      private ScreenManager()
      +
      Prevents instantiation of this utility class.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      setMainStage

      +
      +
      public static void setMainStage(javafx.stage.Stage stage)
      +
      Sets the main stage used for screen navigation.
      +
      +
      Parameters:
      +
      stage - the main JavaFX stage of the application
      +
      +
      +
      +
    • +
    • +
      +

      setCurrentUser

      +
      +
      public static void setCurrentUser(User user)
      +
      Sets the currently logged-in user.
      +
      +
      Parameters:
      +
      user - the user to store as the current user
      +
      +
      +
      +
    • +
    • +
      +

      getCurrentUser

      +
      +
      public static User getCurrentUser()
      +
      Returns the currently logged-in user.
      +
      +
      Returns:
      +
      the current user, or null if no user is logged in
      +
      +
      +
      +
    • +
    • +
      +

      showScene

      +
      +
      public static void showScene(javafx.stage.Stage stage, + javafx.scene.Scene scene, + String title)
      +
      +
      +
    • +
    • +
      +

      showRoot

      +
      +
      public static void showRoot(javafx.stage.Stage stage, + javafx.scene.Parent root, + String title, + String stylesheet)
      +
      Shows a new root on the given stage while reusing the existing scene when possible.
      +
      +
      Parameters:
      +
      stage - the stage to update
      +
      root - the root node to display
      +
      title - the window title
      +
      stylesheet - the stylesheet URL to apply
      +
      +
      +
      +
    • +
    • +
      +

      showHomeScreen

      +
      +
      public static void showHomeScreen()
      +
      Displays the home screen for the current user.
      +
      +
      +
    • +
    • +
      +

      showAboutUsScreen

      +
      +
      public static void showAboutUsScreen()
      +
      Displays the About Us screen for the current user.
      +
      +
      +
    • +
    • +
      +

      showAccountScreen

      +
      +
      public static void showAccountScreen()
      +
      Displays the account screen for the current user.
      +
      +
      +
    • +
    • +
      +

      showDonationScreen

      +
      +
      public static void showDonationScreen(Organization org)
      +
      Displays the donation screen for the selected organization.
      +
      +
      Parameters:
      +
      org - the organization the user may donate to
      +
      +
      +
      +
    • +
    • +
      +

      logout

      +
      +
      public static void logout()
      +
      Logs out the current user and returns to the login screen. + +

      This method clears the stored user reference and displays the login screen again.

      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/TopMenu.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/TopMenu.html new file mode 100644 index 0000000..642f2dc --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/TopMenu.html @@ -0,0 +1,218 @@ + + + + +TopMenu (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
+

Class TopMenu

+
+
java.lang.Object +
javafx.scene.Node +
javafx.scene.Parent +
javafx.scene.layout.Region +
javafx.scene.layout.Pane +
javafx.scene.layout.HBox +
no.ntnu.idatt1005.group03.UI.TopMenu
+
+
+
+
+
+
+
+
+
All Implemented Interfaces:
+
javafx.css.Styleable, javafx.event.EventTarget
+
+
+
+
public class TopMenu +extends javafx.scene.layout.HBox
+
Represents the top navigation menu used across application screens. + +

This 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.

+
+
+
+
    + +
  • +
    +

    Property Summary

    +
    +

    Properties inherited from class javafx.scene.layout.HBox

    +alignment, fillHeight, spacing
    +
    +

    Properties inherited from class javafx.scene.layout.Region

    +background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
    +
    +

    Properties inherited from class javafx.scene.Parent

    +needsLayout
    +
    +

    Properties inherited from class javafx.scene.Node

    +accessibleHelp, 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, visible
    +
    +
  • + +
  • +
    +

    Field Summary

    +
    +

    Fields inherited from class javafx.scene.layout.Region

    +USE_COMPUTED_SIZE, USE_PREF_SIZE
    +
    +

    Fields inherited from class javafx.scene.Node

    +BASELINE_OFFSET_SAME_AS_HEIGHT
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    TopMenu(String currentScreen)
    +
    +
    Constructs a new TopMenu for the specified current screen.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +

    Methods inherited from class javafx.scene.layout.HBox

    +alignmentProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, fillHeightProperty, getAlignment, getBaselineOffset, getClassCssMetaData, getContentBias, getCssMetaData, getHgrow, getMargin, getSpacing, isFillHeight, layoutChildren, requestLayout, setAlignment, setFillHeight, setHgrow, setMargin, setSpacing, spacingProperty
    +
    +

    Methods inherited from class javafx.scene.layout.Pane

    +getChildren
    +
    +

    Methods inherited from class javafx.scene.layout.Region

    +backgroundProperty, 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, widthProperty
    +
    +

    Methods inherited from class javafx.scene.Parent

    +getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestParentLayout, setNeedsLayout, updateBounds
    +
    +

    Methods inherited from class javafx.scene.Node

    +accessibleHelpProperty, 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, visibleProperty
    +
    +

    Methods inherited from class Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface javafx.css.Styleable

    +getStyleableNode
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      TopMenu

      +
      +
      public TopMenu(String currentScreen)
      +
      Constructs a new TopMenu 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.

      +
      +
      Parameters:
      +
      currentScreen - the name of the currently active screen
      +
      +
      +
      +
    • +
    +
    +
  • +
+
+ + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/AboutUsScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/AboutUsScreen.html new file mode 100644 index 0000000..68eb4c7 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/AboutUsScreen.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.AboutUsScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.AboutUsScreen

+
+No usage of no.ntnu.idatt1005.group03.UI.AboutUsScreen + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/AccountScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/AccountScreen.html new file mode 100644 index 0000000..6a27a5d --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/AccountScreen.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.AccountScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.AccountScreen

+
+No usage of no.ntnu.idatt1005.group03.UI.AccountScreen + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/DonationScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/DonationScreen.html new file mode 100644 index 0000000..f36ad18 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/DonationScreen.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.DonationScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.DonationScreen

+
+No usage of no.ntnu.idatt1005.group03.UI.DonationScreen + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/LoginScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/LoginScreen.html new file mode 100644 index 0000000..06a69a9 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/LoginScreen.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.LoginScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.LoginScreen

+
+No usage of no.ntnu.idatt1005.group03.UI.LoginScreen + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/OrganizationsScreen.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/OrganizationsScreen.html new file mode 100644 index 0000000..af72f3a --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/OrganizationsScreen.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.OrganizationsScreen (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.OrganizationsScreen

+
+No usage of no.ntnu.idatt1005.group03.UI.OrganizationsScreen + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/ScreenManager.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/ScreenManager.html new file mode 100644 index 0000000..56b60b4 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/ScreenManager.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.ScreenManager (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.ScreenManager

+
+No usage of no.ntnu.idatt1005.group03.UI.ScreenManager + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/TopMenu.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/TopMenu.html new file mode 100644 index 0000000..e31b872 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/class-use/TopMenu.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.UI.TopMenu (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.UI.TopMenu

+
+No usage of no.ntnu.idatt1005.group03.UI.TopMenu + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-summary.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-summary.html new file mode 100644 index 0000000..e4c8ed3 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-summary.html @@ -0,0 +1,135 @@ + + + + +no.ntnu.idatt1005.group03.UI (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Package no.ntnu.idatt1005.group03.UI

+
+
+
+
package no.ntnu.idatt1005.group03.UI
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-tree.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-tree.html new file mode 100644 index 0000000..7a8819e --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-tree.html @@ -0,0 +1,107 @@ + + + + +no.ntnu.idatt1005.group03.UI Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For Package no.ntnu.idatt1005.group03.UI

+
+Package Hierarchies: + +
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • no.ntnu.idatt1005.group03.UI.AboutUsScreen
    • +
    • no.ntnu.idatt1005.group03.UI.AccountScreen
    • +
    • javafx.application.Application + +
    • +
    • no.ntnu.idatt1005.group03.UI.DonationScreen
    • +
    • javafx.scene.Node (implements javafx.event.EventTarget, javafx.css.Styleable) +
        +
      • javafx.scene.Parent +
          +
        • javafx.scene.layout.Region +
            +
          • javafx.scene.layout.Pane +
              +
            • javafx.scene.layout.HBox +
                +
              • no.ntnu.idatt1005.group03.UI.TopMenu
              • +
              +
            • +
            +
          • +
          +
        • +
        +
      • +
      +
    • +
    • no.ntnu.idatt1005.group03.UI.OrganizationsScreen
    • +
    • no.ntnu.idatt1005.group03.UI.ScreenManager
    • +
    +
  • +
+
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-use.html b/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-use.html new file mode 100644 index 0000000..49ada50 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/UI/package-use.html @@ -0,0 +1,64 @@ + + + + +Uses of Package no.ntnu.idatt1005.group03.UI (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Package
no.ntnu.idatt1005.group03.UI

+
+No usage of no.ntnu.idatt1005.group03.UI + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/class-use/App.html b/docs/javadoc/no/ntnu/idatt1005/group03/class-use/App.html new file mode 100644 index 0000000..aadd4e1 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/class-use/App.html @@ -0,0 +1,65 @@ + + + + +Uses of Class no.ntnu.idatt1005.group03.App (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Class
no.ntnu.idatt1005.group03.App

+
+No usage of no.ntnu.idatt1005.group03.App + +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/package-summary.html b/docs/javadoc/no/ntnu/idatt1005/group03/package-summary.html new file mode 100644 index 0000000..0fb2aca --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/package-summary.html @@ -0,0 +1,111 @@ + + + + +no.ntnu.idatt1005.group03 (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
+

Package no.ntnu.idatt1005.group03

+
+
+
+
package no.ntnu.idatt1005.group03
+
+
+ +
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/package-tree.html b/docs/javadoc/no/ntnu/idatt1005/group03/package-tree.html new file mode 100644 index 0000000..d980493 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/package-tree.html @@ -0,0 +1,81 @@ + + + + +no.ntnu.idatt1005.group03 Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For Package no.ntnu.idatt1005.group03

+
+Package Hierarchies: + +
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • javafx.application.Application +
        +
      • no.ntnu.idatt1005.group03.App
      • +
      +
    • +
    +
  • +
+
+ +
+
+ + diff --git a/docs/javadoc/no/ntnu/idatt1005/group03/package-use.html b/docs/javadoc/no/ntnu/idatt1005/group03/package-use.html new file mode 100644 index 0000000..1ecf972 --- /dev/null +++ b/docs/javadoc/no/ntnu/idatt1005/group03/package-use.html @@ -0,0 +1,64 @@ + + + + +Uses of Package no.ntnu.idatt1005.group03 (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Uses of Package
no.ntnu.idatt1005.group03

+
+No usage of no.ntnu.idatt1005.group03 + +
+
+ + diff --git a/docs/javadoc/overview-summary.html b/docs/javadoc/overview-summary.html new file mode 100644 index 0000000..d217332 --- /dev/null +++ b/docs/javadoc/overview-summary.html @@ -0,0 +1,26 @@ + + + + +help-me-help 1.0-SNAPSHOT API + + + + + + + + + + + +
+ +

index.html

+
+ + diff --git a/docs/javadoc/overview-tree.html b/docs/javadoc/overview-tree.html new file mode 100644 index 0000000..4cd8bdf --- /dev/null +++ b/docs/javadoc/overview-tree.html @@ -0,0 +1,142 @@ + + + + +Class Hierarchy (help-me-help 1.0-SNAPSHOT API) + + + + + + + + + + + + + + +
+ +
+
+
+
+

Hierarchy For All Packages

+
+Package Hierarchies: + +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+ +
+
+ + diff --git a/docs/javadoc/package-search-index.js b/docs/javadoc/package-search-index.js new file mode 100644 index 0000000..bb7161b --- /dev/null +++ b/docs/javadoc/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html","k":"18"},{"l":"no.ntnu.idatt1005.group03"},{"l":"no.ntnu.idatt1005.group03.Controller"},{"l":"no.ntnu.idatt1005.group03.DAO"},{"l":"no.ntnu.idatt1005.group03.Model"},{"l":"no.ntnu.idatt1005.group03.Service"},{"l":"no.ntnu.idatt1005.group03.UI"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/javadoc/resource-files/copy.svg b/docs/javadoc/resource-files/copy.svg new file mode 100644 index 0000000..b07ac7e --- /dev/null +++ b/docs/javadoc/resource-files/copy.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Bold.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Bold.woff new file mode 100644 index 0000000..63a79c0 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Bold.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Bold.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Bold.woff2 new file mode 100644 index 0000000..0665554 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Bold.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff new file mode 100644 index 0000000..dead290 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff2 new file mode 100644 index 0000000..89328f3 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Oblique.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Oblique.woff new file mode 100644 index 0000000..6c62443 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Oblique.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Oblique.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Oblique.woff2 new file mode 100644 index 0000000..8a50fa1 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans-Oblique.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSans.woff new file mode 100644 index 0000000..a0f1efa Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSans.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSans.woff2 new file mode 100644 index 0000000..fecdbd8 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSans.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Bold.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Bold.woff new file mode 100644 index 0000000..9f646ba Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Bold.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Bold.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Bold.woff2 new file mode 100644 index 0000000..346de2d Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Bold.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff new file mode 100644 index 0000000..7a6b3ac Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff2 new file mode 100644 index 0000000..ede24ef Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff new file mode 100644 index 0000000..892833b Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff2 new file mode 100644 index 0000000..9e90514 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono.woff new file mode 100644 index 0000000..e94e844 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono.woff2 new file mode 100644 index 0000000..9460c05 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSansMono.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Bold.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Bold.woff new file mode 100644 index 0000000..0f38846 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Bold.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Bold.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Bold.woff2 new file mode 100644 index 0000000..d65a5e9 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Bold.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff new file mode 100644 index 0000000..63fd5e3 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff2 new file mode 100644 index 0000000..e29307e Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Italic.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Italic.woff new file mode 100644 index 0000000..5df6d00 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Italic.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Italic.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Italic.woff2 new file mode 100644 index 0000000..61ff146 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif-Italic.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif.woff b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif.woff new file mode 100644 index 0000000..280e378 Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif.woff differ diff --git a/docs/javadoc/resource-files/fonts/DejaVuLGCSerif.woff2 b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif.woff2 new file mode 100644 index 0000000..bbd32cd Binary files /dev/null and b/docs/javadoc/resource-files/fonts/DejaVuLGCSerif.woff2 differ diff --git a/docs/javadoc/resource-files/fonts/dejavu.css b/docs/javadoc/resource-files/fonts/dejavu.css new file mode 100644 index 0000000..b450caa --- /dev/null +++ b/docs/javadoc/resource-files/fonts/dejavu.css @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ + +/* DejaVu fonts v2.37 */ + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono.woff2') format('woff2'), + url('DejaVuLGCSansMono.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono-Oblique.woff2') format('woff2'), + url('DejaVuLGCSansMono-Oblique.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono-Bold.woff2') format('woff2'), + url('DejaVuLGCSansMono-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono-BoldOblique.woff2') format('woff2'), + url('DejaVuLGCSansMono-BoldOblique.woff') format('woff'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans.woff2') format('woff2'), + url('DejaVuLGCSans.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans-Oblique.woff2') format('woff2'), + url('DejaVuLGCSans-Oblique.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans-Bold.woff2') format('woff2'), + url('DejaVuLGCSans-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans-BoldOblique.woff2') format('woff2'), + url('DejaVuLGCSans-BoldOblique.woff') format('woff'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif.woff2') format('woff2'), + url('DejaVuLGCSerif.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif-Italic.woff2') format('woff2'), + url('DejaVuLGCSerif-Italic.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif-Bold.woff2') format('woff2'), + url('DejaVuLGCSerif-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif-BoldItalic.woff2') format('woff2'), + url('DejaVuLGCSerif-BoldItalic.woff') format('woff'); + font-weight: bold; + font-style: italic; +} diff --git a/docs/javadoc/resource-files/glass.svg b/docs/javadoc/resource-files/glass.svg new file mode 100644 index 0000000..ff7df85 --- /dev/null +++ b/docs/javadoc/resource-files/glass.svg @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/javadoc/resource-files/jquery-ui.min.css b/docs/javadoc/resource-files/jquery-ui.min.css new file mode 100644 index 0000000..7e0692d --- /dev/null +++ b/docs/javadoc/resource-files/jquery-ui.min.css @@ -0,0 +1,6 @@ +/*! jQuery UI - v1.14.1 - 2025-01-13 +* https://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css +* Copyright OpenJS Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/docs/javadoc/resource-files/left.svg b/docs/javadoc/resource-files/left.svg new file mode 100644 index 0000000..11a93ff --- /dev/null +++ b/docs/javadoc/resource-files/left.svg @@ -0,0 +1,12 @@ + + + + + + + diff --git a/docs/javadoc/resource-files/link.svg b/docs/javadoc/resource-files/link.svg new file mode 100644 index 0000000..58d38ac --- /dev/null +++ b/docs/javadoc/resource-files/link.svg @@ -0,0 +1,13 @@ + + + + + + + + diff --git a/docs/javadoc/resource-files/right.svg b/docs/javadoc/resource-files/right.svg new file mode 100644 index 0000000..4b54939 --- /dev/null +++ b/docs/javadoc/resource-files/right.svg @@ -0,0 +1,12 @@ + + + + + + + diff --git a/docs/javadoc/resource-files/stylesheet.css b/docs/javadoc/resource-files/stylesheet.css new file mode 100644 index 0000000..f7994c7 --- /dev/null +++ b/docs/javadoc/resource-files/stylesheet.css @@ -0,0 +1,1667 @@ +/* + * Copyright (c) 2010, 2025, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ + +/* + * Javadoc style sheet + */ + +@import url('fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14.2px; + --block-font-size: 14.4px; + --code-font-size: 14px; + --nav-font-size: 13.4px; + /* Line height for continuous text blocks */ + --block-line-height: 1.5; + --code-line-height: 1.6; + /* Text colors for body and block elements */ + --body-text-color: #181818; + --block-text-color: #181818; + /* Background colors for various elements */ + --body-background-color: #ffffff; + --section-background-color: var(--body-background-color); + --detail-background-color: #ffffff; + --code-background-color: #f5f5f5; + --mark-background-color: #f7f7f7; + --detail-block-color: #f4f4f4; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + --subnav-link-color: #47688a; + --member-heading-background-color: var(--subnav-background-color); + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #4a698a; + /* Background colors for generated tables */ + --table-header-color: #ebeff4; + --even-row-color: #ffffff; + --odd-row-color: #f0f0f2; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #437291; + --link-color-active: #bb7a2a; + /* Table of contents */ + --toc-background-color: #f8f8f8; + --toc-highlight-color: var(--subnav-background-color); + --toc-hover-color: #e9ecf0; + /* Snippet and pre colors */ + --snippet-background-color: #f2f2f4; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + --pre-background-color: var(--snippet-background-color); + --pre-text-color: var(--snippet-text-color); + /* Border colors for structural elements and user defined tables */ + --border-color: #e6e6e6; + --table-border-color: #000000; + /* Styles for table tabs */ + --tab-border-radius: 2px 2px 0 0; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff66; + /* Copy button colors and filters */ + --button-border-color: #b0b8c8; + --button-active-filter: brightness(96%); + --button-focus-filter: brightness(104%); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; + /* Navigation bar dimensions */ + --top-nav-height: 44px; + --sub-nav-height: 36px; + --nav-height: calc(var(--top-nav-height) + var(--sub-nav-height)); + --max-content-width: 1500px; + --content-margin: 0 auto; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +main [id] { + scroll-margin-top: calc(var(--nav-height) + 6px); +} +div.main-grid { + max-width: var(--max-content-width); + margin: var(--content-margin); +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +nav a:link, nav a:visited { + color: var(--subnav-link-color); +} +a[href]:hover, a[href]:active { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:var(--code-font-size); + line-height: var(--code-line-height); + background-color: var(--pre-background-color); + color: var(--pre-text-color); + padding: 10px; + overflow-x:auto; +} +h1 { + font-size:1.425em; +} +h2 { + font-size:1.28em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature, div.member-signature > span { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +tt { + font-family:var(--code-font-family); +} +code { + font-family:var(--code-font-family); + font-size:var(--code-font-size); +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +hr { + border-color: #aaa; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + flex: 0 0 auto; + padding:0 20px; + margin:0; + font-size:0.915em; + max-width: 50%; + white-space: nowrap; +} +.legal-copy { + font-family: var(--body-font-family); + line-height: normal; +} +/* + * Styles for navigation bar. + */ +@media screen { + header { + position:sticky; + top:0; + z-index:2; + background: var(--body-background-color); + } +} +.nav-content { + display:flex; + flex-direction: row; + align-items: center; + width: 100%; + height: 100%; + max-width: var(--max-content-width); + margin: var(--content-margin); +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + width:100%; + height:var(--top-nav-height); + overflow:visible; + font-size:0.857em; + position:relative; +} +.top-nav nav.toc { + display: none; + flex-direction: column; +} +.top-nav nav.toc button.show-sidebar, +.top-nav nav.toc button.hide-sidebar { + display: none; +} +button#navbar-toggle-button { + display:none; +} +ul.nav-list { + display:inline-flex; + margin:0; + padding-left:4px; + flex: 1 1 auto; + white-space: nowrap; +} +ul.nav-list li { + list-style:none; + padding: 5px 6px; + text-transform:uppercase; + height: 1.2em; +} +div.sub-nav { + background-color:var(--subnav-background-color); + width:100%; + overflow:hidden; + font-size:var(--nav-font-size); + height: var(--sub-nav-height); +} +ol.sub-nav-list { + flex: 1 1 90%; + line-height: 1.8; + display: inline-flex; + overflow: auto; + scroll-snap-type: x mandatory; + scroll-padding-left: 13px; + scrollbar-width: none; + padding-left:6px; + white-space: nowrap; + margin:0; +} +ol.sub-nav-list::-webkit-scrollbar { + display: none; +} +ol.sub-nav-list li { + list-style:none; + scroll-snap-align: start; +} +ol.sub-nav-list li:not(:first-child) { + background: url("right.svg") no-repeat 3px; + background-size: 10px; + padding-left: 17px; + list-style: none; +} +ol.sub-nav-list a { + padding: 3px; +} +ol.sub-nav-list a.current-selection { + background-color: var(--toc-background-color); + border-radius: 3px; +} +.sub-nav .nav-list-search { + flex: 1 1 10%; + margin: 0 15px; + position:relative; + white-space: nowrap; +} +.top-nav .nav-list a:link, .top-nav .nav-list a:active, .top-nav .nav-list a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav .nav-list a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: 0 5px; + border-radius: 1px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0 12px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; + overflow-x:auto; +} +body.class-use-page h2 { + margin-top: 20px; +} +body.class-declaration-page .details h3 { + background-color:var(--member-heading-background-color); + border:1px solid var(--border-color); + margin:6px 0; + padding:7px; + overflow-x:auto; + font-size: 1.08em; +} +body.class-declaration-page section.detail:target > h3, +body.class-declaration-page section.detail > h3:target { + background-color: var(--navbar-background-color); + color: var(--navbar-text-color); +} +body.class-declaration-page section.detail:target > h3 > a.anchor-link > img, +body.class-declaration-page section.detail > h3:target > a.anchor-link > img { + filter: invert(100%) sepia(4%) saturate(98%) hue-rotate(212deg) brightness(160%) contrast(160%); +} +h1 > sup { + font-size: small; +} +/* + * Styles for page layout containers. + */ +.main-grid { + display: flex; + flex-direction: row; +} +.main-grid main { + flex: 3.2 1 0; + min-width: 240px +} +.main-grid nav.toc { + flex: 1 1 0; + min-width: 240px; +} +main { + padding:10px 25px; + position:relative; +} +/* Compensate for non-collapsing margins between element description and summary tables */ +div.horizontal-scroll > section[id$=-description] > :is(dl, ol, ul, p, div, blockquote, pre):last-child, +div.horizontal-scroll > section[id$=-description] > :last-child > :is(li, dd):last-child, +section.class-description > div.horizontal-scroll > :is(dl, ol, ul, p, div, blockquote, pre):last-child, +section.class-description > div.horizontal-scroll > :last-child > :is(li, dd):last-child { + margin-bottom:4px; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:6px 10px 10px 15px; + font-size:var(--block-font-size); + font-family:var(--block-font-family); + line-height:var(--block-line-height); +} +dl.notes > dd > ul, dl.notes > dd > ol { + margin-bottom: 1em; + margin-top: 1em; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for table of contents. + */ +.main-grid nav.toc { + background-color: var(--toc-background-color); + position: sticky; + top: calc(var(--nav-height)); + max-height: calc(100vh - var(--nav-height)); + display: flex; + flex-direction: column; + font-family: var(--body-font-family); + z-index: 1; +} +.main-grid nav.toc div.toc-header { + top: var(--nav-height); + z-index: 1; + padding: 15px 20px; +} +.main-grid nav.toc > ol.toc-list { + max-height: calc(100vh - var(--nav-height) - 100px); + padding-left: 12px; +} +.main-grid nav.toc button { + position: absolute; + bottom: 16px; + z-index: 3; + background-color: var(--toc-background-color); + color: #666666; + font-size: 0.76rem; + border: none; + cursor: pointer; + padding: 6px 10px; + white-space: nowrap; +} +.main-grid nav.toc button > img { + vertical-align: middle; + width: 16px; + height: 16px; +} +.main-grid nav.toc button.hide-sidebar { + right: 0; +} +.main-grid nav.toc button.show-sidebar { + left: 0; + display: none; +} +.main-grid nav.toc button span { + display: none; +} +.main-grid nav.toc button:hover, +.main-grid nav.toc button:focus { + color: var(--body-text-color); + border: 1px solid var(--subnav-background-color); +} +.main-grid nav.toc button:active { + background-color: var(--subnav-background-color); + color: var(--link-color-active); +} +.main-grid nav.toc button:hover span, +.main-grid nav.toc button:focus span { + display: inline; +} +.main-grid nav.toc button:hover, +.main-grid nav.toc button:focus { + box-shadow: 1px 1px 5px rgba(0,0,0,0.2); +} +.main-grid nav.toc.hide-sidebar { + min-width: revert; + background-color: var(--body-background-color); + max-width: 20px; +} +.main-grid nav.toc.hide-sidebar div.toc-header, +.main-grid nav.toc.hide-sidebar ol.toc-list, +.main-grid nav.toc.hide-sidebar button.hide-sidebar { + display: none; +} +.main-grid nav.toc.hide-sidebar button.show-sidebar { + display: inline; +} +nav.toc div.toc-header { + padding: 15px; + display: inline-flex; + align-items: center; + color: var(--body-text-color); + font-size: 0.856em; + font-weight: bold; + white-space: nowrap; + overflow-x: hidden; + position: sticky; + min-height: 20px; +} +nav.toc > ol.toc-list { + overflow: hidden auto; + overscroll-behavior: contain; +} +nav.toc ol.toc-list { + list-style: none; + font-size: var(--nav-font-size); + padding-left: 0; + margin: 0; +} +a.current-selection { + font-weight: bold; +} +nav.toc a { + display: block; + padding: 8px; + overflow: hidden; + text-overflow: ellipsis; +} +nav.toc ol.toc-list ol.toc-list a { + padding-left: 24px; +} +nav.toc ol.toc-list ol.toc-list ol.toc-list a { + padding-left: 40px; +} +nav.toc a:hover { + background-color: var(--toc-hover-color); +} +nav.toc a.current-selection { + background-color: var(--toc-highlight-color); +} +nav.toc a:focus-visible { + background-color: var(--selected-background-color); + color: var(--selected-text-color); + outline: none; +} +/* + * Styles for lists. + */ +ul.details-list .block > ul, +ul.details-list .notes dd > ul { + margin: 12px 0; +} +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance div.inheritance { + margin-left:2em; +} +main > div.inheritance { + overflow-x:auto; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:4px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +dl.notes > dd > ul.tag-list, dl.notes > dd > ul.tag-list-long { + padding-left: 0; + margin: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6; +} +ul.preview-feature-list input { + margin-right: 8px; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + border:1px solid var(--border-color); + border-top:0; + padding:0; + margin-bottom: 14px; +} +.caption { + overflow: auto hidden; + padding: 8px 0 0 1px; +} +.caption span, +.inherited-list h3 { + font-size: 0.98em; + font-weight:bold; + white-space:nowrap; + border-radius: var(--tab-border-radius); + margin: 0; +} +.caption span { + background-color: var(--navbar-background-color); + padding:5px 12px 7px 12px; + height:16px; + color:var(--navbar-text-color); + display:inline-block; +} +.inherited-list h3 { + background-color: var(--subnav-background-color); + padding:6px 12px 7px 12px; + height:17px; + width: fit-content; + max-width: 93%; +} +/* Background required for captions with links */ +.class-use-page .caption span, +.package-use-page .caption span, +.constants-summary-page .caption span, +.inherited-list h3 { + background-color: var(--subnav-background-color); + color: var(--block-text-color); +} +.caption a:link, +.caption a:visited, +.inherited-list h3 a:link, +.inherited-list h3 a:visited { + color:var(--subnav-link-color); +} +div.table-tabs { + padding: 8px 0 0 1px; + white-space: nowrap; + overflow-x: auto; +} +div.table-tabs > button { + font-size: 0.98em; + border: none; + cursor: pointer; + padding: 6px 12px; + font-weight: bold; + margin-right: 8px; + border-radius: var(--tab-border-radius); +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 6px 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + font-size: var(--nav-font-size); + line-height: 1.6; + padding: 8px 3px 3px 7px; + overflow: auto hidden; +} +.summary-table > div.table-header, .details-table > div.table-header { + font-size: 0.92em; + line-height: 1.2; + height: 18px; +} +.table-header { + background: var(--table-header-color); + font-weight: bold; + border-bottom: 1px solid var(--border-color); +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-second, .col-constructor-name { + overflow: auto; +} +body:not(.class-declaration-page) .col-first a:link, +.col-summary-item-name a:link { + font-weight:bold; +} +.even-row-color { + background-color:var(--even-row-color); +} +.odd-row-color { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--block-font-size); + font-family:var(--block-font-family); + line-height:var(--block-line-height); +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:var(--code-font-size); + margin:8px 0 14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre-wrap; +} +.member-signature .type-parameters { + white-space: pre-wrap; +} +:is(h1, h2, h3, h4, h5, h6, sup, sub, small, big) code, +[style*=font-size] code { + font-size: inherit; +} +.doc-file-page main { + font-family: var(--block-font-family); + font-size: var(--block-font-size); + line-height: var(--block-line-height); +} +.doc-file-page main footer { + font-family: var(--body-font-family); + font-size: var(--body-font-size); +} +.tree-page .hierarchy, +.package-tree-page .hierarchy { + line-height: 1.4; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label, +.restricted-label { + font-weight:bold; +} +sup.preview-mark, +sup.restricted-mark { + font-family: var(--code-font-family); + font-weight: normal; + font-size: 8px; + background-color: var(--mark-background-color); + padding: 1px; + border-radius: 2px; +} +sup.preview-mark > a:link, +sup.restricted-mark > a:link { + font-weight: normal; +} +.deprecation-comment, .help-footnote, .preview-comment, .restricted-comment { + font-style:italic; +} +.deprecation-block, .preview-block, .restricted-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:6px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.deprecation-block code, .preview-block code, .restricted-block code { + font-size: 0.97em; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-menu .ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + color: var(--selected-text-color); + /* Workaround for browser bug, see JDK-8275889 */ + margin: -1px 0; + border-top: 1px solid var(--selected-background-color); + border-bottom: 1px solid var(--selected-background-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 8px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + box-sizing: border-box; +} +.ui-autocomplete { + max-height:calc(98vh - var(--nav-height)); + max-width:min(75vw, calc(var(--max-content-width) * 0.748)); + overflow-y:auto; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + overscroll-behavior: contain; +} +ul.ui-autocomplete { + position:fixed; + z-index:10; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; + box-sizing: border-box; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bold; + z-index: 10; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete > li.result-item:nth-child(even) { + background-color: var(--even-row-color) +} +.ui-autocomplete > li.result-item:nth-child(odd) { + background-color: var(--odd-row-color) +} +.ui-autocomplete { + display: grid; + grid-template-columns: auto auto; +} +.ui-autocomplete > li, +.ui-autocomplete > li > div { + grid-column: 1 / 3; +} +.ui-autocomplete > li.result-item, +.ui-autocomplete > li.result-item > div { + display: grid; + grid-template-columns: subgrid; +} +.ui-autocomplete > li.result-item { + font-family: var(--body-font-family); + font-size: var(--body-font-size); + line-height: 1.7; +} +.ui-autocomplete .search-result-label { + padding: 1px 4px; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-autocomplete .search-result-desc { + font-size: var(--nav-font-size); + padding: 2px 4px; + color: #404040; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +.ui-menu .ui-state-active .search-result-desc { + color: #383838; +} +.ui-menu .ui-menu-item-wrapper { + padding: 3px 4px; +} +input[type="text"] { + background-image:url('glass.svg'); + background-size:13px; + background-repeat:no-repeat; + background-position:3px 4px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + border-radius: 4px; + padding-left:20px; + padding-right: 18px; + font-size: var(--nav-font-size); + height: 19px; +} +input#page-search-input { + width: calc(180px + 10vw); + margin: 10px 0; +} +input#search-input { + width: 270px; + margin: 0; +} +input.filter-input { + min-width: 40px; + width: 180px; + margin: 0 -8px 0 5px; +} +input#reset-search, input.reset-filter, input#page-search-reset { + background-color: transparent; + background-image:url('x.svg'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + min-width:12px; + min-height:12px; + font-size:0; + visibility:hidden; +} +input#reset-search { + position:absolute; + right:5px; + top:7px; +} +input.reset-filter { + position: relative; + right: 10px; + top: 0; +} +input#page-search-reset { + position: relative; + right: 18px; + top: -5px; +} +input::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +input:focus::placeholder { + color: transparent; +} +select#search-modules { + margin: 0 10px 10px 2px; + font-size: var(--nav-font-size); + padding: 3px 5px; + border-radius: 4px; + background: #f0f0f0; + border: 1px solid #909090; +} +kbd { + background-color: #eeeeee; + border: 1px solid #b0b0b0; + border-radius: 3px; + padding: 0 4px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 2px 0 0 rgba(255, 255, 255, 0.6) inset; + font-size: 0.9em; + font-weight: bold; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +dd > span:target, +h1 > span:target { + background-color: var(--search-tag-highlight-color); +} +section.class-description dd > span:target, +section.class-description h1 > span:target { + scroll-margin-top: 20em; +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +#result-container .result-highlight { + font-weight:bold; +} +#result-container div.result-table { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); +} +#result-container div.result-table > div.table-header, +#result-container div.result-table > a.search-result-link { + display: grid; + grid-template-columns: subgrid; + grid-column: 1 / 3; + margin: 0; +} +#result-container div.result-table > div.table-header > span { + padding: 5px 12px; + font-size: 0.93em; + background-color: var(--subnav-background-color); +} +#result-container div.result-table > a.search-result-link > span { + padding: 8px 12px; +} +#result-container div.result-table > a.search-result-link:nth-child(odd) { + background-color: var(--odd-row-color) +} +#result-container div.result-table > a.search-result-link:nth-child(even) { + background-color: var(--even-row-color) +} +#result-container div.result-table > a.search-result-link { + color: var(--block-text-color); + white-space: nowrap; +} +#result-container div.result-table > a.search-result-link:focus-visible, +#result-container div.result-table > a.search-result-link.selected { + background-color: var(--selected-background-color); + outline: none; +} +#result-container div.result-table > a.search-result-link .search-result-label { + overflow: hidden; + text-overflow: ellipsis; +} +#result-container div.result-table > a.search-result-link .search-result-desc { + font-size: var(--nav-font-size); + color: #404040; + overflow: hidden; + text-overflow: ellipsis; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + margin: 8px 0; + overflow: hidden; + display: none; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 5; +} +.horizontal-scroll { + overflow: auto hidden; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"] { + margin-bottom: 24px; + background-color: var(--section-background-color); +} +body.class-uses section.detail { + padding: 0 25px 5px 10px; + margin: 25px 0; +} +section.serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--detail-block-color); +} +section.serialized-class-details .detail { + overflow: auto; + padding-left: 12px; +} +section[class$="-details"] .detail { + background-color:var(--detail-background-color); +} +section[class$="-details"] .detail > div { + padding-left: 8px; +} +.inherited-list { + margin: 20px 0; + background-color:var(--detail-background-color); +} +.inherited-list > code { + padding: 8px; + display: block; + background-color: var(--code-background-color); + border-radius: 0; + line-height: var(--code-line-height); +} +.vertical-separator { + padding: 0 5px; +} +.help-section { + font-size: var(--block-font-size); + line-height: var(--block-line-height); +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s 0.1s; +} +:hover > a.anchor-link { + opacity: 90%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + font-size: var(--nav-font-size); + line-height: 1.2; + padding:0.3em; + background-color: transparent; + border: 1px solid transparent; + border-radius: 3px; + position: relative; + opacity: 80%; + transition: all 0.1s ease; + cursor: pointer; +} +button.copy:hover, +button.copy:active, +button.copy:focus, +button.copy.visible { + opacity: 100%; + background-color: inherit; + border-color: var(--button-border-color); + filter: var(--button-focus-filter); +} +button.copy:active { + filter: var(--button-active-filter); +} +button.copy img { + position: relative; +} +button.copy span { + color: var(--body-text-color); + position: relative; + padding: 0.2em; + top: -0.1em; + transition: opacity 0.1s ease; + opacity: 0; +} +button.copy:hover span, +button.copy:focus span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + top: -0.18em; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 4px; + right: 1px; + height: 32px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 2px 0; +} +button.snippet-copy span { + top: -7px; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Media queries for responsive design + */ +@media (prefers-reduced-motion: reduce) { + :root { + scroll-behavior: auto; + } +} +@media screen and (max-width: 1200px) { + input#search-input { + width: 22.5vw; + } +} +@media screen and (max-width: 1000px) { + .main-grid nav.toc { + display: none; + } + .top-nav nav.toc { + display: none; + position: absolute; + top: var(--top-nav-height); + left: 40vw; + width: 60vw; + z-index: 7; + background-color: var(--toc-background-color); + box-sizing: border-box; + } + .top-nav nav.toc div.toc-header { + padding: 6px 15px; + font-size: 0.94em; + background-color: var(--toc-background-color); + top: calc(var(--top-nav-height) + 10px); + } + .top-nav nav.toc ol.toc-list li { + font-size: 1.04em; + } + nav.toc a:link, nav.toc a:visited { + text-decoration:none; + color:var(--link-color); + } + nav.toc a[href]:hover, nav.toc a[href]:focus { + text-decoration:none; + color:var(--link-color-active); + } + :root { + scroll-behavior: auto; + } + header { + max-height: 100vh; + overflow-y: visible; + overscroll-behavior: contain; + } + nav { + overflow: visible; + } + ul.nav-list { + display: none; + position: absolute; + top: var(--top-nav-height); + overflow: auto; + z-index: 7; + background-color: var(--navbar-background-color); + width: 40%; + padding: 0; + box-sizing: border-box; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + .top-nav div.nav-menu-button { + flex: 1 1 auto; + } + .sub-nav ol.sub-nav-list { + margin-left: 4px; + padding-left: 4px; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 4px 0; + border-radius: 2px; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } + .ui-autocomplete { + display: block; + grid-template-columns: none; + } + .ui-autocomplete > li, + .ui-autocomplete > li > div, + .ui-autocomplete > li.result-item, + .ui-autocomplete > li.result-item > div { + grid-column: unset; + display: block; + grid-template-columns: none; + } + .ui-autocomplete > li.result-item { + line-height: 1.45; + } + .ui-autocomplete .search-result-label { + display: block; + } + .ui-autocomplete .search-result-desc { + display: block; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding: 0 16px; + max-width: 90%; + } + ul.nav-list li { + margin-left: 5px; + } + main { + padding: 10px 12px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 600px) { + .nav-list-search > a { + display: none; + } + .member-signature { + white-space: pre-line; + } + .member-signature .annotations { + white-space: pre-wrap; + } + input#search-input { + width: 18vw; + } + .inherited-list h3 { + overflow: auto clip; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0; + } +} +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 12px; +} +div.snippet-container { + position: relative; + padding-right: 30px; + background-color: var(--snippet-background-color); +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav, .main-grid nav.toc, button.copy { + display:none; + } +} diff --git a/docs/javadoc/resource-files/x.svg b/docs/javadoc/resource-files/x.svg new file mode 100644 index 0000000..1efb410 --- /dev/null +++ b/docs/javadoc/resource-files/x.svg @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/docs/javadoc/script-files/jquery-3.7.1.min.js b/docs/javadoc/script-files/jquery-3.7.1.min.js new file mode 100644 index 0000000..7f37b5d --- /dev/null +++ b/docs/javadoc/script-files/jquery-3.7.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0{"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(x){x.ui=x.ui||{};x.ui.version="1.14.1";var n,s,C,k,o,l,a,r,u,i,h=0,c=Array.prototype.hasOwnProperty,d=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l,a={},r=t.split(".")[0];return"__proto__"===(t=t.split(".")[1])||"constructor"===t?x.error("Invalid widget name: "+t):(l=r+"-"+t,e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[l.toLowerCase()]=function(t){return!!x.data(t,l)},x[r]=x[r]||{},s=x[r][t],n=x[r][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}a[e]="function"!=typeof s?s:function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},a,{constructor:n,namespace:r,widgetName:t,widgetFullName:l}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n)},x.widget.extend=function(t){for(var e,i,s=d.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n{var i=[];n.element.each(function(t,e){x.map(l.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),l._on(x(i),{remove:"_untrackClassesElement"})})(),x(x.uniqueSort(i.get().concat(n.element.get())))):x(i.not(n.element).get()),l.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=x.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\S+/g)||[],!0),n.extra&&t(n.extra.match(/\S+/g)||[]),o.join(" ")},_untrackClassesElement:function(i){var s=this;x.each(s.classesElementLookup,function(t,e){-1!==x.inArray(i.target,e)&&(s.classesElementLookup[t]=x(e.not(i.target).get()))}),this._off(x(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n="string"==typeof t||null===t,e={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s="boolean"==typeof s?s:i};return e.element.toggleClass(this._classes(e),s),this},_on:function(n,o,t){var l,a=this;"boolean"!=typeof n&&(t=o,o=n,n=!1),t?(o=l=x(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,l=this.widget()),x.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!x(this).hasClass("ui-state-disabled"))return("string"==typeof e?a[e]:e).apply(a,arguments)}"string"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||x.guid++);var t=t.match(/^([\w:-]*)\s*(.*)$/),s=t[1]+a.eventNamespace,t=t[2];t?l.on(s,t,i):o.on(s,i)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(e),this.bindings=x(this.bindings.not(t).get()),this.focusable=x(this.focusable.not(t).get()),this.hoverable=x(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return("string"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(x(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(x(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(x(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=x.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!("function"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},x.each({show:"fadeIn",hide:"fadeOut"},function(o,l){x.Widget.prototype["_"+o]=function(e,t,i){var s,n=(t="string"==typeof t?{effect:t}:t)?!0!==t&&"number"!=typeof t&&t.effect||l:o;"number"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!x.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&x.effects&&x.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){x(this)[o](),i&&i.call(e[0]),t()})}}),x.widget;function E(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function T(t,e){return parseInt(x.css(t,e),10)||0}function W(t){return null!=t&&t===t.window}C=Math.max,k=Math.abs,o=/left|center|right/,l=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,u=/%$/,i=x.fn.position,x.position={scrollbarWidth:function(){var t,e,i;return void 0!==s?s:(i=(e=x("
")).children()[0],x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(k(s),k(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})):i.apply(this,arguments)},x.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,s=s.width,o=t.left-e.collisionPosition.marginLeft,l=n-o,a=o+e.collisionWidth-s-n;s",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(this.document[0].activeElement);!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active)&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]!==i[0])||i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),t=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(t,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),e=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(e,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(e=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-e-i,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&"true"===this.element.prop("contentEditable"),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault();else if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){n?(n=!1,t.preventDefault()):this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("