View Javadoc

1   package org.appfuse.webapp.components;
2   
3   import org.apache.tapestry5.BindingConstants;
4   import org.apache.tapestry5.Block;
5   import org.apache.tapestry5.ComponentResources;
6   import org.apache.tapestry5.annotations.Import;
7   import org.apache.tapestry5.annotations.Parameter;
8   import org.apache.tapestry5.annotations.Property;
9   import org.apache.tapestry5.ioc.Messages;
10  import org.apache.tapestry5.ioc.annotations.Inject;
11  import org.apache.tapestry5.ioc.services.SymbolSource;
12  import org.apache.tapestry5.services.AssetSource;
13  import org.apache.tapestry5.services.Context;
14  import org.apache.tapestry5.services.Environment;
15  import org.apache.tapestry5.services.PageRenderLinkSource;
16  import org.apache.tapestry5.services.javascript.JavaScriptSupport;
17  import org.appfuse.webapp.AppFuseSymbolConstants;
18  import org.appfuse.webapp.services.SecurityContext;
19  
20  
21  /**
22   * Global Layout component
23   *
24   * @author Serge Eby
25   * @version $Id: Layout.java 5 2008-08-30 09:59:21Z serge.eby $
26   */
27  
28  @Import(stack = AppFuseSymbolConstants.BOOTSTRAP_STACK)
29  public class Layout {
30  
31      @Property
32      @Parameter(required = true, defaultPrefix = BindingConstants.MESSAGE)
33      private String title;
34  
35  
36      @Property
37      @Parameter(defaultPrefix = BindingConstants.MESSAGE)
38      private String heading;
39  
40      @Property
41      @Parameter(defaultPrefix = BindingConstants.LITERAL)
42      private String menu;
43  
44      @Property
45      @Parameter(defaultPrefix = BindingConstants.LITERAL)
46      private String bodyId;
47  
48  
49      @Property
50      @Parameter(defaultPrefix = BindingConstants.LITERAL)
51      private String bodyClass;
52  
53  
54      @Parameter(defaultPrefix = BindingConstants.LITERAL)
55      private Block sidebar;
56  
57      @Inject
58      private Environment environment;
59  
60      @Inject
61      private Context context;
62  
63      @Inject
64      private Messages messages;
65  
66      @Inject
67      private SecurityContext securityContext;
68  
69      @Inject
70      private ComponentResources resources;
71  
72      @Inject
73      private PageRenderLinkSource linkSource;
74  
75      @Inject
76      private JavaScriptSupport jsSupport;
77  
78      @Inject
79      private AssetSource assetSource;
80  
81      @Inject
82      private SymbolSource symbolSource;
83  
84      @Inject
85      private Block adminMenuBlock;
86  
87  
88      public boolean isLoggedIn() {
89          return securityContext.isLoggedIn();
90      }
91  
92      public Block getSidebar() {
93          if ("AdminMenu".equals(menu) && securityContext.isAdmin()) {
94              return adminMenuBlock;
95          }
96          return null;
97      }
98  
99  
100     public boolean isAdminMenu() {
101         return "AdminMenu".equals(menu);
102     }
103 
104 
105     public String getCurrentPage() {
106         return resources.getPageName().toLowerCase();
107     }
108 
109 //    public String getSidebarClass() {
110 //        resources.getPageName().equalsIgnoreCase(pageName);
111 //    }
112 
113     void afterRender() {
114         jsSupport.addScript("$j('.dropdown-menu li').click(function(){ $j(this).addClass('active');});");
115     }
116 
117 }