コード例 #1
0
        public SequenceData Operate(IList <ProcParam <SequenceProcEnv> > args, SequenceProcEnv env)
        {
            var glue              = ((StringParameter)args[0]).Value;
            var type              = ((SingleSelectParameter)args[1]).Value;
            var skip              = ((BooleanParameter)args[2]).Value;
            var labelSequence     = env.SelectedSequence.GetLabelSequence();
            ICSLabelSequence ret  = new ICSLabelSequence();
            ICSLabel         prev = null;

            foreach (var label in labelSequence.EnumerateLabels())
            {
                if (skip && label.IsEmptyLabel)
                {
                    continue;
                }
                string name = label.LabelText;
                if (prev != null)
                {
                    name = prev.LabelText + glue + label.LabelText;
                }
                if (prev != null || type == 0)
                {
                    if (type == 0)
                    {
                        ret.SetLabel(label.BeginTime, label.EndTime, name);
                    }
                    else
                    {
                        ret.SetLabel(prev.BeginTime, prev.EndTime, name);
                    }
                }
                prev = label;
            }
            return(SequenceData.FromLabelSequence(ret, PathEx.GiveName("AppendPrev", env.SelectedSequence.Title)));
        }
コード例 #2
0
        public SequenceData Operate(IList <ProcParam <SequenceProcEnv> > args, SequenceProcEnv env)
        {
            int check = ((SingleSelectParameter)args[0]).Value;
            ICSLabelSequence current = env.SelectedSequence.GetLabelSequence();
            ICSLabelSequence ret     = new ICSLabelSequence();
            ICSLabel         prev    = null;

            foreach (var label in current.EnumerateLabels())
            {
                switch (check)
                {
                case 0:
                    if (label.IsEmptyLabel)
                    {
                        ret.SetLabel(label.BeginTime, label.EndTime, "On");
                    }
                    break;

                case 1:
                    if (label.IsEmptyLabel && prev != null)
                    {
                        ret.SetLabel(label.BeginTime, label.EndTime, prev.LabelText);
                    }
                    break;

                case 2:
                    if (prev != null && prev.IsEmptyLabel)
                    {
                        ret.SetLabel(prev.BeginTime, prev.EndTime, label.LabelText);
                    }
                    break;
                }
                prev = label;
            }
            return(SequenceData.FromLabelSequence(ret, PathEx.GiveName("Empty-of", env.SelectedSequence.Title)));
        }