Преглед изворни кода

#7895 Provide ThreadLocal for the current Root

tags/7.0.0.alpha1
Leif Åstrand пре 12 година
родитељ
комит
63dba1460d

+ 1
- 0
src/com/vaadin/Application.java Прегледај датотеку

@@ -1476,6 +1476,7 @@ public class Application implements Terminal.ErrorListener, Serializable {
}
}

Root.setCurrentRoot(root);
return root;
}


+ 1
- 0
src/com/vaadin/terminal/gwt/server/AbstractApplicationPortlet.java Прегледај датотеку

@@ -531,6 +531,7 @@ public abstract class AbstractApplicationPortlet extends GenericPortlet

}
} finally {
Root.setCurrentRoot(null);
Application.setCurrentApplication(null);
}
}

+ 1
- 0
src/com/vaadin/terminal/gwt/server/AbstractApplicationServlet.java Прегледај датотеку

@@ -577,6 +577,7 @@ public abstract class AbstractApplicationServlet extends HttpServlet implements
.onRequestEnd(request, response);
}
} finally {
Root.setCurrentRoot(null);
Application.setCurrentApplication(null);
}


+ 10
- 0
src/com/vaadin/ui/Root.java Прегледај датотеку

@@ -45,6 +45,8 @@ public class Root extends AbstractComponentContainer {
*/
private Component scrollIntoView;

private static final ThreadLocal<Root> currentRoot = new ThreadLocal<Root>();

public Root(RootLayout rootLayout) {
this.rootLayout = rootLayout;
addComponent(rootLayout);
@@ -446,4 +448,12 @@ public class Root extends AbstractComponentContainer {
public void init(WrappedRequest request) {
getRootLayout().init(request);
}

public static void setCurrentRoot(Root root) {
currentRoot.set(root);
}

public static Root getCurrentRoot() {
return currentRoot.get();
}
}

Loading…
Откажи
Сачувај