Fixed bugs in adding of students

This commit is contained in:
Niklas Herder 2012-04-02 09:42:39 +02:00
parent ec43ca1c51
commit 3a4ad9179c

@ -22,73 +22,75 @@ import java.util.SortedSet;
*/
public abstract class AddRemoveStudentsPanel extends Panel {
private static final long serialVersionUID = -7690822667493306854L;
private SortedSet<Student> studentSet;
private WebMarkupContainer wmc;
private ListView<Student> studentListView;
private Label emptyLabel;
private AuthorAutoComplete addnew;
private static final long serialVersionUID = -7690822667493306854L;
private SortedSet<Student> studentSet;
private WebMarkupContainer wmc;
private ListView<Student> studentListView;
private Label emptyLabel;
private AuthorAutoComplete addnew;
/**
* Override this method to use AJAX
* @param target
*/
public abstract void onUpdate(AjaxRequestTarget target);
public AddRemoveStudentsPanel(String id, final SortedSet<Student> studentSet) {
super(id);
/**
* Override this method to use AJAX
*
* @param target
*/
public abstract void onUpdate(AjaxRequestTarget target);
this.studentSet = studentSet;
wmc = new WebMarkupContainer("wmc");
wmc.setOutputMarkupId(true);
add(wmc);
public AddRemoveStudentsPanel(String id, final SortedSet<Student> studentSet) {
super(id);
wmc.add(emptyLabel = new Label("emptyLabel", "No students"));
emptyLabel.setVisible(studentSet.isEmpty());
emptyLabel.setOutputMarkupId(true);
this.studentSet = studentSet;
wmc.add(studentListView = new ListView<Student>("listview", new ArrayList(studentSet)) {
protected void populateItem(ListItem item) {
final Student s = (Student) item.getModelObject();
item.add(new Label("name", s.getNameAsString()));
item.add(new AjaxLink("deleteLink") {
private static final long serialVersionUID = -5174472375922201597L;
@Override
public void onClick(AjaxRequestTarget target) {
studentSet.remove(s);
studentListView.setList(new ArrayList(studentSet));
target.addComponent(wmc);
emptyLabel.setVisible(studentSet.isEmpty());
target.addComponent(emptyLabel);
onUpdate(target);
}
}.add(new ImageObject("deleteImage", ImageObject.SIXTEEN + ImageObject.DELETE).setVisible(isEditable())));
}
});
wmc = new WebMarkupContainer("wmc");
wmc.setOutputMarkupId(true);
add(wmc);
wmc.add(addnew = new AuthorAutoComplete("addnew") {
@Override
public void action(AjaxRequestTarget pTarget, Student newSelection) {
wmc.add(emptyLabel = new Label("emptyLabel", "No students"));
emptyLabel.setVisible(studentSet.isEmpty());
emptyLabel.setOutputMarkupId(true);
setSelection(null);
wmc.add(studentListView = new ListView<Student>("listview", new ArrayList(studentSet)) {
protected void populateItem(ListItem item) {
final Student s = (Student) item.getModelObject();
item.add(new Label("name", s.getNameAsString()));
item.add(new AjaxLink("deleteLink") {
private static final long serialVersionUID = -5174472375922201597L;
studentSet.add(newSelection);
studentListView.setList(new ArrayList(studentSet));
pTarget.addComponent(wmc);
pTarget.addComponent(addnew);
emptyLabel.setVisible(studentSet.isEmpty());
pTarget.addComponent(emptyLabel);
onUpdate(pTarget);
}
});
}
public SortedSet<Student> getStudentSet(){
return studentSet;
}
@Override
public void onClick(AjaxRequestTarget target) {
studentSet.remove(s);
studentListView.setList(new ArrayList(studentSet));
target.addComponent(wmc);
emptyLabel.setVisible(studentSet.isEmpty());
target.addComponent(emptyLabel);
onUpdate(target);
}
}.add(new ImageObject("deleteImage", ImageObject.SIXTEEN + ImageObject.DELETE).setVisible(isEditable())));
}
});
private boolean isEditable(){
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);
}
wmc.add(addnew = new AuthorAutoComplete("addnew") {
@Override
public void action(AjaxRequestTarget pTarget, Student newSelection) {
setSelection(null);
studentSet.add(newSelection);
studentListView.setList(new ArrayList(studentSet));
pTarget.addComponent(wmc);
pTarget.addComponent(addnew);
emptyLabel.setVisible(studentSet.isEmpty());
pTarget.addComponent(emptyLabel);
onUpdate(pTarget);
}
});
}
public SortedSet<Student> getStudentSet() {
return studentSet;
}
private boolean isEditable() {
return SciProSession.get().authorizedForRole(Roles.SYSADMIN);
}
}