Project

General

Profile

Download (3.33 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="distribution")
29
@Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet")
30
@SuppressWarnings("serial")
31
public class DistributionStatusUI extends UI{
32

    
33
    private final static Logger logger = Logger.getLogger(DistributionStatusUI.class);
34

    
35
    private ViewDisplay viewDisplay;
36

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

    
41
    @Autowired
42
    NavigationManagerBean navigator;
43

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

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

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

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

    
72
    @Autowired
73
    UIEventBus uiEventBus;
74

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

    
80
    }
81

    
82
    /**
83
     * 
84
     * {@inheritDoc}
85
     */
86
	@Override
87
	protected void init(VaadinRequest request) {
88

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

    
97
	    });
98

    
99
        configureAccessDeniedView();
100

    
101
        Responsive.makeResponsive(this);
102

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

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

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

    
113
        navigator.setDefaultViewName(INITIAL_VIEW);
114

    
115
	}
116
}
(5-5/10)