scrollbar |
---|
...
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Contents
|
Exercise outline
The goal of this exercise is to visualize information about created volume models in the Properties window.
Create a new object properties class
Add a new folder to the plugin project named a new folder named ObjectProperties. In this folder, create a new class named VolumeModelObjectProperties.cs and add the following codeadapt the contents as shown below:
Code Block |
---|
using System.ComponentModel; using DelftTools.Shell.Gui; using DeltaShell.Plugin.DemoApp.Models; namespace DeltaShell.PluginPlugins.DemoAppVolumeModel.ObjectProperties { [DisplayName("Volume model information")] public class VolumeModelProperties : ObjectProperties<VolumeModel>ObjectProperties<Models.VolumeModel> { [Category("General")] [DisplayName("Name")] [Description("Name of this volume model")] public string Name { get { return data.Name; } getset { data.Name = value; } } [Category("Input")] [DisplayName("Number of catchments")] [Description("Number of catchments in the basin")] public int NumberOfCatchments { get { return data.Basin.Catchments.Count; } } [Category("Input")] [DisplayName("Number of time steps")] [Description("Number of time steps in the precipitation time series")] public int NumberOfPrecipitationTimeSteps { get { return data.Precipitation.Time.Values.Count; } } } } |
Info | |
---|---|
The object properties class derives is derived from the ObjectProperties base class so that it can be registered in the gui plugin (see the next step).
|
Register the object properties in the gui plugin class
Register the object properties in the gui plugin by adding the following code to VolumeModelGuiPlugin.cs:
Code Block |
---|
using System.Collections.Generic; using DeltaShell.PluginPlugins.DemoAppVolumeModel.ObjectProperties; |
and
Code Block |
---|
public override IEnumerable<PropertyInfo> GetPropertyInfos() { yield return new PropertyInfo<VolumeModelPropertyInfo<Models.VolumeModel, VolumeModelProperties>(); } |
Delta Shell should now be able to find matching object properties after selecting a volume model in the Project window.
Exercise results
Setup Set up a volume model as described in the results of a the previous exercise (see Create a simple hydrological model).
Then, select the created volume model in the Project view window and inspect the Properties window; a properties grid should be visible like as shown in the following image:
Add screenshot of property grid for a volume model (with imported catchments and time series data) Wiki Markup *\[TODO\]*
Ensure
Make sure that editing the name Name property actually results in a change of the name of the volume model in the Project window.
Info |
---|
You might have already noticed that clicking Clicking on other items in the Project window results in showing a related their respective property grid in the Properties window too. This is because ; Delta Shell already defines object properties for all its basic data structures out of the box. |
scrollbar |
---|