private void Run(object param)
        {
            List <Operation> opeartionList = new List <Operation>();

            foreach (OperationNode operationNode in operationNodes)
            {
                Operation operation = GenerateOperationTree(operationNode);
                if (operation != null)
                {
                    opeartionList.Add(operation);
                }
            }

            Thread thread = new Thread(() =>
            {
                foreach (Operation experimentOperation in opeartionList)
                {
                    if (experimentOperation is ExperimentOperation)
                    {
                        ExperimentFlow.GetInstance().RunNewExperiment(experimentOperation as ExperimentOperation);
                    }
                }
            })
            {
                IsBackground = true
            };

            thread.Start();
        }
        public void SaveOperationTreeToFile(string fileName)
        {
            if (operationNodes.Count == 0)
            {
                return;
            }
            if (operationNodes[0] == null)
            {
                return;
            }
            Operation           operation           = GenerateOperationTree(operationNodes[0]);
            ExperimentOperation experimentOperation = operation as ExperimentOperation;

            if (experimentOperation != null)
            {
                ExperimentFlow.GetInstance().SaveOperationTreeToFile(experimentOperation, fileName);
            }
        }
        public void OpenOperationTreeFile(string fileName)
        {
            ExperimentOperation experimentOperation = ExperimentFlow.GetInstance().LoadOperationTreeFromFile(fileName);

            if (experimentOperation == null)
            {
                return;
            }

            OperationNode opeartionNode = GenerateOperationNodeTree(experimentOperation);

            ExpandOperationNode(opeartionNode);
            if (opeartionNode as ExperimentOperationNode != null)
            {
                operationNodes.Clear();
                operationNodes.Add(opeartionNode);
                opeartionNode.IsSelected = true;
            }
        }