/// <summary> /// Creates and add the library view to the WPF visual tree /// </summary> /// <returns>LibraryView control</returns> internal ViewportView AddViewportToExtensionsPanel(IViewExtension ext, ViewLoadedParams p) { var model = new ViewportWindowViewModel(this.viewLoadedParams, this.address); var view = new ViewportView(model); var browser = view.Browser; this.browser = browser; p.AddToExtensionsSideBar(ext, view); browser.RegisterAsyncJsObject("controller", this); view.Loaded += OnViewportViewLoaded; browser.SizeChanged += Browser_SizeChanged; browser.LoadError += Browser_LoadError; return(view); }
/// <summary> /// Call this method to create a new node in Dynamo canvas. /// </summary> /// <param name="nodeName">Node creation name</param> /* * public void CreateNode(string nodeName) * { * dynamoWindow.Dispatcher.BeginInvoke(new Action(() => * { * //if the node we're trying to create is a customNode, lets disable the eventObserver. * // this will stop the libraryController from refreshing the libraryView on custom node creation. * var resultGuid = Guid.Empty; * if (Guid.TryParse(nodeName, out resultGuid)) * { * this.disableObserver = true; * } * //Create the node of given item name * var cmd = new DynamoModel.CreateNodeCommand(Guid.NewGuid().ToString(), nodeName, -1, -1, true, false); * commandExecutive.ExecuteCommand(cmd, Guid.NewGuid().ToString(), ViewExtension.ExtensionName); * LogEventsToInstrumentation(CreateNodeInstrumentationString, nodeName); * * this.disableObserver = false; * })); * } */ /// <summary> /// Creates and add the library view to the WPF visual tree /// </summary> /// <returns>LibraryView control</returns> internal ViewportView AddViewportView() { var libraryViewColumn = dynamoWindow.FindName("LeftExtensionsViewColumn") as ColumnDefinition; libraryViewColumn.MaxWidth = dynamoWindow.ActualWidth - 50; // TODO - cleanup var model = new ViewportWindowViewModel(this.viewLoadedParams, this.address); var view = new ViewportView(model); // This crashes var browser = view.Browser; this.browser = browser; var sidebarGrid = dynamoWindow.FindName("sidebarGrid") as Grid; sidebarGrid.Children.Clear(); // Clear library contents sidebarGrid.Children.Add(view); browser.RegisterAsyncJsObject("controller", this); view.Loaded += OnViewportViewLoaded; browser.SizeChanged += Browser_SizeChanged; browser.LoadError += Browser_LoadError; // TODO - this was added Fall 2017 due to issues with // library failing to load due to timing issues. /* * //wait for the browser to load before setting the resources * browser.LoadingStateChanged += (sender, args) => * { * //Wait for the Page to finish loading * if (args.IsLoading == false) * { * RegisterResources(browser); * } * }; */ return(view); }