public void Configurate(IPluginConfig Input) { if (Input == FInCount) { double inCount; FInCount.GetValue(0, out inCount); int idiff = FInList.Count - (int)Math.Round(inCount); if (idiff > 0) //delete pins { for (int i = 0; i < idiff; i++) { IStringIn delPin = FInList[FInList.Count - 1]; FInList.Remove(delPin); FHost.DeletePin(delPin); } } else if (idiff < 0) //create pins { for (int i = 0; i > idiff; i--) { IStringIn newPin; FHost.CreateStringInput("Input " + (FInList.Count + 1), TSliceMode.Dynamic, TPinVisibility.True, out newPin); newPin.SetSubType("", false); FInList.Add(newPin); } } evaluate = true; } }
/// <summary> /// Checks for fragments in order in the string being expected upon /// </summary> /// <param name="stringIn">Continuation to operate on</param> /// <param name="firstFragment">First fragment to look for</param> /// <param name="fragments">Subsequent fragments to look for</param> /// <returns></returns> public static IStringMore Order( this IStringIn stringIn, string firstFragment, params string[] fragments ) { return(stringIn.Order(new[] { firstFragment }.Concat(fragments), null)); }
public static IStringIn CreateStringInput(this IPluginHost host, InputAttribute attribute, Type type) { IStringIn result = null; host.CreateStringInput(attribute.Name, (TSliceMode)attribute.SliceMode, (TPinVisibility)attribute.Visibility, out result); result.SetSubType2(attribute.DefaultString, attribute.MaxChars, attribute.FileMask, (TStringType)attribute.StringType); SetInputProperties(result, attribute); return(result); }
/// <summary> /// Checks for fragments in order in the string being expected upon /// </summary> /// <param name="stringIn">Continuation to operate on</param> /// <param name="fragments">Fragments to look for</param> /// <param name="customMessage">Custom message to add to failure messages</param> /// <returns></returns> public static IStringMore Order( this IStringIn stringIn, IEnumerable <string> fragments, string customMessage ) { if (!fragments.Any()) { throw new InvalidOperationException(".In.Order(...) requires at least one fragment"); } var first = fragments.First(); var canAddMatcher = stringIn as ICanAddMatcher <string>; fragments.Skip(1) .Aggregate( canAddMatcher.Contain(first, customMessage), ( acc, cur) => acc.Then(cur, customMessage) ); return(canAddMatcher.More()); }
public StringInStream(IStringIn stringIn) { FStringIn = stringIn; FAutoValidate = stringIn.AutoValidate; }
public void CreateStringInput(string Name, TSliceMode SliceMode, TPinVisibility Visibility, out IStringIn Pin) { Pin = new TStringPin(this, Name, TPinDirection.Input, null, SliceMode, Visibility); AddPin(Pin as TBasePin); }