/// <summary>
 /// Adds the buttons.
 /// Must be called from a Render method we are using GetPostBackEventReference
 /// </summary>
 /// <param name="editorMode">The editor mode.</param>
 public void AddButtons(ActionEditorFormMode editorMode)
 {
     EnsureChildControls();
     try
     {
         AddButtonsInternal(editorMode);
     }
     catch (Exception ex)
     {
         if (OnError != null)
         {
             OnError(this,
                     new SPSErrorArgs(
                         "ActionEditorToolBarControl",
                         "Error adding buttons.",
                         ex));
         }
     }
 }
        private void AddButtonsInternal(ActionEditorFormMode editorMode)
        {
            foreach (ActionToolBar actionToolBar in _actionToolBars)
            {
                // Is our bar
                if (actionToolBar.Name.ToString() == editorMode.ToString())
                {
                    foreach (Option option in actionToolBar)
                    {
                        if (ActionNotDefined(option))
                        {
                            AddUserButton(option);
                        }
                        else
                        {
                            // Action commands need postback
                            string argument = "Mode$" + option.Action;
                            string onClick;

                            // Generate postback options
                            onClick = ActionRequireValidation(option)
                                              ? GetOnClickWithValidation(argument)
                                              : GetOnClickWithoutValidation(argument);

                            Debug.WriteLine(argument + " " + onClick);

                            if (ActionDeleteRecord(option))
                            {
                                AddDeleteRecordButton(option, onClick);
                            }
                            else
                            {
                                AddOtherActionButton(option, onClick);
                            }
                        }
                    }
                }
            }
        }