Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Adding parameters starts with implementing the three methods below:

  • ParameterHelp property: Must return a help text. If null then the system assumes that there are no parameters.
  • ParameterDefault property: Returns your parameter default value (null or something else). This default value can then be changed in the project settings.
  • ValidateParameter() method: This method is called when a user changes the parameter value in a project. Return an error message if the value is not ok.
     
Sample code:
Code Block
		/// <summary>
		/// Gets optional help description (not html!) of the configuration parameter.
		/// By returning a non-null value, you explicitly tell the Beebox that this extension has a configurable parameter.
		/// </summary>
		public override string ParameterHelp 
		{ 
			get { return "Fill in a directory location."; } 
		}
 
 
 
		/// <summary>
		/// Gets the default value of the parameter. Default can be changed by user.
		/// </summary>
		public override string ParameterDefault { get { return @"c:\hello\world"; } }
 
 
 
		/// <summary>
		/// Validates the user parameters.
		/// Return null if ok, otherwise return an error text.
		/// </summary>
		/// <param name="parameter">The parameter edited by a user.</param>
		/// <returns>Null: parameter is ok. Otherwise return an error message.</returns>
		public override string ValidateParameter(string parameter)
		{
			try
			{
 				// Check validity of the parameter value
				return null;
			}
			catch (Exception e)
			{
				return "The parameter is not correct.";
			}
		}

 

The last step is to process the configuration parameter passed to the main method of each extension. Example:

Code Block
public override bool IsMatch(Segment segment, IExtensionConfiguration configuration)

 

This interface has a Parameter property. It is null if the default parameter was not changed in the project that triggered your extension. A typical code would look like this:

Code Block
public override bool IsMatch(Segment segment, IExtensionConfiguration configuration)
{
	// Get parameter. 
	// If null then the default value was not edited in the current Beebox project.
 
	var parameter = configuration.Parameter ?? ParameterDefault;
    if (parameter == "x") 
    {
       ....
    }