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;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.model.Model;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
import se.su.dsv.scipro.security.auth.Authorization;
@ -20,12 +22,11 @@ public class SupervisorProfilePage extends AbstractSupervisorPage {
public SupervisorProfilePage(final PageParameters pp){
super(pp);
//add(factory.createUserProfilePanelForUser("supervisorProfile",getUser()));
if (supervisorDao.getFrom(e)){
}get
else {
if (supervisorDao.getFrom(getUser()) == null){
add(new EmptyPanel("supervisorProfile"));
}
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>
<form wicket:id="form">
<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">
<span wicket:id="languagelabel"></span> <input type="checkbox"
wicket:id="languagecheckbox" />
</div>
</div>
<div class="append-bottom">
<label>Regular:</label>
<div wicket:id="regularlistview">
<span wicket:id="regularlabel"></span> <input type="checkbox"
wicket:id="regularcheckbox" />
<label>Research areas: </label>
<div wicket:id="arealistview">
<span wicket:id="arealabel"></span> <input type="checkbox"
wicket:id="areacheckbox" />
</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>
</wicket:panel>
</body>

@ -6,6 +6,7 @@ import java.util.Set;
import org.apache.wicket.ajax.AjaxRequestTarget;
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.form.Form;
import org.apache.wicket.markup.html.list.ListItem;
@ -29,40 +30,41 @@ import se.su.dsv.scipro.match.dataobject.KeywordType;
* Time: 3:07 PM
*/
public class ProfilePanel extends Panel {
private static final long serialVersionUID = 1L;
public ProfilePanel(String id, Model<Employee> employeeModel) {
super(id);
add(new ProfileForm("form", employeeModel));
}
private WebMarkupContainer regularContainer;
public class ProfileForm extends Form<Void> {
private static final long serialVersionUID = 1L;
@SpringBean
LanguageDao languageDao;
@SpringBean
SupervisorDao employeeDao;
@SpringBean
KeywordTypeDao keywordTypeDao;
@SpringBean
KeywordDao keywordDao;
public ProfileForm(String id, final Model<Employee> employeeModel) {
super(id);
public ProfilePanel(String id, Model<Employee> employeeModel) {
super(id);
add(new ProfileForm("form", employeeModel));
}
public class ProfileForm extends Form<Void> {
private static final long serialVersionUID = 1L;
@SpringBean
LanguageDao languageDao;
@SpringBean
SupervisorDao employeeDao;
@SpringBean
KeywordTypeDao keywordTypeDao;
@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;
@Override
protected void populateItem(ListItem<Language> item) {
final Language l = item.getModelObject();
item.add(new Label("languagelabel", l.getName()));
item.add(new AjaxCheckBox("languagecheckbox", new Model<Boolean>(employeeModel.getObject().getCapabilities().getLanguages().contains(l))){
protected void populateItem(ListItem<Language> item) {
final Language l = item.getModelObject();
item.add(new Label("languagelabel", l.getName()));
item.add(new AjaxCheckBox("languagecheckbox", new Model<Boolean>(employeeModel.getObject().getCapabilities().getLanguages().contains(l))){
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
@ -78,26 +80,32 @@ public class ProfilePanel extends Panel {
employeeModel.getObject().getCapabilities().setLanguages(languages);
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
}
});
}
};
add(languageListView);
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;
});
}
};
add(languageListView);
final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT);
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."));
}
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
protected void populateItem(ListItem<Keyword> item) {
final Keyword kw = item.getModelObject();
item.add(new Label("regularlabel", kw.getKeyword()));
item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){
item.add(new Label("arealabel", kw.getKeyword()));
item.add(new AjaxCheckBox("areacheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(areaType).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());
@ -109,16 +117,89 @@ public class ProfilePanel extends Panel {
employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
target.addComponent(regularContainer);
}
});
}
};
add(regularListView);
// final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT);
}
}
};
add(areaListView);
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);
}
}
}