diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java index bd92ee5ea5..9398e28e5b 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AdminCheckListPage.java @@ -2,7 +2,7 @@ package se.su.dsv.scipro.admin.pages; import org.apache.wicket.PageParameters; -import se.su.dsv.scipro.datatables.CheckListTemplateDataPanel; +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; diff --git a/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.html b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.html similarity index 85% rename from src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.html rename to src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.html index e702a6c194..316f72bbb5 100644 --- a/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.html +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.html @@ -3,6 +3,7 @@ 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> diff --git a/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java similarity index 88% rename from src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.java rename to src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java index b40a403d4e..213d01ff7c 100644 --- a/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.java +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java @@ -1,4 +1,4 @@ -package se.su.dsv.scipro.datatables; +package se.su.dsv.scipro.datatables.checklist; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.table.*; @@ -60,21 +60,28 @@ public class CheckListTemplateDataPanel extends Panel { }; add(numberDropDown); - IColumn[] columns = new IColumn[4]; -// columns[0] = new PropertyColumn<CheckListTemplate>(Model.of("Name"), "name", "name"); - - columns[0] = new ClickablePropertyColumn<CheckListTemplate>(Model.of("Name"), "name", "name") { + IColumn[] columns = new IColumn[5]; + 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()); } }; - columns[1] = new PropertyColumn<CheckListTemplate>(Model.of("Creator"), "creator", "creator"); columns[2] = new PropertyColumn<CheckListTemplate>(Model.of("Categories"), "categories"); -// columns[3] = new PropertyColumn<CheckListTemplate>(Model.of("Created"), "dateCreated", "dateCreated"); - columns[3] = new PropertyColumn<CheckListTemplate>(Model.of("Updated"), "lastModified", "lastModified"); + columns[3] = new ClickableOrderColumn<CheckListTemplate>(Model.of("Order"), "templateNumber", "templateNumber") { + @Override + protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target, boolean up) { + System.out.println(up); + if (up){ + + } else { + + } + } + }; + columns[4] = new PropertyColumn<CheckListTemplate>(Model.of("Updated"), "lastModified", "lastModified"); table = new DataTable<CheckListTemplate>("datatable", columns, checklistTemplateProvider = new ChecklistTemplateProvider(), 10); diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn$LinkPanel.html b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn$LinkPanel.html new file mode 100644 index 0000000000..ce482f52b6 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn$LinkPanel.html @@ -0,0 +1,3 @@ +<wicket:panel> + <span wicket:id="label"></span> <a wicket:id="uplink">Up</a> <a wicket:id="downlink">Down</a> +</wicket:panel> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn.java new file mode 100644 index 0000000000..56d4290eae --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableOrderColumn.java @@ -0,0 +1,68 @@ +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 ClickableOrderColumn<T> extends AbstractColumn<T> { + + private final String property; + + public ClickableOrderColumn(IModel<String> displayModel, + String property) { + this(displayModel, property, null); + } + + public ClickableOrderColumn(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, 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); + } + }; + add(uplink); +// uplink.add(new Label("label", "Up")); + + AjaxLink<T> downlink = new AjaxLink<T>("downlink", rowModel) { + @Override + public void onClick(AjaxRequestTarget target) { + ClickableOrderColumn.this.onClick(getModel(), target, false); + } + }; + add(downlink); +// downlink.add(new Label("label", "Down")); + + + } + } +} \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn$LinkPanel.html b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn$LinkPanel.html similarity index 100% rename from src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn$LinkPanel.html rename to src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn$LinkPanel.html diff --git a/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn.java similarity index 75% rename from src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn.java rename to src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn.java index 072a57e976..ff94edf21d 100644 --- a/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn.java +++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/ClickableTitleColumn.java @@ -1,11 +1,10 @@ -package se.su.dsv.scipro.datatables; +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.link.Link; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.IModel; @@ -15,17 +14,17 @@ import org.apache.wicket.model.PropertyModel; * Author: fred-fri * Date: 5/4/12 */ -public abstract class ClickablePropertyColumn<T> extends AbstractColumn<T> { +public abstract class ClickableTitleColumn<T> extends AbstractColumn<T> { private final String property; - public ClickablePropertyColumn(IModel<String> displayModel, - String property) { + public ClickableTitleColumn(IModel<String> displayModel, + String property) { this(displayModel, property, null); } - public ClickablePropertyColumn(IModel<String> displayModel, - String property, String sort) { + public ClickableTitleColumn(IModel<String> displayModel, + String property, String sort) { super(displayModel, sort); this.property = property; } @@ -46,7 +45,7 @@ public abstract class ClickablePropertyColumn<T> extends AbstractColumn<T> { // Link<T> link = new Link<T>("link", rowModel) { // @Override // public void onClick() { -// ClickablePropertyColumn.this.onClick(getModel()); +// ClickableTitleColumn.this.onClick(getModel()); // } // }; // add(link); @@ -55,7 +54,7 @@ public abstract class ClickablePropertyColumn<T> extends AbstractColumn<T> { AjaxLink<T> link = new AjaxLink<T>("link", rowModel) { @Override public void onClick(AjaxRequestTarget target) { - ClickablePropertyColumn.this.onClick(getModel(), target); + ClickableTitleColumn.this.onClick(getModel(), target); } }; add(link); 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 e10284135d..7f81eff83a 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 @@ -13,4 +13,5 @@ public interface ChecklistTemplateService extends CrudService<CheckListTemplate, Page<CheckListTemplate> findAll(Pageable pageable); Page<CheckListTemplate> find(String filterString, Pageable pageable); Long count(String filterString); + void upChecklistTemplate(CheckListTemplate checkListTemplate); }