<commit_before>"use strict";

// содержит компонент Tabs, пользуется им для отображения информации об этажах здания

function BuildingInfo(options) {

    // текуще отображаемое здание
    var _cur_map_building_json;

    // настраиваемые параметры
    var _options = {
        onFloorTabChange: undefined
    };

    // заголовок - название здания
    var _$title;

    // компонент "вкладки"
    var _tabs = null;

    // привязка данных об этажах здания ко вкладкам в этом удобном хэше
    var _tabs_floors_data = {};

    //-[ public ]-----------------------------------------------------------------------------------------------------------------------

    /** Получить данные для отображения.
     *
     * @param map_building_json Это данные от C80MapFloors::MapBuilding
     */
    this.setData = function (map_building_json) {
        //console.log('<BuildingInfo.setData>');
        //console.log(map_building_json);

        _cur_map_building_json = map_building_json;

        this._removeAll();
        this._parseData();
        this._updateView();

    };

    /**
     * П
     * @param floor_index
     */
    this.setSelectedFloor = function (floor_index) {
        _tabs.setSelectedIndex(floor_index);
    };

 //------------------------------------------------------------------------------------------------------------------------

    /**
     * слушает клики по табам, отправляет команды выше.
     *
     * @param shown_tab_id - айди текуще отображённой вкладки, это floor id NOTE:fidfid
     * @private
     */
    this._onTabShow = function (shown_tab_id) {
        console.log('<_onTabShow> shown_tab_id = ' + shown_tab_id);

        if (_options['onFloorTabChange'] != undefined) {
            _options['onFloorTabChange'](shown_tab_id);
        }
    };

    //---[ dsd ]---------------------------------------------------------------------------------------------------------------------

    this._fInit = function (options) {
        // TODO:: _options extend options
        _options = $.extend(_options, options);

        // создаём компонент "вкладки"
        _tabs = new Tabs();

        // находим заголовок
        _$title = $('.building_info').find('h3');

    };

    this._parseData = function () {
        console.log('<BuildingInfo._parseData>');

        // установим заголовок окна
        _$title.text(_cur_map_building_json["title"]);

        // обойдём этажи, построим вкладки
        for (var i = 0; i < _cur_map_building_json['floors'].length; i++) {

            var ifloor_data = _cur_map_building_json['floors'][i];
            var ifloor_id = ifloor_data["id"]; // NOTE:fidfid
            //console.log(ifloor_data); // => see C80MapFloors::Floor.as_json

            // создадим вкладку
            _tabs.addTab(ifloor_data["title"], ifloor_id, this._onTabShow);

            // свяжем её по id с даными
            _tabs_floors_data[ifloor_id] = {
                tab_data: ifloor_data
            }
        }
    };

    this._updateView = function () {

    };

    // очистим данные и вью
    this._removeAll = function () {

        _$title.text('');
        _tabs_floors_data = {};
        _tabs.removeAll();
    };


    this._fInit(options);
}<commit_msg>develop_floor_state: minor: console.log.<commit_after>"use strict";

// содержит компонент Tabs, пользуется им для отображения информации об этажах здания

function BuildingInfo(options) {

    // текуще отображаемое здание
    var _cur_map_building_json;

    // настраиваемые параметры
    var _options = {
        onFloorTabChange: undefined
    };

    // заголовок - название здания
    var _$title;

    // компонент "вкладки"
    var _tabs = null;

    // привязка данных об этажах здания ко вкладкам в этом удобном хэше
    var _tabs_floors_data = {};

    //-[ public ]-----------------------------------------------------------------------------------------------------------------------

    /** Получить данные для отображения.
     *
     * @param map_building_json Это данные от C80MapFloors::MapBuilding
     */
    this.setData = function (map_building_json) {
        console.log('<BuildingInfo.setData> Получили данные для отображения.');
        //console.log(map_building_json);

        _cur_map_building_json = map_building_json;

        this._removeAll();
        this._parseData();
        this._updateView();

    };

    /**
     * П
     * @param floor_index
     */
    this.setSelectedFloor = function (floor_index) {
        _tabs.setSelectedIndex(floor_index);
    };

 //------------------------------------------------------------------------------------------------------------------------

    /**
     * слушает клики по табам, отправляет команды выше.
     *
     * @param shown_tab_id - айди текуще отображённой вкладки, это floor id NOTE:fidfid
     * @private
     */
    this._onTabShow = function (shown_tab_id) {
        console.log('<_onTabShow> shown_tab_id = ' + shown_tab_id);

        if (_options['onFloorTabChange'] != undefined) {
            _options['onFloorTabChange'](shown_tab_id);
        }
    };

    //---[ dsd ]---------------------------------------------------------------------------------------------------------------------

    this._fInit = function (options) {
        // TODO:: _options extend options
        _options = $.extend(_options, options);

        // создаём компонент "вкладки"
        _tabs = new Tabs();

        // находим заголовок
        _$title = $('.building_info').find('h3');

    };

    this._parseData = function () {
        console.log('<BuildingInfo._parseData>');

        // установим заголовок окна
        _$title.text(_cur_map_building_json["title"]);

        // обойдём этажи, построим вкладки
        for (var i = 0; i < _cur_map_building_json['floors'].length; i++) {

            var ifloor_data = _cur_map_building_json['floors'][i];
            var ifloor_id = ifloor_data["id"]; // NOTE:fidfid
            //console.log(ifloor_data); // => see C80MapFloors::Floor.as_json

            // создадим вкладку
            _tabs.addTab(ifloor_data["title"], ifloor_id, this._onTabShow);

            // свяжем её по id с даными
            _tabs_floors_data[ifloor_id] = {
                tab_data: ifloor_data
            }
        }
    };

    this._updateView = function () {

    };

    // очистим данные и вью
    this._removeAll = function () {

        _$title.text('');
        _tabs_floors_data = {};
        _tabs.removeAll();
    };


    this._fInit(options);
}
{'fraction_non_alphanumeric': 0.21602091020910208, 'fraction_numerical': 0.0018450184501845018, 'mean_word_length': 1.5691153238546602, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '134760', 'n_tokens_mistral': 2049, 'n_tokens_neox': 2086, 'n_words': 366}