Author: nbelaevski
Date: 2007-04-22 18:20:24 -0400 (Sun, 22 Apr 2007)
New Revision: 476
Modified:
trunk/richfaces/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java
Log:
Code updated to comply with
http://jira.jboss.com/jira/browse/RF-84 (lazy initialization
for helper renderers introduced)
Modified:
trunk/richfaces/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java
===================================================================
---
trunk/richfaces/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java 2007-04-22
21:07:41 UTC (rev 475)
+++
trunk/richfaces/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java 2007-04-22
22:20:24 UTC (rev 476)
@@ -40,19 +40,25 @@
public class TabRendererBase extends RendererBase implements TabEncoder {
private RendererBase tabHeaderRenderer;
+ private synchronized RendererBase getHeaderRenderer() {
+ if (tabHeaderRenderer == null) {
+ Package pkg = this.getClass().getPackage();
+ try {
+ tabHeaderRenderer = (RendererBase) Class.forName(pkg.getName() +
".TabHeaderRenderer").newInstance();
+ } catch (InstantiationException e) {
+ throw new FacesException(e);
+ } catch (IllegalAccessException e) {
+ throw new FacesException(e);
+ } catch (ClassNotFoundException e) {
+ throw new FacesException(e);
+ }
+ }
+
+ return tabHeaderRenderer;
+ }
+
public TabRendererBase() {
super();
-
- Package pkg = this.getClass().getPackage();
- try {
- tabHeaderRenderer = (RendererBase) Class.forName(pkg.getName() +
".TabHeaderRenderer").newInstance();
- } catch (InstantiationException e) {
- throw new FacesException(e);
- } catch (IllegalAccessException e) {
- throw new FacesException(e);
- } catch (ClassNotFoundException e) {
- throw new FacesException(e);
- }
}
/**
@@ -64,8 +70,8 @@
* @throws IOException
*/
public void encodeTab(FacesContext context, UITab tab, boolean active) throws
IOException {
- tabHeaderRenderer.encodeBegin(context, tab);
- tabHeaderRenderer.encodeEnd(context, tab);
+ getHeaderRenderer().encodeBegin(context, tab);
+ getHeaderRenderer().encodeEnd(context, tab);
}
public String getTabDisplay(FacesContext context, UITab tab) {