Пример #1
0
        private void CreateProject()
        {
            FileManager.INFO_PROJECT info = new FileManager.INFO_PROJECT();
            info.count_block = 0;
            info.Language    = GetPresentLanguage();
            info.name        = textBox_name.Text;
            info.Type        = GetPresentType();
            info.path        = textBox_path.Text;
            info.path_icon   = textBox_icon.Text;

            Boolean result = FileManager.ManagerProjects.CreateProject(info);

            if (result)
            {
                if (onNewCreateProject != null)
                {
                    onNewCreateProject(info);
                }
            }
            else
            {
                String error = FileManager.ManagerProjects.GetError();
                LMD_GUI.LMD_WindowError we = new LMD_WindowError(error);
                we.ShowDialog();

                if (we.Result == LMD_WindowError.RESULT.HELP)
                {
                    info.name         = FileManager.ManagerProjects.CorrectName(info.name, "_");
                    textBox_name.Text = info.name;
                }
            }
        }
Пример #2
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     FileManager.INFO_PROJECT pip = FileManager.ManagerProjects.GetPresentProjectInfo();
     w_txt.Text        = pip.workspace_width.ToString();
     h_txt.Text        = pip.workspace_height.ToString();
     txt_name.Text     = pip.name;
     txt_path.Text     = pip.path;
     txt_path_ico.Text = pip.path_icon;
     cb_language.Text  = "" + pip.Language;
     cb_type.Text      = "" + pip.Type;
 }
Пример #3
0
        private void Button_Click_6(object sender, RoutedEventArgs e)
        {
            info           = new FileManager.INFO_PROJECT();
            info.name      = txt_name.Text;
            info.path      = txt_path.Text;
            info.path_icon = txt_path_ico.Text;

            try
            {
                info.workspace_width  = float.Parse(w_txt.Text);
                info.workspace_height = float.Parse(h_txt.Text);
            }
            catch { MessageBox.Show("Не корректно введены параметры размера поля"); }

            info.Language = GetLanguage();
            info.Type     = GetTypeProject();

            FileManager.ManagerProjects.ApplySettings(info);

            this.Close();
        }
Пример #4
0
        public void RunCoreCompile(FileManager.INFO_PROJECT info_project, LMD_GUI.LMD_BottomPanel info, List <LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK> blocks,
                                   LMD_GUI.LMD_FastInformationPanel fast_info)
        {
            Language.ManagerLanguage.LANGUAGE old_language = ML.PresentLanguage;
            ML.SetLanguage(Language.ManagerLanguage.LANGUAGE.C_SHARP);

            level = 0;
            ME.Clear();

            LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_begin = null;
            for (int i = 0; i < blocks.Count; i++)
            {
                if (blocks[i].Type == LMD_GUI.TYPE_BLOCK.begin)
                {
                    block_begin = blocks[i];
                }
            }

            LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_next = block_begin;

            ResolutionBlocks(block_next, info);

            String res_code = "";
            List <Language.BLOCK_CODE_CONTROL_ERROR> BCCE = ME.GetItems();
            int lines = 0;

            for (int i = 0; i < BCCE.Count; i++)
            {
                for (int j = 0; j < BCCE[i].code.Length; j++)
                {
                    lines++;
                    info.AddItemText(BCCE[i].code[j]);
                    res_code += BCCE[i].code[j];
                    BCCE[i].lines.Add(lines);
                }
            }

            CompileCode(res_code, null, true);
            ML.SetLanguage(old_language);
        }
Пример #5
0
        public int Run(List <LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK> blocks, LMD_GUI.LMD_BottomPanel info,
                       LMD_GUI.LMD_FastInformationPanel fast_info)
        {
            info.ClearDate();
            fast_info.SetCurrentText("Начато построение");
            PrevTextCode.Clear();
            level = 0;
            ME.Clear();
            int count_block = blocks.Count;

            // Set setting from projects to compile
            FileManager.INFO_PROJECT info_project = FileManager.ManagerProjects.GetPresentProjectInfo();
            ML.SetLanguage(info_project.Language);

            info.AddItemText("Информация о проекте: ");
            info.AddItemText("Название: " + info_project.name);
            info.AddItemText("Путь: " + Environment.CurrentDirectory + "\\" + info_project.path);
            info.AddItemText("Тип проекта: " + info_project.Type);

            info.AddItemText("Колличество блоков: " + count_block);
            fast_info.ProgressBar.Value = 20;
            String lang = "";

            switch (ML.PresentLanguage)
            {
            case Language.ManagerLanguage.LANGUAGE.C_PLUS_PLUS: lang = "C++"; break;

            case Language.ManagerLanguage.LANGUAGE.C_SHARP: lang = "C#"; break;

            case Language.ManagerLanguage.LANGUAGE.JAVA: lang = "Java"; break;

            case Language.ManagerLanguage.LANGUAGE.PASCALABC: lang = "Pascal"; break;
            }
            PrevTextCode.Add("Язык построения: " + lang);
            PrevTextCode.Add("");
            info.AddItemText("Язык построения: " + lang);

            LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_begin = null;
            for (int i = 0; i < count_block; i++)
            {
                if (blocks[i].Type == LMD_GUI.TYPE_BLOCK.begin)
                {
                    block_begin = blocks[i];
                }
            }

            LMD_BLOCKS.BLOCK_JOINT.BASE_BLOCK block_next = block_begin;

            info.AddItemText("Построение последовательности блоков");

            ResolutionBlocks(block_next, info);
            fast_info.ProgressBar.Value = 60;
            info.AddItemText("Собирается код");
            String res_code = "";
            List <Language.BLOCK_CODE_CONTROL_ERROR> BCCE = ME.GetItems();
            int lines = 0;

            for (int i = 0; i < BCCE.Count; i++)
            {
                for (int j = 0; j < BCCE[i].code.Length; j++)
                {
                    lines++;
                    PrevTextCode.Add(BCCE[i].code[j]);
                    info.AddItemText(BCCE[i].code[j]);
                    res_code += BCCE[i].code[j];
                    BCCE[i].lines.Add(lines);
                }
            }
            fast_info.ProgressBar.Value = 80;
            switch (info_project.Type)
            {
            case FileManager.TYPE_PROJECT.DLL: this.name_project = info_project.name + ".dll"; CompileCode(res_code, info, false); break;

            case FileManager.TYPE_PROJECT.EXE: this.name_project = info_project.name + ".exe"; RunCoreCompile(info_project, info, blocks, fast_info); break;

            case FileManager.TYPE_PROJECT.NONE: break;

            case FileManager.TYPE_PROJECT.TXT: FileManager.ManagerProjects.CreateTXTCode(res_code); break;
            }

            info.AddItemText("Собирание проекта завершено");
            fast_info.SetCurrentText("Готово");
            fast_info.ProgressBar.Value = 100;
            return(0);
        }