Configure Recipe Editor

Configuring the Settings Recipe Editor

The Recipe Editor set-up on the window REC_01_GUI/01_Configuration has four main components:

  1. Recipe Editor
  2. Recipe Changelog Viewer
  3. Check Box (Ignition)
  4. 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

    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 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:

    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 "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).