/// class PD.Web.UI.Controls.GridColumn

PD.Web.UI.Controls.GridColumn = Class.extend({

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

    _properties: null,
    
    //===================================
    // CONSTRUCTOR
    //===================================

    init: function (options) {
        this._properties = new PD.Web.UI.Controls.GridColumnProperties(_.extend({}, options));
    },

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

    get_template: function () {
        return this.properties("template");
    },
    set_template: function (fn) {
        this.properties("template", fn);
    },

    get_transform: function () {
        return this.properties("transform");
    },
    set_transform: function (fn) {
        this.properties("transform", fn);
    },

    //===================================
    // PUBLIC METHODS
    //===================================
    
    properties: function (id, value) {
        
        if (id == null) {
            return this._properties;
        }

        if (id != null && value == undefined) {
            return this._properties.getValue(id);
        }

        if (id != null && value != undefined) {
            return this._properties.setValue(id, value);
        }

    }

});