package edu.pdx.cs410J.grader.poa;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import com.google.inject.Inject;
import com.google.inject.Singleton;
@Singleton
public class EmailCredentialsPresenter {
private final EventBus bus;
private final EmailCredentialsView view;
private String emailAddress;
private String password;
@Inject
public EmailCredentialsPresenter(EventBus bus, EmailCredentialsView view) {
this.bus = bus;
this.view = view;
this.bus.register(this);
this.view.addEmailAddressValueListener(this::setEmailAddress);
this.view.addPasswordValueListener(this::setPassword);
this.view.addSubmitCredentialsListener(this::fireEmailCredentialsEvent);
}
private void fireEmailCredentialsEvent() {
this.bus.post(new EmailCredentials(this.emailAddress, this.password));
}
@Subscribe
public void displayEmailCredentialsView(DownloadPOASubmissionsRequest event) {
this.view.setIsVisible(true);
}
public String getEmailAddress() {
return emailAddress;
}
@VisibleForTesting
void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public String getPassword() {
return password;
}
@VisibleForTesting
void setPassword(String password) {
this.password = password;
}
}