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));
        }
Esempio n. 2
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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);
            }
        }
Esempio n. 3
0
 /* ----------------------------------------------------------------- */
 ///
 /// 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);
 }
Esempio n. 4
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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 _); }
        }
Esempio n. 5
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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();
        }
Esempio n. 6
0
 /* ----------------------------------------------------------------- */
 ///
 /// RaiseUriClick
 ///
 /// <summary>
 /// UriClick イベントを発生させます。
 /// </summary>
 ///
 /* ----------------------------------------------------------------- */
 protected void RaiseUriClick()
 => OnUriClick(KeyValueEventArgs.Create(Uri, Message));
Esempio n. 7
0
        /* ----------------------------------------------------------------- */
        ///
        /// RaiseSearch
        ///
        /// <summary>
        /// 検索のためのイベントを発生させます。
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private void RaiseSearch()
        {
            var index = TextControlIsActive() ? 0 : 1;

            Aggregator.Get().Search.Publish(KeyValueEventArgs.Create(index, SelectedText));
        }
Esempio n. 8
0
        /* ----------------------------------------------------------------- */
        ///
        /// 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;
        }
Esempio n. 9
0
 /* ----------------------------------------------------------------- */
 ///
 /// Save
 ///
 /// <summary>
 /// ユーザ設定をレジストリへ保存します。
 /// </summary>
 ///
 /* ----------------------------------------------------------------- */
 public void Save()
 => OnSaved(KeyValueEventArgs.Create(Type, Path));