diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/FilterFormReviewStatusPanel.java b/src/main/java/se/su/dsv/scipro/peer/panels/FilterFormReviewStatusPanel.java index 4d16e9f6cd..95fa80f38c 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/FilterFormReviewStatusPanel.java +++ b/src/main/java/se/su/dsv/scipro/peer/panels/FilterFormReviewStatusPanel.java @@ -3,6 +3,8 @@ package se.su.dsv.scipro.peer.panels; import java.util.ArrayList; import java.util.List; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Check; @@ -15,7 +17,7 @@ import org.apache.wicket.model.CompoundPropertyModel; import se.su.dsv.scipro.peer.data.dataobjects.PeerReview; -public class FilterFormReviewStatusPanel extends Panel { +public abstract class FilterFormReviewStatusPanel extends Panel { private static final long serialVersionUID = 8862892008428526067L; @@ -50,6 +52,14 @@ public class FilterFormReviewStatusPanel extends Panel { }; checkGroup.add(statusView); checkGroup.setOutputMarkupId(true); + checkGroup.add(new AjaxFormChoiceComponentUpdatingBehavior(){ + + @Override + protected void onUpdate(AjaxRequestTarget target) { + ajaxUpdate(target); + } + + }); container.add(checkGroup); add(container); } @@ -65,4 +75,6 @@ public class FilterFormReviewStatusPanel extends Panel { public List<PeerReview.ReviewStatus> getSelectedStatuses(){ return (List<PeerReview.ReviewStatus>) checkGroup.getModelObject(); } + + public abstract void ajaxUpdate(AjaxRequestTarget target); } diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.html b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.html index b919f85b3e..a25813b0f0 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.html +++ b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.html @@ -20,9 +20,6 @@ <br> <div class="span-3"></div> </div> - <div class="span-3"> - <input wicket:id="filterButton" type="submit" value="Filter"/> - </div> </form> <div class="span-24"> <span class="left">Reviews found: <span wicket:id="countLabel"></span></span> diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.java b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.java index 4f838af7bc..80864939b6 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.java +++ b/src/main/java/se/su/dsv/scipro/peer/panels/PeerReviewListPanel.java @@ -8,7 +8,7 @@ import java.util.Iterator; import org.apache.wicket.PageParameters; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; +import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox; import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackHeadersToolbar; import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; @@ -17,7 +17,6 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColu import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider; import org.apache.wicket.markup.html.basic.EnclosureContainer; import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.AbstractReadOnlyModel; @@ -129,51 +128,63 @@ public class PeerReviewListPanel extends Panel { @Override protected void action(AjaxRequestTarget pTarget, Student newSelection) { params.setAuthor(newSelection); + updateTarget(pTarget, params); } }; add(authorField); - final FilterFormReviewStatusPanel statusFilter = new FilterFormReviewStatusPanel("statusFilter"); - add(statusFilter); - final CheckBox supervisorProjects = new CheckBox("supervisorCheckBox", new Model<Boolean>()); - supervisorProjects.setDefaultModelObject(false); - supervisorProjects.setVisible(isSupervisorView); - EnclosureContainer cont = new EnclosureContainer("supervisorContainer", supervisorProjects); - cont.add(supervisorProjects); - add(cont); - - - add(new AjaxButton("filterButton") { //button to click for performing overriden method - private static final long serialVersionUID = 1L; + final FilterFormReviewStatusPanel statusFilter = new FilterFormReviewStatusPanel("statusFilter") { + private static final long serialVersionUID = 2822230129396153144L; + @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - if(authorField.getInput().equals("")) - params.setAuthor(null); - if(!statusFilter.getSelectedStatuses().isEmpty()){ - if(statusFilter.getSelectedStatuses().contains(ReviewStatus.COMPLETED)) + public void ajaxUpdate(AjaxRequestTarget target) { + if(!getSelectedStatuses().isEmpty()){ + if(getSelectedStatuses().contains(ReviewStatus.COMPLETED)) params.setIncludeCompleted(true); else params.setIncludeCompleted(false); - if(statusFilter.getSelectedStatuses().contains(ReviewStatus.ABORTED)) + if(getSelectedStatuses().contains(ReviewStatus.ABORTED)) params.setIncludeAborted(true); else params.setIncludeAborted(false); - if(statusFilter.getSelectedStatuses().contains(ReviewStatus.INPROGRESS)) + if(getSelectedStatuses().contains(ReviewStatus.INPROGRESS)) params.setIncludeInProgress(true); else params.setIncludeInProgress(false); + } else { + params.setIncludeAborted(false); + params.setIncludeCompleted(false); + params.setIncludeAborted(false); } - if(supervisorProjects.getModelObject()){ + updateTarget(target, params); + } + }; + add(statusFilter); + final AjaxCheckBox supervisorProjects = new AjaxCheckBox("supervisorCheckBox", new Model<Boolean>()) { + private static final long serialVersionUID = -6475334474261478489L; + + @Override + protected void onUpdate(AjaxRequestTarget target) { + if(this.getModelObject()){ Employee supervisor = supervisorService.findByUser(SciProSession.get().getUser()); params.setSupervisor(supervisor); } else { params.setSupervisor(null); - } - dataProvider.setFilterParams(params); - target.addComponent(table); - target.addComponent(countLabel); + } + updateTarget(target, params); } - }); - } + }; + supervisorProjects.setDefaultModelObject(false); + supervisorProjects.setVisible(isSupervisorView); + EnclosureContainer cont = new EnclosureContainer("supervisorContainer", supervisorProjects); + cont.add(supervisorProjects); + add(cont); + } + + private void updateTarget(AjaxRequestTarget pTarget, FilterParams params) { + dataProvider.setFilterParams(params); + pTarget.addComponent(table); + pTarget.addComponent(countLabel); + } }