/// <summary> /// スクリプトのインポートを開始する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void BeginImportScript(KeyValueMap parameters) { if (String.IsNullOrEmpty(Project.ScriptFolderPath)) { ProvideMessage("Script.Import.ScriptPath.Blank.Error"); return; } else if (String.IsNullOrEmpty(Project.ScriptFileName)) { ProvideMessage("Script.Import.ScriptFileName.Blank.Error"); return; } else if (!Project.ExistsScriptFile()) { ProvideMessage("Script.Import.ScriptFileName.NotFound.Error"); return; } if (Project.ScriptDefinitions.Count > 0) { if (ProvideMessage("Script.Import.Confirm") != DialogResult.Yes) { return; } } ImportScript(); }
public void GivenCreateKeyValueMap_WhenEnvironmentSpecified_CreatesAKeyValueMapForTheSpecifiedEnvironment() { // Arrange // TODO: move this setup into the fixture Uri baseUri = new Uri("https://api.enterprise.apigee.com"); var fixture = new ApigeeAliasesFixture(this.output); ApigeeAliases.ApigeeProxyManagementService = fixture.ApigeeProxyManagementService; fixture.FakeResponseHandler.AddFakeResponse( new Uri(baseUri, $"v1/organizations/org/environments/myenvironment/keyvaluemaps"), HttpStatusCode.Created, ResourceHelper.GetResourceAsString("CreateKeyValueMapForEnvironmentResponse.json")); var keyValueMap = new KeyValueMap { Name = "myMap", Encrypted = false, Entry = new[] { new KeyValueMapEntry { Name = "myKey", Value = "myValue" } } }; var settings = new CreateKeyValueMapSettings { Environment = "myenvironment" }; ApigeeAliases.CreateKeyValueMap(fixture.ContextMock.Object, "org", keyValueMap, settings); }
/// <summary> /// データベースプロパティ変更時処理。 /// </summary> /// <param name="parameters">パラメータ。</param> private void ChangeDatabaseProperty(KeyValueMap parameters) { DatabaseDefinition definition = parameters["Definition"]; String name = parameters["Name"]; dynamic value = parameters["Value"]; dynamic oldValue = parameters["oldValue"]; var validator = new DatabaseDefinitionValidator(Message, Project, definition); ProvidedMessage result; if (value != null) value = ((string)value).Trim(); switch (name) { case "Name": result = validator.ValidateName(value); if (result != null) { InvokeMessage(result); return; } definition.Name = value; break; default: throw new NotImplementedException(); } if (!SaveProject()) return; RefreshDatabaseNode(definition); }
/// <summary> /// 定義エディタをコントローラへ登録し、開く。 /// </summary> /// <param name="editorType">登録する定義エディタの型。</param> /// <param name="definition">対象定義のインスタンス。</param> /// <param name="parameters">固有パラメータ。</param> private void RegisterDefinitionEditor( Type editorType, dynamic definition = null, KeyValueMap parameters = null) { DefinitionEditorTab tab = null; tab = FindDefinitionEditor(definition); if (tab != null) { tab.Activate(); return; } tab = (DefinitionEditorTab)editorType.InvokeMember( null, BindingFlags.CreateInstance, null, null, null ); tab.Definition = definition; tab.Parameters = parameters; tab.FormClosed += DefinitionEditor_FormClosed; tab.Apply += DefinitionEditor_Apply; MainForm.ShowContent(tab, DockState.Document); }
/// <summary> /// 表示中コンテントを閉じる。 /// </summary> /// <param name="parameters">パラメータ。</param> private void CloseContent(KeyValueMap parameters) { var tab = MainForm.ActivateContent as IEditorTab; if (tab == null) return; tab.Close(force: false); }
/// <summary> /// コンストラクタ。 /// </summary> /// <param name="item">メッセージ定義のKeyValueMap。</param> /// <param name="arguments">メッセージパラメータ。</param> public ProvidedMessage( KeyValueMap item, dynamic[] arguments) { _Id = item["Id"]; _MessageLevel = item["Level"]; Message = item["Message"]; Arguments = arguments; }
/// <summary> /// プロジェクトを閉じる処理を開始する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void BeginCloseProject(KeyValueMap parameters) { parameters["Result"] = false; if (!CloseProject()) return; Console.Clear(); OnChangeProject(); if (!(parameters["OnQuit"] ?? false)) { Settings.Default.LastOpenProject = null; } parameters["Result"] = true; }
/// <summary> /// アプリケーションコマンドを発行する。 /// </summary> /// <param name="command">アプリケーションコマンドのKeyValueMap。</param> protected CommonEventArgs InvokeCommand(KeyValueMap command) { var e = new CommonEventArgs() { Parameter = new KeyValueMap() }; foreach (var commandParameter in command) { e.Parameter[commandParameter.Key] = commandParameter.Value; } OnCommand(e); return e; }
/// <summary> /// コンストラクタ。 /// </summary> /// <param name="item">メッセージ定義のKeyValueMap。</param> /// <param name="arguments">メッセージパラメータ。</param> internal ProvidedDialogMessage( KeyValueMap item, dynamic[] arguments) : base(item, arguments) { switch (MessageLevel) { case MessageLevel.Information: if (Confirm == MessageBoxButtons.OK) { _Icon = MessageBoxIcon.Information; } else { _Icon = MessageBoxIcon.Question; } break; case MessageLevel.Warning: _Icon = MessageBoxIcon.Warning; break; case MessageLevel.Error: case MessageLevel.Fatal: _Icon = MessageBoxIcon.Error; break; } _Confirm = item["Confirm"]; switch (Confirm) { case MessageBoxButtons.OKCancel: case MessageBoxButtons.YesNo: _DefaultButton = MessageBoxDefaultButton.Button2; break; case MessageBoxButtons.YesNoCancel: _DefaultButton = MessageBoxDefaultButton.Button3; break; default: _DefaultButton = MessageBoxDefaultButton.Button1; break; } }
/// <summary> /// データベース定義のリネーム可否チェックを行う。 /// </summary> /// <param name="parameters">パラメータ。</param> private void CheckDatabaseDefinitionRenamable(KeyValueMap parameters) { parameters["Result"] = false; DatabaseDefinition definition = parameters["Definition"]; // 該当データベースを参照しているデータベースエディタを開いている場合はエラー var edittingTab = FindEdittingDatabaseEditors(definition).FirstOrDefault(); if (edittingTab != null) { edittingTab.Activate(); ProvideMessage("Default.Editor.Using.Relation.Error", "データベース", "データベース定義", "名前変更"); return; } parameters["Result"] = true; }
/// <summary> /// アプリケーションコマンドを発行する。 /// </summary> /// <param name="commandName">コマンド名。</param> /// <param name="parameters">パラメータのKeyValueMap。</param> protected CommonEventArgs InvokeCommand( string commandName, KeyValueMap parameters = null) { var command = new KeyValueMap() { {"CommandName", commandName} }; if (parameters != null) { foreach (var parameter in parameters) { command[parameter.Key] = parameter.Value; } } return InvokeCommand(command); }
/// <summary> /// XMLをロードする。 /// </summary> /// <param name="xml">メッセージリソースのXML。</param> public void Load(string xml) { if (Items == null) { Items = new KeyValueMap(); } XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); // ルートノード検索 var rootNode = doc.SelectSingleNode("/MessageResource"); if (rootNode == null) { throw new FormatException("ルートノードが見つかりません。"); } LoadRecursive("", rootNode.ChildNodes); }
private async Task <string> ReceiveString(string resource, KeyValueMap parameters = null) { var urlBuilder = new StringBuilder($"https://www.tistory.com/apis/{resource}?"); urlBuilder.Append($"access_token={Token}"); urlBuilder.Append("&output=json"); if (parameters != null) { foreach (var kv in parameters) { urlBuilder.Append($"&{kv.Key}={kv.Value}"); } } var req = WebRequest.CreateHttp(urlBuilder.ToString()); req.Method = "GET"; req.Timeout = 30 * 1000; try { using (var res = await req.GetResponseAsync()) { using (var sr = new StreamReader(res.GetResponseStream())) { return(await sr.ReadToEndAsync()); } } } catch (WebException e) { using (var res = e.Response) { using (var sr = new StreamReader(res.GetResponseStream())) { return(await sr.ReadToEndAsync()); } } } }
private async Task <JToken> ReceiveJToken(string resource, KeyValueMap parameters = null) { var json = await ReceiveJson(resource, parameters); var tistory = json["tistory"]; var status = tistory.Value <string>("status"); if (status != "200") { var error = tistory.Value <string>("error_message"); throw new Exception(string.Format("({0}) {1}", status, error)); } var item = tistory["item"]; if (item == null) { throw new InvalidDataException("API 응답이 올바르지 않습니다."); } return(item); }
/// <summary> /// アプリケーションコマンドを発行する。 /// </summary> /// <param name="commandName">コマンド名。</param> /// <param name="parameters">パラメータのKeyValueMap。</param> private void InvokeCommand( string commandName, KeyValueMap parameters = null) { var e = new CommonEventArgs() { Parameter = new KeyValueMap() { {"CommandName", commandName} } }; if (parameters != null) { foreach (var parameter in parameters) { e.Parameter[parameter.Key] = parameter.Value; } } Command(this, e); }
/// <summary> /// スクリプトのエクスポートを開始する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void BeginExportScript(KeyValueMap parameters) { if (String.IsNullOrEmpty(Project.ScriptFolderPath)) { ProvideMessage("Script.Export.ScriptPath.Blank.Error"); return; } else if (String.IsNullOrEmpty(Project.ScriptFileName)) { ProvideMessage("Script.Export.ScriptFileName.Blank.Error"); return; } else if (Project.ScriptDefinitions.Count == 0) { ProvideMessage("Script.Export.ScriptDefinition.Empty.Error"); return; } ExportScript(); }
public void AddValue <T>(string name, T value) { if (value == null) { return; } Serializable serializableValue = value as Serializable; if (null != serializableValue) { serializableValue.Serialize(AddChild(name)); } else { if (KeyValueMap.ContainsKey(name)) { throw new System.Exception("A value has already been associated with name."); } KeyValueMap.Add(name, new Value(value, typeof(T))); } }
/// <summary> /// オブジェクト定義情報をリフレッシュする。 /// </summary> /// <param name="parameters">パラメータ。</param> private void RefreshObjectDefinition(KeyValueMap parameters) { RefreshObjectDefinition(); }
/// <summary> /// スクリプトを開く。 /// </summary> /// <param name="parameters">パラメータ。</param> private void OpenScript(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; RegisterScriptEditor(definition); }
/// <summary> /// スクリプトのインポートを行う。 /// </summary> /// <param name="parameter">パラメータ。</param> private void ImportScriptDefinition(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; using (var dialog = new OpenFileDialog()) { dialog.Filter = ApplicationConstants.ScriptFileFilterString; if (dialog.ShowDialog(MainForm) != DialogResult.OK) return; ScriptDefinition newDefinition; string fileName = Path.GetFileName(dialog.FileName); string newPath = Project.GetScriptFullPath(fileName); int i = 2; while (File.Exists(newPath)) { string newFileName = String.Format( "{0}_{1}.rb", Path.GetFileNameWithoutExtension(fileName), i++ ); newPath = Project.GetScriptFullPath(newFileName); } try { File.Copy(dialog.FileName, newPath); newDefinition = new ScriptDefinition() { FileName = newPath, DisplayName = Path.GetFileNameWithoutExtension(dialog.FileName), Guid = Project.NewScriptGuid() }; if (definition == null) { Project.ScriptDefinitions.Add(newDefinition); RefreshScriptNode(newDefinition); } else { definition.Children.Add(newDefinition); RefreshScriptNode(definition); } } catch (Exception ex) { ProvideMessage("Default.Exception.Error", "スクリプトのコピー", ex.Message); return; } RefreshSelectedNodeProperty(); if (!SaveProject()) return; RefreshObjectDefinition(); } }
/// <summary> /// スクリプト定義を削除する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void DeleteScriptDefinition(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; // 該当クラスを参照しているデータベースエディタを開いている場合はエラー var edittingTab = FindEdittingScriptEditors(definition).FirstOrDefault(); if (edittingTab != null) { edittingTab.Activate(); ProvideMessage("Default.Editor.Using.Error", "スクリプト", "削除"); return; } if (ProvideMessage("Default.Delete.Confirm", "スクリプト") != DialogResult.Yes) return; var parent = Project.FindParentScriptDefinition(definition); if (parent == null) { Project.ScriptDefinitions.Remove(definition); } else { parent.Children.Remove(definition); } // スクリプトファイルを削除する再帰処理 Func<ScriptDefinition, bool> deleteScriptFile = (scriptDefinition) => { if (scriptDefinition.IsFolder) return true; try { var scriptFullPath = Project.GetScriptFullPath(scriptDefinition.FileName); if (File.Exists(scriptFullPath)) { File.Delete(scriptFullPath); } return true; } catch (Exception ex) { ProvideMessage("Default.Exception.Error", "スクリプトファイルの削除", ex.Message); return false; } }; Func<ScriptDefinition, bool> deleteScriptFileRecursive = null; deleteScriptFileRecursive = (scriptDefinition) => { if (!deleteScriptFile(scriptDefinition)) return false; foreach (var child in scriptDefinition.Children) { if (!deleteScriptFileRecursive(child)) return false; } return true; }; deleteScriptFileRecursive(definition); RefreshScriptNodes(); RefreshSelectedNodeProperty(); if (!SaveProject()) return; RefreshObjectDefinition(); }
/// <summary> /// スクリプトフォルダを作成する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void CreateScriptFolder(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; var newDefinition = new ScriptDefinition() { DisplayName = ApplicationConstants.DefaultScriptFolderName, Guid = Project.NewScriptGuid() }; if (definition == null) { Project.ScriptDefinitions.Add(newDefinition); RefreshScriptNode(newDefinition); } else { definition.Children.Add(newDefinition); RefreshScriptNode(definition); } if (!SaveProject()) return; }
private async Task <JObject> ReceiveJson(string resource, KeyValueMap parameters = null) { return(JObject.Parse(await ReceiveString(resource, parameters))); }
/// <summary> /// スクリプト定義のリネーム可否チェックを行う。 /// </summary> /// <param name="parameters">パラメータ。</param> private void CheckScriptDefinitionRenamable(KeyValueMap parameters) { parameters["Result"] = false; ScriptDefinition definition = parameters["Definition"]; parameters["Result"] = true; }
public async Task <CreateKeyValueMapResult> CreateKeyValueMap(ICakeContext ctx, string orgName, KeyValueMap keyValueMap, IEnvironmentSettings settings) { ctx.Log.Information("Creating a KeyValueMap in Apigee"); var url = ConstructKeyValueMapUrl(orgName, settings); using (HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, url)) { if (!string.IsNullOrEmpty(settings?.Credentials?.Username)) { AddAuthorization(settings.Credentials, message); } message.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var json = JsonConvert.SerializeObject(keyValueMap, Formatting.None, ApigeeJsonSettings); message.Content = new StringContent(json, Encoding.UTF8, "application/json"); return(await SendMessage <CreateKeyValueMapResult>(ctx, message, settings)); } }
/// <summary> /// スクリプト設定ダイアログを開く。 /// </summary> /// <param name="parameters">パラメータ。</param> private void ShowScriptOptionDialog(KeyValueMap parameters) { using (var dialog = new ScriptSettingDialog()) { dialog.Project = Project; dialog.Command += CommandHandler; dialog.FormClosed += ScriptSettingDialog_FormClosed; if (dialog.ShowDialog() != DialogResult.OK) return; RefreshScriptNodes(); if (!SaveProject()) return; RefreshObjectDefinition(); } }
/// <summary> /// スクリプトノードの名称変更を行う。 /// </summary> /// <param name="parameters">パラメータ。</param> private void RenameScriptNode(KeyValueMap parameters) { parameters["Result"] = false; ScriptTreeNode node = parameters["Node"]; string label = parameters["Label"]; if (label == null) return; label = label.TrimEnd(); ScriptDefinition definition = (ScriptDefinition)node.Tag; string oldName = definition.DisplayName; if (label == oldName) return; definition.DisplayName = label; RenameScriptDefinition( new KeyValueMap() { {"Definition", definition}, {"OldName", oldName} } ); if (!SaveProject()) return; RefreshObjectDefinition(); parameters["Result"] = true; }
/// <summary> /// スクリプトプロパティ変更時処理。 /// </summary> /// <param name="parameters">パラメータ。</param> private void ChangeScriptProperty(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; String name = parameters["Name"]; dynamic value = parameters["Value"]; dynamic oldValue = parameters["oldValue"]; var validator = new ScriptDefinitionValidator(Message, Project, definition); ProvidedMessage result; if (value != null) value = ((string)value).Trim(); switch (name) { case "Name": definition.DisplayName = value; break; case "SourceFile": result = validator.ValidateFileName(value); if (result != null) { InvokeMessage(result); return; } try { File.Move(Project.GetScriptFullPath(definition.FileName), Project.GetScriptFullPath(value)); } catch (Exception ex) { ProvideMessage("Default.Exception.Error", "スクリプトファイルのリネーム", ex.Message); return; } definition.FileName = value; break; default: throw new NotImplementedException(); } if (!SaveProject()) return; RefreshScriptNode(definition); }
/// <summary> /// スクリプト定義の名称変更を行う。 /// </summary> /// <param name="parameters">パラメータ。</param> private void RenameScriptDefinition(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; string oldName = parameters["OldName"]; // エディタが開かれている場合はエディタへ反映 var tab = FindScriptEditor(definition); if (tab != null) { tab.RenameOuter(definition.DisplayName, oldName); } RefreshSelectedNodeProperty(); }
/// <summary> /// スクリプト定義を作成する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void CreateScriptDefinition(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; using (var dialog = new SaveFileDialog()) { dialog.InitialDirectory = Project.ScriptFolderFullPath; dialog.Filter = ApplicationConstants.ScriptFileFilterString; dialog.OverwritePrompt = false; if (dialog.ShowDialog(MainForm) != DialogResult.OK) return; var validator = new ScriptDefinitionValidator(Message, Project, definition); ProvidedMessage result; string newPath = null; result = validator.ValidateFileFullPath(dialog.FileName, ref newPath); if (result != null) { InvokeMessage(result); return; } result = validator.ValidateFileName(newPath); if (result != null) { InvokeMessage(result); return; } var newDefinition = new ScriptDefinition() { FileName = newPath, DisplayName = ApplicationConstants.DefaultScriptName, Guid = Project.NewScriptGuid() }; if (definition == null) { Project.ScriptDefinitions.Add(newDefinition); RefreshScriptNode(newDefinition); } else { definition.Children.Add(newDefinition); RefreshScriptNode(definition); } if (!SaveProject()) return; if (!File.Exists(Project.GetScriptFullPath(newDefinition.FileName))) { try { using (var fs = File.Create(Project.GetScriptFullPath(newDefinition.FileName))) { } } catch (Exception ex) { ProvideMessage("Default.Exception.Error", "スクリプトファイルの作成", ex.Message); return; } } RefreshObjectDefinition(); RegisterScriptEditor(newDefinition); } }
/// <summary> /// スクリプトファイル名を変更する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void RenameScriptFileName(KeyValueMap parameters) { ScriptDefinition definition = parameters["Definition"]; using (var dialog = new SaveFileDialog()) { dialog.InitialDirectory = Project.ScriptFolderFullPath; dialog.FileName = definition.FileName; dialog.Filter = ApplicationConstants.ScriptFileFilterString; dialog.OverwritePrompt = false; dialog.Title = "ファイル名の変更"; if (dialog.ShowDialog(MainForm) != DialogResult.OK) return; var validator = new ScriptDefinitionValidator(Message, Project, definition); ProvidedMessage result; string newPath = null; result = validator.ValidateFileFullPath(dialog.FileName, ref newPath); if (result != null) { InvokeMessage(result); return; } if (definition.FileName.ToLower() == newPath.ToLower()) return; result = validator.ValidateFileName(newPath); if (result != null) { InvokeMessage(result); return; } try { File.Move(Project.GetScriptFullPath(definition.FileName), Project.GetScriptFullPath(newPath)); } catch (Exception ex) { ProvideMessage("Default.Exception.Error", "スクリプトファイルのリネーム", ex.Message); return; } definition.FileName = newPath; RefreshSelectedNodeProperty(); if (!SaveProject()) return; RefreshObjectDefinition(); } }
public T GetValue <T>(string name, T defaultValue) { if (typeof(Serializable).IsAssignableFrom(typeof(T))) { SerializeTable table; if (TryGetChild(name, out table)) { Serializable v3 = Activator.CreateInstance <T>() as Serializable; v3.Deserialize(table); return((T)v3); } else { // Debug.LogWarning(string.Format("Can't find key value(serializable): {0}.{1}", this.Name, name)); } return(defaultValue); } Value value; if (!KeyValueMap.TryGetValue(name, out value)) { // Debug.LogWarning(string.Format("Can't find key value: {0}.{1}", this.Name, name)); return(defaultValue); } if (value.type == typeof(string)) { T convertedValue; if (StringConverter.TryConvert <T>((string)value.obj, out convertedValue)) { return(convertedValue); } } //if (typeof(System.Enum).IsAssignableFrom(typeof(T))) //{ // int convertedValue; // StringConverter.TryConvert<int>((string)value.obj, out convertedValue); // return (T)System.Enum.ToObject(typeof(T), convertedValue); //} object numberic = value.obj; if (value.obj is System.Single) { numberic = System.Convert.ToSingle(value.obj); } if (value.obj is System.Double) { numberic = System.Convert.ToDouble(value.obj); } if (value.obj is System.Int16 || value.obj is System.UInt16 || value.obj is System.Int32 || value.obj is System.UInt32) { numberic = System.Convert.ToInt32(value.obj); } if (value.obj is System.Boolean) { numberic = System.Convert.ToBoolean(value.obj); } if (value.obj is System.Int64 || value.obj is System.UInt64) { numberic = System.Convert.ToInt64(value.obj); } return((T)numberic); }
/// <summary> /// クラスリンク変更ダイアログを表示する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void ShowClassLinkSettingDialog(KeyValueMap parameters) { using (var dialog = new ClassLinkSettingDialog()) { dialog.Project = Project; dialog.Definition = parameters["Definition"]; dialog.Command += CommandHandler; dialog.FormClosed += ClassLinkSettingDialog_FormClosed; if (dialog.ShowDialog(MainForm) != DialogResult.OK) return; RefreshObjectDefinition(); RefreshSelectedNodeProperty(); } }
/// <summary> /// コンテクストメニューを追加する。 /// </summary> /// <param name="menu">コンテクストメニューのインスタンス。</param> public override void SetContextMenu(ContextMenuStrip menu) { base.SetContextMenu(menu); var definition = (ClassDefinition)Tag; var parameters = new KeyValueMap() { {"Definition", this.Tag} }; menu.Items.Add( CreateContextMenuItem( "開く(&O)", "OpenClassDefinition", parameters, bold: true ) ); menu.Items.Add(new ToolStripSeparator()); menu.Items.Add( CreateContextMenuItem( "定義のエクスポート(&E)", "ExportClassDefinition", parameters ) ); menu.Items.Add( CreateContextMenuItem( "スクリプトのエクスポート(&S)", "ExportClassScript", parameters ) ); menu.Items.Add(new ToolStripSeparator()); menu.Items.Add( CreateContextMenuItem( "削除(&D)", "DeleteClassDefinition", parameters, shortcutKeys: Keys.Delete ) ); menu.Items.Add( CreateContextMenuItem( "名前の変更(&M)", "BeginRenameNode", new KeyValueMap() { {"Node", this} } ) ); menu.Items.Add(new ToolStripSeparator()); menu.Items.Add(CreateContextMenuItem( "プロパティ", "ShowProperty", parameters: new KeyValueMap() { {"Target", Tag}, }, shortcutKeys: Keys.Alt | Keys.Enter) ); }
/// <summary> /// メッセージを新規にロードする。 /// </summary> /// <param name="parameters">パラメータ。</param> private void LoadMessage(KeyValueMap parameters) { Message.Load(parameters["Xml"]); }
private async Task <T> ReceiveObject <T>(string resource, KeyValueMap parameters = null) { return((await ReceiveJToken(resource, parameters)).ToObject <T>()); }
/// <summary> /// コンテクストメニューを追加する。 /// </summary> /// <param name="menu">コンテクストメニューのインスタンス。</param> public override void SetContextMenu(ContextMenuStrip menu) { base.SetContextMenu(menu); var definition = (ScriptDefinition)Tag; var parameters = new KeyValueMap() { {"Definition", definition} }; if (!definition.IsFolder) { menu.Items.Add( CreateContextMenuItem( "開く(&O)", "OpenScript", parameters, bold:true ) ); menu.Items.Add(new ToolStripSeparator()); } else { var addItem = new ToolStripMenuItem() { Text = "追加(&D)" }; addItem.DropDownItems.Add(CreateContextMenuItem("新しいスクリプトフォルダ", "CreateScriptFolder", parameters)); addItem.DropDownItems.Add(CreateContextMenuItem("新しいスクリプト", "CreateScriptDefinition", parameters)); addItem.DropDownItems.Add(CreateContextMenuItem("既存のスクリプト", "ImportScriptDefinition", parameters)); menu.Items.Add(addItem); menu.Items.Add(new ToolStripSeparator()); } menu.Items.Add( CreateContextMenuItem( "削除(&D)", "DeleteScriptDefinition", parameters, shortcutKeys:Keys.Delete ) ); menu.Items.Add( CreateContextMenuItem( "名前の変更(&M)", "BeginRenameNode", new KeyValueMap() { {"Definition", definition}, {"Node", this} } ) ); if (!definition.IsFolder) { menu.Items.Add( CreateContextMenuItem( "ファイル名の変更(&R)", "RenameScriptFileName", parameters ) ); menu.Items.Add(new ToolStripSeparator()); menu.Items.Add( CreateContextMenuItem( "クラス定義とのリンクを変更する(&L)", "ShowClassLinkSettingDialog", parameters: parameters ) ); } menu.Items.Add(new ToolStripSeparator()); menu.Items.Add(CreateContextMenuItem( "プロパティ", "ShowProperty", parameters: new KeyValueMap() { {"Target", Tag}, }, shortcutKeys: Keys.Alt | Keys.Enter) ); }
/// <summary> /// メッセージプロバイダを取得する。 /// </summary> /// <param name="parameters">パラメータ。</param> private void GetMessageProvider(KeyValueMap parameters) { parameters["MessageProvider"] = Message; }