Browse Source

Made Root.getCurrent() work in LoginForm LoginListener (#9372)

tags/7.0.0.beta1
Artur Signell 11 years ago
parent
commit
098957c085

+ 3
- 0
server/src/com/vaadin/ui/LoginForm.java View File

@@ -99,6 +99,9 @@ public class LoginForm extends CustomComponent {
throws IOException {
String requestPathInfo = request.getRequestPathInfo();
if ("/loginHandler".equals(requestPathInfo)) {
// Ensure Root.getCurrent() works in listeners
Root.setCurrent(getRoot());

response.setCacheTime(-1);
response.setContentType("text/html; charset=utf-8");
response.getWriter()

+ 52
- 0
tests/testbench/com/vaadin/tests/components/loginform/LoginFormRootInLoginHandler.java View File

@@ -0,0 +1,52 @@
package com.vaadin.tests.components.loginform;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Label;
import com.vaadin.ui.LoginForm;
import com.vaadin.ui.LoginForm.LoginEvent;
import com.vaadin.ui.LoginForm.LoginListener;
import com.vaadin.ui.Root;
public class LoginFormRootInLoginHandler extends TestBase {
@Override
protected void setup() {
LoginForm lf = new LoginForm();
lf.addListener(new LoginListener() {
@Override
public void onLogin(LoginEvent event) {
Root r1 = Root.getCurrent();
if (r1 != null) {
addComponent(new Label("Root.getCurrent().data: "
+ r1.getData()));
} else {
addComponent(new Label("Root.getCurrent() is null"));
}
Root r2 = ((LoginForm) event.getSource()).getRoot();
if (r2 != null) {
addComponent(new Label("event.getSource().data: "
+ r2.getData()));
} else {
addComponent(new Label(
"event.getSource().getRoot() is null"));
}
}
});
addComponent(lf);
getLayout().getRoot().setData("This root");
}
@Override
protected String getDescription() {
// TODO Auto-generated method stub
return null;
}
@Override
protected Integer getTicketNumber() {
// TODO Auto-generated method stub
return null;
}
}

Loading…
Cancel
Save