コード例 #1
0
 /// <summary>
 /// モジュールのエクスポートボタンのクリックイベント
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ExportMacroButton_Click(object sender, EventArgs e)
 {
     try
     {
         LoadProjectForm form = new LoadProjectForm();
         form.Init(LoadProjectMode.モジュールエクスポート);
         form.ShowDialog();
     }
     catch (Exception ex)
     {
         throw Program.ThrowException(ex);
     }
 }
コード例 #2
0
 /// <summary>
 /// プロジェクトを実行する
 /// </summary>
 /// <param name="projId"></param>
 internal void StartProject(string projId, ExecDataType type, MacroStartType startType)
 {
     try
     {
         _autoMode = true;
         ProjectModel model = LoadProjectForm.GetProject(projId, type);
         StartProject(model, startType);
     }
     catch (Exception ex)
     {
         throw Program.ThrowException(ex);
     }
 }
コード例 #3
0
 /// <summary>
 /// モジュール実行ボタンのクリックイベント
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ExecuteModuleButton_Click(object sender, EventArgs e)
 {
     try
     {
         LoadProjectForm form = new LoadProjectForm();
         form.Init(LoadProjectMode.モジュール実行);
         form.ShowDialog();
         if (form.LoadResult != DialogResult.OK)
         {
             return;
         }
         DialogResult result = this.ShowInfoDialog("モジュール実行確認", "モジュールを実行しますか?");
         StartProject(form.ProjectModel, MacroStartType.MENUSTART);
     }
     catch (Exception ex)
     {
         throw Program.ThrowException(ex);
     }
 }
コード例 #4
0
        /// <summary>
        /// プロジェクト修正画面を起動する
        /// mode 0:プロジェクト修正 1:モジュール修正
        /// </summary>
        public static void ShowEditProject(BaseForm parentForm, int mode, MacroStartType startType)
        {
            try
            {
                LoadProjectForm form = new LoadProjectForm();
                switch (mode)
                {
                case 0:
                    form.Init(0);
                    break;

                case 1:
                    form.Init(LoadProjectMode.モジュール読込_削除);
                    break;
                }
                form.ShowDialog();
                if (form.LoadResult != DialogResult.OK)
                {
                    return;
                }

                ProcessEditForm procForm = new ProcessEditForm();
                switch (mode)
                {
                case 0:
                    procForm.Init(ProcessEditFormViewMode.プロジェクト修正, form.ProjectModel);
                    break;

                case 1:
                    procForm.Init(ProcessEditFormViewMode.モジュール修正, form.ProjectModel);
                    break;
                }
                procForm.ShowDialog(parentForm);
                parentForm.Show();
                ShowEditProject(parentForm, mode, startType);
            }
            catch (Exception ex)
            {
                throw Program.ThrowException(ex);
            }
        }
コード例 #5
0
        /// <summary>
        /// ファイルからプロジェクト、又はモジュールをインポートします。
        /// </summary>
        /// <param name="type"></param>
        private void ImportFromFile(ExecDataType type)
        {
            try
            {
                string kana  = "プロジェクト";
                string file1 = "mcrp";
                string file2 = "MCRP";
                switch (type)
                {
                case ExecDataType.MACRO:
                    kana  = "モジュール";
                    file1 = "mcrm";
                    file2 = "MCRM";
                    break;
                }
                var dialog = new CommonOpenFileDialog(kana + "ファイルの選択");
                // ファイル選択モード
                dialog.IsFolderPicker = false;
                dialog.Multiselect    = false;
                dialog.Filters.Add(new CommonFileDialogFilter(file2 + "ファイル(*." + file1 + ")", "*." + file1));
                if (dialog.ShowDialog(this.Handle) == CommonFileDialogResult.Ok)
                {
                    ProjectModel model = null;

                    //平文フォーマット
                    using (StreamReader sr = new StreamReader(dialog.FileName, Encoding.Default))
                    {
                        try
                        {
                            string jsonString = sr.ReadToEnd();
                            model = JsonConvert.DeserializeObject <ProjectModel>(jsonString);
                            model = LoadProjectForm.RebuildProject(model);
                        }
                        catch (Exception) { }
                    }

                    //新フォーマット
                    if (model == null)
                    {
                        using (FileStream fs = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read))
                        {
                            try
                            {
                                BinaryFormatter f = new BinaryFormatter();
                                model = (ProjectModel)f.Deserialize(fs);
                                model = LoadProjectForm.RebuildProject(model);
                            }
                            catch (Exception) { }
                        }
                    }

                    //旧フォーマット
                    if (model == null)
                    {
                        using (FileStream fs = new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read))
                        {
                            BinaryFormatter f          = new BinaryFormatter();
                            string          jsonString = (string)f.Deserialize(fs);
                            jsonString = CryptUtil.DecryptString(jsonString, StringValue.CRYPT_PASSWORD);
                            model      = LoadProjectForm.GetProjectFromJsonString(jsonString);
                        }
                    }

                    switch (type)
                    {
                    case ExecDataType.PROJECT:
                        if (model.ExecDataType != ExecDataType.PROJECT)
                        {
                            throw new Exception(kana + "ファイルではありません。");
                        }
                        break;

                    case ExecDataType.MACRO:
                        if (model.ExecDataType != ExecDataType.MACRO)
                        {
                            throw new Exception(kana + "ファイルではありません。");
                        }
                        break;
                    }
                    model.Name = DateTime.Now.ToString("yyyyMMddHHmmss_") + model.Name;
                    //IDを更新する
                    model.RenewId();

                    DialogResult result = this.ShowInfoDialog("保存確認", kana + "をインポートしますか?", MessageBoxButtons.YesNo, MessageBoxDefaultButton.Button1);
                    if (result == DialogResult.No)
                    {
                        return;
                    }
                    ProcessEditForm.SaveProject(model);
                    this.ShowDialog("保存成功", kana + "を保存しました。");
                    switch (type)
                    {
                    case ExecDataType.PROJECT:
                        ShowEditProject(this, 0, MacroStartType.EDITORSTART);
                        break;

                    case ExecDataType.MACRO:
                        ShowEditProject(this, 1, MacroStartType.EDITORSTART);
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                throw Program.ThrowException(ex);
            }
        }