Exemple #1
0
        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));
 }
Exemple #3
0
        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());
        }
Exemple #5
0
 public StringInStream(IStringIn stringIn)
 {
     FStringIn     = stringIn;
     FAutoValidate = stringIn.AutoValidate;
 }
Exemple #6
0
        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);
        }