Revision a2cc9f8d
Added by Andreas Kohlbecker almost 7 years ago
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
more consistent save operations with better logging