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