protected void injectValues(@SuppressWarnings("unused") FrameOwner frameOwner, ScreenIntrospectionData screenIntrospectionData) { List<InjectElement> injectElements = screenIntrospectionData.getInjectElements(); for (InjectElement entry : injectElements) { doInjection(entry.getElement(), entry.getAnnotationClass()); } }
@Override public void clearScreenReflectionCache() { uiControllerReflectionInspector.clearCache(); } }
@Override public String toString() { return "UiControllerDefinition{" + "id='" + id + '\'' + ", controllerClass='" + controllerClass + '\'' + (routeDefinition == null ? "" : ", " + routeDefinition.toString()) + '}'; }
public void inject() { ScreenIntrospectionData screenIntrospectionData = reflectionInspector.getScreenIntrospectionData(frameOwner.getClass()); injectValues(frameOwner, screenIntrospectionData); initSubscribeListeners(frameOwner, screenIntrospectionData); initInstallMethods(frameOwner, screenIntrospectionData); initUiEventListeners(frameOwner, screenIntrospectionData); }
protected ScreenIntrospectionData getScreenIntrospectionDataNotCached(Class<?> concreteClass) { Method[] methods = ReflectionUtils.getUniqueDeclaredMethods(concreteClass); List<InjectElement> injectElements = getAnnotatedInjectElementsNotCached(concreteClass); List<AnnotatedMethod<Subscribe>> subscribeMethods = getAnnotatedSubscribeMethodsNotCached(concreteClass, methods); List<AnnotatedMethod<Install>> installMethods = getAnnotatedInstallMethodsNotCached(concreteClass, methods); List<Method> eventListenerMethods = getAnnotatedListenerMethodsNotCached(concreteClass, methods); return new ScreenIntrospectionData(injectElements, eventListenerMethods, subscribeMethods, installMethods); }
protected Object createInstallHandler(FrameOwner frameOwner, Method method, Class<?> targetObjectType) { if (targetObjectType == Function.class) { return new InstalledFunction(frameOwner, method); } else if (targetObjectType == Consumer.class) { return new InstalledConsumer(frameOwner, method); } else if (targetObjectType == Supplier.class) { return new InstalledSupplier(frameOwner, method); } else if (targetObjectType == BiFunction.class) { return new InstalledBiFunction(frameOwner, method); } else { ClassLoader classLoader = getClass().getClassLoader(); return newProxyInstance(classLoader, new Class[]{targetObjectType}, new InstalledProxyHandler(frameOwner, method) ); } }
protected void loadScreenConfigurations() { for (UiControllersConfiguration provider : configurations) { List<UiControllerDefinition> uiControllers = provider.getUiControllers(); for (UiControllerDefinition definition : uiControllers) { WindowInfo windowInfo = new WindowInfo(definition.getId(), windowAttributesProvider, definition.getControllerClass(), definition.getRouteDefinition()); registerScreen(definition.getId(), windowInfo); } } }
protected TargetIntrospectionData getTargetIntrospectionDataNotCached(Class<?> concreteClass) { Method[] methods = ReflectionUtils.getUniqueDeclaredMethods(concreteClass); Map<Class, MethodHandle> addListenerMethods = getAddListenerMethodsNotCached(concreteClass, methods); Map<String, MethodHandle> installTargetMethods = getInstallTargetMethodsNotCached(concreteClass, methods); return new TargetIntrospectionData(addListenerMethods, installTargetMethods); }
protected boolean isEntityAvailable(Element window, Class<? extends FrameOwner> controllerClass, Class entityClass, ScreenType filterScreenType) { return isEntityAvailableInDataContainer(window, controllerClass, entityClass, filterScreenType) || isEntityAvailableInDatasource(window, entityClass, filterScreenType); }
@Nullable protected String getDataContainerId(Element window, Class<? extends FrameOwner> controllerClass, ScreenType filterScreenType) { String windowDc = resolveEditedEntityContainerId(controllerClass); String lookupDc = resolveLookupDataContainer(window, controllerClass); if (filterScreenType == ScreenType.ALL) { return windowDc != null ? windowDc : lookupDc; } else { return filterScreenType == ScreenType.BROWSER ? lookupDc : windowDc; } }
public String getDetailedScreenCaption(WindowInfo windowInfo, Locale locale) throws FileNotFoundException { String caption = getScreenCaption(windowInfo, locale); return getDetailedScreenCaption(caption, windowInfo.getId()); }
protected String getRoute(Screen screen) { RouteDefinition routeDef = getRouteDef(screen); return routeDef == null ? null : routeDef.getPath(); }
public Map<String, String> getAvailableScreens(Class entityClass) { return getAvailableScreensMap(entityClass, ScreenType.ALL); }
@SuppressWarnings("unchecked") @Override public <T> T getParamValue(String param) { return (T) getParams().get(param); }
@Override public ScreenIntrospectionData load(@Nonnull Class<?> concreteClass) { return getScreenIntrospectionDataNotCached(concreteClass); } });
@Override public TargetIntrospectionData load(@Nonnull Class<?> concreteClass) { return getTargetIntrospectionDataNotCached(concreteClass); } });
public List<AnnotatedMethod<Subscribe>> getAnnotatedSubscribeMethods(Class<?> clazz) { return screenIntrospectionCache.getUnchecked(clazz).getSubscribeMethods(); }
public List<Method> getAnnotatedListenerMethods(Class<?> clazz) { return screenIntrospectionCache.getUnchecked(clazz).getEventListenerMethods(); }
public Map<String, String> getAvailableBrowserScreens(Class entityClass) { return getAvailableScreensMap(entityClass, ScreenType.BROWSER); }
public <T> T getParameterValue(String property) { //noinspection unchecked return (T) getParams().get("param$" + property); }