/// class PD.Web.UI.Controls.SplitButton
/// using PD.Web.UI.Controls.Button

PD.Web.UI.Controls.SplitButton =
PD.Web.UI.Controls.Button.extend({

    //===================================
    // FIELDS
    //===================================

    _buttons: null,

    //===================================
    // CONSTRUCTOR
    //===================================

    init: function (options) {
        this._buttons = new PD.BCL.List(options.buttons || []);
        this._super(options);
        this.data().add("type", "splitButton");
    },

    //===================================
    // PROPERTIES
    //===================================

    get_buttons: function () {
        return this._buttons;
    },

    //===================================
    // PUBLIC METHODS
    //===================================

    onToggleOrClick: function (e) {

        this._buttons.each(function (index, button) {
            if (button.get_uid() === e.uid) {
                button.onClick(e);
            }
        });

    },

    getSettings: function () {

        var buttons = this._buttons.transform(function (item) {
            return item.getSettings()
        }).toArray();

        var result = {
            type: this.data("type"),
            id: this.data("id"),
            enable: this.data("enable"),
            imageUrl: this.data("icon"),
            overflow: this.data("overflow"),
            text: this.data("text"),
            menuButtons: buttons,
            attributes: {
                "data-id": this.get_uid()
            }
        }

        return result;

    }

});