Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
03aef8f
Update README.md
teddyyang8 Nov 4, 2024
e6fde91
Update README.md
shirleyyzhang Nov 4, 2024
6a3b9a5
Update README.md
yasmatopia Nov 4, 2024
2e7e455
Merge pull request #2 from teddyyang8/shirleyyzhang-patch-1
teddyyang8 Nov 4, 2024
f3c795b
Merge branch 'main' into yasmatopia-patch-1
teddyyang8 Nov 4, 2024
0211c30
Merge pull request #1 from teddyyang8/yasmatopia-patch-1
teddyyang8 Nov 4, 2024
742c7a8
Update README.md
rayf5372 Nov 4, 2024
1db614e
Merge pull request #4 from teddyyang8/rayf5372-patch-2
teddyyang8 Nov 4, 2024
307f9a3
Update README.md
seanwoo12 Nov 4, 2024
e57f6be
Merge pull request #7 from teddyyang8/seanwoo12-patch-1
teddyyang8 Nov 4, 2024
1f48f5c
Update README.md
shirleyyzhang Nov 8, 2024
c3bf2b6
Merge pull request #9 from teddyyang8/shirleyyzhang-patch-1
seanwoo12 Nov 8, 2024
c9057b9
Created place entity and cleaned use case folder
shirleyyzhang Nov 10, 2024
a10c902
added location dao
teddyyang8 Nov 10, 2024
616fb94
Updated NoteView and NoteState
yasmatopia Nov 10, 2024
b69fec0
changed api key access
teddyyang8 Nov 10, 2024
4a8751c
Merge pull request #15 from teddyyang8/teddy.yang
teddyyang8 Nov 10, 2024
5e94362
changed return to use "places" key
teddyyang8 Nov 10, 2024
4c26f9e
Created place entity, created suggest locations use case (interactor …
shirleyyzhang Nov 10, 2024
0bccb20
Merge pull request #17 from teddyyang8/teddy.yang
teddyyang8 Nov 10, 2024
909c8f3
Merge pull request #18 from teddyyang8/shirleyy.zhang
shirleyyzhang Nov 10, 2024
9590516
fixed url
teddyyang8 Nov 10, 2024
14e1962
Merge remote-tracking branch 'origin/main'
teddyyang8 Nov 10, 2024
796a870
fixed url
teddyyang8 Nov 10, 2024
52a2f47
finished suggest locations use case
shirleyyzhang Nov 10, 2024
c6cac05
Merge branch 'main' into shirleyy.zhang
teddyyang8 Nov 10, 2024
5896377
Merge pull request #16 from teddyyang8/yasmina.mimassi
teddyyang8 Nov 10, 2024
f1577cb
Added LoginView
Nov 11, 2024
9fad7ce
Added LoginView
Nov 11, 2024
ed89a4e
Merge remote-tracking branch 'origin/rayf.fang' into rayf.fang
Nov 11, 2024
1cd61bf
Updated Interface Adapter to working with locations
Nov 11, 2024
56bd41e
Updated Interface Adapter to working with locations
Nov 11, 2024
1cedf78
Merge pull request #19 from teddyyang8/shirleyy.zhang
teddyyang8 Nov 11, 2024
e4fd4db
Updated Interface Adapter to working with locations: handle city sele…
Nov 11, 2024
11df841
fixed suggest locations use case
shirleyyzhang Nov 11, 2024
1757907
updated existing file names to location; created new application buil…
seanwoo12 Nov 11, 2024
0ebe113
Merge pull request #21 from teddyyang8/rayf.fang
teddyyang8 Nov 11, 2024
6edc825
Merge pull request #22 from teddyyang8/shirleyy.zhang
teddyyang8 Nov 11, 2024
8bffb8c
Added home screen application
seanwoo12 Nov 11, 2024
594fbe3
fixed merge conflicts
seanwoo12 Nov 11, 2024
08db0c1
Added home screen application
seanwoo12 Nov 11, 2024
5579702
renamed noteview etc.
teddyyang8 Nov 11, 2024
44535f8
updated some variable names
seanwoo12 Nov 11, 2024
ca35b56
Merge remote-tracking branch 'origin/sean.woo' into sean.woo
seanwoo12 Nov 11, 2024
4c8754a
Update LocationAppBuilder.java
teddyyang8 Nov 11, 2024
73e555d
Update MainLocationApplication.java
teddyyang8 Nov 11, 2024
0c71414
Update SuggestedLocationsApplication.java
teddyyang8 Nov 11, 2024
beebd93
Merge remote-tracking branch 'origin/sean.woo' into sean.woo
teddyyang8 Nov 11, 2024
85cd3fa
Merge pull request #23 from teddyyang8/sean.woo
teddyyang8 Nov 11, 2024
ffa2d37
added text field
seanwoo12 Nov 11, 2024
f72c26d
fixed locationview, and usecases
teddyyang8 Nov 11, 2024
b012d64
Merge pull request #24 from teddyyang8/teddy.yang
rayf5372 Nov 11, 2024
278ed43
Small updates in location state
Nov 11, 2024
150f20b
Small updates in location state
Nov 11, 2024
b54ab08
Small updates in location state
Nov 11, 2024
f4fbe1c
Merge pull request #25 from teddyyang8/rayf.fang
teddyyang8 Nov 11, 2024
0ed5dbf
LocationAppBuilder should be functional, modified location view
seanwoo12 Nov 11, 2024
5fff108
Merge remote-tracking branch 'origin/sean.woo' into sean.woo
seanwoo12 Nov 11, 2024
83bf0a8
Merge remote-tracking branch 'origin/main' into sean.woo
seanwoo12 Nov 11, 2024
b186db9
updated LocationAppBuilder
seanwoo12 Nov 11, 2024
380250a
updated template for SuggestedLocationsAppBuilder.java
seanwoo12 Nov 11, 2024
3663ed6
view pt 2
yasmatopia Nov 11, 2024
609fa78
Merge pull request #26 from teddyyang8/yasmina.mimassi
seanwoo12 Nov 11, 2024
d25e8fe
Merge remote-tracking branch 'origin/main' into sean.woo
seanwoo12 Nov 11, 2024
d8827bf
Small updates interface adapter files
Nov 11, 2024
85a9cb2
Merge remote-tracking branch 'origin/main'
Nov 11, 2024
2b0ff29
fixed api key to be stored in .env
teddyyang8 Nov 11, 2024
5dafbea
Merge pull request #27 from teddyyang8/teddy.yang
teddyyang8 Nov 11, 2024
9a4ceca
Small updates interface adapter files, updated LocationViewModel to u…
Nov 11, 2024
be45e14
Merge remote-tracking branch 'origin/main'
Nov 11, 2024
7076156
Merge pull request #29 from teddyyang8/rayf.fang
rayf5372 Nov 11, 2024
f7e90e7
Updated Place to be a class, added features in LocationPresenter and …
Nov 11, 2024
1979289
Fixed minor issues in interface adapter
shirleyyzhang Nov 12, 2024
fb75d60
Updated getState
Nov 12, 2024
98f9a9a
Merge pull request #31 from teddyyang8/shirleyy.zhang
teddyyang8 Nov 12, 2024
ea8a987
Merge branch 'main' into rayf.fang
Nov 12, 2024
42e080a
Merge pull request #32 from teddyyang8/rayf.fang
yasmatopia Nov 12, 2024
69dfabb
Used input and output data to change views
yasmatopia Nov 12, 2024
3e1d001
Merge pull request #33 from teddyyang8/yasmina.mimassi
teddyyang8 Nov 12, 2024
6663f8a
Merge remote-tracking branch 'origin/main' into sean.woo
seanwoo12 Nov 12, 2024
5ee75e9
Added View Manager and View Manager Model.
yasmatopia Nov 12, 2024
08f44e1
Merge pull request #34 from teddyyang8/yasmina.mimassi
rayf5372 Nov 12, 2024
daf13ff
reverted SuggestLocationsInteractor back.
shirleyyzhang Nov 12, 2024
bfcabbb
Merge pull request #35 from teddyyang8/shirleyy.zhang
yasmatopia Nov 12, 2024
e3c5115
Merge remote-tracking branch 'origin/main' into sean.woo
seanwoo12 Nov 12, 2024
5e6c950
fixed main location application, runs now
seanwoo12 Nov 12, 2024
fcb83d4
Merge pull request #36 from teddyyang8/sean.woo
yasmatopia Nov 12, 2024
88486db
doesnt work plz fix
teddyyang8 Nov 12, 2024
dabe771
common starting point
shirleyyzhang Nov 12, 2024
ff3b8cb
Merge branch 'main' into shirleyy.zhang
teddyyang8 Nov 12, 2024
6594f90
Merge pull request #38 from teddyyang8/shirleyy.zhang
teddyyang8 Nov 12, 2024
f4bd649
Merge remote-tracking branch 'origin/main' into teddy.yang
teddyyang8 Nov 12, 2024
fd155f8
remade interface adaptors and modified usecases to use SuggestedPlace…
teddyyang8 Nov 13, 2024
e40a422
changed interactor and outputdata
teddyyang8 Nov 13, 2024
6a73983
Merge pull request #39 from teddyyang8/teddy.yang
rayf5372 Nov 14, 2024
eeb7399
fixed app - changed the build function and all of MainLocationApplica…
shirleyyzhang Nov 15, 2024
8e5095e
Merge branch 'main' into shirleyy.zhang
teddyyang8 Nov 16, 2024
91bcd50
Merge pull request #40 from teddyyang8/shirleyy.zhang
yasmatopia Nov 16, 2024
2edec39
added locationView
teddyyang8 Nov 18, 2024
1ed4e9b
Merge remote-tracking branch 'origin/main' into teddy.yang
teddyyang8 Nov 18, 2024
e5ea87e
added viewmanager
teddyyang8 Nov 18, 2024
212023d
Merge pull request #41 from teddyyang8/teddy.yang
seanwoo12 Nov 18, 2024
22de578
Created suggestedlocations interface adapters
Nov 19, 2024
8fa4221
Created suggestedlocations interface adapters
Nov 19, 2024
0ff411b
Created suggestedlocations interface adapters
Nov 19, 2024
c97302a
Merge pull request #42 from teddyyang8/rayf.fang
yasmatopia Nov 19, 2024
236db7b
Fixed SuggestedLocationsView
Nov 19, 2024
c498ef3
Merge pull request #43 from teddyyang8/rayf.fang
seanwoo12 Nov 19, 2024
ee0449b
Implemented the new search button in SuggestedLocationsView with Card…
Nov 21, 2024
c32e964
Merge pull request #44 from teddyyang8/rayf.fang
yasmatopia Nov 21, 2024
04aad4c
fixed app and relating files
shirleyyzhang Nov 22, 2024
ac5fa51
concatenated 5 location types into one string in view
teddyyang8 Nov 22, 2024
1ee31b9
fixed app and relating files, fixed variable names
shirleyyzhang Nov 22, 2024
0dc0a95
Merge pull request #45 from teddyyang8/shirleyy.zhang
teddyyang8 Nov 22, 2024
b43ef93
Merge remote-tracking branch 'origin/main' into teddy.yang
teddyyang8 Nov 22, 2024
c058d4e
Merge pull request #46 from teddyyang8/teddy.yang
shirleyyzhang Nov 22, 2024
aab7289
fixed API call using parameter instead of body
teddyyang8 Nov 22, 2024
13c4f60
Merge remote-tracking branch 'origin/main' into teddy.yang
teddyyang8 Nov 22, 2024
6a44361
Merge pull request #47 from teddyyang8/teddy.yang
seanwoo12 Nov 22, 2024
e9bf44d
fixed api call again undo changes basically
teddyyang8 Nov 22, 2024
f2e01f2
fixed view
teddyyang8 Nov 22, 2024
5afdfba
update LocationView, create SuggestedLocationUseCaseFactory, created …
seanwoo12 Nov 22, 2024
1ce157d
tried to fix SuggestedLocationUseCaseFactory
seanwoo12 Nov 22, 2024
940275d
fixed presenter
teddyyang8 Nov 22, 2024
9c43c84
made changes to use case and interface adaptors
teddyyang8 Nov 22, 2024
3f43567
changed use case factory to work with presenter
teddyyang8 Nov 22, 2024
fcb3f73
Changed name of use cases
teddyyang8 Nov 22, 2024
3ad2e28
Merge pull request #50 from teddyyang8/teddy.yang
teddyyang8 Nov 23, 2024
56fb8f8
fixed some comments, still need to fix views and any remaining bugs
seanwoo12 Nov 23, 2024
ad3008c
fixed errors, jpanels and cardlayouts. review for errors.
seanwoo12 Nov 23, 2024
89faac4
added SuggestedLocations use case and corresponding files in app
shirleyyzhang Nov 24, 2024
03bc5a2
Fixed SuggestedLocations presenter and controller. added case to main
shirleyyzhang Nov 24, 2024
9707fdf
Fixed some other files, got rid of switchToSuggestedView(), cuz that …
shirleyyzhang Nov 24, 2024
d0aa0eb
Merge pull request #51 from teddyyang8/shirleyy.zhang
yasmatopia Nov 24, 2024
d8ebe27
changed view
teddyyang8 Nov 25, 2024
17af89b
Merge pull request #52 from teddyyang8/teddy.yang
yasmatopia Nov 25, 2024
083d1ab
Merge remote-tracking branch 'origin/main' into sean.woo
seanwoo12 Nov 25, 2024
9221769
fixed api stuff
yasmatopia Nov 25, 2024
54d7058
Merge pull request #53 from teddyyang8/yasmina.mimassi
shirleyyzhang Nov 25, 2024
53bfddc
FINALLY FIXED TEAM USE CASE
shirleyyzhang Nov 27, 2024
48bac26
Merge pull request #54 from teddyyang8/shirleyy.zhang
teddyyang8 Nov 28, 2024
1c492fd
modified view to have better layout and added checkbox implementation…
teddyyang8 Nov 28, 2024
7c6e8c1
Merge pull request #55 from teddyyang8/teddy.yang
yasmatopia Nov 30, 2024
75a726b
Individual use case - custom profile creation
Nov 30, 2024
fb6aa78
Merge branch 'main' of https://github.com/teddyyang8/TravelAdvisors i…
seanwoo12 Nov 30, 2024
ff909c0
added SavedPlace
teddyyang8 Nov 30, 2024
2259f86
Merge pull request #57 from teddyyang8/teddy.yang
yasmatopia Nov 30, 2024
8283e55
created filter and made action listener check which filter is selecte…
yasmatopia Nov 30, 2024
e10dca0
created filter and made action listener check which filter is selecte…
yasmatopia Nov 30, 2024
601987b
Individual use case - custom profile that contains saved lists in has…
Dec 1, 2024
345fe94
Added ReviewLocation use case and Coordinates DAO
teddyyang8 Dec 1, 2024
844865b
Individual use case - custom profile that contains saved lists in has…
Dec 1, 2024
ca29704
Individual use case - custom profile that contains saved lists in has…
Dec 1, 2024
5acba7a
Merge pull request #60 from teddyyang8/teddy.yang
yasmatopia Dec 1, 2024
3a80500
added selectedlocations use case, modified some suggestedlocations files
seanwoo12 Dec 1, 2024
5869013
Merge branch 'main' of https://github.com/teddyyang8/TravelAdvisors i…
seanwoo12 Dec 1, 2024
cc30c39
added implementation of coordinatemap with selectedlocation
seanwoo12 Dec 1, 2024
21b7bac
Merge branch 'main' into rayf.fang
Dec 1, 2024
176c3e8
added implementation of the button to the url
seanwoo12 Dec 1, 2024
50fd96c
Calender user story working
shirleyyzhang Dec 1, 2024
93f0f28
fixed SuggestedLocationsView
teddyyang8 Dec 1, 2024
d28cb14
Individual use case - custom profile that contains saved lists in has…
Dec 1, 2024
d4a0e80
Calender user story working
shirleyyzhang Dec 1, 2024
a740fc6
created execute method in interactor to check for filters and change …
yasmatopia Dec 1, 2024
6d49ad8
Merge remote-tracking branch 'origin/yasmina.mimassi' into yasmina.mi…
yasmatopia Dec 1, 2024
60dff67
Merge branch 'main' into shirleyy.zhang
teddyyang8 Dec 1, 2024
1af7702
Merge pull request #62 from teddyyang8/shirleyy.zhang
yasmatopia Dec 1, 2024
44813d5
fixed user entity
teddyyang8 Dec 1, 2024
b79ccfb
fixed some bugs
seanwoo12 Dec 1, 2024
f3cebe6
Merge pull request #63 from teddyyang8/teddy.yang
teddyyang8 Dec 1, 2024
aa0f65c
fixed some bugs
seanwoo12 Dec 1, 2024
93472c8
Merge branch 'main' into yasmina.mimassi
teddyyang8 Dec 2, 2024
1808463
Merge pull request #58 from teddyyang8/yasmina.mimassi
teddyyang8 Dec 2, 2024
743f25f
fixed sign up and log in views, etc.
yasmatopia Dec 2, 2024
2158e7d
Merge pull request #65 from teddyyang8/yasmina_fix_view
teddyyang8 Dec 2, 2024
ad9099e
fixed DAO and now it opens in new browser
teddyyang8 Dec 2, 2024
8aafbb8
Create accessibility report
rayf5372 Dec 2, 2024
a172b6c
Merge pull request #66 from teddyyang8/rayf5372-patch-1
teddyyang8 Dec 2, 2024
1016c73
Add files via upload
teddyyang8 Dec 2, 2024
eb601c0
Delete accessibility-report
teddyyang8 Dec 2, 2024
f0cdb87
rays user use case finished
shirleyyzhang Dec 2, 2024
9ecb71d
Merge branch 'main' into rayf.fang
teddyyang8 Dec 2, 2024
a0fdd66
Merge pull request #59 from teddyyang8/rayf.fang
teddyyang8 Dec 2, 2024
f9ea67d
fixed DAO and now it opens in new browser
teddyyang8 Dec 2, 2024
7d530b0
Merge remote-tracking branch 'origin/main'
teddyyang8 Dec 2, 2024
2d85dc9
fixed DAO and now it opens in new browser
teddyyang8 Dec 2, 2024
4da2e92
Merge branch 'main' of https://github.com/teddyyang8/TravelAdvisors i…
shirleyyzhang Dec 2, 2024
814102f
Merge branch 'main' into sean.woo
shirleyyzhang Dec 2, 2024
1e125aa
Merge pull request #61 from teddyyang8/sean.woo
teddyyang8 Dec 2, 2024
1485369
Merge branch 'main' of https://github.com/teddyyang8/TravelAdvisors i…
shirleyyzhang Dec 2, 2024
06e5ff4
implemented more buttons and functionalities.
shirleyyzhang Dec 2, 2024
ae10740
Merge pull request #68 from teddyyang8/shirleyy.zhang
rayf5372 Dec 2, 2024
a8399f7
implemented more buttons and functionalities.
shirleyyzhang Dec 2, 2024
ae788a4
Merge pull request #69 from teddyyang8/shirleyy.zhang
rayf5372 Dec 2, 2024
5e563e8
fixed some checkstyle errors
seanwoo12 Dec 2, 2024
cc02271
Merge branch 'main' of https://github.com/teddyyang8/TravelAdvisors i…
seanwoo12 Dec 2, 2024
506be54
added strategy
seanwoo12 Dec 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,7 @@ bin/
.vscode/

### Mac OS ###
.DS_Store
.DS_Store

### API KEY ###
.env
2 changes: 1 addition & 1 deletion .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
# Note Application
# Travel Advisors

## Team Members

- Teddy Yang (teddyyang8)
- Yasmina Mimassi (yasmatopia)
- Shirley Zhang (shirleyyzhang)
- Ray Fang (rayf5372)
- Sean Woo (seanwoo12)
## Starter Readme Below

This is a minimal example demonstrating usage of the
password-protected user part of the API used in lab 5.
Expand Down
33 changes: 33 additions & 0 deletions accessibility-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
The following paragraphs summarises how features in our program adhere to the Principle of Universal Design.

Principle 1: Equitable Use

The TravelAdvisor provides activity recommendations based on user-selected interests, benefiting all users equally. The activity suggestions are based solely on personal preferences in our profile creating feature, and our interest-selecting feature allows the users to enter any interest they may have, ensuring a diverse group of users can interact equitably. The profile creation and sign-up processes are identical for all users, fostering an equal and inclusive experience.

Principle 2: Flexibility in Use

Users can save places they are interested in and access them later, providing flexibility in how they interact with the app. The save places feature allows users to add different types of information, such as reviews and ratings, based on their preferences. Additionally, the interest-selection feature offers flexibility similar to a Google search, allowing users to input any interest they have.

Principle 3: Simple and Intuitive Use

The user interface follows a straightforward flow—users create a profile, select preferences, and receive personalized recommendations. Clear labels for text fields and buttons make the interface intuitive and easy to use. The platform delivers the intended service efficiently, without requiring extensive effort or comprehension from the user.

Principle 4: Perceptible Information

We use JSwing to present views, combining both textual and visual elements to enhance information accessibility. Labels, buttons, and other interface components are clearly labeled across all views, ensuring that users can easily perceive and understand the information and actions available.

Principle 5: Tolerance in Error

Error messages are displayed if, for instance, users try to create a profile with a username that already exists. This helps users easily identify and correct their mistakes.

Principle 6: Low Physical Effort

All elements of the user interface are designed to be simple to use and minimize repetitive actions. Users can navigate through different views intuitively, with large buttons and clear text fields. Features like the "New Search" button allow users to return to the search view directly after seeing suggested locations, reducing unnecessary steps and physical effort.

Principle 7: Size and Space for Approach and Use

All views in the TravelAdvisor provide a clean and well-organized layout, with adequate spacing between buttons and text fields, ensuring ease of interaction without feeling cramped. A future development goal is to integrate user accessibility tools, such as text-to-speech, to further enhance accessibility for all users.

Our program is designed to be used by anyone interested in exploring new places or discovering interesting parts of their city. Our primary target audience for marketing would be frequent travelers, as they are more likely to be dissatisfied with generic interest recommendations found on platforms like Google Maps and would appreciate a more personalized experience. Another potential target audience could be local explorers—people who enjoy uncovering hidden gems within their own city. These users may be looking for unique recommendations that go beyond the popular tourist spots, tailored specifically to their personal interests. Additionally, our program could appeal to individuals who have specific niche hobbies, such as vinyl lovers seeking second-hand record stores, or history enthusiasts searching for lesser-known historical sites.

When considering the medical model of disability, one demographic that is less likely to use our program would be individuals with visual impairment. In our program, individuals with visual impairments may face challenges since all features currently rely on visual cues, such as reading labels, navigating buttons, and being redirected to external pages. This reliance on visual interaction presents a significant barrier for visually impaired users, who might find it difficult or even impossible to use the program without external assistance.
55 changes: 55 additions & 0 deletions src/main/java/app/CalendarUseCaseFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package app;

import interface_adapter.ViewManagerModel;
import interface_adapter.add_to_calendar.AddToCalendarController;
import interface_adapter.add_to_calendar.AddToCalendarPresenter;
import interface_adapter.add_to_calendar.AddToCalendarViewModel;
import interface_adapter.location.LocationViewModel;
import use_case.add_to_calendar.AddToCalendarDataAccessInterface;
import use_case.add_to_calendar.AddToCalendarInputBoundary;
import use_case.add_to_calendar.AddToCalendarInteractor;
import use_case.add_to_calendar.AddToCalendarOutputBoundary;
import view.CalendarView;

/**
* This class contains the static factory function for creating the CalendarView.
*/
public class CalendarUseCaseFactory {

/** Prevent instantiation. */
private CalendarUseCaseFactory() {

}

/**
* Factory function for creating the CalendarView.
* @param viewManagerModel the ViewManagerModel to inject
* @param calendarViewModel the AddToCalendarViewModel to inject
* @param calendarDataAccessObject the AddToCalendarDataAccessObject to inject
* @param locationViewModel the LocationViewModel to inject
* @return the LocationView created for the provided input classes.
*/
public static CalendarView create(ViewManagerModel viewManagerModel,
AddToCalendarViewModel calendarViewModel,
AddToCalendarDataAccessInterface calendarDataAccessObject,
LocationViewModel locationViewModel) {
final AddToCalendarController calendarController = createCalendarUseCase(viewManagerModel,
calendarViewModel, calendarDataAccessObject, locationViewModel);

return new CalendarView(calendarViewModel, calendarController);
}

private static AddToCalendarController createCalendarUseCase(
ViewManagerModel viewManagerModel,
AddToCalendarViewModel calendarViewModel,
AddToCalendarDataAccessInterface calendarDataAccessObject,
LocationViewModel locationViewModel) {
final AddToCalendarOutputBoundary calendarOutputBoundary = new AddToCalendarPresenter(calendarViewModel,
viewManagerModel, locationViewModel);
final AddToCalendarInputBoundary calendarInteractor = new AddToCalendarInteractor(calendarDataAccessObject,
calendarOutputBoundary);

return new AddToCalendarController(calendarInteractor);
}

}
62 changes: 62 additions & 0 deletions src/main/java/app/LocationUseCaseFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package app;

import interface_adapter.ViewManagerModel;
import interface_adapter.location.LocationController;
import interface_adapter.location.LocationPresenter;
import interface_adapter.location.LocationViewModel;
import interface_adapter.suggestlocation.SuggestedLocationsViewModel;
import use_case.locations.LocationDataAccessInterface;
import use_case.locations.LocationsInputBoundary;
import use_case.locations.LocationsInteractor;
import use_case.locations.LocationsOutputBoundary;
import use_case.user_profile.UserProfileDataAccessInterface;
import view.LocationView;

/**
* This class contains the static factory function for creating the LocationView.
*/
public class LocationUseCaseFactory {

/** Prevent instantiation. */
private LocationUseCaseFactory() {

}

/**
* Factory function for creating the LocationView.
* @param viewManagerModel the ViewManagerModel to inject
* @param locationViewModel the LocationViewModel to inject
* @param suggestedLocationsViewModel the SuggestedLocationsViewModel to inject
* @param locationDataAccessObject the LocationDataAccessInterface to inject
* @param userDataAccessObject the UserProfileDataAccessInterface to inject
* @return the LocationView created for the provided input classes.
*/
public static LocationView create(
ViewManagerModel viewManagerModel,
LocationViewModel locationViewModel,
SuggestedLocationsViewModel suggestedLocationsViewModel,
LocationDataAccessInterface locationDataAccessObject,
UserProfileDataAccessInterface userDataAccessObject) {

final LocationController locationController = createLocationUseCase(viewManagerModel, locationViewModel,
suggestedLocationsViewModel, locationDataAccessObject, userDataAccessObject);

return new LocationView(locationViewModel, locationController);
}

private static LocationController createLocationUseCase(
ViewManagerModel viewManagerModel,
LocationViewModel locationViewModel,
SuggestedLocationsViewModel suggestedLocationsViewModel,
LocationDataAccessInterface locationDataAccessObject,
UserProfileDataAccessInterface userDataAccessObject) {

final LocationsOutputBoundary locationsOutputBoundary = new LocationPresenter(locationViewModel,
suggestedLocationsViewModel, viewManagerModel);
final LocationsInputBoundary locationInteractor = new LocationsInteractor(locationDataAccessObject,
locationsOutputBoundary, userDataAccessObject);

return new LocationController(locationInteractor);
}

}
66 changes: 66 additions & 0 deletions src/main/java/app/LoginUseCaseFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package app;

import interface_adapter.ViewManagerModel;
import interface_adapter.location.LocationViewModel;
import interface_adapter.signup.SignupViewModel;
import interface_adapter.user_profile.UserProfileViewModel;
import interface_adapter.login.LoginController;
import interface_adapter.login.LoginPresenter;
import interface_adapter.login.LoginViewModel;
import use_case.login.LoginInputBoundary;
import use_case.login.LoginInteractor;
import use_case.login.LoginOutputBoundary;
import use_case.login.LoginUserDataAccessInterface;
import view.LoginView;

/**
* This class contains the static factory function for creating the LoginView.
*/
public final class LoginUseCaseFactory {

/** Prevent instantiation. */
private LoginUseCaseFactory() {

}

/**
* Factory function for creating the LoginView.
* @param viewManagerModel the ViewManagerModel to inject into the LoginView
* @param loginViewModel the LoginViewModel to inject into the LoginView
* @param userProfileViewModel the LoggedInViewModel to inject into the LoginView
* @param locationViewModel the LocationViewModel to inject into the LoginView
* @param userDataAccessObject the LoginUserDataAccessInterface to inject into the LoginView
* @param signupViewModel the SignupViewModel to inject into the LoginView
* @return the LoginView created for the provided input classes
*/
public static LoginView create(
ViewManagerModel viewManagerModel,
LoginViewModel loginViewModel,
UserProfileViewModel userProfileViewModel,
LocationViewModel locationViewModel,
LoginUserDataAccessInterface userDataAccessObject,
SignupViewModel signupViewModel) {

final LoginController loginController = createLoginUseCase(viewManagerModel, loginViewModel,
userProfileViewModel, locationViewModel, userDataAccessObject, signupViewModel);
return new LoginView(loginViewModel, loginController);

}

private static LoginController createLoginUseCase(
ViewManagerModel viewManagerModel,
LoginViewModel loginViewModel,
UserProfileViewModel userProfileViewModel,
LocationViewModel locationViewModel,
LoginUserDataAccessInterface userDataAccessObject,
SignupViewModel signUpViewModel) {

// Notice how we pass this method's parameters to the Presenter.
final LoginOutputBoundary loginOutputBoundary = new LoginPresenter(viewManagerModel,
userProfileViewModel, loginViewModel, locationViewModel, signUpViewModel);
final LoginInputBoundary loginInteractor = new LoginInteractor(
userDataAccessObject, loginOutputBoundary);

return new LoginController(loginInteractor);
}
}
56 changes: 0 additions & 56 deletions src/main/java/app/MainNoteApplication.java

This file was deleted.

Loading