Exemple #1
0
 public Condition(string name, IConfiguration configuration)
 {
     this.name = name;
     this.configuration = configuration;
     if (configuration.Attributes["action"] != null)
         action = (ConditionFailedAction)Enum.Parse(typeof(ConditionFailedAction), configuration.Attributes["action"]);
 }
Exemple #2
0
 public virtual void UpdateStatus()
 {
     if (codon != null)
     {
         ConditionFailedAction failedAction = codon.GetFailedAction(caller);
         this.Visible = failedAction != ConditionFailedAction.Exclude;
         if (!isInitialized && failedAction != ConditionFailedAction.Exclude)
         {
             isInitialized = true;
             CreateDropDownItems();                     // must be created to support shortcuts
             if (DropDownItems.Count == 0 && subItems.Count > 0)
             {
                 DropDownItems.Add(new ToolStripMenuItem());
             }
         }
         if (Image == null && codon.Properties.Contains("icon"))
         {
             try
             {
                 Image = ResourceService.GetBitmap(codon.Properties["icon"]);
             }
             catch (ResourceNotFoundException) { }
         }
     }
 }
        public virtual void UpdateStatus()
        {
            if (codon != null)
            {
                ConditionFailedAction failedAction = codon.GetFailedAction(caller);
                this.Visible = failedAction != ConditionFailedAction.Exclude;
                bool isEnabled = failedAction != ConditionFailedAction.Disable;
                if (isEnabled && menuCommand != null && menuCommand is IMenuCommand)
                {
                    isEnabled = ((IMenuCommand)menuCommand).IsEnabled;
                }
#if ModifiedForAltaxo
                // set/reset the Checked state of a item (a ToolStripMenuItem can not (!) show the Checked state, one has to use a ToolStripButton
                if (isEnabled && menuCommand != null && menuCommand is ICheckableMenuCommand)
                {
                    base.Checked = ((ICheckableMenuCommand)menuCommand).IsChecked;
                }
#endif
                this.Enabled = isEnabled;

                if (this.Visible && codon.Properties.Contains("icon"))
                {
                    Image = ResourceService.GetBitmap(StringParser.Parse(codon.Properties["icon"]));
                }
            }
        }
 public virtual void UpdateStatus()
 {
     if (conditionCollection != null)
     {
         ConditionFailedAction failedAction = conditionCollection.GetCurrentConditionFailedAction(caller);
         bool isVisible = failedAction != ConditionFailedAction.Exclude;
         if (base.Visible != isVisible)
         {
             base.Visible = isVisible;
         }
         bool isEnabled = failedAction != ConditionFailedAction.Disable;
         if (base.Enabled != isEnabled)
         {
             base.Enabled = isEnabled;
         }
     }
     if (menuCommand != null)
     {
         bool isEnabled = Enabled & menuCommand.Enabled;
         if (base.Enabled != isEnabled)
         {
             base.Enabled = isEnabled;
         }
     }
     Text = localizedText;
 }
Exemple #5
0
		public Condition(string name, Properties properties, AddIn addIn)
		{
			this.AddIn = addIn;
			this.name = name;
			this.properties = properties;
			action = properties.Get("action", ConditionFailedAction.Exclude);
		}
Exemple #6
0
        /// <summary>
        /// 构建插件单元
        /// </summary>
        /// <param name="owner">拥有者</param>
        /// <param name="subItems">子对象</param>
        /// <returns>构建好的插件单元</returns>
        public object BuildItem(object owner, ArrayList subItems)
        {
            IBuilderService builderService = WorkItem.Services.Get <IBuilderService>();

            if (builderService != null)
            {
                IBuilder builder = builderService.GetBuilder(className);
                if (builder == null)
                {
                    throw new AddInException(String.Format("系统未注册类型为 [{0}] 的插件单元构建器", className));
                }

                if (builder.HandleConditions && conditions.Count > 0)
                {
                    ConditionFailedAction action = GetFailedAction(owner);
                    if (action != ConditionFailedAction.Nothing)
                    {
                        return(null);
                    }
                }

                if (objectRef == null)
                {
                    objectRef = builder.BuildItem(owner, workItem, this, subItems);
                }
                return(objectRef);
            }
            return(null);
        }
        public virtual void UpdateStatus()
        {
            if (codon != null)
            {
                ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
                bool isVisible = failedAction != ConditionFailedAction.Exclude;
                if (base.Visible != isVisible)
                {
                    base.Visible = isVisible;
                }

                if (this.Visible)
                {
                    if (buttonEnabled && imgButtonEnabled != null)
                    {
                        Image = imgButtonEnabled;
                    }
                    else if (imgButtonDisabled != null)
                    {
                        Image = imgButtonDisabled;
                    }
                }
                base.Enabled = this.Enabled;                 // fix for SD2-938 suggested by Matt Ward
            }
        }
Exemple #8
0
 public Condition(string name, Properties properties, AddIn addIn)
 {
     this.AddIn      = addIn;
     this.name       = name;
     this.properties = properties;
     action          = properties.Get("action", ConditionFailedAction.Exclude);
 }
Exemple #9
0
        public virtual void UpdateStatus()
        {
            if (codon != null)
            {
                ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
                bool isVisible = failedAction != ConditionFailedAction.Exclude;
                if (isVisible != Visible)
                {
                    Visible = isVisible;
                }
                if (menuCommand != null)
                {
                    bool isChecked = menuCommand.IsChecked;
                    if (isChecked != Checked)
                    {
                        Checked = isChecked;
                    }
                }

                if (this.Visible && codon.Properties.Contains("icon"))
                {
                    Image = WinFormsResourceService.GetBitmap(StringParser.Parse(codon.Properties["icon"]));
                }
            }
        }
Exemple #10
0
 public virtual void UpdateStatus()
 {
     if (codon != null)
     {
         ConditionFailedAction failedAction = codon.GetFailedAction(caller);
         this.Enabled = failedAction != ConditionFailedAction.Disable;
         this.Visible = failedAction != ConditionFailedAction.Exclude;
     }
 }
Exemple #11
0
 public Condition(string name, IConfiguration configuration)
 {
     this.name          = name;
     this.configuration = configuration;
     if (configuration.Attributes["action"] != null)
     {
         action = (ConditionFailedAction)Enum.Parse(typeof(ConditionFailedAction), configuration.Attributes["action"]);
     }
 }
Exemple #12
0
 public static ConditionFailedAction GetFailedAction(IEnumerable<ICondition> conditionList, object caller)
 {
     ConditionFailedAction action = ConditionFailedAction.Nothing;
     foreach (ICondition condition in conditionList) {
         if (!condition.IsValid(caller)) {
             if (condition.Action == ConditionFailedAction.Disable) {
                 action = ConditionFailedAction.Disable;
             } else {
                 return ConditionFailedAction.Exclude;
             }
         }
     }
     return action;
 }
Exemple #13
0
        public virtual void UpdateStatus()
        {
            bool isVisible = base.Visible;

            if (codon != null)
            {
                ConditionFailedAction failedAction = codon.GetFailedAction(caller);
                isVisible &= failedAction != ConditionFailedAction.Exclude;
            }
            if (base.Visible != isVisible)
            {
                Visible = isVisible;
            }
        }
Exemple #14
0
        public virtual void UpdateStatus()
        {
            ConditionFailedAction result = codon.GetFailedAction(caller);

            if (result == ConditionFailedAction.Exclude)
            {
                this.Visibility = Visibility.Collapsed;
            }
            else
            {
                this.Visibility = Visibility.Visible;
            }
            if (SetEnabled)
            {
                this.IsEnabled = result == ConditionFailedAction.Nothing;
            }
        }
Exemple #15
0
 public virtual void UpdateStatus()
 {
     if (codon != null)
     {
         ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
         this.Visible = failedAction != ConditionFailedAction.Exclude;
         if (!isInitialized && failedAction != ConditionFailedAction.Exclude)
         {
             isInitialized = true;
             CreateDropDownItems();                     // must be created to support shortcuts
             if (DropDownItems.Count == 0 && subItems.Count > 0)
             {
                 DropDownItems.Add(new ToolStripMenuItem());
             }
         }
     }
 }
Exemple #16
0
        internal object BuildItem(BuildItemArgs args)
        {
            if (!addIn.AddInTree.Doozers.TryGetValue(Name, out var doozer))
            {
                throw new BaseException("Doozer " + Name + " not found! " + ToString());
            }

            if (!doozer.HandleConditions)
            {
                ConditionFailedAction action = Condition.GetFailedAction(args.Conditions, args.Parameter);
                if (action != ConditionFailedAction.Nothing)
                {
                    return(null);
                }
            }
            return(doozer.BuildItem(args));
        }
Exemple #17
0
        public virtual void UpdateStatus()
        {
            ConditionFailedAction result = Altaxo.AddInItems.Condition.GetFailedAction(_conditions, _useDataContext ? (DataContext ?? _caller) : _caller);

            if (result == ConditionFailedAction.Exclude)
            {
                Visibility = Visibility.Collapsed;
            }
            else
            {
                Visibility = Visibility.Visible;
            }
            if (_setEnabled)
            {
                IsEnabled = result == ConditionFailedAction.Nothing;
            }
        }
Exemple #18
0
        public virtual void UpdateStatus()
        {
            if (codon != null)
            {
                ConditionFailedAction failedAction = codon.GetFailedAction(caller);
                bool isVisible = failedAction != ConditionFailedAction.Exclude;
                if (base.Visible != isVisible)
                {
                    base.Visible = isVisible;
                }

                if (this.Visible && codon.Properties.Contains("icon"))
                {
                    Image = WinFormsResourceService.GetBitmap(StringParser.Parse(codon.Properties["icon"]));
                }
            }
        }
Exemple #19
0
//
//		public void BinarySerialize(BinaryWriter writer)
//		{
//			writer.Write(AddInTree.GetNameOffset(name));
//			writer.Write(AddInTree.GetAddInOffset(addIn));
//			properties.BinarySerialize(writer);
//		}
//
        public object BuildItem(object owner, ArrayList subItems)
        {
            try {
                IDoozer doozer = AddInTree.Doozers[Name];
                if (!doozer.HandleConditions && conditions.Length > 0)
                {
                    ConditionFailedAction action = GetFailedAction(owner);
                    if (action != ConditionFailedAction.Nothing)
                    {
                        return(null);
                    }
                }
                return(doozer.BuildItem(owner, this, subItems));
            } catch (KeyNotFoundException) {
                throw new CoreException("Doozer " + Name + " not found!");
            }
        }
Exemple #20
0
        public virtual void UpdateStatus()
        {
            if (codon != null)
            {
                ConditionFailedAction failedAction = codon.GetFailedAction(caller);
                this.Visible = failedAction != ConditionFailedAction.Exclude;
                bool isEnabled = failedAction != ConditionFailedAction.Disable;
                if (isEnabled && menuCommand != null && menuCommand is IMenuCommand)
                {
                    isEnabled = ((IMenuCommand)menuCommand).IsEnabled;
                }
                this.Enabled = isEnabled;

                if (this.Visible && codon.Properties.Contains("icon"))
                {
                    Image = ResourceService.GetBitmap(StringParser.Parse(codon.Properties["icon"]));
                }
            }
        }
Exemple #21
0
        //
        //		public void BinarySerialize(BinaryWriter writer)
        //		{
        //			writer.Write(AddInTree.GetNameOffset(name));
        //			writer.Write(AddInTree.GetAddInOffset(addIn));
        //			properties.BinarySerialize(writer);
        //		}
        //
        public object BuildItem(object owner, ArrayList subItems)
        {
            IDoozer doozer;

            if (!AddInTree.Doozers.TryGetValue(Name, out doozer))
            {
                throw new CoreException("Doozer " + Name + " not found!");
            }

            if (!doozer.HandleConditions && conditions.Length > 0)
            {
                ConditionFailedAction action = GetFailedAction(owner);
                if (action != ConditionFailedAction.Nothing)
                {
                    return(null);
                }
            }
            return(doozer.BuildItem(owner, this, subItems));
        }
Exemple #22
0
        /// <summary>
        /// Update Status
        /// </summary>
        public void UpdateStatus()
        {
            ConditionFailedAction action = ICSharpCode.Core.Condition.GetFailedAction(conditions, caller);

            if (action == ConditionFailedAction.Exclude)
            {
                this.Visibility = Visibility.Collapsed;
            }
            else if (action == ConditionFailedAction.Disable)
            {
                this.Visibility = Visibility.Visible;
                this.IsEnabled  = false;
            }
            else
            {
                this.Visibility = Visibility.Visible;
                this.IsEnabled  = true;
            }
        }
        /// <summary>
        /// 对caller对象进行条件测试,如果发现caller不满足条件,则返回disabled或exclude;
        /// 否则,返回nothing(即满足所有条件,则失败后不做什么,也就是返回nothing即可)
        /// </summary>
        /// <param name="caller"></param>
        /// <returns></returns>
        public ConditionFailedAction GetCurrentConditionFailedAction(object caller)
        {
            ConditionFailedAction failedAction = ConditionFailedAction.Nothing;

            foreach (ICondition condition in this)
            {
                if (!condition.IsValid(caller))
                {
                    if (condition.FailedAction == ConditionFailedAction.Disable)
                    {
                        failedAction = ConditionFailedAction.Disable;
                    }
                    else
                    {
                        return(failedAction = ConditionFailedAction.Exclude);
                    }
                }
            }
            return(failedAction);
        }
Exemple #24
0
        public static ConditionFailedAction GetFailedAction(IEnumerable <ICondition> conditionList, object caller)
        {
            ConditionFailedAction action = ConditionFailedAction.Nothing;

            foreach (ICondition condition in conditionList)
            {
                if (!condition.IsValid(caller))
                {
                    if (condition.Action == ConditionFailedAction.Disable)
                    {
                        action = ConditionFailedAction.Disable;
                    }
                    else
                    {
                        return(ConditionFailedAction.Exclude);
                    }
                }
            }
            return(action);
        }
Exemple #25
0
        public static ICondition ReadComplexCondition(XmlReader reader)
        {
            Properties properties = Properties.ReadFromAttributes(reader);

            reader.Read();
            ICondition condition = null;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    switch (reader.LocalName)
                    {
                    case "And":
                        condition = AndCondition.Read(reader);
                        goto exit;

                    case "Or":
                        condition = OrCondition.Read(reader);
                        goto exit;

                    case "Not":
                        condition = NegatedCondition.Read(reader);
                        goto exit;

                    case "Condition":
                        condition = Condition.Read(reader);
                        goto exit;
                    }
                    break;
                }
            }
exit:
            if (condition != null)
            {
                ConditionFailedAction action = properties.Get("action", ConditionFailedAction.Exclude);
                condition.Action = action;
            }
            return(condition);
        }
Exemple #26
0
        public static ICondition ReadComplexCondition(XmlReader reader)
        {
            Properties properties = Properties.ReadFromAttributes(reader);

            reader.Read();
            ICondition condition = null;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    switch (reader.LocalName)
                    {
                    case "And":
                        condition = AndCondition.Read(reader);
                        goto exit;

                    case "Or":
                        condition = OrCondition.Read(reader);
                        goto exit;

                    case "Not":
                        condition = NegatedCondition.Read(reader);
                        goto exit;

                    default:
                        throw new AddInLoadException("Invalid element name '" + reader.LocalName
                                                     + "', the first entry in a ComplexCondition " +
                                                     "must be <And>, <Or> or <Not>");
                    }
                }
            }
exit:
            if (condition != null)
            {
                ConditionFailedAction action = properties.Get("action", ConditionFailedAction.Exclude);
                condition.Action = action;
            }
            return(condition);
        }
Exemple #27
0
 public virtual void UpdateStatus()
 {
     if (codon != null)
     {
         ConditionFailedAction failedAction = codon.GetFailedAction(caller);
         this.Visible = failedAction != ConditionFailedAction.Exclude;
         if (menuCommand == null && !string.IsNullOrEmpty(codon.Properties["checked"]))
         {
             Checked = string.Equals(StringParser.Parse(codon.Properties["checked"]),
                                     bool.TrueString, StringComparison.OrdinalIgnoreCase);
         }
         else
         {
             CreateMenuCommand();
             if (menuCommand != null)
             {
                 Checked = menuCommand.IsChecked;
             }
         }
     }
 }
Exemple #28
0
 public Condition(string name, SkyMap.Net.Core.Properties properties)
 {
     this.name = name;
     this.properties = properties;
     this.action = properties.Get<ConditionFailedAction>("action", ConditionFailedAction.Exclude);
 }