fixed bug to avoid the need to refocus on partner selection when authors accepting supervisor ideas. added an enclosure container as well to avoid wicket warnings
This commit is contained in:
parent
77f88e5f0c
commit
9d9729caa1
src/main/java/se/su/dsv/scipro/project/panels
@ -18,11 +18,11 @@
|
||||
</div>
|
||||
<div wicket:id="ideaDetails"></div>
|
||||
<div>
|
||||
<wicket:enclosure child="partnerPanel">
|
||||
<div wicket:id="partnerEnclosure">
|
||||
<b>Partner:</b><br />
|
||||
<div wicket:id="partnerPanel"></div>
|
||||
</wicket:enclosure>
|
||||
<span class="right"><input type="submit" wicket:id="selectButton" value="Select project idea"/></span>
|
||||
</div>
|
||||
<span class="right"><input type="submit" wicket:id="selectButton" value="Select project idea"/></span>
|
||||
</div>
|
||||
</form>
|
||||
</wicket:panel>
|
||||
|
@ -2,13 +2,16 @@ package se.su.dsv.scipro.project.panels;
|
||||
|
||||
import java.util.TreeSet;
|
||||
|
||||
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.markup.html.basic.EnclosureContainer;
|
||||
import org.apache.wicket.markup.html.form.Button;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.apache.wicket.util.time.Duration;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.data.dataobjects.Student;
|
||||
@ -34,6 +37,7 @@ public class AcceptIdeaDialogPanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = -9118352523380756043L;
|
||||
private AddRemoveStudentsPanel partnerPanel;
|
||||
private Button button;
|
||||
|
||||
public AcceptIdeaForm(String id, final IModel<SupervisorIdea> model, final User loggedInUser, final boolean unconfirmed) {
|
||||
super(id, model);
|
||||
@ -41,6 +45,19 @@ public class AcceptIdeaDialogPanel extends Panel {
|
||||
add(new ProjectIdeaDetailsPanel("ideaDetails", model, unconfirmed, false));
|
||||
addUnconfirmedContainer(model, loggedInUser, unconfirmed); //Info box with accept/decline buttons
|
||||
addButton(model, loggedInUser, unconfirmed);
|
||||
setFocusOnButton(); //Workaround to make partner selection work without the need to refocus.
|
||||
}
|
||||
|
||||
private void setFocusOnButton() {
|
||||
add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1)) {
|
||||
private static final long serialVersionUID = 8249890924500999472L;
|
||||
|
||||
@Override
|
||||
protected void onTimer(AjaxRequestTarget target) {
|
||||
target.focusComponent(button);
|
||||
stop();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void addUnconfirmedContainer(final IModel<SupervisorIdea> model, final User loggedInUser, final boolean unconfirmed) {
|
||||
@ -83,11 +100,13 @@ public class AcceptIdeaDialogPanel extends Panel {
|
||||
}
|
||||
};
|
||||
partnerPanel.setVisible(model.getObject().getProjectClass().getCode().equals(ProjectClass.BACHELOR) && !unconfirmed);
|
||||
add(partnerPanel);
|
||||
EnclosureContainer partnerEnclosure = new EnclosureContainer("partnerEnclosure", partnerPanel);
|
||||
partnerEnclosure.add(partnerPanel);
|
||||
add(partnerEnclosure);
|
||||
}
|
||||
|
||||
private void addButton(final IModel<SupervisorIdea> model, final User loggedInUser, final boolean unconfirmed) {
|
||||
Button button = new Button("selectButton") {
|
||||
button = new Button("selectButton") {
|
||||
|
||||
private static final long serialVersionUID = 8805671593150004137L;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user