cleanup
[cdm-vaadin.git] / src / main / java / eu / etaxonomy / cdm / vaadin / ui / DistributionStatusUI.java
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 }