Project

General

Profile

« Previous | Next » 

Revision a2cc9f8d

Added by Andreas Kohlbecker almost 7 years ago

more consistent save operations with better logging

View differences:

src/main/java/eu/etaxonomy/vaadin/ui/view/PopupEditorFactory.java
111 111
     */
112 112
    public <V extends PopupView, P extends AbstractPresenter> PopupView newPopupView(Class<V> popupViewClass) {
113 113

  
114
        Class<? extends AbstractPresenter<?>> prestenterClass = findGenericPresenterType(popupViewClass);
114
        Class<? extends AbstractPresenter<?>> presenterClass = findGenericPresenterType(popupViewClass);
115 115
        try {
116 116

  
117
            P presenter = (P) prestenterClass.newInstance();
117
            P presenter = (P) presenterClass.newInstance();
118 118

  
119
            presenterRepoField.set(presenter, repo);
120
            presenterNavigationManagerField.set(presenter, navigationManager);
121

  
122
            if(AbstractEditorPresenter.class.isAssignableFrom(prestenterClass)){
123
                presenterEventBusField.set(presenter, eventBus);
124
            }
119
            injectPresenterBeans(presenterClass, presenter);
125 120

  
126 121
            PopupView view = popupViewClass.newInstance();
127 122
            if(AbstractView.class.isAssignableFrom(popupViewClass)){
......
138 133
            }
139 134
            return view;
140 135
        } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
141
            throw new RuntimeException(String.format("Error creating the view class '%s' with presenter class '%s'", popupViewClass, prestenterClass), e);
136
            throw new RuntimeException(String.format("Error creating the view class '%s' with presenter class '%s'", popupViewClass, presenterClass), e);
137
        }
138
    }
139

  
140

  
141
    /**
142
     * @param presenterClass
143
     * @param presenter
144
     * @throws IllegalAccessException
145
     */
146
    public <P extends AbstractPresenter> void injectPresenterBeans(
147
            Class<? extends AbstractPresenter<?>> presenterClass, P presenter) throws IllegalAccessException {
148
        presenterRepoField.set(presenter, repo);
149
        presenterNavigationManagerField.set(presenter, navigationManager);
150

  
151
        if(AbstractEditorPresenter.class.isAssignableFrom(presenterClass)){
152
            presenterEventBusField.set(presenter, eventBus);
142 153
        }
143 154
    }
144 155

  

Also available in: Unified diff