Project

General

Profile

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

    
3
import org.springframework.beans.factory.annotation.Autowired;
4
import org.vaadin.spring.events.EventBus.UIEventBus;
5

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

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

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

    
32
    public static final String NAME = "distribution";
33

    
34
    private ViewDisplay viewDisplay;
35

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

    
40
    @Autowired
41
    NavigationManagerBean navigator;
42

    
43
    /**
44
     * Sets the access AcessDeniedView for the UI.
45
     */
46
    protected void configureAccessDeniedView() {
47
        viewProvider.setAccessDeniedViewClass(RedirectToLoginView.class);
48
    }
49

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

    
65
    public static final String INITIAL_VIEW =  DistributionTableViewBean.NAME;
66

    
67
//    @Autowired
68
//    @Qualifier("registrationToolbar")
69
//    private Toolbar toolbar;
70

    
71
    @Autowired
72
    UIEventBus uiEventBus;
73

    
74
    /**
75
     * Creates a new DistributionStatusUI.
76
     */
77
    public DistributionStatusUI() {
78

    
79
    }
80

    
81
	@Override
82
	protected void init(VaadinRequest request) {
83

    
84
	    addDetachListener(e -> {
85
	        for(String viewName : viewProvider.getViewNamesForCurrentUI()){
86
	            View view = viewProvider.getView(viewName);
87
	            if(view != null && view instanceof ReleasableResourcesView) {
88
	                ((ReleasableResourcesView)view).releaseResourcesOnAccessDenied();
89
	            }
90
	        }
91

    
92
	    });
93

    
94
        configureAccessDeniedView();
95

    
96
        Responsive.makeResponsive(this);
97

    
98
        viewDisplay = new Navigator.SingleComponentContainerViewDisplay(this);
99
        navigator.setViewDisplay(viewDisplay);
100
        //setContent((Component) viewDisplay);
101

    
102
//        if(ToolbarDisplay.class.isAssignableFrom(viewDisplay.getClass())){
103
//            ((ToolbarDisplay)viewDisplay).setToolbar(toolbar);
104
//        }
105

    
106
        uiEventBus.publish(this, new UIInitializedEvent());
107

    
108
        navigator.setDefaultViewName(INITIAL_VIEW);
109

    
110
	}
111
}
(6-6/12)