Skip to content

Releases: muxall/Magui

NE #93 WPF Changing Runtime CLR Properties

14 Mar 19:47
Compare
Choose a tag to compare

WPF Changing Runtime CLR Properties – Node Properties Editor
we implement our Magui Node Editor to edit the common language runtime properties in the WPF framework. Some of our custom properties are ViewOnly, some are ViewEdit, and some are internal properties that we don’t need to show the user, so we have to add an extra attribute to our key value pairs to tell the editor which are which. We add two new code pages to accommodate the kvp edit screen. It’s a little bit swanky, but, it’s WPF!

NE #91 WPF Binding to Class object

03 Sep 23:14
Compare
Choose a tag to compare
Pre-release

we change our classNodes label data source by setting the textblock datacontext and using a simple binding.

NE #89 WPF Desktop App Walkthrough Example: Magui’s Node Editor

13 Jul 11:22
Compare
Choose a tag to compare

we are going to go step-by-step through Microsoft’s WPF “Walkthrough: My first WPF desktop application” to create our Node Editor for Magui. The walkthrough is a nice tutorial and shows us how to use the WPF Navigation Window and WPF Pages. But, we need to make changes to the walkthrough’s code to use it as a Dialog and not a stand-alone app. We will change the data source from the walkthrough’s xaml data to a run-time ClassNodeProperties object and add some bindings. We will also add a custom Page constructor to pass our class node object for use its DataContext.

NE #87 & #88 WPF The new Config File Save

26 Jun 21:03
Compare
Choose a tag to compare

we will be using the Reflection PropertyInfo for our new and improved Config File Save subroutine. Reflection’s GetType.GetProperties allows us to get all the properties for our Node classes and Link classes without having to request them by name; a must have for large and dynamic configs! Also, some changes are needed to align the Config Save with the new Config Open. We will introduce a new IO module that will be the home of our new Config File Save and Config File Open subroutines. And, you’ll see code refactoring on the Main Window XAML menu system, its code behind, and node and link classes properties.

we will also be using Microsoft’s Interaction module’s CallByName function to set the properties, at run-time, in our Class Node objects and Class Link objects. We will introduce a new Key-Value-Pair class used to help parse the config file. And, we look at the modifications made in our Main Window code behind, Node Class and Link Class. We will also discuss the three reasons why the code was written with Refactoring and Interaction: Single file to add, change and delete properties; Dynamically add properties to classes; and, Give the user the ability to add run-time custom properties to nodes and links.

NE #85 WPF UserControl Save and SaveAs : Writing a config file for our nodes and links.

10 Jun 18:57
81eb774
Compare
Choose a tag to compare

In today’s release, we will implement File Save and SaveAs to write our nodes and links configurations to a text file. This will allow us to load nodes, links and their layout when we first start Magui instead of having to provision everything from scratch. A real time saver! We will be using WPF’s XAML Menu tag to add MenuItems: File->Open, File->Save, and File->SaveAs commands; using Win32 SaveFileDialog for the user interface; and, using the StreamWriter to write to our text files. So, let’s get started!

NE #80 WPF Bubble Up Command From Child: Implementing Delete for Nodes and Links

02 May 19:56
81eb774
Compare
Choose a tag to compare

We will be using WPF’s Routed Events to bubble up the delete node and delete link commands from the child view to the Main Window. If you recall, the add router, switch and test set commands (which are nodes) are executed by right clicking on the main window canvas and selecting “add…”. The Main Window then adds the view to its canvas. However, to delete a node or link, the user right-clicks on it and selects “Delete”. However, the child must notify the main window so it can remove the child from its canvas. We are also going to add a couple of index managers for the nodes and links so we don’t have to use the index value returned from Canvas.children.Add command

NE #77 WPF Inherit Derived Class Functionality from a Base Class UserControl

19 Mar 10:23
Compare
Choose a tag to compare

we need to add all the changes we’ve been making to the Cisco Router Node class to the other node classes. The quick way to do this is to copy and paste the code. But, that would result in a lot of code duplication. So, we do some code refactoring and add a “ClassNode” base class that has all the similar properties, methods, events, and fields defined in it from which the derived classes can inherit and extend. We also have to make changes to the XAML UserControl to support the new Code-Behind for the base class changes.

NE 75 Add label to rectangle and text binding UC.Name property

21 Feb 12:30
Compare
Choose a tag to compare

Since the Shape.Rectangle class does not have a label property, we have to use VisualBrush and StackPanel in Rectangle.Fill to overlay a TextBlock on top of our background router image. Then, we use data binding to sync the text in our TextBlock with the instantiated router Name property that is inherited from the UserControl class. Sticking with the MVC model, we add all this new model code using XAML.

NE# 74 - Drawing links between nodes

22 Jan 19:50
Compare
Choose a tag to compare
Pre-release

Added code for drawing links between nodes.
Network Engineering Video Blog #74

NE-vBlog Videos

12 Jan 23:00
db74656
Compare
Choose a tag to compare
NE-vBlog Videos Pre-release
Pre-release
v0.1.1

Update README.md