It should be possible to delete a selected keyword in the list of unmatch project ideas.

This commit is contained in:
Tom Vahlman 2012-03-22 17:17:11 +01:00
parent 7b88eb5982
commit b8003103d9
2 changed files with 37 additions and 10 deletions
src/main/java/se/su/dsv/scipro/supervisor/panels

@ -31,20 +31,26 @@
<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>
<h5>
<span wicket:id="keyWord">[keyword]</span> (<span wicket:id="keyWordType">[keyWordType]</span>)
<img wicket:id="deleteKeyWordIcon" />
</h5>
</li>
</ul>
</div>
</div>
<div class="span-22 last append-bottom">
<div class="span-22 last">
<div class="span-3" wicket:id="projectClassPanel">
</div>
<div class="span-3">
<label>Include deleted keyword</label>
<div class="span-12">
<label>Include deleted keywords:</label><br />
<input type="checkbox" wicket:id="includeDeleted" />
<span wicket:id="deletedLabel">[label]</span>
</div>
</div>
<div class="span-22 last append-bottom">
<div class="span-2">
<div><input wicket:id="filterButton" type="submit"/></div>
</div>

@ -27,6 +27,8 @@ import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.Student;
import se.su.dsv.scipro.data.facade.ProjectIdeaFacade;
import se.su.dsv.scipro.icons.AjaxActionIcon;
import se.su.dsv.scipro.icons.ImageObject;
import se.su.dsv.scipro.match.dao.interfaces.KeywordDao;
import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
import se.su.dsv.scipro.match.dao.interfaces.ProjectIdeaDao.Params;
@ -38,6 +40,7 @@ import se.su.dsv.scipro.match.dataprovider.ProjectIdeaDataProvider;
import se.su.dsv.scipro.match.panel.FilterFormProjectClassPanel;
import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles;
import se.su.dsv.scipro.util.JavascriptEventConfirmation;
import se.su.dsv.wicket.components.AutoCompleteObjectField;
import java.util.*;
@ -273,20 +276,37 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
titleField.setOutputMarkupId(true);
final List<Keyword> keywords = new ArrayList<Keyword>();
ListView<Keyword> keywordListView = new ListView<Keyword>("keywordList", new Model<ArrayList<Keyword>>()) {
final WebMarkupContainer keyWordsContainer = new WebMarkupContainer("keyWordsContainer");
keyWordsContainer.setOutputMarkupId(true);
final ListView<Keyword> keywordListView = new ListView<Keyword>("keywordList", new Model<ArrayList<Keyword>>()) {
private static final long serialVersionUID = 78442920410294688L;
@Override
protected void populateItem(ListItem<Keyword> keywordListItem) {
protected void populateItem(final ListItem<Keyword> keywordListItem) {
//To change body of implemented methods use File | Settings | File Templates.
Keyword keyword = keywordListItem.getModelObject();
final Keyword keyword = keywordListItem.getModelObject();
keywordListItem.add(new Label("keyWord",keyword.getKeyword()));
keywordListItem.add(new Label("keyWordType",keyword.getType().getName()));
AjaxActionIcon deleteKeyWordIcon = new AjaxActionIcon("deleteKeyWordIcon", ImageObject.SIXTEEN + ImageObject.DELETE2){
private static final long serialVersionUID = -8732262906336014797L;
@Override
protected void onClick(AjaxRequestTarget target) {
keywordListItem.remove();
Session.get().info("Removed the keyword " + keyword + " from the search terms.");
final List<Keyword> keywordList = ((ListView) keyWordsContainer.get("keywordList")).getModelObject();
if(keywordList.contains(keyword)) {
keywordList.remove(keyword);
}
target.addComponent(keyWordsContainer);
target.addComponent(feedBackPanel);
}
};
deleteKeyWordIcon.add(new JavascriptEventConfirmation("onclick", "Are you sure you want to delete the keyword " + keyword + "?"));
keywordListItem.add(deleteKeyWordIcon);
}
};
final WebMarkupContainer keyWordsContainer = new WebMarkupContainer("keyWordsContainer");
keyWordsContainer.setOutputMarkupId(true);
keywordListView.setOutputMarkupId(true);
keyWordsContainer.add(keywordListView);
add(keyWordsContainer);
@ -358,6 +378,7 @@ public class SupervisorUnmatchedThesisPanel extends Panel {
((ListView) keyWordsContainer.get("keywordList")).getModelObject().clear();
titleField.setModelObject(null);
projectClassPanel.getSelectedprojectClasses().clear();
target.addComponent(feedBackPanel);
target.addComponent(keyWordsContainer);
target.addComponent(titleField);
target.addComponent(projectClassPanel);