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 787abf8a33..bd92ee5ea5 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,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; diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/CheckListTemplateDataPanel.html b/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.html similarity index 100% rename from src/main/java/se/su/dsv/scipro/admin/panels/CheckListTemplateDataPanel.html rename to src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.html diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/CheckListTemplateDataPanel.java b/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.java similarity index 90% rename from src/main/java/se/su/dsv/scipro/admin/panels/CheckListTemplateDataPanel.java rename to src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.java index 5fe790f3ed..89ee082762 100644 --- a/src/main/java/se/su/dsv/scipro/admin/panels/CheckListTemplateDataPanel.java +++ b/src/main/java/se/su/dsv/scipro/datatables/CheckListTemplateDataPanel.java @@ -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"); diff --git a/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn$LinkPanel.html b/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn$LinkPanel.html new file mode 100644 index 0000000000..e3845b572b --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn$LinkPanel.html @@ -0,0 +1,3 @@ +<wicket:panel> + <a wicket:id="link"><span wicket:id="label"></span></a> +</wicket:panel> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn.java b/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn.java new file mode 100644 index 0000000000..072a57e976 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/datatables/ClickablePropertyColumn.java @@ -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)); + + + } + } +} \ No newline at end of file