Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions .idea/compiler.xml

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

7 changes: 7 additions & 0 deletions .idea/misc.xml

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

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

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

144 changes: 144 additions & 0 deletions .idea/workspace.xml

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

34 changes: 33 additions & 1 deletion main/java/app/AppBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
import interface_adapter.signup.SignupController;
import interface_adapter.signup.SignupPresenter;
import interface_adapter.signup.SignupViewModel;
import interface_adapter.post_page.PostPageState;
import interface_adapter.post_page.PostPageViewModel;
import interface_adapter.main_page.MainPageViewModel;
import use_case.change_password.ChangePasswordInputBoundary;
import use_case.change_password.ChangePasswordInteractor;
import use_case.change_password.ChangePasswordOutputBoundary;
Expand All @@ -37,6 +40,8 @@
import view.LoginView;
import view.SignupView;
import view.ViewManager;
import view.MainPageView;
import view.PostPageView;

/**
* The AppBuilder class is responsible for putting together the pieces of
Expand Down Expand Up @@ -67,6 +72,11 @@ public class AppBuilder {
private LoggedInViewModel loggedInViewModel;
private LoggedInView loggedInView;
private LoginView loginView;
private MainPageView mainPageView;
private MainPageViewModel mainPageViewModel;
private PostPageView postPageView;
private PostPageViewModel postPageViewModel;
private PostPageState postPageState;

public AppBuilder() {
cardPanel.setLayout(cardLayout);
Expand Down Expand Up @@ -105,6 +115,28 @@ public AppBuilder addLoggedInView() {
return this;
}

/**
* Adds the Main Page View to the application.
* @return this builder
*/
public AppBuilder addMainPageView() {
mainPageViewModel = new MainPageViewModel();
mainPageView = new MainPageView(mainPageViewModel);
cardPanel.add(mainPageView, mainPageView.getViewName());
return this;
}

/**
* Adds the Post Page View to the application.
* @return this builder
*/
public AppBuilder addPostPageView() {
postPageViewModel = new PostPageViewModel();
postPageView = new PostPageView(postPageViewModel);
cardPanel.add(postPageView, postPageView.getViewName());
return this;
}

/**
* Adds the Signup Use Case to the application.
* @return this builder
Expand All @@ -126,7 +158,7 @@ public AppBuilder addSignupUseCase() {
*/
public AppBuilder addLoginUseCase() {
final LoginOutputBoundary loginOutputBoundary = new LoginPresenter(viewManagerModel,
loggedInViewModel, loginViewModel);
loggedInViewModel, loginViewModel, mainPageViewModel);
final LoginInputBoundary loginInteractor = new LoginInteractor(
userDataAccessObject, loginOutputBoundary);

Expand Down
2 changes: 2 additions & 0 deletions main/java/app/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public static void main(String[] args) {
.addLoginView()
.addSignupView()
.addLoggedInView()
.addMainPageView()
.addPostPageView()
.addSignupUseCase()
.addLoginUseCase()
.addLogoutUseCase()
Expand Down
26 changes: 18 additions & 8 deletions main/java/interface_adapter/login/LoginPresenter.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import interface_adapter.ViewManagerModel;
import interface_adapter.change_password.LoggedInState;
import interface_adapter.change_password.LoggedInViewModel;
import interface_adapter.main_page.MainPageViewModel;
import use_case.login.LoginOutputBoundary;
import use_case.login.LoginOutputData;

Expand All @@ -14,25 +15,34 @@ public class LoginPresenter implements LoginOutputBoundary {
private final LoginViewModel loginViewModel;
private final LoggedInViewModel loggedInViewModel;
private final ViewManagerModel viewManagerModel;
private final MainPageViewModel mainPageViewModel;

public LoginPresenter(ViewManagerModel viewManagerModel,
LoggedInViewModel loggedInViewModel,
LoginViewModel loginViewModel) {
LoginViewModel loginViewModel,
MainPageViewModel mainPageViewModel) {
this.viewManagerModel = viewManagerModel;
this.loggedInViewModel = loggedInViewModel;
this.loginViewModel = loginViewModel;
this.mainPageViewModel = mainPageViewModel;
}

@Override
public void prepareSuccessView(LoginOutputData response) {
// On success, switch to the logged in view.

final LoggedInState loggedInState = loggedInViewModel.getState();
loggedInState.setUsername(response.getUsername());
this.loggedInViewModel.setState(loggedInState);
this.loggedInViewModel.firePropertyChanged();

this.viewManagerModel.pushView(loggedInViewModel.getViewName());
// // On success, switch to the logged in view.
//
// final LoggedInState loggedInState = loggedInViewModel.getState();
// loggedInState.setUsername(response.getUsername());
// this.loggedInViewModel.setState(loggedInState);
// this.loggedInViewModel.firePropertyChanged();
//
// this.viewManagerModel.setState(loggedInViewModel.getViewName());

// On success, switch to the main page view.
this.mainPageViewModel.firePropertyChanged();
this.viewManagerModel.setState(mainPageViewModel.getViewName());
this.viewManagerModel.firePropertyChanged();
}

@Override
Expand Down
23 changes: 23 additions & 0 deletions main/java/interface_adapter/main_page/MainPageController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package interface_adapter.main_page;

import interface_adapter.ViewManagerModel;
import interface_adapter.post_page.PostPageViewModel;

/**
* The controller for the Login Use Case.
*/
public class MainPageController {
private final PostPageViewModel postPageViewModel;
private final ViewManagerModel viewManagerModel;

public MainPageController(PostPageViewModel postPageViewModel, ViewManagerModel viewManagerModel) {
this.postPageViewModel = postPageViewModel;
this.viewManagerModel = viewManagerModel;
}

public void navigateToPostsPage() {
this.postPageViewModel.firePropertyChanged();
this.viewManagerModel.setState(postPageViewModel.getViewName());
this.viewManagerModel.firePropertyChanged();
}
}
4 changes: 4 additions & 0 deletions main/java/interface_adapter/main_page/MainPageState.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package interface_adapter.main_page;

public class MainPageState {
}
10 changes: 10 additions & 0 deletions main/java/interface_adapter/main_page/MainPageViewModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package interface_adapter.main_page;

import interface_adapter.ViewModel;

public class MainPageViewModel extends ViewModel<MainPageState> {
public MainPageViewModel() {
super("main page");
setState(new MainPageState());
}
}
4 changes: 4 additions & 0 deletions main/java/interface_adapter/post_page/PostPageState.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package interface_adapter.post_page;

public class PostPageState {
}
10 changes: 10 additions & 0 deletions main/java/interface_adapter/post_page/PostPageViewModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package interface_adapter.post_page;

import interface_adapter.ViewModel;

public class PostPageViewModel extends ViewModel<PostPageState> {
public PostPageViewModel() {
super("post page");
setState(new PostPageState());
}
}
Loading