almost finished, just need to put the active on the right an inactive on the left

This commit is contained in:
Fredrik Friis 2012-02-27 10:48:39 +09:00
parent 44b25c139e
commit 50069ca7eb
3 changed files with 162 additions and 61 deletions
src/main/java/se/su/dsv/scipro/supervisor

@ -1,8 +1,10 @@
package se.su.dsv.scipro.supervisor.pages; package se.su.dsv.scipro.supervisor.pages;
import org.apache.wicket.PageParameters; import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.model.Model; import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean; import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.data.dataobjects.Employee; import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao; import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
import se.su.dsv.scipro.security.auth.Authorization; import se.su.dsv.scipro.security.auth.Authorization;
@ -20,12 +22,11 @@ public class SupervisorProfilePage extends AbstractSupervisorPage {
public SupervisorProfilePage(final PageParameters pp){ public SupervisorProfilePage(final PageParameters pp){
super(pp); super(pp);
//add(factory.createUserProfilePanelForUser("supervisorProfile",getUser())); //add(factory.createUserProfilePanelForUser("supervisorProfile",getUser()));
if (supervisorDao.getFrom(e)){ if (supervisorDao.getFrom(getUser()) == null){
add(new EmptyPanel("supervisorProfile"));
}get }
else { else {
add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser()))));
} }
add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser()))));
} }
} }

@ -5,20 +5,39 @@
<wicket:panel> <wicket:panel>
<form wicket:id="form"> <form wicket:id="form">
<div class="append-bottom"> <div class="append-bottom">
<label>Languages:</label> <label>Unit:</label>
<div wicket:id="unitlabel"></div>
</div>
<div class="append-bottom">
<label>Languages: </label>
<div wicket:id="languagelistview"> <div wicket:id="languagelistview">
<span wicket:id="languagelabel"></span> <input type="checkbox" <span wicket:id="languagelabel"></span> <input type="checkbox"
wicket:id="languagecheckbox" /> wicket:id="languagecheckbox" />
</div> </div>
</div> </div>
<div class="append-bottom"> <div class="append-bottom">
<label>Regular:</label> <label>Research areas: </label>
<div wicket:id="regularlistview"> <div wicket:id="arealistview">
<span wicket:id="regularlabel"></span> <input type="checkbox" <span wicket:id="arealabel"></span> <input type="checkbox"
wicket:id="regularcheckbox" /> wicket:id="areacheckbox" />
</div> </div>
</div> </div>
<div wicket:id="regularcontainer">
<div class="append-bottom">
<label>Regular: </label>
<div wicket:id="regularlistview">
<span wicket:id="regularlabel"></span> <input type="checkbox"
wicket:id="regularcheckbox" />
</div>
<div wicket:id="regularlistview2">
<span wicket:id="regularlabel"></span> <input type="checkbox"
wicket:id="regularcheckbox" />
</div>
</div>
</div>
</form> </form>
</wicket:panel> </wicket:panel>
</body> </body>

@ -6,6 +6,7 @@ import java.util.Set;
import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox; import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListItem;
@ -29,40 +30,41 @@ import se.su.dsv.scipro.match.dataobject.KeywordType;
* Time: 3:07 PM * Time: 3:07 PM
*/ */
public class ProfilePanel extends Panel { public class ProfilePanel extends Panel {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private WebMarkupContainer regularContainer;
public ProfilePanel(String id, Model<Employee> employeeModel) {
super(id);
add(new ProfileForm("form", employeeModel));
}
public class ProfileForm extends Form<Void> { public ProfilePanel(String id, Model<Employee> employeeModel) {
super(id);
private static final long serialVersionUID = 1L; add(new ProfileForm("form", employeeModel));
}
@SpringBean
LanguageDao languageDao; public class ProfileForm extends Form<Void> {
@SpringBean
SupervisorDao employeeDao; private static final long serialVersionUID = 1L;
@SpringBean
KeywordTypeDao keywordTypeDao; @SpringBean
@SpringBean LanguageDao languageDao;
KeywordDao keywordDao; @SpringBean
SupervisorDao employeeDao;
@SpringBean
public ProfileForm(String id, final Model<Employee> employeeModel) { KeywordTypeDao keywordTypeDao;
super(id); @SpringBean
KeywordDao keywordDao;
public ProfileForm(String id, final Model<Employee> employeeModel) {
super(id);
ListView<Language> languageListView = new ListView<Language>("languagelistview", languageDao.findAll()) {
ListView<Language> languageListView = new ListView<Language>("languagelistview", languageDao.findAll()) {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Override @Override
protected void populateItem(ListItem<Language> item) { protected void populateItem(ListItem<Language> item) {
final Language l = item.getModelObject(); final Language l = item.getModelObject();
item.add(new Label("languagelabel", l.getName())); item.add(new Label("languagelabel", l.getName()));
item.add(new AjaxCheckBox("languagecheckbox", new Model<Boolean>(employeeModel.getObject().getCapabilities().getLanguages().contains(l))){ item.add(new AjaxCheckBox("languagecheckbox", new Model<Boolean>(employeeModel.getObject().getCapabilities().getLanguages().contains(l))){
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Override @Override
protected void onUpdate(AjaxRequestTarget target) { protected void onUpdate(AjaxRequestTarget target) {
@ -78,26 +80,32 @@ public class ProfilePanel extends Panel {
employeeModel.getObject().getCapabilities().setLanguages(languages); employeeModel.getObject().getCapabilities().setLanguages(languages);
employeeModel.setObject(employeeDao.save(employeeModel.getObject())); employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
} }
}); });
} }
}; };
add(languageListView); add(languageListView);
final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT);
final KeywordType regularType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR); if (employeeModel.getObject().getKeywords().getFiltered(unitType) == null || employeeModel.getObject().getKeywords().getFiltered(unitType).isEmpty()){
add(new Label("unitlabel", "You aren't registered under any existing/active unit in Daisy. Please make sure you are registered under an existing/active unit in Daisy ASAP."));
ListView<Keyword> regularListView = new ListView<Keyword>("regularlistview", new ArrayList<Keyword>(keywordDao.getKeywords(regularType, false))){ }
private static final long serialVersionUID = 1L; else {
add(new Label("unitlabel", employeeModel.getObject().getKeywords().getFiltered(unitType).get(0).getKeyword() + " (imported from Daisy)"));
}
final KeywordType areaType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.RESEARCH_AREA);
ListView<Keyword> areaListView = new ListView<Keyword>("arealistview", new ArrayList<Keyword>(keywordDao.getKeywords(areaType, false))){
private static final long serialVersionUID = 1L;
@Override @Override
protected void populateItem(ListItem<Keyword> item) { protected void populateItem(ListItem<Keyword> item) {
final Keyword kw = item.getModelObject(); final Keyword kw = item.getModelObject();
item.add(new Label("regularlabel", kw.getKeyword())); item.add(new Label("arealabel", kw.getKeyword()));
item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){ item.add(new AjaxCheckBox("areacheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(areaType).contains(kw))){
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Override @Override
protected void onUpdate(AjaxRequestTarget target) { protected void onUpdate(AjaxRequestTarget target) {
Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll()); Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
if (getModelObject()==true){ if (getModelObject()==true){
oldKeywords.add(kw); oldKeywords.add(kw);
System.out.println("added regular " + kw.getKeyword()); System.out.println("added regular " + kw.getKeyword());
@ -109,16 +117,89 @@ public class ProfilePanel extends Panel {
employeeModel.getObject().getKeywords().setKeywords(oldKeywords); employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
employeeModel.setObject(employeeDao.save(employeeModel.getObject())); employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
target.addComponent(regularContainer);
} }
}); });
} }
}; };
add(regularListView); add(areaListView);
// final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT); regularContainer = new WebMarkupContainer("regularcontainer");
regularContainer.setOutputMarkupId(true);
add(regularContainer);
} final KeywordType regularType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR);
}
ListView<Keyword> regularListView = new ListView<Keyword>("regularlistview", new ArrayList<Keyword>(keywordDao.getKeywords(regularType, false))){
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Keyword> item) {
final Keyword kw = item.getModelObject();
if(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw)){
item.setVisible(false);
}
item.add(new Label("regularlabel", kw.getKeyword()));
item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
if (getModelObject()==true){
oldKeywords.add(kw);
System.out.println("added regular " + kw.getKeyword());
}
else {
oldKeywords.remove(kw);
System.out.println("removed regular " + kw.getKeyword());
}
employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
target.addComponent(regularContainer);
}
});
}
};
regularContainer.add(regularListView);
ListView<Keyword> regularListView2 = new ListView<Keyword>("regularlistview2", new ArrayList<Keyword>(keywordDao.getKeywords(regularType, false))){
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Keyword> item) {
final Keyword kw = item.getModelObject();
if(!employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw)){
item.setVisible(false);
}
item.add(new Label("regularlabel", kw.getKeyword()));
item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
if (getModelObject()==true){
oldKeywords.add(kw);
System.out.println("added regular " + kw.getKeyword());
}
else {
oldKeywords.remove(kw);
System.out.println("removed regular " + kw.getKeyword());
}
employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
target.addComponent(regularContainer);
}
});
}
};
regularContainer.add(regularListView2);
}
}
} }