adding up down order functionality

This commit is contained in:
fred-fri 2012-05-09 10:03:53 +09:00
parent 918eeb5c51
commit 60660ea844
8 changed files with 97 additions and 18 deletions

@ -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;

@ -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>

@ -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);

@ -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>

@ -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"));
}
}
}

@ -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);

@ -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);
}