View Javadoc

1   /*
2    * TapestryDataProviderLinkBuilder.java
3    *
4    * Created on 14 Май 2006 г., 21:30
5    */
6   
7   package org.weda.tapestry;
8   
9   import java.util.Map;
10  import org.apache.tapestry.AbstractComponent;
11  import org.apache.tapestry.IMarkupWriter;
12  import org.apache.tapestry.IRequestCycle;
13  import org.apache.tapestry.components.ILinkComponent;
14  import org.apache.tapestry.components.LinkEventType;
15  import org.apache.tapestry.engine.IEngineService;
16  import org.apache.tapestry.engine.ILink;
17  import org.apache.tapestry.services.LinkFactory;
18  import org.weda.property.ObjectDescriptorRegistry;
19  import org.weda.data.DataProviderLinkBuilder;
20  import org.weda.data.DataProviderLinkBuilderException;
21  import org.weda.data.impl.AbstractDataProviderLinkBuilder;
22  
23  /**
24   *
25   * @author Mikhail Titov
26   */
27  public class TapestryDataProviderLinkBuilder 
28          extends AbstractDataProviderLinkBuilder
29  {
30      private LinkFactory linkFactory;
31      private IEngineService dataViewerEngine;
32      private IRequestCycle requestCycle;
33      
34      protected String formLink(Map<String, String> parameters) {
35          LinkComponent link = new LinkComponent(parameters);
36          return link.getLink(requestCycle).getURL();
37      }
38      
39      private class LinkComponent 
40              extends AbstractComponent implements ILinkComponent
41      {
42          private Map<String, String> valueIdParameters;
43          
44          public LinkComponent(Map<String, String> valueIdParameters)
45          {
46              this.valueIdParameters = valueIdParameters;
47          }
48          
49          public void addEventHandler(LinkEventType linkEventType, String string) 
50          {
51          }
52  
53          public ILink getLink(IRequestCycle cycle) {
54              ILink link = linkFactory.constructLink(
55                      dataViewerEngine, false, valueIdParameters, true);
56              return link;
57          }
58  
59          protected void renderComponent(
60                  IMarkupWriter iMarkupWriter, IRequestCycle iRequestCycle) {
61          }
62  
63          public void renderAdditionalAttributes(
64                  IMarkupWriter iMarkupWriter, IRequestCycle iRequestCycle) {
65          }
66  
67          public boolean isDisabled() {
68              return false;
69          }
70  
71          public String getTarget() {
72              return null;
73          }
74  
75          public String getScheme() {
76              return null;
77          }
78  
79          public Integer getPort() {
80              return null;
81          }
82  
83          public String getAnchor() {
84              return null;
85          }        
86  
87          public void renderBody(IMarkupWriter writer, IRequestCycle cycle) {
88              super.renderBody(writer, cycle);
89              writer.print("View");
90          }
91      }
92  
93      public void setDataViewerEngine(IEngineService dataViewerEngine) {
94          this.dataViewerEngine = dataViewerEngine;
95      }
96  
97      public void setLinkFactory(LinkFactory linkFactory) {
98          this.linkFactory = linkFactory;
99      }
100 
101     public void setRequestCycle(IRequestCycle requestCycle) {
102         this.requestCycle = requestCycle;
103     }
104 
105 }