It should be possible to specify if you want deleted keywords or not in the panel showing unmatched project ideas..

This commit is contained in:
Tom Vahlman 2012-03-21 21:44:53 +01:00
parent 837c64ffba
commit c9442b98c0
2 changed files with 43 additions and 7 deletions
src/main/java/se/su/dsv/scipro/supervisor/panels

@ -28,7 +28,7 @@
<input style="width:300px;" wicket:id="areaKeyWordAC" /><br/>
</div>
<div class="span-14 last" >
<strong>Selected keywords and keyword types:</strong>
<label>Selected keywords:</label>
<ul wicket:id="keyWordsContainer">
<li wicket:id="keywordList">
<h5><span wicket:id="keyWord">[keyword]</span> (<span wicket:id="keyWordType">[keyWordType]</span>)</h5>
@ -39,7 +39,11 @@
<div class="span-22 last append-bottom">
<div class="span-3" wicket:id="projectClassPanel">
</div>
<div class="span-3">
<label>Include deleted keyword</label>
<input type="checkbox" wicket:id="includeDeleted" />
<span wicket:id="deletedLabel">[label]</span>
</div>
<div class="span-2">
<div><input wicket:id="filterButton" type="submit"/></div>

@ -6,6 +6,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
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;
@ -59,8 +60,12 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
@SpringBean
private ProjectClassDao projectClassDao;
private Label deletedLabel = new Label("deletedLabel", Boolean.FALSE.toString());
public SupervisorUnmatchedThesisPanel(String id, final Component feedBackPanel) {
super(id);
deletedLabel.setOutputMarkupId(true);
ProjectIdeaDataProvider allProvider = new ProjectIdeaDataProvider();
Params params = setUpParams(allProvider);
Label totalProjectIdeas = new Label("totalProjectIdeas", Integer.toString(allProvider.size()));
@ -189,9 +194,15 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
}
public AutoCompleteObjectField<Keyword, Long> createKeywordAC(final String wicketId, final KeywordTypeDao.TYPE keyWordType,
final List<Keyword> keywords, final Component feedBackPanel, final WebMarkupContainer keyWordsContainer) {
final List<Keyword> keywords, final Component feedBackPanel,
final WebMarkupContainer keyWordsContainer) {
return new AutoCompleteObjectField<Keyword, Long>(wicketId, Keyword.class) {
private static final long serialVersionUID = 7734889540424308421L;
boolean includeDeleted = false;
public void setIncludeDeleted(boolean includeDeleted) {
this.includeDeleted = includeDeleted;
}
@Override
public Keyword loadObject(Long keywordId) {
@ -222,8 +233,13 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
@Override
public Iterator<Keyword> getChoices(String input) {
if(deletedLabel.getDefaultModelObject().equals(Boolean.TRUE.toString())) {
includeDeleted = true;
} else if(deletedLabel.getDefaultModelObject().equals(Boolean.FALSE.toString())) {
includeDeleted = false;
}
final KeywordType kwtype = keywordTypeDao.findByType(keyWordType);
return keywordDao.getAutoCompleteCapableSupervisors(kwtype, input, true).iterator();
return keywordDao.getAutoCompleteCapableSupervisors(kwtype, input, includeDeleted).iterator();
}
@Override
@ -274,9 +290,9 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
keyWordsContainer.add(keywordListView);
add(keyWordsContainer);
AutoCompleteObjectField<Keyword, Long> regKeyWordAc = createKeywordAC("regKeyWordAC", KeywordTypeDao.TYPE.REGULAR, keywords, feedBackPanel, keyWordsContainer);
AutoCompleteObjectField<Keyword, Long> unitKeyWordAc = createKeywordAC("unitKeyWordAC", KeywordTypeDao.TYPE.UNIT, keywords, feedBackPanel, keyWordsContainer);
AutoCompleteObjectField<Keyword, Long> areaKeyWordAc = createKeywordAC("areaKeyWordAC", KeywordTypeDao.TYPE.RESEARCH_AREA, keywords, feedBackPanel, keyWordsContainer);
final AutoCompleteObjectField<Keyword, Long> regKeyWordAc = createKeywordAC("regKeyWordAC", KeywordTypeDao.TYPE.REGULAR, keywords, feedBackPanel, keyWordsContainer);
final AutoCompleteObjectField<Keyword, Long> unitKeyWordAc = createKeywordAC("unitKeyWordAC", KeywordTypeDao.TYPE.UNIT, keywords, feedBackPanel, keyWordsContainer);
final AutoCompleteObjectField<Keyword, Long> areaKeyWordAc = createKeywordAC("areaKeyWordAC", KeywordTypeDao.TYPE.RESEARCH_AREA, keywords, feedBackPanel, keyWordsContainer);
regKeyWordAc.setOutputMarkupId(true);
unitKeyWordAc.setOutputMarkupId(true);
areaKeyWordAc.setOutputMarkupId(true);
@ -294,6 +310,22 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
final FilterFormProjectClassPanel projectClassPanel = new FilterFormProjectClassPanel("projectClassPanel", new ArrayList<ProjectClass>());
projectClassPanel.setOutputMarkupId(true);
add(projectClassPanel);
final AjaxCheckBox includeDeletedChbx = new AjaxCheckBox("includeDeleted", new Model<Boolean>()) {
@Override
protected void onUpdate(AjaxRequestTarget target) {
if (getModelObject()) {
deletedLabel.setDefaultModel(new Model(Boolean.TRUE.toString()));
} else {
deletedLabel.setDefaultModel(new Model(Boolean.FALSE.toString()));
}
target.addComponent(deletedLabel);
}
};
add(includeDeletedChbx);
add(deletedLabel);
AjaxButton filterButton = new AjaxButton("filterButton", new Model<String>("Filter")) {
private static final long serialVersionUID = 874722659774465502L;