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 se.su.dsv.scipro.admin.panels.AdminListCheckListTemplatePanel;
|
||||
import se.su.dsv.scipro.admin.panels.CheckListTemplateDataPanel;
|
||||
import se.su.dsv.scipro.data.enums.CheckListRole;
|
||||
import se.su.dsv.scipro.datatables.CheckListTemplateDataPanel;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
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.extensions.markup.html.repeater.data.table.*;
|
||||
@ -60,7 +60,16 @@ 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 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[2] = new PropertyColumn<CheckListTemplate>(Model.of("Categories"), "categories", "categories");
|
||||
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