Ejemplo n.º 1
0
        public virtual object New(Window window, ScreenRepository screenRepository)
        {
            var o = Activator.CreateInstance(type, window, screenRepository);
            //Get all fields, even from base types
            var fieldInfos = AllTypes(type).SelectMany(t => t.GetFields(Entity.BindingFlag));

            foreach (var fieldInfo in fieldInfos)
            {
                if (nonInjectedTypes.Any(t => t.IsAssignableFrom(fieldInfo.FieldType)))
                {
                    continue;
                }

                object injectedObject = null;
                if (typeof(IUIItem).IsAssignableFrom(fieldInfo.FieldType))
                {
                    var interceptor = new UIItemInterceptor(SearchCondition(fieldInfo, window.Framework), window, screenRepository.SessionReport);
                    injectedObject = DynamicProxyGenerator.Instance.CreateProxy(fieldInfo.FieldType, interceptor);
                }
                else if (typeof(AppScreenComponent).IsAssignableFrom(fieldInfo.FieldType))
                {
                    var componentScreenClass = new ScreenClass(fieldInfo.FieldType);
                    injectedObject = componentScreenClass.New(window, screenRepository);
                }

                if (injectedObject != null)
                {
                    fieldInfo.SetValue(o, injectedObject);
                }
            }

            return(o);
        }
Ejemplo n.º 2
0
 public RepositoryComponent(Window window, ScreenRepository screenRepository)
 {
     Window           = window;
     ScreenRepository = screenRepository;
 }
 public AppScreenComponent(Window window, ScreenRepository screenRepository) : base(window, screenRepository)
 {
 }
Ejemplo n.º 4
0
 public virtual void Close()
 {
     ScreenRepository.Closing(this);
     Window.Close();
 }
Ejemplo n.º 5
0
 public AppScreen(Window window, ScreenRepository screenRepository) : base(window, screenRepository)
 {
 }