refactored datespanel, removed old project management panel & added new datespanel to project (only added- hasnt been hooked to service yet)
This commit is contained in:
parent
2f4a972803
commit
9b03f34c7a
src/main/java/se/su/dsv/scipro
admin/pages
project/panels
reusable
@ -8,6 +8,8 @@
|
||||
</div>
|
||||
<div><b>Filter by project title:</b></div>
|
||||
<div wicket:id="fsp"></div>
|
||||
<div><b>Filter by dates:</b></div>
|
||||
<div wicket:id="dates"></div>
|
||||
<div>
|
||||
<button wicket:id="newLink">Create new project</button>
|
||||
</div>
|
||||
|
@ -20,12 +20,14 @@ import se.su.dsv.scipro.datatables.ClickableIconColumn;
|
||||
import se.su.dsv.scipro.datatables.ClickableTitleColumn;
|
||||
import se.su.dsv.scipro.datatables.project.GenericDataPanel;
|
||||
import se.su.dsv.scipro.icons.ImageIcon;
|
||||
import se.su.dsv.scipro.reusable.DatesPanel;
|
||||
import se.su.dsv.scipro.reusable.FilterStringPanel;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.springdata.services.GenericService;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
|
||||
//@Authorization(authorizedRoles={Roles.SYSADMIN})
|
||||
@ -38,10 +40,10 @@ public class ProjectManagementPage extends AbstractAdminPage {
|
||||
private FilterStringPanel filterStringPanel;
|
||||
private GenericDataPanel<Project> genericDataPanel;
|
||||
private Dialog dialog;
|
||||
private DatesPanel datesPanel;
|
||||
|
||||
public ProjectManagementPage(PageParameters pp) {
|
||||
super(pp);
|
||||
// add(new ProjectManagementPanel("pmp"));
|
||||
|
||||
dialog = new Dialog("dialog");
|
||||
dialog.setModal(true);
|
||||
@ -85,6 +87,15 @@ public class ProjectManagementPage extends AbstractAdminPage {
|
||||
}
|
||||
});
|
||||
|
||||
add(datesPanel = new DatesPanel("dates") {
|
||||
@Override
|
||||
public void onUpdateFilter(AjaxRequestTarget target, Date fromDate, Date toDate) {
|
||||
System.out.println(fromDate);
|
||||
System.out.println(toDate);
|
||||
target.addComponent(genericDataPanel.getWMC());
|
||||
}
|
||||
});
|
||||
|
||||
add(genericDataPanel = new GenericDataPanel<Project>("pmp") {
|
||||
@Override
|
||||
public GenericService getService() {
|
||||
|
@ -1,82 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div class="span-24 last" wicket:id="settingsContainer">
|
||||
<label>Title: </label>
|
||||
<div wicket:id="filterStringPanel"></div>
|
||||
<label>Created between: </label>
|
||||
<div wicket:id="filterDatesPanel"></div>
|
||||
|
||||
<div class="span-20">
|
||||
<div class="span-4">
|
||||
<label>Level: </label>
|
||||
<div wicket:id="filterProjectClassPanel"></div>
|
||||
</div>
|
||||
<div class="span-4 last">
|
||||
<label>Status: </label>
|
||||
<div wicket:id="filterProjectStatusPanel"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<button wicket:id="newLink">Create new project</button>
|
||||
</div>
|
||||
<div wicket:id="dialog">
|
||||
<div wicket:id="panel"></div>
|
||||
</div>
|
||||
|
||||
<div class="span-24 last" wicket:id="dataviewContainer">
|
||||
<div>Number of projects: <span wicket:id="totalProjectsLabel"></span></div>
|
||||
<table class="rounded-corner">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="rounded-left-top"><a href="#"
|
||||
wicket:id="titleSort">Title</a></th>
|
||||
<!-- <th>Title</th> -->
|
||||
<th>Level</th>
|
||||
<th>Author(s)</th>
|
||||
<th>Supervisor</th>
|
||||
<th>Reviewer</th>
|
||||
<th>Status</th>
|
||||
<th>Edit</th>
|
||||
<th class="rounded-right-top">Delete</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="8" class="rounded-foot"> </td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody wicket:id="dataview">
|
||||
<tr>
|
||||
<td><a wicket:id="openLink"><span wicket:id="projectTitle">Other role</span></a></td>
|
||||
<td wicket:id="projectLevel">Other role</td>
|
||||
<td wicket:id="authorsLabel">Other role</td>
|
||||
<td wicket:id="headsupervisorLabel">Other role</td>
|
||||
<td wicket:id="reviewerLabel">Other role</td>
|
||||
<td wicket:id="statusLabel">Other role</td>
|
||||
<td><a href="#" wicket:id="testLink"><img wicket:id="editIcon" /></a></td>
|
||||
<td><a href="#" wicket:id="deleteLink"><img wicket:id="deleteIcon" alt="Delete" title="Delete" /></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td wicket:id="emptyLabel" colspan="8"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div wicket:id="nav"></div>
|
||||
</div>
|
||||
|
||||
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -1,303 +0,0 @@
|
||||
package se.su.dsv.scipro.project.panels;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.Link;
|
||||
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.markup.repeater.Item;
|
||||
import org.apache.wicket.markup.repeater.data.DataView;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.odlabs.wiquery.ui.dialog.Dialog;
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.admin.pages.ProjectManagementPage;
|
||||
import se.su.dsv.scipro.admin.panels.AdminEditProject;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.Dao.SortableParams.Sort;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.facade.ProjectFacade;
|
||||
import se.su.dsv.scipro.dataproviders.NewProjectDataProvider;
|
||||
|
||||
import se.su.dsv.scipro.icons.ImageObject;
|
||||
|
||||
import se.su.dsv.scipro.io.ExternalImporter;
|
||||
|
||||
import se.su.dsv.scipro.reusable.DatesPanel;
|
||||
import se.su.dsv.scipro.reusable.FilterProjectClassPanel;
|
||||
import se.su.dsv.scipro.reusable.FilterProjectStatusPanel;
|
||||
import se.su.dsv.scipro.reusable.FilterStringPanel;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.util.JavascriptEventConfirmation;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class ProjectManagementPanel extends Panel {
|
||||
|
||||
|
||||
@SpringBean
|
||||
private ProjectFacade projectFacade;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private WebMarkupContainer dataviewContainer;
|
||||
|
||||
private ProjectDao.Params params;
|
||||
private NewProjectDataProvider dataProvider;
|
||||
|
||||
private Label totalProjectsLabel;
|
||||
private Label emptyLabel;
|
||||
private PagingNavigator nav;
|
||||
|
||||
private Dialog dialog;
|
||||
|
||||
public ProjectManagementPanel(String id) {
|
||||
super(id);
|
||||
this.setOutputMarkupId(true);
|
||||
dataviewSetup();
|
||||
settingsSetup();
|
||||
sortSetup();
|
||||
createSetup();
|
||||
}
|
||||
|
||||
private void ajaxRefresh(AjaxRequestTarget target) {
|
||||
target.addComponent(dataviewContainer); //refresh the container containing the list
|
||||
nav.setVisible(dataProvider.size() != 0);
|
||||
target.addComponent(nav);
|
||||
emptyLabel.setVisible(dataProvider.size() == 0);
|
||||
target.addComponent(emptyLabel);
|
||||
totalProjectsLabel.setDefaultModel(new Model(new String(Integer.toString(dataProvider.size()))));
|
||||
target.addComponent(totalProjectsLabel);
|
||||
}
|
||||
|
||||
private void dataviewSetup() {
|
||||
params = new ProjectDao.Params();
|
||||
params.setSortOn("title", Sort.ASCENDING);
|
||||
// params.setCategories(filterSet);
|
||||
dataProvider = new NewProjectDataProvider(params);
|
||||
dataviewContainer = new WebMarkupContainer("dataviewContainer");
|
||||
dataviewContainer.setOutputMarkupId(true);
|
||||
add(dataviewContainer);
|
||||
DataView<Project> dataview = new DataView<Project>("dataview", dataProvider, 15) {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected void populateItem(Item<Project> item) {
|
||||
final Project p = item.getModelObject();
|
||||
|
||||
AjaxLink openLink = new AjaxLink<Void>("openLink") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
dialog.replace(new AdminEditProject("panel", new Model<Project>(p)) {
|
||||
private static final long serialVersionUID = -3929246545240675832L;
|
||||
|
||||
@Override
|
||||
public void onUpdate(AjaxRequestTarget target) {
|
||||
setResponsePage(ProjectManagementPage.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
dialog.setTitle("Project details");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
}
|
||||
|
||||
};
|
||||
openLink.add(new Label("projectTitle", p.getTitle()));
|
||||
item.add(openLink);
|
||||
|
||||
item.add(new Label("projectLevel", p.getProjectClass().toString()));
|
||||
item.add(new Label("authorsLabel", p.getProjectParticipantsAsString()));
|
||||
|
||||
item.add(new EmptyPanel("headsupervisorLabel"));
|
||||
if (p.getHeadSupervisor() != null) {
|
||||
item.replace(new Label("headsupervisorLabel", p.getHeadSupervisor().getNameAsString()));
|
||||
}
|
||||
|
||||
item.add(new Label("reviewerLabel", p.getProjectReviewersAsString()));
|
||||
item.add(new Label("statusLabel", p.getProjectStatus().toString()));
|
||||
|
||||
//edit link. this is ugly and is taken straight out of the old panel. should be done using facades.
|
||||
AjaxLink testLink = new AjaxLink<Void>("testLink") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
dialog.replace(new AdminEditProject("panel", new Model<Project>(p)) {
|
||||
private static final long serialVersionUID = -633068454448962134L;
|
||||
|
||||
@Override
|
||||
public void onUpdate(AjaxRequestTarget target) {
|
||||
dialog.close(target);
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);
|
||||
}
|
||||
});
|
||||
dialog.setTitle("Edit project");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
}
|
||||
|
||||
};
|
||||
testLink.add(new ImageObject("editIcon", ImageObject.SIXTEEN + ImageObject.EDIT));
|
||||
testLink.setVisible(isEditable());
|
||||
item.add(testLink);
|
||||
AjaxLink deleteLink = new AjaxLink<Void>("deleteLink") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
projectFacade.deleteProject(p);
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
|
||||
};
|
||||
deleteLink.add(new ImageObject("deleteIcon", ImageObject.SIXTEEN + ImageObject.DELETE));
|
||||
deleteLink.setVisible(isEditable());
|
||||
deleteLink.add(new JavascriptEventConfirmation("onclick", "Are you sure you want to delete this project? This action can NOT be undone!"));
|
||||
item.add(deleteLink);
|
||||
|
||||
}
|
||||
};
|
||||
dataviewContainer.add(dataview);
|
||||
|
||||
nav = new PagingNavigator("nav", dataview); //we need a navigator
|
||||
nav.setOutputMarkupId(true); //make it ajax-targetable
|
||||
nav.setVisible(dataProvider.size() != 0);
|
||||
dataviewContainer.add(nav); //add it
|
||||
|
||||
totalProjectsLabel = new Label("totalProjectsLabel", Integer.toString(dataProvider.size()));
|
||||
totalProjectsLabel.setOutputMarkupId(true);
|
||||
dataviewContainer.add(totalProjectsLabel);
|
||||
|
||||
emptyLabel = new Label("emptyLabel", "No projects to show"); //informs the user that the list is emty
|
||||
emptyLabel.setOutputMarkupId(true); //make it ajax-targetable
|
||||
emptyLabel.setVisible(dataProvider.size() == 0);
|
||||
dataviewContainer.add(emptyLabel); //add it
|
||||
}
|
||||
|
||||
private void settingsSetup() {
|
||||
WebMarkupContainer settingsContainer = new WebMarkupContainer("settingsContainer");
|
||||
add(settingsContainer);
|
||||
|
||||
//under here are the filtering components: beginning with the filter on string
|
||||
settingsContainer.add(new FilterStringPanel("filterStringPanel") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onUpdateFilter(AjaxRequestTarget target) {
|
||||
params.setFilterString(getFilterString());
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
});
|
||||
|
||||
settingsContainer.add(new DatesPanel("filterDatesPanel") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onUpdateFilter(AjaxRequestTarget target) {
|
||||
//based on dateCreated, not Daisy-startdate.
|
||||
params.setCreatedAfter(getFromDate());
|
||||
params.setCreatedBefore(getToDate());
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
settingsContainer.add(new FilterProjectClassPanel("filterProjectClassPanel") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onUpdateFilter(AjaxRequestTarget target) {
|
||||
params.setProjectClasses(getSelectedProjectClasses());
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
settingsContainer.add(new FilterProjectStatusPanel("filterProjectStatusPanel") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onUpdateFilter(AjaxRequestTarget target) {
|
||||
params.setProjectStatuses(getSelectedProjectStatuses());
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private void sortSetup() {
|
||||
final Set<String> sortString = new HashSet<String>(); //make a set with columns you want to be sortable
|
||||
sortString.add(new String("title"));
|
||||
for (final String s : sortString) { //create links for sorting using the set
|
||||
Link<Void> link = new Link<Void>(s + "Sort") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onClick() {
|
||||
if (params.getSortField().equals(s) && params.getDirection().equals(Sort.ASCENDING))
|
||||
params.setSortOn(s, Sort.DESCENDING);
|
||||
else params.setSortOn(s, Sort.ASCENDING);
|
||||
}
|
||||
};
|
||||
dataviewContainer.add(link); //add the links
|
||||
}
|
||||
}
|
||||
|
||||
private void createSetup() {
|
||||
dialog = new Dialog("dialog");
|
||||
dialog.setModal(true);
|
||||
dialog.setAutoOpen(false);
|
||||
dialog.setWidth(450);
|
||||
dialog.setHeight(525);
|
||||
add(dialog);
|
||||
dialog.add(new EmptyPanel("panel"));
|
||||
|
||||
//create new link.
|
||||
AjaxLink<Void> newLink = new AjaxLink<Void>("newLink") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
dialog.replace(new AdminEditProject("panel", new Model<Project>(new Project())) {
|
||||
private static final long serialVersionUID = -9078483322668302904L;
|
||||
|
||||
@Override
|
||||
public void onUpdate(AjaxRequestTarget target) {
|
||||
dialog.close(target);
|
||||
ajaxRefresh(target);
|
||||
}
|
||||
@Override
|
||||
public boolean isEditable() {
|
||||
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);
|
||||
}
|
||||
});
|
||||
|
||||
dialog.setTitle("Create new project");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
}
|
||||
};
|
||||
add(newLink);
|
||||
newLink.setVisible(SciProSession.get().authorizedForRole(Roles.SYSADMIN));
|
||||
}
|
||||
|
||||
private boolean isEditable(){
|
||||
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);
|
||||
}
|
||||
|
||||
}
|
@ -5,74 +5,86 @@ import java.util.Date;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
|
||||
import org.apache.wicket.datetime.markup.html.form.DateTextField;
|
||||
import org.apache.wicket.extensions.yui.calendar.DateField;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.model.PropertyModel;
|
||||
|
||||
import se.su.dsv.scipro.components.CustomDateTimeField;
|
||||
|
||||
public abstract class DatesPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private FilterForm filterForm;
|
||||
|
||||
public DatesPanel(String id) {
|
||||
super(id);
|
||||
filterForm = new FilterForm("filterForm");
|
||||
add(filterForm);
|
||||
}
|
||||
|
||||
public Date getFromDate(){
|
||||
return filterForm.fromDate;
|
||||
}
|
||||
public Date getToDate(){
|
||||
return filterForm.toDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this class to do something.
|
||||
*/
|
||||
public abstract void onUpdateFilter(AjaxRequestTarget target);
|
||||
|
||||
private class FilterForm extends Form<Void> {
|
||||
private static final long serialVersionUID = 1L;
|
||||
private FilterForm filterForm;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private transient Date fromDate;
|
||||
private transient Date toDate;
|
||||
public DatesPanel(String id) {
|
||||
super(id);
|
||||
filterForm = new FilterForm("filterForm");
|
||||
add(filterForm);
|
||||
}
|
||||
|
||||
public FilterForm(String id) {
|
||||
super(id);
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
toDate = cal.getTime();
|
||||
cal.add(Calendar.MONTH, -6);
|
||||
fromDate = cal.getTime();
|
||||
|
||||
final CustomDateTimeField dateFrom = new CustomDateTimeField("dateFrom",new PropertyModel<Date>(this, "fromDate"));
|
||||
final CustomDateTimeField dateTo = new CustomDateTimeField("dateTo",new PropertyModel<Date>(this, "toDate"));
|
||||
|
||||
add(dateFrom);
|
||||
add(dateTo);
|
||||
|
||||
add(new AjaxButton("filterButton") { //button to click for performing overriden method
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
|
||||
onUpdateFilter(target);
|
||||
System.out.println(fromDate);
|
||||
System.out.println(toDate);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public Date getFromDate(){
|
||||
return fromDate;
|
||||
}
|
||||
public Date getToDate(){
|
||||
return toDate;
|
||||
}
|
||||
}
|
||||
public Date getFromDate(){
|
||||
return filterForm.fromDate;
|
||||
}
|
||||
public Date getToDate(){
|
||||
return filterForm.toDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this to do something.
|
||||
*/
|
||||
public abstract void onUpdateFilter(AjaxRequestTarget target, Date fromDate, Date toDate);
|
||||
|
||||
private class FilterForm extends Form<Void> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private transient Date fromDate;
|
||||
private transient Date toDate;
|
||||
|
||||
private DateField dateFrom;
|
||||
private DateField dateTo;
|
||||
|
||||
public FilterForm(String id) {
|
||||
super(id);
|
||||
|
||||
Calendar cal = Calendar.getInstance();
|
||||
toDate = cal.getTime();
|
||||
cal.add(Calendar.MONTH, -6);
|
||||
fromDate = cal.getTime();
|
||||
|
||||
dateFrom = new DateField("dateFrom", new Model<Date>(fromDate)){
|
||||
@Override
|
||||
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
|
||||
return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
|
||||
}
|
||||
};
|
||||
|
||||
dateTo = new DateField("dateTo", new Model<Date>(toDate)){
|
||||
@Override
|
||||
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
|
||||
return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
|
||||
}
|
||||
};
|
||||
|
||||
add(dateFrom);
|
||||
add(dateTo);
|
||||
|
||||
add(new AjaxButton("filterButton") { //button to click for performing overridden method
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
|
||||
onUpdateFilter(target, dateFrom.getModelObject(), dateTo.getModelObject());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public Date getFromDate(){
|
||||
return dateFrom.getModelObject();
|
||||
}
|
||||
public Date getToDate(){
|
||||
return dateTo.getModelObject();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user