Merge branch 'datatable' into develop
This commit is contained in:
commit
6edb37aed5
src/main/java/se/su/dsv/scipro
admin/pages
data/dataobjects
datatables/checklist
CheckListTemplateDataPanel.htmlCheckListTemplateDataPanel.javaClickableOrderColumn$LinkPanel.htmlClickableOrderColumn.javaClickableTitleColumn$LinkPanel.htmlClickableTitleColumn.java
springdata
@ -7,15 +7,14 @@
|
||||
<body>
|
||||
<wicket:extend>
|
||||
<div class="span-24 last">
|
||||
<!-- Left column -->
|
||||
<!-- <div class="span-11 last"> -->
|
||||
<!-- <div wicket:id="cCLPanel"></div> -->
|
||||
<!-- </div> -->
|
||||
<!-- Right column -->
|
||||
<!-- <div class="span-11 last"> -->
|
||||
<div wicket:id="listCLPanel"></div>
|
||||
<!-- <div wicket:id="flcltp"></div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<div wicket:id="dialog">
|
||||
<div wicket:id="editpanel"></div>
|
||||
</div>
|
||||
|
||||
<!--<div wicket:id="listCLPanel"></div>-->
|
||||
<div wicket:id="datapanel"></div>
|
||||
|
||||
</div>
|
||||
</wicket:extend>
|
||||
</body>
|
||||
|
@ -2,27 +2,61 @@ package se.su.dsv.scipro.admin.pages;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
|
||||
import se.su.dsv.scipro.admin.panels.AdminListCheckListTemplatePanel;
|
||||
import se.su.dsv.scipro.data.enums.CheckListRole;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.odlabs.wiquery.ui.dialog.Dialog;
|
||||
import se.su.dsv.scipro.checklists.panels.FunctionalEditChecklistTemplatePanel;
|
||||
import se.su.dsv.scipro.checklists.panels.FunctionalListCheckListTemplatePanel;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.datatables.checklist.CheckListTemplateDataPanel;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
|
||||
/**
|
||||
* @author Fredrik Norberg - fnorbe@dsv.su.se
|
||||
*
|
||||
*/
|
||||
|
||||
@Authorization(authorizedRoles={Roles.SYSADMIN, Roles.ADMIN})
|
||||
@Authorization(authorizedRoles = {Roles.SYSADMIN, Roles.ADMIN})
|
||||
public class AdminCheckListPage extends AbstractAdminPage {
|
||||
|
||||
|
||||
public static final String MAIN_MENU_LABEL = "CheckLists";
|
||||
|
||||
public AdminCheckListPage(PageParameters pp) {
|
||||
super(pp);
|
||||
// add(new CreateChecklistTemplatePanel("cCLPanel"));
|
||||
add(new AdminListCheckListTemplatePanel("listCLPanel", pp, CheckListRole.ADMIN));
|
||||
// add(new FunctionalListCheckListTemplatePanel("flcltp"));
|
||||
}
|
||||
|
||||
public static final String MAIN_MENU_LABEL = "CheckLists";
|
||||
private Dialog dialog;
|
||||
private CheckListTemplateDataPanel cltdp;
|
||||
|
||||
public AdminCheckListPage(PageParameters pp) {
|
||||
super(pp);
|
||||
|
||||
// add(new AdminListCheckListTemplatePanel("listCLPanel", pp, CheckListRole.ADMIN));
|
||||
|
||||
|
||||
dialog = new Dialog("dialog");
|
||||
dialog.setModal(true);
|
||||
dialog.setAutoOpen(false);
|
||||
dialog.setWidth(550);
|
||||
dialog.setHeight(700);
|
||||
dialog.add(new EmptyPanel("editpanel"));
|
||||
add(dialog);
|
||||
|
||||
|
||||
add(cltdp = new CheckListTemplateDataPanel("datapanel", true) {
|
||||
@Override
|
||||
public void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
|
||||
System.out.println(clicked.getObject().getCreator());
|
||||
dialog.replace(new FunctionalEditChecklistTemplatePanel("editpanel", clicked.getObject()) {
|
||||
@Override
|
||||
public void onUpdate(AjaxRequestTarget target) {
|
||||
dialog.close(target);
|
||||
target.addComponent(cltdp);
|
||||
}
|
||||
});
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
}
|
||||
});
|
||||
cltdp.setOutputMarkupId(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -83,6 +83,10 @@ public class ChecklistCategory extends DomainObject{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return categoryName;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div>Filter by title or creator:</div>
|
||||
<div wicket:id="filterStringPanel"></div>
|
||||
<div>Rows per page: <span wicket:id="numberDropDown"></span></div>
|
||||
<table wicket:id="datatable"></table>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,151 @@
|
||||
package se.su.dsv.scipro.datatables.checklist;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.reusable.AjaxDropDown;
|
||||
import se.su.dsv.scipro.reusable.FilterBooleanPanel;
|
||||
import se.su.dsv.scipro.reusable.FilterStringPanel;
|
||||
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* Author: fred-fri
|
||||
* Date: 5/2/12
|
||||
*/
|
||||
public abstract class CheckListTemplateDataPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
public ChecklistTemplateService checklistTemplateService;
|
||||
|
||||
CheckListTemplateDataPanel cltdp; //must be kept as a reference to self for abstract method cascading
|
||||
|
||||
DataTable<CheckListTemplate> table;
|
||||
NavigationToolbar navigationToolbar;
|
||||
FilterStringPanel filterStringPanel;
|
||||
Integer number;
|
||||
AjaxDropDown<Integer> numberDropDown;
|
||||
ChecklistTemplateProvider checklistTemplateProvider;
|
||||
|
||||
public abstract void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target);
|
||||
|
||||
public CheckListTemplateDataPanel(String id, boolean adminPrivileges) {
|
||||
super(id);
|
||||
|
||||
cltdp = this;
|
||||
|
||||
filterStringPanel = new FilterStringPanel("filterStringPanel") {
|
||||
@Override
|
||||
public void onUpdateFilter(AjaxRequestTarget target) {
|
||||
checklistTemplateProvider.setFilterString(getFilterString());
|
||||
target.addComponent(table);
|
||||
}
|
||||
};
|
||||
add(filterStringPanel);
|
||||
|
||||
number = new Integer(10);
|
||||
ArrayList<Integer> numberList = new ArrayList<Integer>();
|
||||
numberList.add(new Integer(10));
|
||||
numberList.add(new Integer(25));
|
||||
numberList.add(new Integer(100));
|
||||
|
||||
numberDropDown = new AjaxDropDown<Integer>("numberDropDown", new Model<Integer>(number), new Model<ArrayList<Integer>>(numberList)) {
|
||||
@Override
|
||||
public void onNewSelection(AjaxRequestTarget target, Integer objectSelected) {
|
||||
table.setRowsPerPage(objectSelected);
|
||||
target.addComponent(table);
|
||||
}
|
||||
};
|
||||
add(numberDropDown);
|
||||
|
||||
IColumn[] columns = new IColumn[4];
|
||||
|
||||
columns[0] = new ClickableTitleColumn<CheckListTemplate>(Model.of("Name"), "name", "name") {
|
||||
@Override
|
||||
protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
|
||||
// System.out.println(clicked.getObject().getName());
|
||||
cltdp.onClick(clicked, target);
|
||||
}
|
||||
};
|
||||
columns[1] = new PropertyColumn<CheckListTemplate>(Model.of("Creator"), "creator", "creator");
|
||||
columns[2] = new PropertyColumn<CheckListTemplate>(Model.of("Categories"), "categories");
|
||||
columns[3] = new ClickableOrderColumn<CheckListTemplate>(Model.of("Order"), "templateNumber", "templateNumber", adminPrivileges) {
|
||||
@Override
|
||||
protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target, boolean up) {
|
||||
System.out.println(up);
|
||||
if (up){
|
||||
checklistTemplateService.upChecklistTemplate(clicked.getObject());
|
||||
target.addComponent(table);
|
||||
} else {
|
||||
checklistTemplateService.downChecklistTemplate(clicked.getObject());
|
||||
target.addComponent(table);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
table = new DataTable<CheckListTemplate>("datatable", columns, checklistTemplateProvider = new ChecklistTemplateProvider(), 10);
|
||||
table.setOutputMarkupId(true);
|
||||
table.addBottomToolbar(navigationToolbar = new NavigationToolbar(table));
|
||||
table.addTopToolbar(new HeadersToolbar(table, checklistTemplateProvider));
|
||||
add(table);
|
||||
|
||||
}
|
||||
|
||||
private class ChecklistTemplateProvider extends SortableDataProvider<CheckListTemplate> {
|
||||
|
||||
private String filterString;
|
||||
|
||||
public ChecklistTemplateProvider() {
|
||||
setSort("templateNumber", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<? extends CheckListTemplate> iterator(int first, int count) {
|
||||
// Sort(Direction direction, String... properties)
|
||||
// new Sort(Sort.Direction.ASC, "name")
|
||||
Sort sort;
|
||||
if (getSort().isAscending()){
|
||||
sort = new Sort(Sort.Direction.ASC, getSort().getProperty());
|
||||
}
|
||||
else {
|
||||
sort = new Sort(Sort.Direction.DESC, getSort().getProperty());
|
||||
}
|
||||
// new Sort(Sort.Direction.ASC, getSort().toString())
|
||||
|
||||
//Changed from count to table.getRowsPerPage to make pagination work.
|
||||
//return checklistTemplateService.find(filterString, new PageRequest(table.getCurrentPage(), count, sort)).iterator();
|
||||
return checklistTemplateService.find(filterString, new PageRequest(table.getCurrentPage(), table.getRowsPerPage(), sort)).iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return safeLongToInt(checklistTemplateService.count(filterString));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IModel<CheckListTemplate> model(CheckListTemplate object) {
|
||||
return Model.of(object);
|
||||
}
|
||||
|
||||
public void setFilterString(String filterString){
|
||||
this.filterString = filterString;
|
||||
}
|
||||
}
|
||||
|
||||
public static int safeLongToInt(long l) {
|
||||
if (l < Integer.MIN_VALUE || l > Integer.MAX_VALUE) {
|
||||
throw new IllegalArgumentException
|
||||
(l + " cannot be cast to int without changing its value.");
|
||||
}
|
||||
return (int) l;
|
||||
}
|
||||
}
|
3
src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn$LinkPanel.html
Normal file
3
src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn$LinkPanel.html
Normal file
@ -0,0 +1,3 @@
|
||||
<wicket:panel>
|
||||
<span wicket:id="label"></span> <button wicket:id="uplink">+</button> <button wicket:id="downlink">-</button>
|
||||
</wicket:panel>
|
@ -0,0 +1,70 @@
|
||||
package se.su.dsv.scipro.datatables.checklist;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.model.PropertyModel;
|
||||
import se.su.dsv.scipro.icons.ImageObject;
|
||||
|
||||
/**
|
||||
* Author: fred-fri
|
||||
* Date: 5/4/12
|
||||
*/
|
||||
public abstract class ClickableOrderColumn<T> extends AbstractColumn<T> {
|
||||
|
||||
private boolean adminPrivileges;
|
||||
private final String property;
|
||||
|
||||
public ClickableOrderColumn(IModel<String> displayModel,
|
||||
String property, boolean adminPrivileges) {
|
||||
this(displayModel, property, null, adminPrivileges);
|
||||
}
|
||||
|
||||
public ClickableOrderColumn(IModel<String> displayModel,
|
||||
String property, String sort, boolean adminPrivileges) {
|
||||
super(displayModel, sort);
|
||||
this.property = property;
|
||||
this.adminPrivileges = adminPrivileges;
|
||||
}
|
||||
|
||||
public void populateItem(Item<ICellPopulator<T>> cellItem,
|
||||
String componentId, IModel<T> rowModel) {
|
||||
cellItem.add(new LinkPanel(componentId, rowModel,
|
||||
new PropertyModel<Object>(rowModel, property)));
|
||||
}
|
||||
|
||||
protected abstract void onClick(IModel<T> clicked, AjaxRequestTarget target, boolean up);
|
||||
|
||||
private class LinkPanel extends Panel {
|
||||
public LinkPanel(String id, IModel<T> rowModel, IModel<?>
|
||||
labelModel) {
|
||||
super(id);
|
||||
|
||||
add(new Label("label", labelModel));
|
||||
|
||||
AjaxLink<T> uplink = new AjaxLink<T>("uplink", rowModel) {
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
ClickableOrderColumn.this.onClick(getModel(), target, true);
|
||||
}
|
||||
};
|
||||
uplink.setVisible(adminPrivileges);
|
||||
add(uplink);
|
||||
|
||||
AjaxLink<T> downlink = new AjaxLink<T>("downlink", rowModel) {
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
ClickableOrderColumn.this.onClick(getModel(), target, false);
|
||||
}
|
||||
};
|
||||
downlink.setVisible(adminPrivileges);
|
||||
add(downlink);
|
||||
}
|
||||
}
|
||||
}
|
3
src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn$LinkPanel.html
Normal file
3
src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn$LinkPanel.html
Normal file
@ -0,0 +1,3 @@
|
||||
<wicket:panel>
|
||||
<a wicket:id="link"><span wicket:id="label"></span></a>
|
||||
</wicket:panel>
|
@ -0,0 +1,66 @@
|
||||
package se.su.dsv.scipro.datatables.checklist;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.PropertyModel;
|
||||
|
||||
/**
|
||||
* Author: fred-fri
|
||||
* Date: 5/4/12
|
||||
*/
|
||||
public abstract class ClickableTitleColumn<T> extends AbstractColumn<T> {
|
||||
|
||||
private final String property;
|
||||
|
||||
public ClickableTitleColumn(IModel<String> displayModel,
|
||||
String property) {
|
||||
this(displayModel, property, null);
|
||||
}
|
||||
|
||||
public ClickableTitleColumn(IModel<String> displayModel,
|
||||
String property, String sort) {
|
||||
super(displayModel, sort);
|
||||
this.property = property;
|
||||
}
|
||||
|
||||
public void populateItem(Item<ICellPopulator<T>> cellItem,
|
||||
String componentId, IModel<T> rowModel) {
|
||||
cellItem.add(new LinkPanel(componentId, rowModel,
|
||||
new PropertyModel<Object>(rowModel, property)));
|
||||
}
|
||||
|
||||
protected abstract void onClick(IModel<T> clicked, AjaxRequestTarget target);
|
||||
|
||||
private class LinkPanel extends Panel {
|
||||
public LinkPanel(String id, IModel<T> rowModel, IModel<?>
|
||||
labelModel) {
|
||||
super(id);
|
||||
|
||||
// Link<T> link = new Link<T>("link", rowModel) {
|
||||
// @Override
|
||||
// public void onClick() {
|
||||
// ClickableTitleColumn.this.onClick(getModel());
|
||||
// }
|
||||
// };
|
||||
// add(link);
|
||||
// link.add(new Label("label", labelModel));
|
||||
|
||||
AjaxLink<T> link = new AjaxLink<T>("link", rowModel) {
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
ClickableTitleColumn.this.onClick(getModel(), target);
|
||||
}
|
||||
};
|
||||
add(link);
|
||||
link.add(new Label("label", labelModel));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package se.su.dsv.scipro.springdata.repos;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
|
||||
/**
|
||||
* @author: fred-fri
|
||||
* date: 2012 03 26
|
||||
*/
|
||||
@Transactional(readOnly = true)
|
||||
public interface ChecklistTemplateRepo extends JpaRepository<CheckListTemplate, Long>, QueryDslPredicateExecutor<CheckListTemplate> {
|
||||
|
||||
CheckListTemplate findByTemplateNumber(int templateNumber);
|
||||
|
||||
}
|
@ -43,8 +43,13 @@ public class AbstractServiceImpl<T, ID extends Serializable> implements CrudServ
|
||||
return repository.findOne(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<T> findAll() {
|
||||
return repository.findAll();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* Returns whether an entity with the given id exists.
|
||||
*
|
||||
* @param id
|
||||
|
103
src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java
Normal file
103
src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java
Normal file
@ -0,0 +1,103 @@
|
||||
package se.su.dsv.scipro.springdata.serviceimpls;
|
||||
|
||||
import com.mysema.query.types.expr.BooleanExpression;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.QCheckListTemplate;
|
||||
import se.su.dsv.scipro.springdata.repos.ChecklistTemplateRepo;
|
||||
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
||||
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @author: fred-fri
|
||||
* date: 2012 03 26
|
||||
*/
|
||||
@Service ( "checkListTemplateService" )
|
||||
@Transactional ( readOnly = true )
|
||||
public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckListTemplate, Long> implements ChecklistTemplateService {
|
||||
|
||||
@Resource
|
||||
private ChecklistTemplateRepo checklistTemplateRepo;
|
||||
|
||||
@Autowired
|
||||
public ChecklistTemplateServiceImpl(
|
||||
@Qualifier("checklistTemplateRepo")
|
||||
ChecklistTemplateRepo checklistTemplateRepo) {
|
||||
super(checklistTemplateRepo, checklistTemplateRepo);
|
||||
System.out.println("CheckListTemplateServiceImpl instantiating...");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<CheckListTemplate> findAll(Pageable pageable) {
|
||||
return checklistTemplateRepo.findAll(pageable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<CheckListTemplate> find(String filterString, Pageable pageable) {
|
||||
if (filterString==null || filterString.isEmpty()){
|
||||
return checklistTemplateRepo.findAll(pageable);
|
||||
}
|
||||
else {
|
||||
return checklistTemplateRepo.findAll(filterStringIsCreatorName(filterString).or(filterStringIsChecklistTemplateName(filterString)), pageable);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long count(String filterString) {
|
||||
if (filterString==null || filterString.isEmpty()){
|
||||
return checklistTemplateRepo.count();
|
||||
}
|
||||
else {
|
||||
return checklistTemplateRepo.count(filterStringIsCreatorName(filterString).or(filterStringIsChecklistTemplateName(filterString)));
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional ( readOnly = false )
|
||||
@Override
|
||||
public void upChecklistTemplate(CheckListTemplate checkListTemplate) {
|
||||
//if there is one above
|
||||
if (checklistTemplateRepo.findByTemplateNumber(checkListTemplate.getTemplateNumber() + 1) !=null){
|
||||
//find the one with value 1 higher
|
||||
CheckListTemplate downChecklistTemplate = checklistTemplateRepo.findByTemplateNumber(checkListTemplate.getTemplateNumber() + 1);
|
||||
//give that one the one to be upped's value
|
||||
downChecklistTemplate.setTemplateNumber(checkListTemplate.getTemplateNumber());
|
||||
//increase the value of the one to be upped with 1
|
||||
checkListTemplate.setTemplateNumber(checkListTemplate.getTemplateNumber() + 1);
|
||||
//save both
|
||||
checklistTemplateRepo.save(downChecklistTemplate);
|
||||
checklistTemplateRepo.save(checkListTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional ( readOnly = false )
|
||||
@Override
|
||||
public void downChecklistTemplate(CheckListTemplate checkListTemplate) {
|
||||
//if there is one below
|
||||
if (checklistTemplateRepo.findByTemplateNumber(checkListTemplate.getTemplateNumber() -1) != null){
|
||||
//find the one with value 1 lower
|
||||
CheckListTemplate upChecklistTemplate = checklistTemplateRepo.findByTemplateNumber(checkListTemplate.getTemplateNumber() -1);
|
||||
//give that one the one to be downed's value
|
||||
upChecklistTemplate.setTemplateNumber(checkListTemplate.getTemplateNumber());
|
||||
//decrease the value of the one to be downed with 1
|
||||
checkListTemplate.setTemplateNumber(checkListTemplate.getTemplateNumber() -1);
|
||||
//save both
|
||||
checklistTemplateRepo.save(upChecklistTemplate);
|
||||
checklistTemplateRepo.save(checkListTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
private BooleanExpression filterStringIsCreatorName(String filterString){
|
||||
return QCheckListTemplate.checkListTemplate.creator.firstName.contains(filterString).or(QCheckListTemplate.checkListTemplate.creator.lastName.contains(filterString));
|
||||
}
|
||||
|
||||
private BooleanExpression filterStringIsChecklistTemplateName(String filterString){
|
||||
return QCheckListTemplate.checkListTemplate.name.contains(filterString);
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package se.su.dsv.scipro.springdata.services;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
|
||||
/**
|
||||
* @author: fred-fri
|
||||
* date: 2012 03 26
|
||||
*/
|
||||
public interface ChecklistTemplateService extends CrudService<CheckListTemplate, Long>, QueryService<CheckListTemplate, Long> {
|
||||
|
||||
Page<CheckListTemplate> findAll(Pageable pageable);
|
||||
Page<CheckListTemplate> find(String filterString, Pageable pageable);
|
||||
Long count(String filterString);
|
||||
void upChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||
void downChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||
}
|
@ -27,6 +27,8 @@ public abstract interface CrudService<T, ID> {
|
||||
*/
|
||||
T findOne(ID id);
|
||||
|
||||
Iterable<T> findAll();
|
||||
|
||||
/**
|
||||
* Returns whether an entity with the given id exists.
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user