public void Create_KeyValueCancelEventArgs <T, U>(T key, U value, bool cancel) { var args = KeyValueEventArgs.Create(key, value, cancel); Assert.That(args.Key, Is.EqualTo(key)); Assert.That(args.Value, Is.EqualTo(value)); }
/* ----------------------------------------------------------------- */ /// /// OnDragDrop /// /// <summary> /// ファイルがドロップされた時に実行されます。 /// </summary> /// /* ----------------------------------------------------------------- */ protected override void OnDragDrop(DragEventArgs e) { base.OnDragDrop(e); var files = e.Data.GetData(DataFormats.FileDrop, false) as string[]; if (files == null) { return; } foreach (var path in files) { var args = KeyValueEventArgs.Create(0, path); Aggregator.Get().Import.Publish(args); } }
/* ----------------------------------------------------------------- */ /// /// InitializeEvents /// /// <summary> /// 項目のイベントを初期化します。 /// </summary> /// /* ----------------------------------------------------------------- */ private void InitializeEvents() { NewPageMenu.Click += (s, e) => Aggregator.Get()?.NewPage.Publish(EventAggregator.Selected); ImportMenu.Click += (s, e) => Aggregator.Get()?.Import.Publish(KeyValueEventArgs.Create(-1, "")); ExportMenu.Click += (s, e) => Aggregator.Get()?.Export.Publish(EventAggregator.Selected); DuplicateMenu.Click += (s, e) => Aggregator.Get()?.Duplicate.Publish(EventAggregator.Selected); RemoveMenu.Click += (s, e) => Aggregator.Get()?.Remove.Publish(EventAggregator.Selected); UpMenu.Click += (s, e) => Aggregator.Get()?.Move.Publish(ValueEventArgs.Create(-1)); DownMenu.Click += (s, e) => Aggregator.Get()?.Move.Publish(ValueEventArgs.Create(1)); PropertyMenu.Click += (s, e) => Aggregator.Get()?.Property.Publish(EventAggregator.Selected); }
/* ----------------------------------------------------------------- */ /// /// Create /// /// <summary> /// Creates the item associated with the specified key. /// </summary> /// /* ----------------------------------------------------------------- */ private void Create(TKey src) { if (_created.ContainsKey(src) || !_creating.TryAdd(src, 0)) { return; } try { var dest = _creator(src); if (_creating.ContainsKey(src) && _created.TryAdd(src, dest)) { OnCreated(KeyValueEventArgs.Create(src, dest)); } else { _disposer?.Invoke(src, dest); } } catch (Exception err) { OnFailed(KeyValueEventArgs.Create(src, err)); } finally { _creating.TryRemove(src, out var _); } }
/* ----------------------------------------------------------------- */ /// /// InitializeTextMenu /// /// <summary> /// コンテキストメニューを初期化します。 /// </summary> /// /* ----------------------------------------------------------------- */ private void InitializeTextMenu() { var menu = TextMenu; if (menu == null) { return; } Settings.Current.PropertyChanged += Settings_CurrentChanged; var enabled = View.GetSelectedTextLength() > 0; menu.SearchMenu.Click += (s, e) => Events.Search.Publish(KeyValueEventArgs.Create(0, View.GetSelectedText())); menu.GoogleMenu.Enabled = enabled; menu.GoogleMenu.Click += (s, e) => Events.Google.Publish(ValueEventArgs.Create(View.GetSelectedText())); menu.UndoMenu.Enabled = View.CanUndo; menu.UndoMenu.Click += (s, e) => Events.Undo.Publish(); menu.RedoMenu.Enabled = View.CanRedo; menu.RedoMenu.Click += (s, e) => Events.Redo.Publish(); menu.CutMenu.Enabled = enabled; menu.CutMenu.Click += (s, e) => View.Cut(); menu.CopyMenu.Enabled = enabled; menu.CopyMenu.Click += (s, e) => View.Copy(); menu.PasteMenu.Enabled = View.CanPaste; menu.PasteMenu.Click += (s, e) => View.Paste(); menu.SelectAllMenu.Click += (s, e) => View.SelectAll(); }
/* ----------------------------------------------------------------- */ /// /// RaiseUriClick /// /// <summary> /// UriClick イベントを発生させます。 /// </summary> /// /* ----------------------------------------------------------------- */ protected void RaiseUriClick() => OnUriClick(KeyValueEventArgs.Create(Uri, Message));
/* ----------------------------------------------------------------- */ /// /// RaiseSearch /// /// <summary> /// 検索のためのイベントを発生させます。 /// </summary> /// /* ----------------------------------------------------------------- */ private void RaiseSearch() { var index = TextControlIsActive() ? 0 : 1; Aggregator.Get().Search.Publish(KeyValueEventArgs.Create(index, SelectedText)); }
/* ----------------------------------------------------------------- */ /// /// RunShortcutKeysWithCtrl /// /// <summary> /// Ctrl+Keys のショートカットキーを処理します。 /// </summary> /// /* ----------------------------------------------------------------- */ private void RunShortcutKeysWithCtrl(KeyEventArgs e) { var result = true; switch (e.KeyCode) { case Keys.C: if (e.Shift) { Aggregator.Get().Duplicate.Publish(EventAggregator.Selected); } else { result = false; } break; case Keys.D: Aggregator.Get().Remove.Publish(EventAggregator.Selected); break; case Keys.E: Aggregator.Get().Export.Publish(EventAggregator.Selected); break; case Keys.F: RaiseSearch(); break; case Keys.G: Aggregator.Get().Google.Publish(ValueEventArgs.Create(SelectedText)); break; case Keys.H: SwitchMenu(); break; case Keys.J: case Keys.Down: Aggregator.Get().Move.Publish(ValueEventArgs.Create(1)); break; case Keys.K: case Keys.Up: Aggregator.Get().Move.Publish(ValueEventArgs.Create(-1)); break; case Keys.N: Aggregator.Get().NewPage.Publish(e.Shift ? EventAggregator.Selected : EventAggregator.Top ); break; case Keys.O: Aggregator.Get().Import.Publish(KeyValueEventArgs.Create(0, "")); break; case Keys.P: Aggregator.Get().Print.Publish(); break; case Keys.R: if (e.Shift) { Aggregator.Get().TagSettings.Publish(); } else { Aggregator.Get().Property.Publish(EventAggregator.Selected); } break; case Keys.S: if (e.Shift) { Aggregator.Get().Export.Publish(EventAggregator.Selected); } else { Aggregator.Get().Save.Publish(); } break; case Keys.T: Aggregator.Get().Settings.Publish(); break; case Keys.U: Aggregator.Get().TagSettings.Publish(); break; default: result = false; break; } e.Handled = result; }
/* ----------------------------------------------------------------- */ /// /// Save /// /// <summary> /// ユーザ設定をレジストリへ保存します。 /// </summary> /// /* ----------------------------------------------------------------- */ public void Save() => OnSaved(KeyValueEventArgs.Create(Type, Path));