Maybe I'm not looking in the right places or I just don't understand the code but I cannot see how to get an optionalProperty to work. The only example I can find this the ui-samples-plugin which has an overly complicated example that I cannot follow.
1. Do you have any advice on how to search existing plugin code for optionalProperty usage? Google isn't that helpful... 2. Can you either: - point me at a plugin that has a simple implementation that I could use to adapt the following code or - suggest what changes I need to make to convert the following optionalBlock to an optionalProperty? <https://lh3.googleusercontent.com/-0EKgnAp123U/WKVwHpxPUmI/AAAAAAAAAAg/AdxdELUfOd8jxAyBfP2rTJy65P_P20iHgCLcB/s1600/shot.png> <file:///C:/Users/andre/AppData/Local/Packages/microsoft.windowscommunicationsapps_8wekyb3d8bbwe/TempState/msohtmlclipclip_image001.png>*Jelly Snippet* <f:optionalBlock title="Set Build Variables in BuildMaster" field="setBuildVariables" > <f:entry title="Copy Previous Build's Variables" field="preserveVariables" > <f:checkbox default="false" /> </f:entry> <f:entry title="Variables" field="variables" > <f:expandableTextbox /> </f:entry> </f:optionalBlock> *Class Snippet* @DataBoundSetter public final void setSetBuildVariables(SetBuildVariables setBuildVariables) { if (setBuildVariables != null) { this.setBuildVariables = true; this.preserveVariables = setBuildVariables.preserveVariables; this.variables = setBuildVariables.variables; } else { this.setBuildVariables = false; this.preserveVariables = false; this.variables = null; } } public static final class SetBuildVariables { private final boolean preserveVariables; private final String variables; @DataBoundConstructor public SetBuildVariables(boolean preserveVariables, String variables) { this.preserveVariables = preserveVariables; this.variables = variables; } } Thanks in advance Andrew On Thursday, January 19, 2017 at 5:13:37 AM UTC+13, Jesse Glick wrote: > > On Tue, Jan 17, 2017 at 7:55 PM, <[email protected] <javascript:>> > wrote: > > When updating a plugin to support pipeline script, how do I handle an > > optionalBlock section? > > Do not use `f:optionalBlock`. This is a low-level control. Do not > refer to `JSONObject` either. All this is old-style deprecated form > binding. > > Use a high-level control like `f:optionalProperty` for nullable > structs (`ui-samples-plugin` has an example), or simple independent > `f:checkbox`es for `boolean` properties (`doCheck*` form validation > can reject invalid combinations). > > Also use `@DataBoundSetter` for any property with a plausible default. > -- 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/e7fe9147-aeab-4b9e-9e34-1b63b1f87d2b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
