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"]); }
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; }
public Condition(string name, Properties properties, AddIn addIn) { this.AddIn = addIn; this.name = name; this.properties = properties; action = properties.Get("action", ConditionFailedAction.Exclude); }
/// <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 } }
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"])); } } }
public virtual void UpdateStatus() { if (codon != null) { ConditionFailedAction failedAction = codon.GetFailedAction(caller); this.Enabled = failedAction != ConditionFailedAction.Disable; this.Visible = failedAction != ConditionFailedAction.Exclude; } }
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"]); } }
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; }
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; } }
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; } }
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()); } } } }
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)); }
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; } }
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"])); } } }
// // 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!"); } }
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"])); } } }
// // 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)); }
/// <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); }
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); }
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); }
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); }
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; } } } }
public Condition(string name, SkyMap.Net.Core.Properties properties) { this.name = name; this.properties = properties; this.action = properties.Get<ConditionFailedAction>("action", ConditionFailedAction.Exclude); }