Quintiq file version 2.0
#parent: CustomDrawRC
Response OnSelectionChanged (
  structured[Object] selection
) id:Response_CustomDrawRC_OnSelectionChanged_593
{
  #keys: '[139394.0.1568823439]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCustomDraw_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      // Update dataholders with objects
      // Input outputs
      oios := selectset( selection, Elements.astype( Operation ).OperationInputOutput, oio, true );
      oios := oios.Union( selectset( selection, Elements.astype( OperationInputOutput ), oio, true ) );
      // special handling for PISP nodes that are linked to multiple inputs and outputs
      oios := oios.Union( selectset( selection, Elements.astype( OperationInputPISPNode ).PISPNodeInRouting.PISPOperationInputEdge.OperationInput, oi,
                                     not oi.IsElementOfInputGroup() ) );
      oios := oios.Union( selectset( selection, Elements.astype( OperationOutputPISPNode ).PISPNodeInRouting.PISPOperationOutputEdge.OperationOutput, oo,
                                     not oo.IsElementOfInputGroup() ) );
      DataHolderOperationInputOutputs.Data( oios.Copy() );
      
      // Input groups
      oigs := selectset( selection, Elements.astype( Operation ).OperationInputGroup, oig, true );
      oigs := oigs.Union( selectset( selection, Elements.astype( OperationInputGroup ), oio, true ) );
      oigs := oigs.Union( selectset( selection, Elements.astype( OperationInputOutputPISPNode ).PISPNodeInRouting.OperationBOM.OperationInput.OperationInputGroup, oig, true ) );
      
      DataHolderOperationInputGroups.Data( oigs.Copy() );
    *]
    GroupServerCalls: false
  }
}
