Project

General

Profile

« Previous | Next » 

Revision 60e38397

Added by Fabian Reimeier over 6 years ago

Fixed #6802 and switched to mvp

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/ui/DistributionStatusUI.java
1 1
package eu.etaxonomy.cdm.vaadin.ui;
2 2

  
3 3
import org.apache.log4j.Logger;
4
import org.springframework.beans.factory.annotation.Autowired;
5
import org.springframework.context.ApplicationEventPublisher;
4 6

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

  
13
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.RedirectAfterLoginView;
19
import eu.etaxonomy.cdm.vaadin.view.RedirectToLoginView;
20
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.DistributionTableViewBean;
21
import eu.etaxonomy.vaadin.ui.UIInitializedEvent;
22
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
14 23

  
15 24
@Theme("macosx")
16 25
@Title("Distribution Editor")
17 26
@SpringUI(path="distribution")
18 27
@Widgetset("eu.etaxonomy.cdm.vaadin.AppWidgetSet")
19 28
@SuppressWarnings("serial")
20
public class DistributionStatusUI extends AbstractAuthenticatedUI{
29
public class DistributionStatusUI extends UI{
21 30

  
22 31
    private final static Logger logger = Logger.getLogger(DistributionStatusUI.class);
32
    
33
    @Autowired
34
    private ViewDisplay viewDisplay;
23 35

  
24
	private static final String FIRST_VIEW = "firstView";
25 36

  
26
	public DistributionStatusUI () {
27
	    logger.debug("constructor");
28
	}
37
    //---- pull into abstract super class ? ---------
38
    @Autowired
39
    SpringViewProvider viewProvider;
29 40

  
30
	@Override
31
	protected void doInit(VaadinRequest request) {
32
		Navigator navigator = UI.getCurrent().getNavigator();
33
		RedirectAfterLoginView view = new RedirectAfterLoginView();
34
		navigator.addView(getFirstViewName(), view);
35
	}
41
    protected void configureAccessDeniedView() {
42
        viewProvider.setAccessDeniedViewClass(RedirectToLoginView.class);
43
    }
44
	
45
    /**
46
     * @return
47
     */
48
    private String pageFragmentAsState() {
49
        Page page = Page.getCurrent();
50
        String fragment = page.getUriFragment();
51
        String state = null;
52
        if(fragment != null && fragment.startsWith("!")){
53
            state = fragment.substring(1, fragment.length());
54
        }
55
        return state;
56
    }
57
    //---------------------------------------------
58

  
59
    public static final String INITIAL_VIEW =  DistributionTableViewBean.NAME;
60

  
61
    @Autowired
62
    ApplicationEventPublisher eventBus;
63
    
64
    public DistributionStatusUI() {
65

  
66
    }
36 67

  
37 68
	@Override
38
	public String getFirstViewName() {
39
		return FIRST_VIEW;
40
	}
69
	protected void init(VaadinRequest request) {
70
        configureAccessDeniedView();
71

  
72
        Responsive.makeResponsive(this);
73

  
74
        setContent((Component) viewDisplay);
75
       
76
        eventBus.publishEvent(new UIInitializedEvent());
41 77

  
78
        //navigate to initial view
79
        String state = pageFragmentAsState();
80

  
81
        if(state != null){
82
            eventBus.publishEvent(new NavigationEvent(state));
83
        } else {
84
            eventBus.publishEvent(new NavigationEvent(INITIAL_VIEW));
85
        }
86
	}
42 87
}

Also available in: Unified diff