View Javadoc

1   /*
2    * AbstractComponent.java
3    *
4    * Created on 12 Март 2006 г., 16:28
5    */
6   
7   package org.weda.tapestry.component;
8   
9   import org.apache.tapestry.BaseComponent;
10  import org.apache.tapestry.annotations.InjectObject;
11  import org.weda.message.Messages;
12  import org.weda.message.MessagesRegistry;
13  import org.weda.message.impl.MessagesSubset;
14  
15  /**Цель: предоставить общую функциональность для всех компонентов
16   *
17   * @author Mikhail Titov
18   */
19  public abstract class AbstractComponent extends BaseComponent {
20      private Messages componentMessages = null;
21      
22      @InjectObject("service:org.weda.message.MessagesRegistry")
23      public abstract MessagesRegistry getAllMessages();
24      
25      public Messages getComponentMessages(){
26          if (componentMessages==null){
27              synchronized(this){
28                  if (componentMessages==null)
29                      componentMessages = 
30                          new MessagesSubset(
31                              new MessagesSubset(getAllMessages(), "components")
32                              , this.getClass().getSuperclass().getName());
33              }
34          }
35          return componentMessages;
36      }
37  }