Project

General

Profile

Download (3.39 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.vaadin.spring.events.EventBus.UIEventBus;
6

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

    
20
import eu.etaxonomy.cdm.vaadin.permission.ReleasableResourcesView;
21
import eu.etaxonomy.cdm.vaadin.view.RedirectToLoginView;
22
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.DistributionTableViewBean;
23
import eu.etaxonomy.vaadin.ui.UIInitializedEvent;
24
import eu.etaxonomy.vaadin.ui.navigation.NavigationManagerBean;
25

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

    
33
    @SuppressWarnings("unused")
34
    private final static Logger logger = Logger.getLogger(DistributionStatusUI.class);
35

    
36
    public static final String NAME = "distribution";
37

    
38
    private ViewDisplay viewDisplay;
39

    
40
    //---- pull into abstract super class ? ---------
41
    @Autowired
42
    SpringViewProvider viewProvider;
43

    
44
    @Autowired
45
    NavigationManagerBean navigator;
46

    
47
    /**
48
     * Sets the access AcessDeniedView for the UI.
49
     */
50
    protected void configureAccessDeniedView() {
51
        viewProvider.setAccessDeniedViewClass(RedirectToLoginView.class);
52
    }
53

    
54
    /**
55
     * Returns the state of the UI.
56
     * @return State of the UI.
57
     */
58
    private String pageFragmentAsState() {
59
        Page page = Page.getCurrent();
60
        String fragment = page.getUriFragment();
61
        String state = null;
62
        if(fragment != null && fragment.startsWith("!")){
63
            state = fragment.substring(1, fragment.length());
64
        }
65
        return state;
66
    }
67
    //---------------------------------------------
68

    
69
    public static final String INITIAL_VIEW =  DistributionTableViewBean.NAME;
70

    
71
//    @Autowired
72
//    @Qualifier("registrationToolbar")
73
//    private Toolbar toolbar;
74

    
75
    @Autowired
76
    UIEventBus uiEventBus;
77

    
78
    /**
79
     * Creates a new DistributionStatusUI.
80
     */
81
    public DistributionStatusUI() {
82

    
83
    }
84

    
85
	@Override
86
	protected void init(VaadinRequest request) {
87

    
88
	    addDetachListener(e -> {
89
	        for(String viewName : viewProvider.getViewNamesForCurrentUI()){
90
	            View view = viewProvider.getView(viewName);
91
	            if(view != null && view instanceof ReleasableResourcesView) {
92
	                ((ReleasableResourcesView)view).releaseResourcesOnAccessDenied();
93
	            }
94
	        }
95

    
96
	    });
97

    
98
        configureAccessDeniedView();
99

    
100
        Responsive.makeResponsive(this);
101

    
102
        viewDisplay = new Navigator.SingleComponentContainerViewDisplay(this);
103
        navigator.setViewDisplay(viewDisplay);
104
        //setContent((Component) viewDisplay);
105

    
106
//        if(ToolbarDisplay.class.isAssignableFrom(viewDisplay.getClass())){
107
//            ((ToolbarDisplay)viewDisplay).setToolbar(toolbar);
108
//        }
109

    
110
        uiEventBus.publish(this, new UIInitializedEvent());
111

    
112
        navigator.setDefaultViewName(INITIAL_VIEW);
113

    
114
	}
115
}
(6-6/12)