added ajax behaviors to peer review list panel

This commit is contained in:
Emil Siverhall 2012-05-27 20:43:30 +02:00
parent ba26a17844
commit cddd9f3278
3 changed files with 52 additions and 32 deletions

@ -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);
}

@ -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>

@ -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);
}
}