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