コード例 #1
0
        public virtual void CustomizeArtifactState(ArtifactStateInfo info)
        {
            var args = new ArtifactStateInfoCustomizingEventArgs(info, false);

            OnArtifactStateCustomizing(args);
            if (!args.Cancel)
            {
                foreach (ISupportArtifactState supportArtifactState in providers.Keys.Where(supportArtifactState =>
                                                                                            providers[supportArtifactState].IsAssignableFrom(info.Rule.GetType())))
                {
                    if (info.State == State.Default || info.State == State.Hidden)
                    {
                        if (supportArtifactState is ISupportArtifactStateVisibilityCustomization)
                        {
                            ((ISupportArtifactStateVisibilityCustomization)supportArtifactState).CustomizeVisibility(info);
                        }
                    }
                    else if (info.State == State.Disabled)
                    {
                        if (supportArtifactState is ISupportArtifactStateAccessibilityCustomization)
                        {
                            ((ISupportArtifactStateAccessibilityCustomization)supportArtifactState).CustomizeAccessibility(info);
                        }
                    }
                }
            }
            OnArtifactStateStateCustomized(new ArtifactStateInfoCustomizedEventArgs(info));
        }
コード例 #2
0
        public void CustomizeVisibility(ArtifactStateInfo artifactStateInfo)
        {
            var rule = (((ActionStateRule)artifactStateInfo.Rule));

            foreach (ActionBase actionBase in GetActions(rule))
            {
                actionBase.Active[ArtifactStateCustomizationViewController.ActiveObjectTypeHasRules] =
                    !artifactStateInfo.Active;
            }
        }
コード例 #3
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);
            }
        }
コード例 #4
0
        void ControllerOnArtifactStateCustomizing(object sender, ArtifactStateInfoCustomizingEventArgs artifactStateInfoCustomizingEventArgs)
        {
            ArtifactStateInfo artifactStateInfo = artifactStateInfoCustomizingEventArgs.ArtifactStateInfo;
            bool executedAndDisable             = artifactStateInfo.State == (State)ActionState.ActionState.ExecutedAndDisable;
            bool b = artifactStateInfo.State == (State)ActionState.ActionState.Executed || executedAndDisable;

            if (b && actionsToExecute.Count == 0)
            {
//                _executed = true;
                var rule = (((ActionStateRule)artifactStateInfo.Rule));
                foreach (SimpleAction actionBase in GetActions(rule))
                {
                    actionsToExecute.Add(actionBase, (ActionState.ActionState)artifactStateInfo.State);
//                    var action = actionBase;
//                    ViewControlsCreated+=(o, args) => ExecuteAction(action, executedAndDisable);
//                    var viewController = ((ViewController) actionBase.Controller);
//                    viewController.ViewControlsCreated +=(sender1, eventArgs) => ExecuteAction(action,executedAndDisable);
                }
            }
        }
コード例 #5
0
        private void customizeState(ArtifactStateInfo artifactStateInfo)
        {
            var controllerStateRule = (((ControllerStateRule)artifactStateInfo.Rule));

            if (!string.IsNullOrEmpty(controllerStateRule.Module))
            {
                IEnumerable <string> assemblies = Application.Modules.Where(
                    @base => new Regex(controllerStateRule.Module).IsMatch(@base.GetType().FullName)).Select(
                    @base => @base.GetType().Assembly.FullName);
                foreach (
                    Controller controller in
                    Frame.Controllers.Cast <Controller>().Where(
                        controller => assemblies.Contains(controller.GetType().Assembly.FullName)))
                {
                    controller.Active[ArtifactStateCustomizationViewController.ActiveObjectTypeHasRules] =
                        !artifactStateInfo.Active;
                }
            }
            else
            {
                Frame.GetController(controllerStateRule.ControllerType).Active[
                    ArtifactStateCustomizationViewController.ActiveObjectTypeHasRules] = !artifactStateInfo.Active;
            }
        }
コード例 #6
0
 public void CustomizeAccessibility(ArtifactStateInfo info)
 {
     customizeState(info);
 }
コード例 #7
0
 public void CustomizeVisibility(ArtifactStateInfo artifactStateInfo)
 {
     customizeState(artifactStateInfo);
 }
コード例 #8
0
 public virtual void CustomizeVisibility(ArtifactStateInfo artifactStateInfo)
 {
 }
コード例 #9
0
 public virtual void CustomizeAccessibility(ArtifactStateInfo info)
 {
 }