예제 #1
0
 private void CreateModelRulesFromClassAttributes(ModelArtifactStateNodeWrapper wrapper, ITypeInfo typeInfo)
 {
     foreach (ArtifactStateRuleAttribute attribute in ArtifactStateRuleManager.FindAttributes(typeInfo))
     {
         wrapper.AddRule <ControllerStateRuleNodeWrapper>(attribute, typeInfo);
     }
 }
예제 #2
0
 private void CreateModelRulesFromMethodsAttributes(ModelArtifactStateNodeWrapper wrapper, ITypeInfo typeInfo)
 {
     foreach (MethodInfo methodInfo in typeInfo.Type.GetMethods(ArtifactStateRuleManager.MethodRuleBindingFlags))
     {
         foreach (ArtifactStateRuleAttribute attribute in ArtifactStateRuleManager.FindAttributes(methodInfo))
         {
             wrapper.AddRule <ControllerStateRuleNodeWrapper>(attribute, typeInfo);
         }
     }
 }
예제 #3
0
//        protected override void OnViewChanging(View view){
//
//            base.OnViewChanging(view);
//            Active[ActiveObjectTypeHasRules] = ArtifactStateRuleManager.NeedsCustomization(view);
//            ForceCustomization(Active[ActiveObjectTypeHasRules] && view != null && view.ObjectTypeInfo != null, view,false);
//        }

        private void FrameOnViewChanging(object sender, EventArgs args)
        {
            if (View != null)
            {
                ResetCustomization(View);
            }
            var view = ((ViewChangingEventArgs)args).View;

            Active[ActiveObjectTypeHasRules] = ArtifactStateRuleManager.NeedsCustomization(view);
            ForceCustomization(Active[ActiveObjectTypeHasRules] && view != null && view.ObjectTypeInfo != null, view, false);
        }
예제 #4
0
        protected virtual void ForceCustomizationCore(object currentObject, ArtifactStateRule rule, bool invertCustomization, View view)
        {
            ArtifactStateInfo info = ArtifactStateRuleManager.CalculateArtifactStateInfo(currentObject, rule);

            if (info != null)
            {
                info.InvertingCustomization = invertCustomization;
                info.View = view;
                if (invertCustomization)
                {
                    info.Active = !info.Active;
                }
                CustomizeArtifactState(info);
            }
        }