Project

General

Profile

Download (3.4 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
    private final static Logger logger = Logger.getLogger(DistributionStatusUI.class);
34

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

    
37
    private ViewDisplay viewDisplay;
38

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

    
43
    @Autowired
44
    NavigationManagerBean navigator;
45

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

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

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

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

    
74
    @Autowired
75
    UIEventBus uiEventBus;
76

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

    
82
    }
83

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

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

    
99
	    });
100

    
101
        configureAccessDeniedView();
102

    
103
        Responsive.makeResponsive(this);
104

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

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

    
113
        uiEventBus.publish(this, new UIInitializedEvent());
114

    
115
        navigator.setDefaultViewName(INITIAL_VIEW);
116

    
117
	}
118
}
(6-6/12)