Quintiq file version 2.0
#parent: #root
Method Delegate (
  internal[GUIComponent] parent,
  SWF_ActivityBase origin_activity,
  Boolean close_origin_activity,
  Boolean is_forward
) id:Method_SWF_DialogCreateEditActivity_Delegate
{
  #keys: '[113694.2.1190887588]'
  Body:
  [*
    // Forward the activity
    current_date := SWF_WorkflowDataset.GlobalParameter().CurrentDate();
    
    data := SWF_WorkflowDataset.WorkflowDefinition().ActiveWorkflow().Element( relshadow, SWF_Activity );
                                                                               
    this.SetDialogComponentForDelegate( origin_activity, data, is_forward );
    
    Dialog.Data( data );
    
    result := this.DoModal( parent );
    
    if( result > 0 )
    {
      selected_authorization := SWF_AuthorizationBase::GetSelectedAuthorizationFromStringSelections( SWF_WorkflowDataset,
                                                                                                     SWF_StringSelectionManagedBy.BoundValue(),
                                                                                                     SWF_StringSelectionManagedBy.SelectedElement() );
                                                                                                     
      //Auto set created time and created user name
      description := SWF_Translation::TRANSLATE_NewActivityCreatedBy( DateTime::Now(), SWF_WorkflowDataset.GetCurrentUser().Name() ) + String::NewLine() + data.Description();    
      SWF_WorkflowDataset.Service().TR_ProcessDelegateActivity 
                                ( origin_activity
                                , close_origin_activity
                                , data.Name()
                                , description
                                , data.IsDefaultOpen()
                                , data.DueDateHasManual()
                                , data.DueDateManual()
                                , current_date
                                , SWF_WorkflowDataset.GetCurrentUserID()
                                , guard( selected_authorization.DisplayName(), '' )
                                , guard( data.ParentStep().ID(), Key::ZeroKey() )
                                , SWF_WorkflowDataset.GetCurrentUserID()
                                , data.ViewLink()
                                , guard( data.ViewLinkWeb(), '' ) );
                                
      Dialog.ShowInfoMessage();                                   
    }
  *]
}
