# CheckBox Template repeater

**URL:** <https://forum.inductiveautomation.com/t/checkbox-template-repeater/65832>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [October 29, 2022, 9:24am UTC](https://forum.inductiveautomation.com/t/checkbox-template-repeater/65832 "2022-10-29T09:24:45Z")\
**Posts on this page:** 1\
**Showing post:** 22

<div class="post-metadata">

**Author:** ![justinedwards.jle](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justinedwards.jle/32/37854_2.png) [@justinedwards.jle](https://forum.inductiveautomation.com/u/justinedwards.jle)\
**Post date:** [February 22, 2023, 9:58am UTC](https://forum.inductiveautomation.com/t/checkbox-template-repeater/65832/22 "2023-02-22T09:58:26Z")

</div>

> [@prasath.t](#):
>
> thanks i about ping its throwing error like that

I corrected the code above.

Here is the complete breakdown from the button all the way to the root container:

```auto
#event.source = PMIRadioButton
#event.source.parent = Template
#event.source.parent.parent = TemplateRepeater$VerticalView
#event.source.parent.parent.parent = JViewport
#event.source.parent.parent.parent.parent = JideScrollPane
#event.source.parent.parent.parent.parent.parent = TemplateRepeater ###This is the one that has your custom property
#event.source.parent.parent.parent.parent.parent.parent = Root Container

```

> **Parent Listing Script:**
>
> ```auto
> parents = [event.source]
> current_parent = event.source.parent
> while current_parent is not None:
> parents.append(current_parent)
> current_parent = current_parent.parent
> for i, parent in enumerate(parents):
> print('#event.source{} = {}'.format('.parent' * i, type(parent)))
> 
> ```

> **Full Output for this Usage Case:**
>
> ```auto
> #event.source = <type 'com.inductiveautomation.factorypmi.application.components.PMIRadioButton'>
> #event.source.parent = <type 'com.inductiveautomation.factorypmi.application.components.template.VisionTemplate'>
> #event.source.parent.parent = <type 'com.inductiveautomation.factorypmi.application.components.TemplateRepeater$VerticalView'>
> #event.source.parent.parent.parent = <type 'javax.swing.JViewport'>
> #event.source.parent.parent.parent.parent = <type 'com.jidesoft.swing.JideScrollPane'>
> #event.source.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.factorypmi.application.components.TemplateRepeater'>
> #event.source.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.factorypmi.application.components.BasicContainer'>
> #event.source.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JLayeredPane'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JRootPane'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.factorypmi.application.FPMIWindow'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.designable.DesignPanel$DesignableContainerLayer'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.designable.DesignPanel$LayerParent'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JViewport'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.designable.DesignPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.factorypmi.designer.workspace.WindowWorkspace'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.WorkspaceManager'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.jidesoft.docking.Workspace'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.IgnitionDockingManager$1'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.IgnitionDockingManager$1'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.IgnitionDockingManager$1'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.IgnitionDockingManager$1'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.jidesoft.docking.DockedFrameContainer'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.IgnitionDockingManager$1'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.jidesoft.docking.DefaultDockingManager$DockedHiddenSlidingContainer'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.jidesoft.docking.DefaultDockingManager$MainPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.jidesoft.action.MainContainer'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.jidesoft.swing.ContentContainer'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JPanel'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JLayeredPane'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'javax.swing.JRootPane'>
> #event.source.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent = <type 'com.inductiveautomation.ignition.designer.IgnitionDesigner'>
> 
> ```

---

_[View the full topic](https://forum.inductiveautomation.com/t/checkbox-template-repeater/65832)._
