View Javadoc

1   package org.weda.tapestry.binding;
2   
3   import org.apache.commons.logging.Log;
4   import org.apache.hivemind.Location;
5   import org.apache.tapestry.IBinding;
6   import org.apache.tapestry.IComponent;
7   import org.apache.tapestry.binding.AbstractBindingFactory;
8   import org.apache.tapestry.binding.BindingSource;
9   
10  /**
11   *
12   * @author tim
13   */
14  public class GlobalBindingFactory extends AbstractBindingFactory{
15      private BindingSource bindingSource;
16      private String frameworkPrefix;
17      private Log log;
18      
19      public IBinding createBinding(
20              IComponent component, String description, String expression
21              , Location location) 
22      {
23          String[] expressions = expression.split(";");
24          IBinding[] bindings = new IBinding[expressions.length];
25          for (int i=0; i<expressions.length; ++i){
26              String expr = frameworkPrefix+"."+expressions[i];
27              if (log.isDebugEnabled())
28                  log.debug(
29                          String.format(
30                              "creating binding for expression (%s)"
31                              , expr));
32              bindings[i]=bindingSource.createBinding(
33                      component, expr, expr, null, location);
34          }
35          return new GlobalBinding(
36                  description, getValueConverter(), location, bindings);
37      }        
38  
39      public void setBindingSource(BindingSource bindingSource) {
40          this.bindingSource = bindingSource;
41      }
42  
43      public void setFrameworkPrefix(String frameworkPrefix) {
44          this.frameworkPrefix = frameworkPrefix;
45      }
46  
47      public void setLog(Log log) {
48          this.log = log;
49      }
50  }