public IEnumerator PopAndPushPasses()
        {
            var creator = new UnityViewInstanceCreator()
                          .AddUnityViewObjects();
            var pool = new UnityViewInstanceCreatorObjectPool(creator);

            yield return(null);

            var bindInfo    = new ModelViewBinder.BindInfo(typeof(CubeViewObject));
            var cubeViewObj = pool.PopOrCreate(bindInfo) as CubeViewObject;

            Assert.IsNotNull(cubeViewObj);
            Assert.IsTrue(cubeViewObj.gameObject.activeSelf);
            Assert.IsNull(cubeViewObj.transform.parent);

            pool.Push(cubeViewObj);
            Assert.IsFalse(cubeViewObj.gameObject.activeSelf);
            Assert.AreSame(pool.PoolingObjParent, cubeViewObj.transform.parent);

            var viewObj = pool.PopOrCreate(bindInfo);

            Assert.AreSame(cubeViewObj, viewObj);
            Assert.IsTrue(cubeViewObj.gameObject.activeSelf);
            Assert.IsNull(cubeViewObj.transform.parent);
        }
Exemplo n.º 2
0
        public void ValidateBindInfoPasses()
        {
            var viewInstanceCreator = new DefaultViewInstanceCreator(
                (typeof(SpecifiedAttributeViewObj), new SpecifiedAttributeViewObj.ParamBinder()),
                (typeof(NoneAttributeViewObj), new NoneAttributeViewObj.ParamBinder()),
                (typeof(InvalidAttributeViewObj), new InvalidAttributeViewObj.ParamBinder())
                );

            ModelViewValidator.DoEnabled = true;

            {//Check BasicUsage
                var model    = new AppleModel();
                var bindInfo = new ModelViewBinder.BindInfo(typeof(SpecifiedAttributeViewObj));
                Assert.IsTrue(ModelViewValidator.ValidateBindInfo(model, bindInfo, viewInstanceCreator));
            }

            {//Check None Attributes
                var model    = new AppleModel();
                var bindInfo = new ModelViewBinder.BindInfo(typeof(NoneAttributeViewObj));
                Assert.IsTrue(ModelViewValidator.ValidateBindInfo(model, bindInfo, viewInstanceCreator));
            }

            {//Check Invalid Attributes
                var bindInfo = new ModelViewBinder.BindInfo(typeof(InvalidAttributeViewObj));
                var apple    = new AppleModel();
                Assert.IsFalse(ModelViewValidator.ValidateBindInfo(apple, bindInfo, viewInstanceCreator), "Invalid Model Case");

                bindInfo = new ModelViewBinder.BindInfo(
                    ModelViewBinder.BindInfo.ToID(typeof(InvalidAttributeViewObj)),
                    typeof(InvalidAttributeViewObj).FullName,
                    "invalidBinderKey");
                var orange = new OrangeModel();
                Assert.IsFalse(ModelViewValidator.ValidateBindInfo(orange, bindInfo, viewInstanceCreator), "Invalid Model Case");
            }
        }
Exemplo n.º 3
0
 protected override void OnPopOrCreated(ModelViewBinder.BindInfo bindInfo, IViewObject viewObj)
 {
     if (viewObj is MonoBehaviour)
     {
         var behaviour = viewObj as MonoBehaviour;
         behaviour.gameObject.SetActive(true);
         behaviour.transform.SetParent(null);
     }
 }
Exemplo n.º 4
0
        public void UseParamBinderPasses()
        {
            var creator = new TestCreator();

            var bindInfo = new ModelViewBinder.BindInfo("A", "A", "a")
                           .SetUseParamBinder(new ViewObj.ParamBinder(100));
            var paramBinder = creator.GetParamBinder(bindInfo);

            Assert.AreSame(bindInfo.UseParamBinder, paramBinder);
        }
            public IViewObject PopOrCreate(IViewInstanceCreator creator, ModelViewBinder.BindInfo bindInfo)
            {
                var viewObj = Pop() as IViewObject;

                if (viewObj == null)
                {
                    viewObj = creator.CreateViewObj(bindInfo, true);
                }
                viewObj.OnUnbinded.Add(OnViewObjectUnbinded);
                return(viewObj);
            }
        public IViewObject PopOrCreate(ModelViewBinder.BindInfo bindInfo)
        {
            var viewType = UseCreator.GetViewObjType(bindInfo);

            AddDictIfNotContains(viewType);

            var viewObj = _viewObjectPoolDict[viewType].PopOrCreate(UseCreator, bindInfo);

            OnPopOrCreated(bindInfo, viewObj);
            return(viewObj);
        }
        public IEnumerator CreatorPasses()
        {
            yield return(null);

            var creator = new UnityViewInstanceCreator()
                          .AddUnityViewObjects();

            var bindInfo = new ModelViewBinder.BindInfo(typeof(CubeViewObject))
                           .SetViewCreateType(ViewObjectCreateType.Cache);

            var cubeViewObj = creator.CreateViewObj(bindInfo) as CubeViewObject;

            {
                Assert.IsTrue(cubeViewObj is CubeViewObject);
                Assert.IsTrue(cubeViewObj.gameObject.activeSelf);
                Assert.IsNull(cubeViewObj.transform.parent);
                Assert.AreSame(bindInfo, cubeViewObj.UseBindInfo);
            }
            Debug.Log($"Success to IViewInstanceCreator#CreateViewObj!");

            {
                cubeViewObj.UseModel = new Model();
                Assert.IsTrue(cubeViewObj.DoBinding());

                cubeViewObj.Unbind();
                Assert.IsFalse(cubeViewObj.gameObject.activeSelf);
                Assert.AreSame(creator.PoolingViewObjParent, cubeViewObj.transform.parent);
                Assert.IsNull(cubeViewObj.UseModel);
                Assert.IsNull(cubeViewObj.UseBindInfo);
            }
            Debug.Log($"Success to IViewObject#Unbind!");

            {
                var cachedViewObj = creator.CreateViewObj(bindInfo) as CubeViewObject;
                Assert.AreSame(cubeViewObj, cachedViewObj);
                Assert.IsTrue(cachedViewObj.gameObject.activeSelf);
                Assert.IsNull(cachedViewObj.transform.parent);
                Assert.AreSame(bindInfo, cachedViewObj.UseBindInfo);
            }
            Debug.Log($"Success to IViewInstanceCreator#CreateViewObj(Cached)!");

            {
                cubeViewObj.UseModel = new Model();
                Assert.IsTrue(cubeViewObj.DoBinding());

                cubeViewObj.Unbind(); // <- cache in Pool!!

                cubeViewObj.Destroy();
                var newViewObj = creator.CreateViewObj(bindInfo);
                Assert.AreNotSame(cubeViewObj, newViewObj, $"IViewObject#Destroyが呼び出された場合にCacheされていたら、Cacheから取り除くようにしてください");
            }
            Debug.Log($"Success to IViewObject#Destroy!(Remove from ObjPool)");
        }
Exemplo n.º 8
0
        public void ParamBinderSubclassValidateBindInfoPasses()
        {
            var viewInstanceCreator = new DefaultViewInstanceCreator(
                (typeof(SpecifiedAttributeViewObj), new SpecifiedAttributeViewObjParamBinderSubClass())
                );

            ModelViewValidator.DoEnabled = true;

            var model    = new AppleModel();
            var bindInfo = new ModelViewBinder.BindInfo(typeof(SpecifiedAttributeViewObj));

            Assert.IsTrue(ModelViewValidator.ValidateBindInfo(model, bindInfo, viewInstanceCreator));
        }
Exemplo n.º 9
0
        public void PopAndPushPasses()
        {
            var creator = new DefaultViewInstanceCreator(
                (typeof(PoolingViewObj), new EmptyModelViewParamBinder()),
                (typeof(EmptyViewObject), new EmptyModelViewParamBinder())
                );
            var objPool = new ViewInstanceCreatorObjectPool(creator);

            Assert.AreSame(creator, objPool.UseCreator);

            {//PoolingViewObj
                var poolingBindInfo = new ModelViewBinder.BindInfo(typeof(PoolingViewObj));

                PoolingViewObj.newCounter = 0;
                var viewObj = objPool.PopOrCreate(poolingBindInfo) as PoolingViewObj;
                Assert.IsTrue(viewObj is PoolingViewObj);
                Assert.AreEqual(0, viewObj.DestroyCallCount);
                Assert.AreEqual(0, viewObj.BindCallCount);
                Assert.AreEqual(0, viewObj.UnbindCallCount);
                Assert.AreEqual(1, PoolingViewObj.newCounter);
                objPool.Push(viewObj);

                PoolingViewObj.newCounter = 0;
                var popViewObj = objPool.PopOrCreate(poolingBindInfo) as PoolingViewObj;
                Assert.AreSame(viewObj, popViewObj);
                Assert.AreEqual(0, PoolingViewObj.newCounter);

                PoolingViewObj.newCounter = 0;
                var popViewObj2 = objPool.PopOrCreate(poolingBindInfo) as PoolingViewObj;
                Assert.AreNotSame(viewObj, popViewObj2);
                Assert.AreEqual(1, PoolingViewObj.newCounter);
            }
            Debug.Log("Success Basic Pop and Push");

            {//EmptyViewObject
                var emptyBindInfo = new ModelViewBinder.BindInfo(typeof(EmptyViewObject));

                var viewObj = objPool.PopOrCreate(emptyBindInfo) as EmptyViewObject;
                Assert.IsTrue(viewObj is EmptyViewObject);
                objPool.Push(viewObj);

                var popViewObj = objPool.PopOrCreate(emptyBindInfo) as EmptyViewObject;
                Assert.AreSame(viewObj, popViewObj);

                var popViewObj2 = objPool.PopOrCreate(emptyBindInfo) as EmptyViewObject;
                Assert.AreNotSame(viewObj, popViewObj2);
            }
        }
Exemplo n.º 10
0
        public void AddInfosFromOtherBinderPasses()
        {
            {//
                var binder = new ModelViewBinder("apple", null,
                                                 new ModelViewBinder.BindInfo(typeof(IntViewObjClass)),
                                                 new ModelViewBinder.BindInfo(typeof(FloatViewObjClass))
                                                 );
                var otherBinder = new ModelViewBinder("apple", null,
                                                      new ModelViewBinder.BindInfo("otherInt", typeof(IntViewObjClass)),
                                                      new ModelViewBinder.BindInfo("otherFloat", typeof(FloatViewObjClass))
                                                      );

                binder.AddInfosFromOtherBinder(otherBinder);
                AssertionUtils.AssertEnumerableByUnordered(
                    binder.BindInfos.Concat(otherBinder.BindInfos).Distinct()
                    , binder.BindInfos, "");
            }

            {//同じBindInfoを持つModelViewBinderの場合
                var intID                  = "intId";
                var intViewBindInfo        = new ModelViewBinder.BindInfo(intID, typeof(IntViewObjClass));
                var floatViewBindInfo      = new ModelViewBinder.BindInfo(typeof(FloatViewObjClass));
                var otherFloatViewBindInfo = new ModelViewBinder.BindInfo("otherFloat", typeof(FloatViewObjClass));
                var sameIDViewBindInfo     = new ModelViewBinder.BindInfo(intID, typeof(IntViewObjClass));
                var binder                 = new ModelViewBinder("apple", null,
                                                                 intViewBindInfo, floatViewBindInfo
                                                                 );
                var otherBinder = new ModelViewBinder("orange", null,
                                                      intViewBindInfo, // <- not add
                                                      otherFloatViewBindInfo
                                                      );
                var otherBinder2 = new ModelViewBinder("grape", null,
                                                       sameIDViewBindInfo // <- not add
                                                       );

                binder
                .AddInfosFromOtherBinder(otherBinder)
                .AddInfosFromOtherBinder(otherBinder2);
                AssertionUtils.AssertEnumerableByUnordered(new ModelViewBinder.BindInfo[] {
                    intViewBindInfo, floatViewBindInfo, otherFloatViewBindInfo,
                }, binder.BindInfos, "");
            }
        }
Exemplo n.º 11
0
        public IEnumerator SetToPasses()
        {
            yield return(null);

            var assetPath         = PackageDefines.GetHinodeAssetPath(TEST_ASSET_DIR_PATH, "testViewObjPrefab.prefab");
            var testViewObjPrefab = AssetDatabase.LoadAssetAtPath <ButtonViewObject>(assetPath);

            Assert.IsNotNull(testViewObjPrefab, $"テスト用のPrefabの読み込みに失敗しました... assetPath={assetPath}");

            var bundleFilepath = PackageDefines.GetHinodeAssetPath(TEST_ASSET_DIR_PATH, "test_view_instance_creator_bundle");
            var bundle         = AssetBundle.LoadFromFile(bundleFilepath);

            Assert.IsNotNull(bundle, $"Failed to load AssetBundle({bundleFilepath}) For Test...");

            var settings = ScriptableObject.CreateInstance <UnityViewInstanceCreatorSettings>();

            settings
            .AddInfo(UnityViewInstanceCreatorSettings.InstanceInfo.CreateAsset <EmptyModelViewParamBinder>(testViewObjPrefab)
                     .SetInstanceKey("instA")
                     .SetBinderKey("binderA")
                     )
            .AddInfo(UnityViewInstanceCreatorSettings.InstanceInfo.CreateAssetBundle <ButtonViewObject, EmptyModelViewParamBinder>(bundle.name, "assets/testviewobjprefab.prefab")
                     .SetInstanceKey("instB")
                     .SetBinderKey("binderB")
                     )
            ;

            Debug.Log($"{bundle.GetAllAssetNames().Aggregate("", (_s, _c) => $"{_s}{_c};")}");

            settings.EntryAssetBundle(bundle); //

            var creator = new UnityViewInstanceCreator();

            settings.SetTo(creator);
            foreach (var info in settings.Infos)
            {
                var bindInfo = new ModelViewBinder.BindInfo("", info.InstanceKey, info.BinderKey);
                Assert.AreEqual(info.InstanceType, creator.GetViewObjType(bindInfo), $"instanceKey={info.InstanceKey}, binderKey={info.BinderKey}");
                Assert.AreEqual(info.ParamBinderType, creator.GetParamBinderType(bindInfo), $"instanceKey={info.InstanceKey}, binderKey={info.BinderKey}");
            }
            bundle.Unload(true);
        }
Exemplo n.º 12
0
        public void DoMatchThrowExceptionFail()
        {
            var query    = ".style";
            var selector = new ViewLayoutSelector(query, "view1");

            var model = new Model()
            {
                Name = "Model", StylingID = new ModelIDList(query)
            };
            var otherModel = new Model()
            {
                Name = "otherModel", StylingID = model.StylingID
            };
            var testData = new List <(Model, IViewObject)>()
            {
                (null, null),
                (model, new EmptyViewObject()
                {
                    UseModel = null, UseBindInfo = null
                }),
                (model, new EmptyViewObject()
                {
                    UseModel = model, UseBindInfo = null
                }),
                (model, new EmptyViewObject()
                {
                    UseModel = null, UseBindInfo = new ModelViewBinder.BindInfo("view1", typeof(EmptyViewObject))
                }),
                (model, new EmptyViewObject()
                {
                    UseModel = otherModel, UseBindInfo = new ModelViewBinder.BindInfo("view1", typeof(EmptyViewObject))
                }),
            };

            foreach (var(m, v) in testData)
            {
                Assert.Throws <UnityEngine.Assertions.AssertionException>(() => {
                    selector.DoMatch(m, v);
                }, $"Failed test... selecotr={selector}, model={m}, viewObj={v}");
            }
        }
Exemplo n.º 13
0
        public IEnumerator InsertPasses()
        {
            yield return(null);

            var parent = new GameObject("parent");
            var binder = new ModelViewBinder.BindInfo(typeof(MonoBehaviourViewObject));

            var child1 = MonoBehaviourViewObject.Create("child1");
            var child2 = MonoBehaviourViewObject.Create("child2");
            var child3 = MonoBehaviourViewObject.Create("child3");

            child1.transform.SetParent(parent.transform);
            child2.transform.SetParent(parent.transform);
            child3.transform.SetParent(parent.transform);

            child1.Bind(new SiblingOrderModel(100), binder, null);
            child2.Bind(new SiblingOrderModel(200), binder, null);
            child3.Bind(new SiblingOrderModel(300), binder, null);

            SiblingOrderViewLayoutAccessor.Insert(parent.transform, child1);
            SiblingOrderViewLayoutAccessor.Insert(parent.transform, child2);
            SiblingOrderViewLayoutAccessor.Insert(parent.transform, child3);

            AssertionUtils.AssertEnumerable(
                new Transform[] {
                child3.transform, child2.transform, child1.transform
            }, parent.transform.GetChildEnumerable(), "");


            var child4 = MonoBehaviourViewObject.Create("child4");

            child4.transform.SetParent(parent.transform);

            child4.Bind(new SiblingOrderModel(150), binder, null);
            SiblingOrderViewLayoutAccessor.Insert(parent.transform, child4);

            AssertionUtils.AssertEnumerable(
                new Transform[] {
                child3.transform, child2.transform, child4.transform, child1.transform
            }, parent.transform.GetChildEnumerable(), "");
        }
Exemplo n.º 14
0
        public void CreatorPasses()
        {
            var creator = new DefaultViewInstanceCreator(
                (typeof(PoolingViewObj), new EmptyModelViewParamBinder()),
                (typeof(EmptyViewObject), new EmptyModelViewParamBinder())
                );

            var cacheBindInfo = new ModelViewBinder.BindInfo(typeof(PoolingViewObj))
            {
                ViewObjectCreateType = ViewObjectCreateType.Cache
            };
            var viewObj = creator.CreateViewObj(cacheBindInfo);

            viewObj.UseModel = new Model();
            Assert.IsTrue(viewObj is PoolingViewObj);

            viewObj.Unbind();

            {
                PoolingViewObj.newCounter = 0;
                var viewObj2 = creator.CreateViewObj(cacheBindInfo);
                Assert.AreSame(viewObj, viewObj2, $"IViewObject#Unbindされた時に、Cacheされていません。");
                Assert.AreEqual(0, PoolingViewObj.newCounter);

                PoolingViewObj.newCounter = 0;
                var viewObj3 = creator.CreateViewObj(cacheBindInfo);
                Assert.AreNotSame(viewObj, viewObj3);
                Assert.AreEqual(1, PoolingViewObj.newCounter);
            }

            {
                PoolingViewObj.newCounter = 0;
                viewObj.Unbind();
                viewObj.Destroy();
                var viewObj2 = creator.CreateViewObj(cacheBindInfo);
                Assert.AreNotSame(viewObj, viewObj2, $"IViewObject#Destroyが呼び出された場合にCacheされていたら、Cacheから取り除くようにしてください");
                Assert.AreEqual(1, PoolingViewObj.newCounter);
            }
        }
Exemplo n.º 15
0
        public void GetParamBinderPasses()
        {
            var creator = new TestCreator();

            var viewObjAbindInfo = new ModelViewBinder.BindInfo("A", "A", "a");
            var paramBinderA     = creator.GetParamBinder(viewObjAbindInfo);

            Assert.IsTrue(paramBinderA is ViewObj.ParamBinder);
            Assert.AreEqual(1, (paramBinderA as ViewObj.ParamBinder).Value);

            var viewObjBbindInfo = new ModelViewBinder.BindInfo("A", "A", "b");
            var paramBinderB     = creator.GetParamBinder(viewObjBbindInfo);

            Assert.IsTrue(paramBinderB is ViewObj.ParamBinder);
            Assert.AreEqual(-1, (paramBinderB as ViewObj.ParamBinder).Value);

            Assert.Throws <UnityEngine.Assertions.AssertionException>(() =>
            {
                var bindInfo        = new ModelViewBinder.BindInfo("B", "B", "abc");
                var nullParamBinder = creator.GetParamBinder(bindInfo);
            });
        }
Exemplo n.º 16
0
        public void CreateViewObjPasses()
        {
            var creator = new TestCreator();

            var viewObjAbindInfo = new ModelViewBinder.BindInfo("A", "A", "a");
            var viewObjA         = creator.CreateViewObj(viewObjAbindInfo);

            Assert.IsTrue(viewObjA is ViewObj);
            Assert.AreEqual(1, (viewObjA as ViewObj).Value);
            Assert.AreSame(viewObjAbindInfo, viewObjA.UseBindInfo);

            var viewObjBbindInfo = new ModelViewBinder.BindInfo("B", "B", "b");
            var viewObjB         = creator.CreateViewObj(viewObjBbindInfo);

            Assert.IsTrue(viewObjB is ViewObj);
            Assert.AreEqual(-1, (viewObjB as ViewObj).Value);
            Assert.AreSame(viewObjBbindInfo, viewObjB.UseBindInfo);

            Assert.Throws <UnityEngine.Assertions.AssertionException>(() =>
            {
                var bindInfo = new ModelViewBinder.BindInfo("B", "__invalid", "b");
                var nullObj  = creator.CreateViewObj(bindInfo);
            });
        }
Exemplo n.º 17
0
 protected virtual void OnBind(Model targetModel, ModelViewBinder.BindInfo bindInfo, ModelViewBinderInstanceMap binderInstanceMap)
 {
 }
Exemplo n.º 18
0
 protected override void OnBind(Model targetModel, ModelViewBinder.BindInfo bindInfo, ModelViewBinderInstanceMap binderInstanceMap)
 {
     BindCallCount++;
 }
Exemplo n.º 19
0
        /// <summary>
        /// ModelViewBinder.BindInfoの検証を行う
        ///
        /// 指定したModelとbindInfoが持つIViewObjectとIModelViewParamBinderが使用可能かどうかを検証します。
        /// </summary>
        /// <param name="model"></param>
        /// <param name="bindInfo"></param>
        /// <param name="viewInstanceCreator"></param>
        /// <seealso cref="AvailableModelAttribute"/>
        /// <seealso cref="AvailableModelViewParamBinderAttribute"/>
        public static bool ValidateBindInfo(Model model, ModelViewBinder.BindInfo bindInfo, IViewInstanceCreator viewInstanceCreator)
        {
            if (!DoEnabled)
            {
                return(true);
            }
            bool isValid = true;

            System.Type viewType = null;
            try
            {
                viewType = viewInstanceCreator.GetViewObjType(bindInfo);
                if (viewType == null)
                {
                    Logger.LogWarning(LogPriority, () =>
                                      $"!!Validate!! InstanceKey('{bindInfo.InstanceKey}') in BindInfo don't get IViewObject..."
                                      );
                    isValid = false;
                }
                else
                {
                    var availableModelTypes = viewType.GetCustomAttributes(false)
                                              .OfType <AvailableModelAttribute>()
                                              .SelectMany(_a => _a.AvailableModels)
                                              .Distinct();
                    if (availableModelTypes.Any())
                    {
                        if (!availableModelTypes.Any(_t => model.GetType().IsSameOrInheritedType(_t)))
                        {
                            Logger.LogWarning(LogPriority, () =>
                                              $"!!Validate!! '{viewType}' is not available Model('{model}')..."
                                              );
                            isValid = false;
                        }
                    }
                }
            }
            catch (System.Exception e)
            {
                Logger.LogWarning(LogPriority, () =>
                                  $"!!Validate!! InstanceKey('{bindInfo.InstanceKey}') in BindInfo don't get IViewObject..." +
                                  $"{System.Environment.NewLine }---{System.Environment.NewLine}{e}{System.Environment.NewLine}---"
                                  );
                return(false);
            }


            try
            {
                var paramBinderType = viewInstanceCreator.GetParamBinderType(bindInfo);
                if (paramBinderType == null)
                {
                    Logger.LogWarning(LogPriority, () =>
                                      $"!!Validate!! BinderKey('{bindInfo.BinderKey}') in BindInfo don't get IModelViewParamBinder..."
                                      );
                    isValid = false;
                }
                else
                {
                    var availableParamBinders = viewType.GetCustomAttributes(false)
                                                .OfType <AvailableModelViewParamBinderAttribute>()
                                                .SelectMany(_a => _a.AvailableParamBinders)
                                                .Distinct();
                    if (availableParamBinders.Any())
                    {
                        if (!availableParamBinders.Any(_t => paramBinderType.IsSameOrInheritedType(_t)))
                        {
                            Logger.LogWarning(LogPriority, () =>
                                              $"!!Validate!! '{viewType}' is not available ParamBinder('{paramBinderType}')..."
                                              );
                            isValid = false;
                        }
                    }
                }
            }
            catch (System.Exception e)
            {
                Logger.LogWarning(LogPriority, () =>
                                  $"!!Validate!! BinderKey('{bindInfo.BinderKey}') in BindInfo don't get IModelViewParamBinder..." +
                                  $"{System.Environment.NewLine}---{System.Environment.NewLine}{e}{System.Environment.NewLine}---"
                                  );
                return(false);
            }
            return(isValid);
        }
Exemplo n.º 20
0
 protected override void OnBind(Model targetModel, ModelViewBinder.BindInfo bindInfo, ModelViewBinderInstanceMap binderInstanceMap)
 {
     UsedBinderInstanceMap = binderInstanceMap;
 }
Exemplo n.º 21
0
 protected override void OnBind(Model targetModel, ModelViewBinder.BindInfo bindInfo, ModelViewBinderInstanceMap binderInstanceMap)
 {
     UseModel    = targetModel;
     UseBindInfo = bindInfo;
 }
 protected virtual void OnPopOrCreated(ModelViewBinder.BindInfo bindInfo, IViewObject viewObj)
 {
 }