/// <summary>
 /// When overriden by a derived class, must return the base controller
 /// on NLML-layer of this controller.
 /// </summary>
 /// <param name="env">The environment to create the base controller for.</param>
 /// <param name="param">A parameter associated with the controller to create</param>
 /// <returns>The base controller of this controller</returns>
 protected override eExNLML.Extensibility.IHandlerController GetBaseController(eExNetLab.INetLabEnvironment env, object param)
 {
     //Simply return a new instance of your plugin controller on NLML-layer.
     //You can use the BaseDefinition property to access the base definition on NLML-layer.
     return(new PluginController(BaseDefinition, env));
 }
 /// <summary>
 /// When overriden by a derived class, must create the statistics UI for the given environment or null to use no statistics UI. This UI will be shown below the workbench if the traffic handler gets selected.
 /// </summary>
 /// <param name="env">The environment to create the statistics UI for</param>
 /// <param name="param">A parameter associated with the component to create</param>
 /// <returns>The statistics UI for the traffic handler defined by this controller</returns>
 protected override eExNetLab.eExNetLabUIComponentBase CreateStatisticsUI(eExNetLab.INetLabEnvironment env, object param)
 {
     return(null);
 }
 /// <summary>
 /// Must create the HandlerController on NetLab layer for this NetLabHandlerDefiniton.
 /// </summary>
 /// <param name="env">The environment for the handler controller.</param>
 /// <returns>The eExNetLab.Extensibility.IHandlerController for this NetLabHandlerDefiniton.</returns>
 public override eExNetLab.Extensibility.IHandlerController Create(eExNetLab.INetLabEnvironment env)
 {
     return(new NetLabPluginController(this, env));
 }