Project

General

Profile

Download (1.77 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2017 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.vaadin.view;
10

    
11
import com.vaadin.shared.ui.label.ContentMode;
12
import com.vaadin.ui.CssLayout;
13
import com.vaadin.ui.Label;
14
import com.vaadin.ui.themes.ValoTheme;
15

    
16
import eu.etaxonomy.vaadin.mvp.AbstractPresenter;
17
import eu.etaxonomy.vaadin.mvp.AbstractView;
18

    
19
/**
20
 * A Page based on a <code>CssLayout</code> expanded to full size having a header and sub-header.
21
 *
22
 * The whole header section is build using a single <code>Label</code> for better performance.
23
 *
24
 * @author a.kohlbecker
25
 * @since Mar 20, 2017
26
 *
27
 */
28
public abstract class AbstractPageView<P extends AbstractPresenter> extends AbstractView<P>  {
29

    
30
    private CssLayout layout;
31

    
32
    private Label header;
33

    
34

    
35
    /**
36
     *
37
     */
38
    public AbstractPageView() {
39
        layout = new CssLayout();
40
        layout.setSizeFull();
41

    
42
        header = new Label();
43
        header.setStyleName(ValoTheme.LABEL_HUGE);
44
        header.setWidth(100, Unit.PERCENTAGE);
45
        header.setContentMode(ContentMode.HTML);
46
        header.setValue("<div id=\"header\">" + getHeaderText() + "</div><div id=\"subheader\">" + getSubHeaderText() + "</div>");
47
        layout.addComponent(header);
48

    
49
        setCompositionRoot(layout);
50
        this.setSizeFull();
51
    }
52

    
53
    protected CssLayout getLayout() {
54
        return layout;
55
    }
56

    
57
    /**
58
     * Provides the sub header text
59
     *
60
     * @return
61
     */
62
    protected abstract String getHeaderText();
63

    
64
    /**
65
     * Provides the header text
66
     *
67
     * @return
68
     */
69
    protected abstract  String getSubHeaderText();
70

    
71

    
72

    
73
}
(1-1/9)