public override Panel CreatePanel(SequenceProcEnv environment)
        {
            Panel ret = new Panel();

            ret.Height = 160;
            GroupBox group = new GroupBox();

            group.Text = ParamName;
            group.Dock = DockStyle.Fill;
            SequenceSelectionControl list = new SequenceSelectionControl();

            list.AttachController(environment.Controller, _conditionToShowOnList);
            list.SelectionMode         = SelectionMode.One;
            list.SelectedIndexChanged += new EventHandler((s, e) => {
                IList <SequenceData> items = list.SelectedItems;
                if (items.Count == 1)
                {
                    this.Value = items[0];
                }
                else
                {
                    this.Value = null;
                }
                this.DoValueChanged();
            });
            int index = 0;

            list.SelectedIndices.Clear();
            foreach (var viewer in environment.Controller.GetViewList())
            {
                if (Value == viewer.Sequence)
                {
                    list.SelectedIndices.Add(index);
                }
                if (_conditionToShowOnList(viewer))
                {
                    index++;
                }
            }
            list.Dock = DockStyle.Fill;
            group.Controls.Add(list);
            ret.Controls.Add(group);
            return(ret);
        }
        public override Panel CreatePanel(SequenceProcEnv environment)
        {
            Panel ret = new Panel();

            ret.Height = 160;
            GroupBox group = new GroupBox();

            group.Text = ParamName;
            group.Dock = DockStyle.Fill;
            SequenceSelectionControl list = new SequenceSelectionControl();

            list.AttachController(environment.Controller, _conditionToShowOnList);
            list.SelectionMode         = SelectionMode.MultiExtended;
            list.SelectedIndexChanged += new EventHandler((s, e) => {
                Value = list.SelectedItems;
                DoValueChanged();
            });
            int index = 0;

            list.SelectedIndices.Clear();
            foreach (var viewer in environment.Controller.GetViewList())
            {
                if (Value.Contains(viewer.Sequence))
                {
                    list.SelectedIndices.Add(index);
                }
                if (_conditionToShowOnList(viewer))
                {
                    index++;
                }
            }
            list.Dock = DockStyle.Fill;
            group.Controls.Add(list);
            ret.Controls.Add(group);
            return(ret);
        }