public Panel GetPanel()
        {
            SequenceProcEnv env = this.GetEnvironment();

            Panel ret = new Panel();

            ret.Padding = new Padding(8, 8, 8, 8);
            if (Parameters == null)
            {
                Parameters = _operation.GetParameters() ?? new ProcParam <SequenceProcEnv> [0];
            }
            foreach (var param in Parameters)
            {
                Panel sub = param.CreatePanel(env);
                sub.Dock = DockStyle.Top;
                ret.Controls.Add(sub);
                sub.BringToFront();
            }
            if (Parameters.Count == 0)
            {
                Label empty = new Label();
                empty.Dock = DockStyle.Top;
                empty.Text = "No parameter";
                ret.Controls.Add(empty);
            }
            ret.AutoScroll = true;
            return(ret);
        }
        public ScriptVariable Call(IList <ScriptVariable> args, ScriptConsole console)
        {
            if (args == null)
            {
                throw new ArgumentNullException("args", "args cannot be null");
            }
            if (args.Count < 1)
            {
                throw new ArgumentException("args must have one or more elements", "args");
            }
            if (args[0] == null)
            {
                throw new ArgumentException("first element of args cannot be null", "args");
            }
            string       viewerName = args[0].ToString();
            SequenceView viewer     = SequenceViewerController.Singleton.GetViewByTitle(viewerName);

            if (viewer == null)
            {
                throw new ArgumentException("first element of args must be resultSequence name : " + viewerName, "args");
            }

            SequenceProcEnv env2 = new SequenceProcEnv(console.SequenceController, viewer.Sequence);

            IList <ProcParam <SequenceProcEnv> > parameters = this.Operation.GetParameters() ?? new ProcParam <SequenceProcEnv> [0];

            if (args.Count != parameters.Count + 1)
            {
                throw new ArgumentException(string.Format(global::MotionDataHandler.Properties.Settings.Default.Msg_NumberOfArgumentsRequired, parameters.Count + 1));
            }
            for (int i = 0; i < parameters.Count; i++)
            {
                string errorStr = "";
                if (!parameters[i].FromScriptVariable(env2, args[i + 1], ref errorStr))
                {
                    throw new ArgumentException(string.Format(global::MotionDataHandler.Properties.Settings.Default.Msg_InvalidNthArgument + ": {1}", i + 1, errorStr ?? ""), "args");
                }
            }
            SequenceData   resultSequence = this.Operation.Operate(parameters, env2);
            ScriptVariable ret            = null;

            if (resultSequence != null)
            {
                console.SequenceController.AddSequence(resultSequence, viewer.IsLocked);
                ret = new StringVariable(resultSequence.Title);
            }
            console.SequenceController.DoAllocationChanged();

            if (this.Operation.ReplacesInternalData)
            {
                env2.SelectedSequence.IsDataChanged = true;
            }

            return(ret);
        }
        /// <summary>
        /// Sequence用パラメータをScript変数に変換します
        /// </summary>
        /// <param name="paramaters"></param>
        /// <returns></returns>
        public IList <ScriptVariable> GetVariablesFromParameters(IList <ProcParam <SequenceProcEnv> > paramaters)
        {
            SequenceProcEnv             env = this.GetEnvironment();
            Collection <ScriptVariable> ret = new Collection <ScriptVariable>();

            // 先頭は選択列
            ret.Add(new StringVariable(env.SelectedSequence.Title));
            // 残りのパラメータを変数に変換
            foreach (var param in paramaters)
            {
                ScriptVariable variable = null;
                if (param != null)
                {
                    variable = param.ToScriptVariable(env);
                }
                ret.Add(variable);
            }

            return(ret);
        }
        public SequenceProcEnv GetEnvironment()
        {
            SequenceProcEnv env = new SequenceProcEnv(_controller, _current);

            return(env);
        }