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