...
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") { .... } |