added clickable column
This commit is contained in:
parent
d763e39a89
commit
6255f6b7bb
src/main/java/se/su/dsv/scipro
@ -2,9 +2,7 @@ package se.su.dsv.scipro.admin.pages;
|
|||||||
|
|
||||||
import org.apache.wicket.PageParameters;
|
import org.apache.wicket.PageParameters;
|
||||||
|
|
||||||
import se.su.dsv.scipro.admin.panels.AdminListCheckListTemplatePanel;
|
import se.su.dsv.scipro.datatables.CheckListTemplateDataPanel;
|
||||||
import se.su.dsv.scipro.admin.panels.CheckListTemplateDataPanel;
|
|
||||||
import se.su.dsv.scipro.data.enums.CheckListRole;
|
|
||||||
import se.su.dsv.scipro.security.auth.Authorization;
|
import se.su.dsv.scipro.security.auth.Authorization;
|
||||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package se.su.dsv.scipro.admin.panels;
|
package se.su.dsv.scipro.datatables;
|
||||||
|
|
||||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
|
import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
|
||||||
@ -60,7 +60,16 @@ public class CheckListTemplateDataPanel extends Panel {
|
|||||||
add(numberDropDown);
|
add(numberDropDown);
|
||||||
|
|
||||||
IColumn[] columns = new IColumn[4];
|
IColumn[] columns = new IColumn[4];
|
||||||
columns[0] = new PropertyColumn<CheckListTemplate>(Model.of("Name"), "name", "name");
|
// columns[0] = new PropertyColumn<CheckListTemplate>(Model.of("Name"), "name", "name");
|
||||||
|
|
||||||
|
columns[0] = new ClickablePropertyColumn<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[1] = new PropertyColumn<CheckListTemplate>(Model.of("Creator"), "creator", "creator");
|
||||||
columns[2] = new PropertyColumn<CheckListTemplate>(Model.of("Categories"), "categories", "categories");
|
columns[2] = new PropertyColumn<CheckListTemplate>(Model.of("Categories"), "categories", "categories");
|
||||||
columns[3] = new PropertyColumn<CheckListTemplate>(Model.of("Created"), "dateCreated", "dateCreated");
|
columns[3] = new PropertyColumn<CheckListTemplate>(Model.of("Created"), "dateCreated", "dateCreated");
|
@ -0,0 +1,3 @@
|
|||||||
|
<wicket:panel>
|
||||||
|
<a wicket:id="link"><span wicket:id="label"></span></a>
|
||||||
|
</wicket:panel>
|
@ -0,0 +1,67 @@
|
|||||||
|
package se.su.dsv.scipro.datatables;
|
||||||
|
|
||||||
|
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;
|
||||||
|
import org.apache.wicket.model.PropertyModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Author: fred-fri
|
||||||
|
* Date: 5/4/12
|
||||||
|
*/
|
||||||
|
public abstract class ClickablePropertyColumn<T> extends AbstractColumn<T> {
|
||||||
|
|
||||||
|
private final String property;
|
||||||
|
|
||||||
|
public ClickablePropertyColumn(IModel<String> displayModel,
|
||||||
|
String property) {
|
||||||
|
this(displayModel, property, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClickablePropertyColumn(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() {
|
||||||
|
// ClickablePropertyColumn.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) {
|
||||||
|
ClickablePropertyColumn.this.onClick(getModel(), target);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
add(link);
|
||||||
|
link.add(new Label("label", labelModel));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user