Project

General

Profile

Download (2.5 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.ui;
2

    
3
import org.apache.log4j.Logger;
4
import org.springframework.beans.factory.annotation.Autowired;
5
import org.springframework.context.ApplicationEventPublisher;
6

    
7
import com.vaadin.annotations.Theme;
8
import com.vaadin.annotations.Title;
9
import com.vaadin.annotations.Widgetset;
10
import com.vaadin.navigator.ViewDisplay;
11
import com.vaadin.server.Page;
12
import com.vaadin.server.Responsive;
13
import com.vaadin.server.VaadinRequest;
14
import com.vaadin.spring.annotation.SpringUI;
15
import com.vaadin.spring.navigator.SpringViewProvider;
16
import com.vaadin.ui.Component;
17
import com.vaadin.ui.UI;
18

    
19
import eu.etaxonomy.cdm.vaadin.view.RedirectToLoginView;
20
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.DistributionTableViewBean;
21
import eu.etaxonomy.vaadin.ui.UIInitializedEvent;
22
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
23

    
24
@Theme("macosx")
25
@Title("Distribution Editor")
26
@SpringUI(path="distribution")
27
@Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet")
28
@SuppressWarnings("serial")
29
public class DistributionStatusUI extends UI{
30

    
31
    private final static Logger logger = Logger.getLogger(DistributionStatusUI.class);
32
    
33
    @Autowired
34
    private ViewDisplay viewDisplay;
35

    
36

    
37
    //---- pull into abstract super class ? ---------
38
    @Autowired
39
    SpringViewProvider viewProvider;
40

    
41
    protected void configureAccessDeniedView() {
42
        viewProvider.setAccessDeniedViewClass(RedirectToLoginView.class);
43
    }
44
	
45
    /**
46
     * @return
47
     */
48
    private String pageFragmentAsState() {
49
        Page page = Page.getCurrent();
50
        String fragment = page.getUriFragment();
51
        String state = null;
52
        if(fragment != null && fragment.startsWith("!")){
53
            state = fragment.substring(1, fragment.length());
54
        }
55
        return state;
56
    }
57
    //---------------------------------------------
58

    
59
    public static final String INITIAL_VIEW =  DistributionTableViewBean.NAME;
60

    
61
    @Autowired
62
    ApplicationEventPublisher eventBus;
63
    
64
    public DistributionStatusUI() {
65

    
66
    }
67

    
68
	@Override
69
	protected void init(VaadinRequest request) {
70
        configureAccessDeniedView();
71

    
72
        Responsive.makeResponsive(this);
73

    
74
        setContent((Component) viewDisplay);
75
       
76
        eventBus.publishEvent(new UIInitializedEvent());
77

    
78
        //navigate to initial view
79
        String state = pageFragmentAsState();
80

    
81
        if(state != null){
82
            eventBus.publishEvent(new NavigationEvent(state));
83
        } else {
84
            eventBus.publishEvent(new NavigationEvent(INITIAL_VIEW));
85
        }
86
	}
87
}
(5-5/7)