Project

General

Profile

« Previous | Next » 

Revision d8b1c9ce

Added by Andreas Kohlbecker over 6 years ago

flexible choosing of the viewDisplay per UI

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/toolbar/RegistrationToolbar.java
87 87

  
88 88
    @EventListener
89 89
    public void onAuthenticationSuccessEvent(AuthenticationSuccessEvent event){
90
        updateAuthenticationButtons();
90
        boolean isInitialized = userButton != null;
91
        // The RegistrationToolbar is being initialize even if not needed only because it is a EventListener
92
        // which causes Spring to initialize it.
93
        // TODO After switching to an other event bus this check can be removed
94
        if(isInitialized){
95
            updateAuthenticationButtons();
96
        }
91 97
    }
92 98

  
93 99
    /**
src/main/java/eu/etaxonomy/cdm/vaadin/ui/DistributionStatusUI.java
2 2

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

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

  
20
import eu.etaxonomy.cdm.vaadin.toolbar.Toolbar;
21 19
import eu.etaxonomy.cdm.vaadin.view.RedirectToLoginView;
22 20
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.DistributionTableViewBean;
23 21
import eu.etaxonomy.vaadin.ui.UIInitializedEvent;
24 22
import eu.etaxonomy.vaadin.ui.navigation.NavigationManagerBean;
25
import eu.etaxonomy.vaadin.ui.view.ToolbarDisplay;
26 23

  
27 24
@Theme("macosx")
28 25
@Title("Distribution Editor")
......
33 30

  
34 31
    private final static Logger logger = Logger.getLogger(DistributionStatusUI.class);
35 32

  
36
    @Autowired
37 33
    private ViewDisplay viewDisplay;
38 34

  
39 35
    //---- pull into abstract super class ? ---------
......
63 59

  
64 60
    public static final String INITIAL_VIEW =  DistributionTableViewBean.NAME;
65 61

  
66
    @Autowired
67
    @Qualifier("registrationToolbar")
68
    private Toolbar toolbar;
62
//    @Autowired
63
//    @Qualifier("registrationToolbar")
64
//    private Toolbar toolbar;
69 65

  
70 66
    @Autowired
71 67
    ApplicationEventPublisher eventBus;
......
80 76

  
81 77
        Responsive.makeResponsive(this);
82 78

  
83
        setContent((Component) viewDisplay);
79
        viewDisplay = new Navigator.SingleComponentContainerViewDisplay(this);
80
        navigator.setViewDisplay(viewDisplay);
81
        //setContent((Component) viewDisplay);
84 82

  
85
        if(ToolbarDisplay.class.isAssignableFrom(viewDisplay.getClass())){
86
            ((ToolbarDisplay)viewDisplay).setToolbar(toolbar);
87
        }
83
//        if(ToolbarDisplay.class.isAssignableFrom(viewDisplay.getClass())){
84
//            ((ToolbarDisplay)viewDisplay).setToolbar(toolbar);
85
//        }
88 86

  
89 87
        eventBus.publishEvent(new UIInitializedEvent());
90 88

  
src/main/java/eu/etaxonomy/cdm/vaadin/ui/RegistrationUI.java
57 57
    private static final long serialVersionUID = -8626236111335323691L;
58 58

  
59 59
    @Autowired
60
    @Qualifier("viewAreaBean")
60 61
    private ViewDisplay viewDisplay;
61 62

  
62 63
    //---- pull into abstract super class ? ---------
......
111 112
    @Override
112 113
    protected void init(VaadinRequest request) {
113 114

  
115
        navigator.setViewDisplay(viewDisplay);
114 116
        configureAccessDeniedView();
115 117

  
116 118
        addStyleName(ValoTheme.UI_WITH_MENU);
src/main/java/eu/etaxonomy/vaadin/ui/navigation/NavigationManagerBean.java
39 39

  
40 40
	private final static Logger logger = Logger.getLogger(NavigationManagerBean.class);
41 41

  
42
	@Autowired
42
	// injecting the viewDisplay as spring bean causes problems with older cdm vaadin code
43
	// SingleComponentContainerViewDisplay for example can't be used
44
	// the viewDisplay should be configurable per UI therefore it seems more elegant to
45
	// let the UI pass the viewDisplay to the Navigator
46
//	@Autowired
43 47
	private ViewDisplay viewDisplay;
44 48

  
45 49
	@Autowired
......
252 256
    public void setDefaultViewName(String defaultViewName) {
253 257
        this.defaultViewName = defaultViewName;
254 258
    }
259

  
260
    public void setViewDisplay(ViewDisplay viewDisplay){
261
        this.viewDisplay = viewDisplay;
262
    }
255 263
}
src/main/java/eu/etaxonomy/vaadin/ui/view/ViewAreaBean.java
22 22
 * @author Andreas Kohlbecker - ported to Spring
23 23
 */
24 24

  
25
@SpringComponent
25
@SpringComponent("viewAreaBean")
26 26
@UIScope
27 27
class ViewAreaBean extends HorizontalLayout implements ViewDisplay, ToolbarDisplay {
28 28

  

Also available in: Unified diff