Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
f10718e5b4
src
main/java/se/su/dsv/scipro
admin/panels/match
match
dao
dataprovider
panel
project/panels
test/java/se/su/dsv/scipro/match/dao
@ -58,7 +58,7 @@ public class ManageKeywordPanel extends Panel {
|
|||||||
dialog.add(new EmptyPanel("dialogContent"));
|
dialog.add(new EmptyPanel("dialogContent"));
|
||||||
dialog.setOutputMarkupId(true);
|
dialog.setOutputMarkupId(true);
|
||||||
|
|
||||||
keywordsDataProvider = new KeywordsDataProvider(null, keywordType);
|
keywordsDataProvider = new KeywordsDataProvider(keywordType, true);
|
||||||
|
|
||||||
tableContainer = new WebMarkupContainer("table");
|
tableContainer = new WebMarkupContainer("table");
|
||||||
tableContainer.setOutputMarkupId(true);
|
tableContainer.setOutputMarkupId(true);
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package se.su.dsv.scipro.match.dao.interfaces;
|
package se.su.dsv.scipro.match.dao.interfaces;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import se.su.dsv.scipro.data.dao.interfaces.Dao;
|
||||||
import se.su.dsv.scipro.data.dao.interfaces.LazyDeleteDao;
|
import se.su.dsv.scipro.data.dao.interfaces.LazyDeleteDao;
|
||||||
import se.su.dsv.scipro.match.dataobject.Keyword;
|
import se.su.dsv.scipro.match.dataobject.Keyword;
|
||||||
import se.su.dsv.scipro.match.dataobject.KeywordType;
|
import se.su.dsv.scipro.match.dataobject.KeywordType;
|
||||||
@ -10,6 +12,7 @@ import se.su.dsv.scipro.match.dataobject.KeywordType;
|
|||||||
public interface KeywordDao extends LazyDeleteDao<Keyword>{
|
public interface KeywordDao extends LazyDeleteDao<Keyword>{
|
||||||
|
|
||||||
Set<Keyword> getKeywords(KeywordType type, boolean includeDeleted);
|
Set<Keyword> getKeywords(KeywordType type, boolean includeDeleted);
|
||||||
|
List<Keyword> getKeywordList(Params params);
|
||||||
|
|
||||||
public List<Keyword> findAllFromType(KeywordType kt, boolean includeDeleted);
|
public List<Keyword> findAllFromType(KeywordType kt, boolean includeDeleted);
|
||||||
|
|
||||||
@ -17,4 +20,41 @@ public interface KeywordDao extends LazyDeleteDao<Keyword>{
|
|||||||
Keyword getKeywordByNameAndType(String keywordName, KeywordType type);
|
Keyword getKeywordByNameAndType(String keywordName, KeywordType type);
|
||||||
|
|
||||||
|
|
||||||
|
public static class Params extends Dao.SortableParams implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5317030582030781723L;
|
||||||
|
|
||||||
|
private String keyword;
|
||||||
|
private KeywordType type;
|
||||||
|
private boolean includeDeleted = false;
|
||||||
|
|
||||||
|
public Params() {
|
||||||
|
//Sort keywords on their name in ascending order as default when using Params
|
||||||
|
setSortOn("keyword", Sort.ASCENDING);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKeyword(String keyword) {
|
||||||
|
this.keyword = keyword;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKeyword() {
|
||||||
|
return keyword;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(KeywordType type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public KeywordType getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIncludeDeleted(boolean includeDeleted) {
|
||||||
|
this.includeDeleted = includeDeleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIncludeDeleted() {
|
||||||
|
return includeDeleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.springframework.orm.jpa.JpaCallback;
|
|||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import se.su.dsv.scipro.data.dao.jpa.AbstractQuerySet;
|
||||||
import se.su.dsv.scipro.data.dao.jpa.AbstractSortableQuerySet;
|
import se.su.dsv.scipro.data.dao.jpa.AbstractSortableQuerySet;
|
||||||
import se.su.dsv.scipro.data.dao.jpa.LazyDeleteAbstractDaoJPAImp;
|
import se.su.dsv.scipro.data.dao.jpa.LazyDeleteAbstractDaoJPAImp;
|
||||||
import se.su.dsv.scipro.data.dao.jpa.Query;
|
import se.su.dsv.scipro.data.dao.jpa.Query;
|
||||||
@ -41,6 +42,18 @@ public class KeywordDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<Keyword> imple
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Keyword> getKeywordList(Params params) {
|
||||||
|
return getJpaTemplate().execute(createQuerySet(params).fetchCallback());
|
||||||
|
}
|
||||||
|
|
||||||
|
private AbstractQuerySet<Keyword> createQuerySet(Params params) {
|
||||||
|
return new QuerySet()
|
||||||
|
.type(params.getType())
|
||||||
|
.includeDeleted(params.isIncludeDeleted())
|
||||||
|
.sort(params);
|
||||||
|
}
|
||||||
|
|
||||||
private static class QuerySet extends AbstractSortableQuerySet<Keyword> {
|
private static class QuerySet extends AbstractSortableQuerySet<Keyword> {
|
||||||
public QuerySet() {
|
public QuerySet() {
|
||||||
super(Keyword.class);
|
super(Keyword.class);
|
||||||
@ -55,6 +68,14 @@ public class KeywordDaoJPAImp extends LazyDeleteAbstractDaoJPAImp<Keyword> imple
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public QuerySet includeDeleted(boolean includeDeleted) {
|
||||||
|
if(!includeDeleted) {
|
||||||
|
getQuery().combine(
|
||||||
|
new Query().where("k.deleted = false"));
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public QuerySet noDeleted() {
|
public QuerySet noDeleted() {
|
||||||
getQuery().combine(
|
getQuery().combine(
|
||||||
new Query().where("k.deleted = false"));
|
new Query().where("k.deleted = false"));
|
||||||
|
@ -5,6 +5,7 @@ import java.util.Iterator;
|
|||||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||||
|
|
||||||
import se.su.dsv.scipro.data.dao.interfaces.Dao;
|
import se.su.dsv.scipro.data.dao.interfaces.Dao;
|
||||||
|
import se.su.dsv.scipro.data.dao.interfaces.Dao.SortableParams.Sort;
|
||||||
import se.su.dsv.scipro.dataproviders.SortSpecifier;
|
import se.su.dsv.scipro.dataproviders.SortSpecifier;
|
||||||
import se.su.dsv.scipro.dataproviders.SortableDataProvider;
|
import se.su.dsv.scipro.dataproviders.SortableDataProvider;
|
||||||
import se.su.dsv.scipro.match.dao.interfaces.KeywordDao;
|
import se.su.dsv.scipro.match.dao.interfaces.KeywordDao;
|
||||||
@ -15,29 +16,34 @@ public class KeywordsDataProvider extends SortableDataProvider<Keyword>{
|
|||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private KeywordType keywordType = null;
|
|
||||||
|
|
||||||
@SpringBean
|
@SpringBean
|
||||||
protected KeywordDao keywordDao;
|
protected KeywordDao keywordDao;
|
||||||
|
private KeywordDao.Params params;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Dao<Keyword> getDao() {
|
protected Dao<Keyword> getDao() {
|
||||||
return keywordDao;
|
return keywordDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeywordsDataProvider(final SortSpecifier sortSpecifier, KeywordType keywordType) {
|
public KeywordsDataProvider(KeywordType keywordType, boolean includeDeleted) {
|
||||||
|
this(null, keywordType, includeDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
|
public KeywordsDataProvider(final SortSpecifier sortSpecifier, KeywordType keywordType, boolean includeDeleted) {
|
||||||
super(sortSpecifier, Keyword.class);
|
super(sortSpecifier, Keyword.class);
|
||||||
this.keywordType = keywordType;
|
params = new KeywordDao.Params();
|
||||||
|
params.setIncludeDeleted(includeDeleted);
|
||||||
|
params.setType(keywordType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Iterator<Keyword> iterator(int first, int count) {
|
public Iterator<Keyword> iterator(int first, int count) {
|
||||||
Iterator<Keyword> iter = keywordDao.getKeywords(keywordType, true).iterator();
|
Iterator<Keyword> iter = keywordDao.getKeywordList(params).iterator();
|
||||||
return iter;
|
return iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int size() {
|
public int size() {
|
||||||
return keywordDao.getKeywords(keywordType, true).size();
|
return keywordDao.getKeywordList(params).size();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -47,8 +47,10 @@ public class FilterFormKeywordPanel extends Panel {
|
|||||||
|
|
||||||
|
|
||||||
KeywordType kwType = keywordTypeDao.findByType(type);
|
KeywordType kwType = keywordTypeDao.findByType(type);
|
||||||
Set<Keyword> tmpWords = keywordDao.getKeywords(kwType, true);
|
KeywordDao.Params params = new KeywordDao.Params();
|
||||||
keywords = new ArrayList<Keyword>(tmpWords);
|
params.setType(kwType);
|
||||||
|
params.setIncludeDeleted(true);
|
||||||
|
keywords = keywordDao.getKeywordList(params);
|
||||||
CompoundPropertyModel<List<Keyword>> keyWordModel = new CompoundPropertyModel<List<Keyword>>(keywords);
|
CompoundPropertyModel<List<Keyword>> keyWordModel = new CompoundPropertyModel<List<Keyword>>(keywords);
|
||||||
|
|
||||||
checkGroup = new CheckGroup<Keyword>("checkGroup", new ArrayList<Keyword>());
|
checkGroup = new CheckGroup<Keyword>("checkGroup", new ArrayList<Keyword>());
|
||||||
|
@ -133,8 +133,9 @@ public class KeywordSelectionPanel extends Panel {
|
|||||||
if (keywordProvider.getObject() != null) {
|
if (keywordProvider.getObject() != null) {
|
||||||
ideaAreaKeywords = new ArrayList<Keyword>(keywordProvider.getObject().getKeywords().getFiltered(area));
|
ideaAreaKeywords = new ArrayList<Keyword>(keywordProvider.getObject().getKeywords().getFiltered(area));
|
||||||
}
|
}
|
||||||
Set<Keyword> areaKeySet = keywordDao.getKeywords(area, false);
|
KeywordDao.Params params = new KeywordDao.Params();
|
||||||
List<Keyword> areaKeyList = new ArrayList<Keyword>(areaKeySet);
|
params.setType(area);
|
||||||
|
List<Keyword> areaKeyList = keywordDao.getKeywordList(params);
|
||||||
CompoundPropertyModel<List<Keyword>> listModel = new CompoundPropertyModel<List<Keyword>>(areaKeyList);
|
CompoundPropertyModel<List<Keyword>> listModel = new CompoundPropertyModel<List<Keyword>>(areaKeyList);
|
||||||
|
|
||||||
researchAreaGroup = new CheckGroup<Keyword>("researchAreaGroup", ideaAreaKeywords);
|
researchAreaGroup = new CheckGroup<Keyword>("researchAreaGroup", ideaAreaKeywords);
|
||||||
@ -162,13 +163,18 @@ public class KeywordSelectionPanel extends Panel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void addRegularKeywordSelection() {
|
private void addRegularKeywordSelection() {
|
||||||
KeywordType keyword = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR);
|
KeywordType keywordType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR);
|
||||||
List<Keyword> selectedWords = keywordProvider.getObject().getKeywords().getFiltered(keyword);
|
List<Keyword> selectedWords = keywordProvider.getObject().getKeywords().getFiltered(keywordType);
|
||||||
ideaKeywords = new ArrayList<Keyword>();
|
ideaKeywords = new ArrayList<Keyword>();
|
||||||
if(!selectedWords.isEmpty())
|
if(!selectedWords.isEmpty())
|
||||||
ideaKeywords = new ArrayList<Keyword>(selectedWords);
|
ideaKeywords = new ArrayList<Keyword>(selectedWords);
|
||||||
|
|
||||||
Set<Keyword> keySet = keywordDao.getKeywords(keyword, false);
|
KeywordDao.Params params = new KeywordDao.Params();
|
||||||
|
params.setType(keywordType);
|
||||||
|
|
||||||
|
List<Keyword> keywordList = keywordDao.getKeywordList(params);
|
||||||
|
Set<Keyword> keySet = new HashSet<Keyword>(keywordList);
|
||||||
|
//Set<Keyword> keySet = keywordDao.getKeywords(keywordType, false);
|
||||||
regularKeywordsPalette = new Palette<Keyword>("keywordPalette",
|
regularKeywordsPalette = new Palette<Keyword>("keywordPalette",
|
||||||
new ListModel<Keyword>(ideaKeywords),
|
new ListModel<Keyword>(ideaKeywords),
|
||||||
new CollectionModel<Keyword>(keySet),
|
new CollectionModel<Keyword>(keySet),
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package se.su.dsv.scipro.match.dao;
|
package se.su.dsv.scipro.match.dao;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
@ -70,6 +71,12 @@ public class TestKeywordDao {
|
|||||||
Set<Keyword> keywords = target.getKeywords(standard, true);
|
Set<Keyword> keywords = target.getKeywords(standard, true);
|
||||||
Assert.assertEquals(new HashSet<Keyword>(
|
Assert.assertEquals(new HashSet<Keyword>(
|
||||||
Arrays.asList(new Keyword[] { keyword1, keyword2 })), keywords);
|
Arrays.asList(new Keyword[] { keyword1, keyword2 })), keywords);
|
||||||
|
|
||||||
|
KeywordDao.Params params = new KeywordDao.Params();
|
||||||
|
params.setType(standard);
|
||||||
|
|
||||||
|
List<Keyword> keywordList = target.getKeywordList(params);
|
||||||
|
Assert.assertEquals(Arrays.asList(new Keyword[]{keyword1, keyword2}), keywordList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user