Project

General

Profile

« Previous | Next » 

Revision 000bee0d

Added by Andreas Kohlbecker over 6 years ago

default view configurable in NavigationManagerBean & login cancel buttons navigate to default view

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/ui/DistributionStatusUI.java
21 21
import eu.etaxonomy.cdm.vaadin.view.RedirectToLoginView;
22 22
import eu.etaxonomy.cdm.vaadin.view.distributionStatus.DistributionTableViewBean;
23 23
import eu.etaxonomy.vaadin.ui.UIInitializedEvent;
24
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
24
import eu.etaxonomy.vaadin.ui.navigation.NavigationManagerBean;
25 25
import eu.etaxonomy.vaadin.ui.view.ToolbarDisplay;
26 26

  
27 27
@Theme("macosx")
......
40 40
    @Autowired
41 41
    SpringViewProvider viewProvider;
42 42

  
43
    @Autowired
44
    NavigationManagerBean navigator;
45

  
43 46
    protected void configureAccessDeniedView() {
44 47
        viewProvider.setAccessDeniedViewClass(RedirectToLoginView.class);
45 48
    }
......
85 88

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

  
88
        //navigate to initial view
89
        String state = pageFragmentAsState();
91
        navigator.setDefaultViewName(INITIAL_VIEW);
90 92

  
91
        if(state != null){
92
            eventBus.publishEvent(new NavigationEvent(state));
93
        } else {
94
            eventBus.publishEvent(new NavigationEvent(INITIAL_VIEW));
95
        }
96 93
	}
97 94
}
src/main/java/eu/etaxonomy/cdm/vaadin/ui/RegistrationUI.java
37 37
import eu.etaxonomy.cdm.vaadin.view.registration.StartRegistrationViewBean;
38 38
import eu.etaxonomy.vaadin.ui.MainMenu;
39 39
import eu.etaxonomy.vaadin.ui.UIInitializedEvent;
40
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
40
import eu.etaxonomy.vaadin.ui.navigation.NavigationManagerBean;
41 41
import eu.etaxonomy.vaadin.ui.view.ToolbarDisplay;
42 42

  
43 43
/**
......
63 63
    @Autowired
64 64
    SpringViewProvider viewProvider;
65 65

  
66
    @Autowired
67
    NavigationManagerBean navigator;
68

  
66 69
    protected void configureAccessDeniedView() {
67 70
        viewProvider.setAccessDeniedViewClass(RedirectToLoginView.class);
68 71
    }
......
139 142
        Resource registryCssFile = new ExternalResource("vaadin://branding/" + brand + "/css/branding.css");
140 143
        Page.getCurrent().getStyles().add(registryCssFile);
141 144

  
145
        navigator.setDefaultViewName(INITIAL_VIEW);
146

  
142 147
        //navigate to initial view
143
        String state = pageFragmentAsState();
148
//        String state = pageFragmentAsState();
144 149

  
145
        if(state == null){
146
            // the case when state != null is handled in the UI base class
147
            eventBus.publishEvent(new NavigationEvent(INITIAL_VIEW));
148
        }
150

  
151
//        if(state == null){
152
//            // the case when state != null is handled in the UI base class
153
//            eventBus.publishEvent(new NavigationEvent(INITIAL_VIEW));
154
//        }
149 155
    }
150 156
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/LoginViewBean.java
19 19
import eu.etaxonomy.cdm.vaadin.event.AuthenticationAttemptEvent;
20 20
import eu.etaxonomy.cdm.vaadin.event.PasswordRevoveryEvent;
21 21
import eu.etaxonomy.cdm.vaadin.event.RegisterNewUserEvent;
22
import eu.etaxonomy.cdm.vaadin.ui.RegistrationUI;
23 22
import eu.etaxonomy.vaadin.mvp.AbstractView;
24 23
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
25 24

  
......
53 52
        loginDialog.getLoginButton().addClickListener(e -> handleLoginClick(e));
54 53
        loginDialog.getRegisterButton().addClickListener(e -> eventBus.publishEvent(new RegisterNewUserEvent(e)));
55 54
        loginDialog.getSendOnetimeLogin().addClickListener(e -> eventBus.publishEvent(new PasswordRevoveryEvent(e)));
56
        loginDialog.getCancelLoginButton().addClickListener(e -> eventBus.publishEvent(new NavigationEvent(RegistrationUI.INITIAL_VIEW)));
57
        loginDialog.getCancelRegistrationButton().addClickListener(e -> eventBus.publishEvent(new NavigationEvent(RegistrationUI.INITIAL_VIEW)));
55
        // NOTE: null viewName will be replaced by the default view name in NavigationManagerBean
56
        loginDialog.getCancelLoginButton().addClickListener(e -> eventBus.publishEvent(new NavigationEvent(null)));
57
        loginDialog.getCancelRegistrationButton().addClickListener(e -> eventBus.publishEvent(new NavigationEvent(null)));
58 58
    }
59 59

  
60 60
    /**
src/main/java/eu/etaxonomy/vaadin/ui/navigation/NavigationManagerBean.java
74 74

  
75 75
	private Map<PopupView, Window> popupMap;
76 76

  
77
	public NavigationManagerBean() {
78
		popupMap = new HashMap<>();
79
	}
80

  
81

  
82
    private <P extends PopupView> PopupView findPopupView(Class<P> popupViewClass){
83
        return popupEditorFactory.newPopupView(popupViewClass);
84
    }
77
	private String defaultViewName = null;
85 78

  
86 79
    /*
87 80
     * Why UriFragmentManager must be initialized lazily:
......
103 96
	@Autowired
104 97
	ApplicationEventPublisher eventBus;
105 98

  
99

  
100
	public NavigationManagerBean() {
101
	    popupMap = new HashMap<>();
102
	}
103

  
104

  
105
	private <P extends PopupView> PopupView findPopupView(Class<P> popupViewClass){
106
	    return popupEditorFactory.newPopupView(popupViewClass);
107
	}
108

  
106 109
	@EventListener
107 110
	protected void onUIInitialized(UIInitializedEvent e) {
108 111
		init(UI.getCurrent(), uriFragmentManager, viewDisplay);
......
110 113
	}
111 114

  
112 115
	public void navigateTo(String navigationState, boolean fireNavigationEvent) {
116
	    if(navigationState == null){
117
            navigationState = defaultViewName;
118
        }
113 119
		if (fireNavigationEvent) {
114 120
			navigateTo(navigationState);
115 121
		} else {
......
119 125

  
120 126
	@Override
121 127
	public void navigateTo(String navigationState) {
128
	    if(navigationState == null){
129
	        navigationState = defaultViewName;
130
	    }
122 131
		super.navigateTo(navigationState);
123 132
		//eventBus.publishEvent(new NavigationEvent(navigationState));
124 133
	}
......
198 207
     */
199 208
    @Override
200 209
    public String getCurrentViewName() {
201
        SpringView springViewAnnotation = getCurrentView().getClass().getAnnotation(SpringView.class);
202
        if(springViewAnnotation != null){
203
            return springViewAnnotation.name();
210
        if(getCurrentView() != null){
211
            SpringView springViewAnnotation = getCurrentView().getClass().getAnnotation(SpringView.class);
212
            if(springViewAnnotation != null){
213
                return springViewAnnotation.name();
214
            }
204 215
        }
205 216
        return null;
206 217
    }
......
224 235
        // TODO Auto-generated method stub
225 236
        return null;
226 237
    }
238

  
239

  
240
    /**
241
     * @return the defaultViewName
242
     */
243
    public String getDefaultViewName() {
244
        return defaultViewName;
245
    }
246

  
247

  
248
    /**
249
     * @param defaultViewName the defaultViewName to set
250
     */
251
    public void setDefaultViewName(String defaultViewName) {
252
        this.defaultViewName = defaultViewName;
253
    }
227 254
}

Also available in: Unified diff