Configuring the Settings Recipe Editor
The Recipe Editor set-up on the window REC_01_GUI/01_Configuration has four main components:
- Recipe Editor
- Recipe Changelog Viewer
- Check Box (Ignition)
- Container (Ignition) with 14 Labels (Ignition)

Configure Recipe Editor
- Drag a Recipe Editor component onto the window. Position it along the top of the window and resize as shown above.
- Set the Read Only property to False and the Show Item Defaults property to True.
- Open the Component Scripting dialog box (Ctrl-J), select the userMenuItemClicked event handler script area and paste in the following script.
Script for the userMenuItemClicked event handler
Code |
if event.propertyName == 'selectedRow':
row = event.newValue
if row >= 0:
data = event.source.data
event.source.parent.getComponent('Container').getComponent('LabelRecipeName').text = data.getValueAt(row, "RecipeName")
event.source.parent.getComponent('Container').getComponent('LabelItemPath').text = data.getValueAt(row, "ItemPath")
event.source.parent.getComponent('Container').getComponent('LabelValueName').text = data.getValueAt(row, "ValueName")
event.source.parent.getComponent('Container').getComponent('LabelFromValue').text = data.getValueAt(row, "FromValue")
event.source.parent.getComponent('Container').getComponent('LabelToValue').text = data.getValueAt(row, "ToValue")
event.source.parent.getComponent('Container').getComponent('LabelChangeBy').text = data.getValueAt(row, "ChangedBy")
event.source.parent.getComponent('Container').getComponent('LabelNote').text = data.getValueAt(row, "Note")
else:
event.source.parent.getComponent('Container').getComponent('LabelRecipeName').text = ""
event.source.parent.getComponent('Container').getComponent('LabelItemPath').text = ""
event.source.parent.getComponent('Container').getComponent('LabelValueName').text = ""
event.source.parent.getComponent('Container').getComponent('LabelFromValue').text = ""
event.source.parent.getComponent('Container').getComponent('LabelToValue').text = ""
event.source.parent.getComponent('Container').getComponent('LabelChangeBy').text = ""
event.source.parent.getComponent('Container').getComponent('LabelNote').text = "" |
Configure Recipe Changelog Viewer
- Drag an Recipe Changelog Viewer component onto the window. Position it in the bottom-left corner and resize as shown above (leave room underneath for the Check Box component).
- Change the Start Date property to a date prior to today, so it will include all recipes you will be creating.
- Bind the End Date property to the expression "now(60000)" so it will always include the present time.
Open the Component Scripting dialog box (Ctrl-J), select the propertyChange event handler script area and paste in the following script.
Script for the actionPerformed event handler
Codeif event.propertyName == 'selectedRow': row = event.newValue if row >= 0: data = event.source.data event.source.parent.getComponent('Container').getComponent('LabelRecipeName').text = data.getValueAt(row, "RecipeName") event.source.parent.getComponent('Container').getComponent('LabelItemPath').text = data.getValueAt(row, "ItemPath") event.source.parent.getComponent('Container').getComponent('LabelValueName').text = data.getValueAt(row, "ValueName") event.source.parent.getComponent('Container').getComponent('LabelFromValue').text = data.getValueAt(row, "FromValue") event.source.parent.getComponent('Container').getComponent('LabelToValue').text = data.getValueAt(row, "ToValue") event.source.parent.getComponent('Container').getComponent('LabelChangeBy').text = data.getValueAt(row, "ChangedBy") event.source.parent.getComponent('Container').getComponent('LabelNote').text = data.getValueAt(row, "Note") else: event.source.parent.getComponent('Container').getComponent('LabelRecipeName').text = "" event.source.parent.getComponent('Container').getComponent('LabelItemPath').text = "" event.source.parent.getComponent('Container').getComponent('LabelValueName').text = "" event.source.parent.getComponent('Container').getComponent('LabelFromValue').text = "" event.source.parent.getComponent('Container').getComponent('LabelToValue').text = "" event.source.parent.getComponent('Container').getComponent('LabelChangeBy').text = "" event.source.parent.getComponent('Container').getComponent('LabelNote').text = ""
Configure Check Box
- Drag an Ignition Check Box component underneath the Recipe Changelog Viewer component.
- Change the Name property to chkDefaultValuesChanged.
- Change the Text property to Show Default Value Changes.
In the Recipe Changelog Viewer component, bind the Show Default Value Changes property to the Check Box's Selected property using the following expression:
Codeif event.propertyName == 'selectedRow': row = event.newValue if row >= 0: data = event.source.data event.source.parent.getComponent('Container').getComponent('LabelRecipeName').text = data.getValueAt(row, "RecipeName") event.source.parent.getComponent('Container').getComponent('LabelItemPath').text = data.getValueAt(row, "ItemPath") event.source.parent.getComponent('Container').getComponent('LabelValueName').text = data.getValueAt(row, "ValueName") event.source.parent.getComponent('Container').getComponent('LabelFromValue').text = data.getValueAt(row, "FromValue") event.source.parent.getComponent('Container').getComponent('LabelToValue').text = data.getValueAt(row, "ToValue") event.source.parent.getComponent('Container').getComponent('LabelChangeBy').text = data.getValueAt(row, "ChangedBy") event.source.parent.getComponent('Container').getComponent('LabelNote').text = data.getValueAt(row, "Note") else: event.source.parent.getComponent('Container').getComponent('LabelRecipeName').text = "" event.source.parent.getComponent('Container').getComponent('LabelItemPath').text = "" event.source.parent.getComponent('Container').getComponent('LabelValueName').text = "" event.source.parent.getComponent('Container').getComponent('LabelFromValue').text = "" event.source.parent.getComponent('Container').getComponent('LabelToValue').text = "" event.source.parent.getComponent('Container').getComponent('LabelChangeBy').text = "" event.source.parent.getComponent('Container').getComponent('LabelNote').text = ""

Configure "Details" Section
- For the sake of time, the "Details" section is already pre-built for you. It consists of an Ignition Container component with 14 Labels, seven of which are used as data display elements.
- No configuration is required (data will be pushed to the Labels by a script in the Recipe Changelog Viewer component).
