wrote new reusable panel for selecting projectclasses using checkboxes
This commit is contained in:
parent
e9e4781fb5
commit
25df883fac
src/main/java/se/su/dsv/scipro/reusable
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<form wicket:id="form">
|
||||
<div><span wicket:id="name"></span> <input wicket:id="check" type="checkbox"/></div>
|
||||
</form>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,109 @@
|
||||
package se.su.dsv.scipro.reusable;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.PropertyModel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
|
||||
public abstract class FilterProjectClassPanel extends Panel{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private ProjectClassForm projectClassForm;
|
||||
|
||||
public FilterProjectClassPanel(String id) {
|
||||
super(id);
|
||||
projectClassForm = new ProjectClassForm("form");
|
||||
add(projectClassForm);
|
||||
}
|
||||
|
||||
public Collection<ProjectClass> getSelectedProjectClasses(){
|
||||
return projectClassForm.getSelectedProjectClasses();
|
||||
}
|
||||
|
||||
/**
|
||||
* Override this method to do something.
|
||||
*/
|
||||
public abstract void onUpdateFilter(AjaxRequestTarget target);
|
||||
|
||||
private class ProjectClassForm extends Form {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SpringBean
|
||||
private ProjectClassDao projectClassDao;
|
||||
private Collection<ProjectClass> selectedProjectClasses;
|
||||
|
||||
public Collection<ProjectClass> getSelectedProjectClasses(){
|
||||
return selectedProjectClasses;
|
||||
}
|
||||
|
||||
public ProjectClassForm(String id) {
|
||||
super(id);
|
||||
|
||||
ArrayList<Wrapper> wrapperCollection = new ArrayList<Wrapper>();
|
||||
for (ProjectClass pc : projectClassDao.findAll()){
|
||||
wrapperCollection.add(new Wrapper(pc));
|
||||
}
|
||||
|
||||
ListView<Wrapper> listView = new ListView<Wrapper>(id, wrapperCollection){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void populateItem(ListItem<Wrapper> item) {
|
||||
final Wrapper wrapper = (Wrapper) item.getModelObject();
|
||||
item.add(new Label("name", wrapper.getProjectClass().getName()));
|
||||
item.add(new AjaxCheckBox("check", new PropertyModel<Boolean>(wrapper, "selected")){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
if (getModelObject() == true){
|
||||
selectedProjectClasses.add(wrapper.getProjectClass());
|
||||
}
|
||||
else if (getModelObject() == false){
|
||||
selectedProjectClasses.remove(wrapper.getProjectClass());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
listView.setReuseItems(true);
|
||||
add(listView);
|
||||
}
|
||||
}
|
||||
|
||||
private class Wrapper implements Serializable {
|
||||
private final ProjectClass projectClass;
|
||||
private Boolean selected = Boolean.FALSE;
|
||||
|
||||
public Wrapper(ProjectClass projectClass){
|
||||
this.projectClass = projectClass;
|
||||
}
|
||||
|
||||
public boolean getSelected(){
|
||||
return selected;
|
||||
}
|
||||
|
||||
public void setSelected(boolean selected){
|
||||
this.selected = selected;
|
||||
}
|
||||
|
||||
public ProjectClass getProjectClass(){
|
||||
return projectClass;
|
||||
}
|
||||
|
||||
// public void setProjectClass(ProjectClass projectClass){
|
||||
// this.projectClass = projectClass;
|
||||
// }
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user