diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java index 728af96614..bf4c9c5098 100644 --- a/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java @@ -83,7 +83,7 @@ public abstract class CheckListTemplateDataPanel extends Panel { }; add(numberDropDown); - IColumn[] columns = new IColumn[4]; + IColumn[] columns = new IColumn[5]; columns[0] = new ClickableTitleColumn<CheckListTemplate>(Model.of("Name"), "name", "name") { @Override @@ -108,6 +108,14 @@ public abstract class CheckListTemplateDataPanel extends Panel { } }; + columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), "name") { + @Override + protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) { + //do something + target.addComponent(table); + } + }; + table = new DataTable<CheckListTemplate>("datatable", columns, checklistTemplateProvider = new ChecklistTemplateProvider(), 10); table.setOutputMarkupId(true); table.addBottomToolbar(navigationToolbar = new NavigationToolbar(table)); diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn$LinkPanel.html b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn$LinkPanel.html new file mode 100644 index 0000000000..54b5896b90 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn$LinkPanel.html @@ -0,0 +1,3 @@ +<wicket:panel> + <a wicket:id="link"><img wicket:id="deleteicon"/></a> +</wicket:panel> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java new file mode 100644 index 0000000000..15c692f1ff --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableDeleteColumn.java @@ -0,0 +1,57 @@ +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; +import se.su.dsv.scipro.icons.ImageObject; + +/** + * Author: fred-fri + * Date: 5/4/12 + */ +public abstract class ClickableDeleteColumn<T> extends AbstractColumn<T> { + + private final String property; + + public ClickableDeleteColumn(IModel<String> displayModel, + String property) { + this(displayModel, property, null); + } + + public ClickableDeleteColumn(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); + + AjaxLink<T> link = new AjaxLink<T>("link", rowModel) { + @Override + public void onClick(AjaxRequestTarget target) { + ClickableDeleteColumn.this.onClick(getModel(), target); + } + }; + add(link); + link.add(new ImageObject("deleteicon", ImageObject.SIXTEEN + ImageObject.DELETE)); + + } + } +} \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/springdata/repos/ChecklistTemplateRepo.java b/src/main/java/se/su/dsv/scipro/springdata/repos/ChecklistTemplateRepo.java index bdee65bb50..ef96f4935a 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/repos/ChecklistTemplateRepo.java +++ b/src/main/java/se/su/dsv/scipro/springdata/repos/ChecklistTemplateRepo.java @@ -5,6 +5,8 @@ import org.springframework.data.querydsl.QueryDslPredicateExecutor; import org.springframework.transaction.annotation.Transactional; import se.su.dsv.scipro.data.dataobjects.CheckListTemplate; +import java.util.List; + /** * @author: fred-fri * date: 2012 03 26 @@ -13,5 +15,6 @@ import se.su.dsv.scipro.data.dataobjects.CheckListTemplate; public interface ChecklistTemplateRepo extends JpaRepository<CheckListTemplate, Long>, QueryDslPredicateExecutor<CheckListTemplate> { CheckListTemplate findByTemplateNumber(int templateNumber); + List<CheckListTemplate> findAllByTemplateNumberGreaterThan(int templateNumber); } diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java index 811e8b475f..227900910b 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java +++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java @@ -17,6 +17,7 @@ import se.su.dsv.scipro.springdata.services.ChecklistTemplateService; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.List; /** * @author: fred-fri @@ -107,6 +108,7 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList return clt; } + private BooleanExpression filterStringIsCreatorName(String filterString){ return QCheckListTemplate.checkListTemplate.creator.firstName.contains(filterString).or(QCheckListTemplate.checkListTemplate.creator.lastName.contains(filterString)); } diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java b/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java index e8c4562b68..cb782af83c 100644 --- a/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java +++ b/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java @@ -16,4 +16,5 @@ public interface ChecklistTemplateService extends CrudService<CheckListTemplate, void upChecklistTemplate(CheckListTemplate checkListTemplate); void downChecklistTemplate(CheckListTemplate checkListTemplate); CheckListTemplate prepareNewTemplate(); + }