source: vlo/trunk/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/BasePage.java @ 3134

Last change on this file since 3134 was 3134, checked in by keeloo, 11 years ago

Fixed problems with theming: instead of the session level, the data representing the theme was stored in the web application class.

File size: 3.8 KB
Line 
1package eu.clarin.cmdi.vlo.pages;
2
3import eu.clarin.cmdi.vlo.VloWebApplication;
4import eu.clarin.cmdi.vlo.VloWebApplication.ThemedSession;
5import org.apache.wicket.PageParameters;
6import org.apache.wicket.Resource;
7import org.apache.wicket.markup.html.IHeaderContributor;
8import org.apache.wicket.markup.html.IHeaderResponse;
9import org.apache.wicket.markup.html.WebPage;
10import org.apache.wicket.markup.html.basic.Label;
11import org.apache.wicket.markup.html.image.Image;
12import org.apache.wicket.markup.html.link.BookmarkablePageLink;
13import org.apache.wicket.resource.ContextRelativeResource;
14
15/**
16 * Properties common to all VLO web application's page objects
17 *
18 * @author keeloo
19 */
20public class BasePage extends WebPage implements IHeaderContributor{
21   
22    // reference to the web application object
23    static VloWebApplication webApp;
24
25    /**
26     * Make sure every web application object sends this message
27     *
28     * @param vloWebApplication reference to the web application object
29     */
30    public static void setWebApp(VloWebApplication vloWebApplication) {
31        webApp = vloWebApplication;
32    }
33   
34    /**
35     * Install a VLO theme<br><br>
36     *
37     * A VLO theme is determined by a page title, a CSS file, and a banner split
38     * in a left and right image.
39     *
40     * The left part of the banner serves as a link to the faceted search page,
41     * the application's start page. In the field below banner there is a link
42     * to the page the web application is launched from; the applications home
43     * page. This link page is defined in the VloConfig file.
44     *     
45     * @param parameters
46     */
47    public BasePage(PageParameters parameters) {
48
49        super(parameters);
50       
51        // set the page title
52       
53        Label pageTitle;
54        pageTitle = new Label ("pagetitle", ((ThemedSession)getSession()).getCurrentTheme().pageTitle);
55        add (pageTitle);
56       
57        // set the applications start page link to the faceted search page
58        PageParameters startPageParameters = new PageParameters ();
59       
60        ((ThemedSession)getSession()).reflectPersistentParameters(startPageParameters);
61               
62                BookmarkablePageLink link = new BookmarkablePageLink("startpage", 
63                FacetedSearchPage.class, startPageParameters);
64        add(link);
65                       
66        // refer to the the left part of the vlo banner as a resource
67        Resource leftImageRes;
68        leftImageRes = new ContextRelativeResource(((ThemedSession)getSession()).getCurrentTheme().topLeftImage);
69
70        // create the image
71        Image leftImage;
72        leftImage = new Image("leftimage", leftImageRes);
73 
74        // add the image to the page
75        link.add(leftImage);
76
77        // refer to the right part of the vlo banner as a resource
78        Resource rightImageRes;
79        rightImageRes = new ContextRelativeResource(((ThemedSession)getSession()).getCurrentTheme().topRightImage);
80       
81        // create the image
82        Image rightImage;
83        rightImage = new Image("rightimage", rightImageRes);
84       
85        // add it to the page
86        add (rightImage);
87       
88        // set the partnerlinks
89       
90        Label partnerLinkMap;
91        partnerLinkMap = new Label ("partnerlinkmap", ((ThemedSession)getSession()).getCurrentTheme().partnerLinkMap);
92        partnerLinkMap.setEscapeModelStrings(false);
93        add (partnerLinkMap);
94    }
95
96    /**
97     * Include the theme's CSS file in the HTML page<br><br>
98     *
99     * This method is invoked when Wicket renders a VLO page.
100     *
101     * @param response
102     */
103    @Override
104    public void renderHead(IHeaderResponse response) {
105               
106        response.renderCSSReference(((ThemedSession)getSession()).getCurrentTheme().cssFile);
107    }
108   
109}
Note: See TracBrowser for help on using the repository browser.