private static string BuildRequirementsToolTip(KStudioEventStream stream, IEnumerable streams, KStudioEventStreamSelectorRequirementFlags process)
        {
            string value = null;

            process = process &= KStudioEventStreamSelectorRequirementFlags.ProcessMask;

            if ((stream != null) && (stream.EventStreamSelectorRequirements != null))
            {
                EventStreamState state = (EventStreamState)stream.UserState;

                StringBuilder sb = new StringBuilder();

                KStudioEventStreamIdentifier emptyIdentifier = new KStudioEventStreamIdentifier();

                foreach (KStudioEventStreamSelectorRequirement requirement in stream.EventStreamSelectorRequirements)
                {
                    if ((requirement.Flags & KStudioEventStreamSelectorRequirementFlags.ProcessMask) == process)
                    {
                        switch (requirement.Flags & KStudioEventStreamSelectorRequirementFlags.OperationMask)
                        {
                        case KStudioEventStreamSelectorRequirementFlags.OperationAll:
                        {
                            string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, emptyIdentifier, streams);
                            if (!String.IsNullOrWhiteSpace(temp))
                            {
                                if (sb.Length > 0)
                                {
                                    sb.AppendLine();
                                }

                                sb.AppendFormat(Strings.StreamRequirement_All_Format, temp);
                            }
                        }
                            {
                                string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier1, emptyIdentifier, streams);
                                if (!String.IsNullOrWhiteSpace(temp))
                                {
                                    if (sb.Length > 0)
                                    {
                                        sb.AppendLine();
                                    }

                                    sb.AppendFormat(Strings.StreamRequirement_All_Format, temp);
                                }
                            }
                            break;

                        case KStudioEventStreamSelectorRequirementFlags.OperationNone:
                        {
                            string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, (KStudioEventStreamIdentifier)requirement.Identifier1, streams);
                            if (!String.IsNullOrWhiteSpace(temp))
                            {
                                if (sb.Length > 0)
                                {
                                    sb.AppendLine();
                                }

                                sb.AppendFormat(Strings.StreamRequirement_None_Format, temp);
                            }
                        }
                        break;

                        case KStudioEventStreamSelectorRequirementFlags.OperationOr:
                        {
                            string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, (KStudioEventStreamIdentifier)requirement.Identifier1, streams);
                            if (!String.IsNullOrWhiteSpace(temp))
                            {
                                if (sb.Length > 0)
                                {
                                    sb.AppendLine();
                                }

                                sb.AppendFormat(Strings.StreamRequirement_Or_Format, temp);
                            }
                        }
                        break;

                        case KStudioEventStreamSelectorRequirementFlags.OperationXor:
                        {
                            string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, (KStudioEventStreamIdentifier)requirement.Identifier1, streams);
                            if (!String.IsNullOrWhiteSpace(temp))
                            {
                                if (sb.Length > 0)
                                {
                                    sb.AppendLine();
                                }

                                sb.AppendFormat(Strings.StreamRequirement_Xor_Format, temp);
                            }
                        }
                        break;
                        }
                    }
                }

                value = sb.ToString();
            }

            return(value);
        }
        private static string BuildRequirementsToolTip(KStudioEventStream stream, IEnumerable streams, KStudioEventStreamSelectorRequirementFlags process)
        {
            string value = null;

            process = process &= KStudioEventStreamSelectorRequirementFlags.ProcessMask;

            if ((stream != null) && (stream.EventStreamSelectorRequirements != null))
            {
                EventStreamState state = (EventStreamState)stream.UserState;

                StringBuilder sb = new StringBuilder();

                KStudioEventStreamIdentifier emptyIdentifier = new KStudioEventStreamIdentifier();

                foreach (KStudioEventStreamSelectorRequirement requirement in stream.EventStreamSelectorRequirements)
                {
                    if ((requirement.Flags & KStudioEventStreamSelectorRequirementFlags.ProcessMask) == process)
                    {
                        switch (requirement.Flags & KStudioEventStreamSelectorRequirementFlags.OperationMask)
                        {
                            case KStudioEventStreamSelectorRequirementFlags.OperationAll:
                                {
                                    string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, emptyIdentifier, streams);
                                    if (!String.IsNullOrWhiteSpace(temp))
                                    {
                                        if (sb.Length > 0)
                                        {
                                            sb.AppendLine();
                                        }

                                        sb.AppendFormat(Strings.StreamRequirement_All_Format, temp);
                                    }
                                }
                                {
                                    string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier1, emptyIdentifier, streams);
                                    if (!String.IsNullOrWhiteSpace(temp))
                                    {
                                        if (sb.Length > 0)
                                        {
                                            sb.AppendLine();
                                        }

                                        sb.AppendFormat(Strings.StreamRequirement_All_Format, temp);
                                    }
                                }
                                break;

                            case KStudioEventStreamSelectorRequirementFlags.OperationNone:
                                {
                                    string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, (KStudioEventStreamIdentifier)requirement.Identifier1, streams);
                                    if (!String.IsNullOrWhiteSpace(temp))
                                    {
                                        if (sb.Length > 0)
                                        {
                                            sb.AppendLine();
                                        }

                                        sb.AppendFormat(Strings.StreamRequirement_None_Format, temp);
                                    }
                                }
                                break;

                            case KStudioEventStreamSelectorRequirementFlags.OperationOr:
                                {
                                    string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, (KStudioEventStreamIdentifier)requirement.Identifier1, streams);
                                    if (!String.IsNullOrWhiteSpace(temp))
                                    {
                                        if (sb.Length > 0)
                                        {
                                            sb.AppendLine();
                                        }

                                        sb.AppendFormat(Strings.StreamRequirement_Or_Format, temp);
                                    }
                                }
                                break;

                            case KStudioEventStreamSelectorRequirementFlags.OperationXor:
                                {
                                    string temp = EventStreamState.GetStreamNames((KStudioEventStreamIdentifier)requirement.Identifier0, (KStudioEventStreamIdentifier)requirement.Identifier1, streams);
                                    if (!String.IsNullOrWhiteSpace(temp))
                                    {
                                        if (sb.Length > 0)
                                        {
                                            sb.AppendLine();
                                        }

                                        sb.AppendFormat(Strings.StreamRequirement_Xor_Format, temp);
                                    }
                                }
                                break;
                        }
                    }
                }

                value = sb.ToString();
            }

            return value;
        }