示例#1
0
 public static TestWorkspace Create(string xmlDefinition, bool openDocuments = false, ExportProvider exportProvider = null, TestComposition composition = null)
 => Create(XElement.Parse(xmlDefinition), openDocuments, exportProvider, composition);
 internal override TestWorkspace GetWorkspace(string markup, TestComposition composition) =>
 TestWorkspace.CreateCSharp(markup, composition: composition);
示例#3
0
 protected override TestWorkspace CreateWorkspace(string code, TestComposition composition)
 => TestWorkspace.CreateCSharp(code, composition: composition);
示例#4
0
 internal abstract TestWorkspace GetWorkspace(string markup, TestComposition composition);
        private List <StepCompositionLog> DoComposition()
        {
            var steps = new List <StepCompositionLog>();

            string err_msg = "";

            switch (ComboBox_Method.SelectedIndex)
            {
            case 0:
                steps = PosledGypergraph.Compose(tbCountOfElements.Value ?? 10, tbLimitsOfWires.Value ?? 100, out err_msg);
                break;

            case 1:
                steps = PosledMultigraph.Compose(tbCountOfElements.Value ?? 10, tbLimitsOfWires.Value ?? 100, out err_msg);
                break;

            case 2:
                steps = IterGypergraph.Compose(out err_msg);
                break;

            case 3:
                steps = IterMultigraphNew.Compose(out err_msg);
                break;

            case 4:
                steps = TestComposition.Compose(tbCountOfElements.Value ?? 10, tbLimitsOfWires.Value ?? 100, out err_msg);
                break;
            }

            // если не было ошибки - сериализуем результат
            if (err_msg == "")
            {
                if (steps.Count != 0)
                {
                    var result = new CompositionResult();
                    result.BoardsElements = steps.Last().BoardsList;

                    var sch = ApplicationData.ReadScheme(out err_msg);

                    if (err_msg != "")
                    {
                        MessageBox.Show(err_msg, "Revolution CAD", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(null);
                    }

                    result.CreateBoardsWires(sch, out err_msg);

                    if (err_msg != "")
                    {
                        MessageBox.Show(err_msg, "Revolution CAD", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(null);
                    }

                    // формируем новую матрицу R на основе сформированных проводов, которые были разделены по платам
                    result.MatrixR_AfterComposition = ApplicationData.CreateMatrixR(result.BoardsWires, sch.MatrixR.RowsCount, sch.MatrixR.ColsCount);

                    ApplicationData.WriteComposition(result, out err_msg);

                    if (err_msg != "")
                    {
                        MessageBox.Show(err_msg, "Revolution CAD", MessageBoxButton.OK, MessageBoxImage.Error);
                        return(null);
                    }

                    string msg;
                    if (ApplicationData.IsFileExists(".plc", out msg))
                    {
                        File.Delete($"{ApplicationData.FileName}.plc");
                    }

                    if (ApplicationData.IsFileExists(".trs", out msg))
                    {
                        File.Delete($"{ApplicationData.FileName}.trs");
                    }

                    if (ApplicationData.IsFileExists(".lay", out msg))
                    {
                        File.Delete($"{ApplicationData.FileName}.lay");
                    }

                    mw.MatrControl.UpdateMatrices();
                    mw.PlaceControl.Update();
                    mw.TraceControl.Update();
                    mw.LayerControl.Update();
                }
            }
            if (err_msg != "")
            {
                MessageBox.Show(err_msg, "Revolution CAD", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            return(steps);
        }
 protected abstract TestWorkspace CreateWorkspace(string code, TestComposition composition);
示例#7
0
 protected override TestWorkspace CreateWorkspace(string code, TestComposition composition)
 => TestWorkspace.CreateVisualBasic(code, composition: composition);