Fixed bugs in adding of students
This commit is contained in:
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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user