some fixes to profile panel

This commit is contained in:
Fredrik Friis 2012-02-28 09:02:40 +09:00
parent 8a32e4a763
commit 847c07c919
2 changed files with 49 additions and 42 deletions
src/main/java/se/su/dsv/scipro/supervisor/panels

@ -8,16 +8,22 @@
<label>Unit: (imported from Daisy)</label> <label>Unit: (imported from Daisy)</label>
<div wicket:id="unitlabel"></div> <div wicket:id="unitlabel"></div>
</div> </div>
<div class="append-bottom"> <div class="append-bottom">
<label>Research areas: (imported from Daisy)</label> <label>Research areas: (imported from Daisy)</label>
<div wicket:id="emptylabel"></div> <div wicket:id="emptylabel"></div>
<div wicket:id="arealistview"> <div wicket:id="arealistview">
<span wicket:id="arealabel"></span> <span wicket:id="arealabel"></span>
<!-- <input type="checkbox" wicket:id="areacheckbox" /> --> <!-- <input type="checkbox" wicket:id="areacheckbox" /> -->
</div> </div>
</div> </div>
<div class="info-box rounded-box last">
<p>
<b>All changes to you profile made below are saved automatically as you go
using AJAX.</b>
</p>
</div>
<div class="append-bottom"> <div class="append-bottom">
<label>Select what languages you can supervise in: </label> <label>Select what languages you can supervise in: </label>
<div wicket:id="languagelistview"> <div wicket:id="languagelistview">
@ -25,32 +31,25 @@
wicket:id="languagecheckbox" /> wicket:id="languagecheckbox" />
</div> </div>
</div> </div>
<div>
<div><label>Select keywords: </label></div> <label>Select keywords: </label>
</div>
<div class="span-22 last" wicket:id="regularcontainer"> <div class="span-22 last" wicket:id="regularcontainer">
<div class="span-11"> <div class="span-11">
<label>Available</label> <label>Available</label>
<div wicket:id="regularlistview"> <div wicket:id="regularlistview">
<span wicket:id="regularlabel"></span> <input type="checkbox" <span wicket:id="regularlabel"></span> <input type="checkbox"
wicket:id="regularcheckbox" /> wicket:id="regularcheckbox" />
</div> </div>
</div> </div>
<div class="span-11 last"> <div class="span-11 last">
<label>Selected</label> <label>Selected</label>
<div wicket:id="regularlistview2"> <div wicket:id="regularlistview2">
<span wicket:id="regularlabel"></span> <input type="checkbox" <span wicket:id="regularlabel"></span> <input type="checkbox"
wicket:id="regularcheckbox" /> wicket:id="regularcheckbox" />
</div> </div>
</div> </div>
</div> </div>
</form> </form>
</wicket:panel> </wicket:panel>
</body> </body>

@ -94,9 +94,17 @@ public class ProfilePanel extends Panel {
} }
final KeywordType areaType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.RESEARCH_AREA); final KeywordType areaType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.RESEARCH_AREA);
add(new Label("emptylabel", "You do not have any active/existing research areas selected in Daisy. Please make sure that you select at least one active/existing research area in Daisy ASAP.").setVisible(employeeModel.getObject().getKeywords().getFiltered(areaType) == null || employeeModel.getObject().getKeywords().getFiltered(areaType).isEmpty())); boolean atLeastOneActive = false;
for (Keyword kw : employeeModel.getObject().getKeywords().getFiltered(areaType)){
if (!kw.isDeleted()){
atLeastOneActive = true;
break;
}
}
add(new Label("emptylabel", "You do not have any active/existing research areas selected in Daisy. Please make sure that you select at least one active/existing research area in Daisy ASAP.").setVisible(employeeModel.getObject().getKeywords().getFiltered(areaType) == null || employeeModel.getObject().getKeywords().getFiltered(areaType).isEmpty() || !atLeastOneActive));
ListView<Keyword> areaListView = new ListView<Keyword>("arealistview", new ArrayList<Keyword>(keywordDao.getKeywords(areaType, false))){ ListView<Keyword> areaListView = new ListView<Keyword>("arealistview", new ArrayList<Keyword>(keywordDao.getKeywords(areaType, false))){
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Override @Override
@ -106,27 +114,27 @@ public class ProfilePanel extends Panel {
if (!employeeModel.getObject().getKeywords().getFiltered(areaType).contains(kw)){ if (!employeeModel.getObject().getKeywords().getFiltered(areaType).contains(kw)){
item.setVisible(false); item.setVisible(false);
} }
item.add(new AjaxCheckBox("areacheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(areaType).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());
} // }
else { // else {
oldKeywords.remove(kw); // oldKeywords.remove(kw);
System.out.println("removed regular " + kw.getKeyword()); // System.out.println("removed regular " + kw.getKeyword());
} // }
//
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); // target.addComponent(regularContainer);
} // }
}); // });
} }
}; };
add(areaListView); add(areaListView);