1 package eu
.etaxonomy
.cdm
.vaadin
.ui
;
3 import org
.apache
.log4j
.Logger
;
4 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
5 import org
.vaadin
.spring
.events
.EventBus
.UIEventBus
;
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
;
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
;
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
{
33 @SuppressWarnings("unused")
34 private final static Logger logger
= Logger
.getLogger(DistributionStatusUI
.class);
36 public static final String NAME
= "distribution";
38 private ViewDisplay viewDisplay
;
40 //---- pull into abstract super class ? ---------
42 SpringViewProvider viewProvider
;
45 NavigationManagerBean navigator
;
48 * Sets the access AcessDeniedView for the UI.
50 protected void configureAccessDeniedView() {
51 viewProvider
.setAccessDeniedViewClass(RedirectToLoginView
.class);
55 * Returns the state of the UI.
56 * @return State of the UI.
58 private String
pageFragmentAsState() {
59 Page page
= Page
.getCurrent();
60 String fragment
= page
.getUriFragment();
62 if(fragment
!= null && fragment
.startsWith("!")){
63 state
= fragment
.substring(1, fragment
.length());
67 //---------------------------------------------
69 public static final String INITIAL_VIEW
= DistributionTableViewBean
.NAME
;
72 // @Qualifier("registrationToolbar")
73 // private Toolbar toolbar;
76 UIEventBus uiEventBus
;
79 * Creates a new DistributionStatusUI.
81 public DistributionStatusUI() {
86 protected void init(VaadinRequest request
) {
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();
98 configureAccessDeniedView();
100 Responsive
.makeResponsive(this);
102 viewDisplay
= new Navigator
.SingleComponentContainerViewDisplay(this);
103 navigator
.setViewDisplay(viewDisplay
);
104 //setContent((Component) viewDisplay);
106 // if(ToolbarDisplay.class.isAssignableFrom(viewDisplay.getClass())){
107 // ((ToolbarDisplay)viewDisplay).setToolbar(toolbar);
110 uiEventBus
.publish(this, new UIInitializedEvent());
112 navigator
.setDefaultViewName(INITIAL_VIEW
);