unit_dialog_event_handler

Short description

This basic example demonstrates how to use an event handler on a script dialog to set the unit to multiple widgets.

Highlights

After creating a dialog with gom.script.sys.create_user_defined_dialog, you can set an event handler to this dialog. In this simple case, the unit property of a decimal input widget and a tolerance widget are set according to what the user selected in the DIALOG.unit widget:

if widget == DIALOG.unit:
  DIALOG.input.unit = DIALOG.unit.value
  DIALOG.tolerances.unit = DIALOG.unit.value

Another interesting part of this example is the corresponding test. In addon_tests/test_dialog_widgets_unit_dialog is shown how a very basic testing of the event_handler can be implemented:

DIALOG=example.setup_dialog()
# Generating some events to test the event_handler
unit_widget = DIALOG.unit
unit_widget.value = "FORCE"

# Test if the event_handler correctly links widget values
DIALOG.handler(unit_widget)
assert (DIALOG.input.unit == "FORCE")
assert (DIALOG.tolerances.unit == "FORCE")

This usage of the DIALOG.handler function mimics the user-interaction of changing the value of the unit widget manually to "FORCE".