added facade class for handling recipient sets

This commit is contained in:
Emil Siverhall 2012-01-23 16:25:26 +01:00
parent ffe60623b9
commit 1b487ae750
2 changed files with 45 additions and 15 deletions
src/main/java/se/su/dsv/scipro
admin/panels
data/facade

@ -29,6 +29,7 @@ import se.su.dsv.scipro.data.dao.interfaces.UserDao;
import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings;
import se.su.dsv.scipro.data.dataobjects.MailEvent;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.data.facade.MailFacade;
public class AdminMailPanel extends Panel {
@ -38,11 +39,14 @@ public class AdminMailPanel extends Panel {
private MailEventDao mailEventDao;
@SpringBean
private GeneralSystemSettingsDao generalSystemSettingsDao;
@SpringBean
private MailFacade mailFacade;
private Set<User> userSet;
private static final Logger logger = Logger.getLogger(AdminMailPanel.class);
private final String AUTHORS_ALL = "Just me";
// private final String AUTHORS_ALL = "All authors";
private final String AUTHORS_JUSTME = "Just me"; //Dev purposes
private final String AUTHORS_ACTIVE_PROJECT = "Authors with active projects";
private final String AUTHORS_ALL = "All authors";
// private final String AUTHORS_CONFIRMED = "Authors with confirmed project ideas";
// private final String AUTHORS_UNCONFIRMED = "Authors with unconfirmed project ideas";
private final String AUTHORS_REFUSED = "Authors with refused project ideas";
@ -122,12 +126,12 @@ public class AdminMailPanel extends Panel {
}
private void setUpRadioButtons() {
List<String> options = Arrays.asList(new String[]{AUTHORS_ALL,AUTHORS_REFUSED,THESISSUPPORT,SUPERVISOR_ALL, SUPERVISOR_UNCONFIRMED});
final RadioChoice<String> rc = new RadioChoice<String>("radioChoices",Model.of(AUTHORS_ALL), options);
List<String> options = Arrays.asList(new String[]{AUTHORS_JUSTME,AUTHORS_ALL,AUTHORS_ACTIVE_PROJECT,AUTHORS_REFUSED,THESISSUPPORT,SUPERVISOR_ALL, SUPERVISOR_UNCONFIRMED});
final RadioChoice<String> choice = new RadioChoice<String>("radioChoices",Model.of(AUTHORS_ALL), options);
//Default values, taken from RadioChoice constructor above (Model.of(your choice)).
userSet = new HashSet<User>();
userSet = getRecipients(rc.getModelObject());
userSet = getRecipients(choice.getModelObject());
AjaxFormChoiceComponentUpdatingBehavior behavior = new AjaxFormChoiceComponentUpdatingBehavior() {
private static final long serialVersionUID = 1L;
@ -135,27 +139,25 @@ public class AdminMailPanel extends Panel {
@Override
protected void onUpdate(AjaxRequestTarget target) {
userSet = new HashSet<User>();
userSet = getRecipients(rc.getModelObject());
userSet = getRecipients(choice.getModelObject());
}
};
rc.add(behavior);
add(rc);
choice.add(behavior);
add(choice);
}
private Set<User> getRecipients(String choiceInput) {
Set<User> recipients = new HashSet<User>();
if(choiceInput.equals(AUTHORS_ALL)) {
recipients.add(userDao.getUserByEmail("emil-siv@dsv.su.se"));
if(choiceInput.equals(AUTHORS_JUSTME)) {
recipients = mailFacade.addJustMe();
}
else if(choiceInput.equals(AUTHORS_ACTIVE_PROJECT)) {
}
else if(choiceInput.equals(AUTHORS_REFUSED)) {
recipients.add(userDao.getUserByEmail("emil-siv@dsv.su.se"));
//recipients.add(userDao.getUserByEmail("fred-fri@dsv.su.se"));
}
else if(choiceInput.equals(THESISSUPPORT)) {
recipients.add(userDao.getUserByEmail("emil-siv@dsv.su.se"));
//recipients.add(userDao.getUserByEmail("fred-fri@dsv.su.se"));
//recipients.add(userDao.getUserByEmail("robi-ekl@dsv.su.se"));
}
else if(choiceInput.equals(SUPERVISOR_ALL)) {
}

@ -0,0 +1,28 @@
package se.su.dsv.scipro.data.facade;
import java.util.HashSet;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
import se.su.dsv.scipro.data.dao.interfaces.UserDao;
import se.su.dsv.scipro.data.dataobjects.User;
@Service
public class MailFacade {
@Autowired
private UserDao userDao;
@Autowired
private ProjectDao projectDao;
public Set<User> addJustMe() {
Set<User> recipients = new HashSet<User>();
recipients.add(userDao.getUserByEmail("emil-siv@dsv.su.se"));
return recipients;
}
}