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))); }
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))); }