Source: managers/IncidenteEnterManager.js

/**
 * @ngdoc managers
 * @name IncidenteEnterManager
 * @module s4c.managers.IncidenteEnterManager
 *
 * @description
 * `IncidenteEnterManager` Componente para comunicação entre uma página html qualquer e o controller da diretiva
 * 
 * 
 */
(function () {
    'use strict';

    function IncidenteEnterManager(MainState, CamadasService, MapaService) {
        var service = {
            ativo: false,
            latlng: null,
            
            /**
             * @method abrir
             * @param {*} e 
             */
            abrir: function (e) {
                service.latlng = e.latlng;
                service.ativo = true;
                var incidenteEnter = MainState.getDirective('incidenteEnter');
                incidenteEnter.abrir(service.latlng);
                incidenteEnter.updateNow();
            },

            /**
             * @method abrirAlfinete
             * @param {*} marker 
             * @param {*} chavePoi 
             */
            abrirAlfinete: function (marker, chavePoi) {
                service.latlng = marker.getLatLng();
                service.ativo = true;
                var incidenteEnter = MainState.getDirective('incidenteEnter');
                incidenteEnter.abrirAlfinete(marker, chavePoi);
            },
            
            /**
             * @method abrirCentro
             */
            abrirCentro: function () {
                MapaService.obterPontoCentral()
                    .then(function (center) {
                        this.abrir({
                            latlng: center
                        });
                    }.bind(this));
            },

            /**
             * @method fechar
             */
            fechar: function () {
                service.ativo = false;
                var incidenteEnter = MainState.getDirective('incidenteEnter');
                incidenteEnter.onClose();
            }
        };

        return service;
    }

    IncidenteEnterManager.$inject = [
        'MainState',
        'CamadasService',
        'MapaService'
    ];

    angular.module('s4c.managers')
        .service('IncidenteEnterManager', IncidenteEnterManager);
})();