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.

Reply via email to