コード例 #1
0
        /// <summary>
        /// Registers custom events to be triggered when something happens in Dynamo.
        /// </summary>
        /// <param name="dynamoReadyParams">Reference to the Dynamo extension ready parameters.</param>
        public static void RegisterEventHandlers(ViewLoadedParams dynamoReadyParams, RapidFire rapidFire)
        {
            DynamoView view = dynamoReadyParams.DynamoWindow as DynamoView;

            view.KeyDown += rapidFire.View_KeyDown;
            view.KeyUp   += rapidFire.View_KeyUp;

            dynamoReadyParams.CurrentWorkspaceChanged           += OnCurrentWorkspaceChanged;
            dynamoReadyParams.CurrentWorkspaceModel.NodeAdded   += OnNodeAdded;
            dynamoReadyParams.CurrentWorkspaceModel.NodeRemoved += OnNodeRemoved;

            // keep a reference to the parameters supplied at startup
            // so we can unregister our event handlers later
            DynamoReadyParams = dynamoReadyParams;
            RapidFireInstance = rapidFire;
        }
コード例 #2
0
        public void Loaded(ViewLoadedParams p)
        {
            // initiaite a RapidFire instance that needs a DynamoView so it can add nodes
            RF = new RapidFire(p.DynamoWindow as DynamoView);

            // add a Menu Item for editing the Keyboard Shortcuts
            var rfMenuItem = new MenuItem {
                Header = "Rapid Fire"
            };

            MenuItem shortcutsMenuItem = new MenuItem();

            shortcutsMenuItem.Header = "Keyboard Shortcuts";
            shortcutsMenuItem.Click += (o, e) =>
            {
                //TODO Create instance of the RapidFireViewModel
                RapidFireVM vm = new RapidFireVM(p.DynamoWindow.DataContext as DynamoViewModel, RF);

                //TODO Create instance of the View
                RapidFireView view = new RapidFireView(vm);

                //TODO Show it from the menu click
                var result = view.ShowDialog();

                //TODO save the shortcuts if desired
                if (result.HasValue && result.Value)
                {
                    RF.SaveShortCuts(vm.ShortcutModels);
                }
            };

            rfMenuItem.Items.Add(shortcutsMenuItem);
            p.dynamoMenu.Items.Insert(p.dynamoMenu.Items.Count - 1, rfMenuItem);

            // Register all of the even handlers
            Events.RegisterEventHandlers(p, RF);
        }