Thanks for your suggestion! This is the updated code.
public String getKey() {
return settings.getKey();
}
public boolean getStart()
{
return settings.getIsStart();
}
@DataBoundSetter
public void setStart(boolean value)
{
settings.setIsStart(value);
}
@DataBoundSetter is required to make this works, not sure why.
This is config.jelly:
<f:entry title="Starting point?" description="checked = yes, unchecked =
no">
<f:checkbox name="start" field="start" default="true" value="${start}"/>
</f:entry>
Again, thanks a lot. It works now!
On Friday, April 18, 2014 8:37:08 PM UTC+7, Ullrich Hafner wrote:
>
> For the data binding the names must exactly match:
>
> jelly: field=„isStart“
> Java: Constructor: isStart
> Java: Getter: getIsStart
>
> Am 18.04.2014 um 05:46 schrieb Code <[email protected] <javascript:>>:
>
> This is the builder class which is based on HelloWorldBuilder.
>
> public class LogInfoBuilder extends Builder {
>>
>> private final TimerSettings settings = new TimerSettings();
>>
>>
>>
>> private final List<String> infoCollection = new ArrayList<String>();
>>
>>
>>> // Fields in config.jelly must match the parameter names in the
>>> "DataBoundConstructor"
>>
>> @DataBoundConstructor
>>
>> public LogInfoBuilder(String key, boolean isStart) {
>>
>> settings.setKey(key);
>>
>> settings.setIsStart(isStart);
>>
>> }
>>
>>
>>> /**
>>
>> * We'll use this from the <tt>config.jelly</tt>.
>>
>> */
>>
>> public String getKey() {
>>
>> return settings.getKey();
>>
>> }
>>
>>
>>
>> public boolean isStart()
>>
>> {
>>
>> return settings.getIsStart();
>>
>> }
>>
>>
> and this is config.jelly
>
>> <j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler"
>>> xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson"
>>> xmlns:f="/lib/form">
>>
>> <!--
>>
>> This jelly script is used for per-project configuration.
>>
>>
>>> See global.jelly for a general discussion about jelly script.
>>
>> -->
>>
>>
>>> <!--
>>
>> Creates a text field that shows the value of the "name" property.
>>
>> When submitted, it will be passed to the corresponding constructor
>>> parameter.
>>
>> -->
>>
>> <f:entry title="Key" field="key">
>>
>> <f:textbox />
>>
>> </f:entry>
>>
>>
>>
>> <!--
>>
>> <f:entry title="Start?" field="isstart">
>>
>> <select name="isStart">
>>
>> <option value="true" selected="${it.isstart}">Yes</option>
>>
>> <option value="false" selected="${!it.isstart}">No!</option>
>>
>> </select>
>>
>> </f:entry>
>>
>> -->
>>
>>
>>
>> <f:entry title="Starting point?" description="If checked, this will be
>>> the starting point.">
>>
>> <f:checkbox name="start" checked="${it.start}"/>
>>
>> </f:entry>
>>
>> </j:jelly>
>>
>>
>>
> The checkbox shows up on job configuration page but I cannot set the value
> from it, I mean check or uncheck the checkbox on that page doesn't affect
> the value in builder class.
>
> What did I do wrong in the builder and/or the jelly file?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.