/**
  * Configures the json builder in order to render an info window.
  *
  * @param \Ivory\GoogleMap\Helper\Overlays\InfoWinfow $infoWindow     The info window.
  * @param boolean                                     $renderPosition TRUE if the position is rendered else FALSE.
  */
 protected function doRender(InfoWindow $infoWindow, $renderPosition)
 {
     $this->jsonBuilder->reset();
     if ($renderPosition) {
         $this->jsonBuilder->setValue('[position]', $infoWindow->getPosition()->getJavascriptVariable(), false);
     }
     if ($infoWindow->hasPixelOffset()) {
         $this->jsonBuilder->setValue('[pixelOffset]', $infoWindow->getPixelOffset()->getJavascriptVariable(), false);
     }
     $this->jsonBuilder->setValue('[content]', $infoWindow->getContent())->setValues($infoWindow->getOptions());
 }
 public function testRender()
 {
     $infoWindow = new InfoWindow();
     $infoWindow->setPosition(1.1, 2.1, true);
     $infoWindow->getPosition()->setJavascriptVariable('position');
     $infoWindow->setPixelOffset(3, 4, 'px', 'px');
     $infoWindow->getPixelOffset()->setJavascriptVariable('pixel_offset');
     $infoWindow->setContent('content');
     $infoWindow->setOpen(true);
     $infoWindow->setOptions(array('option1' => 'value1', 'option2' => 'value2'));
     $expected = $infoWindow->getJavascriptVariable() . ' = new InfoBox({' . '"position":position,' . '"pixelOffset":pixel_offset,' . '"content":"content",' . '"option1":"value1",' . '"option2":"value2"' . '});' . PHP_EOL;
     $this->assertSame($expected, $this->infoBoxHelper->render($infoWindow, true));
 }
Ejemplo n.º 3
0
    public function testRenderJsContainerSizes()
    {
        $map = new Map();
        $map->setJavascriptVariable('map');
        $map->addInfoWindow($mapInfoWindow = new InfoWindow());
        $mapInfoWindow->setPixelOffset(1, 2);
        $mapInfoWindow->getPixelOffset()->setJavascriptVariable('map_info_winfow_pixel_offset');
        $map->addMarker($marker = new Marker());
        $marker->setInfoWindow($markerInfoWindow = new InfoWindow());
        $markerInfoWindow->setPixelOffset(1, 2);
        $markerInfoWindow->getPixelOffset()->setJavascriptVariable('marker_info_window_pixel_offset');
        $marker->setIcon('url');
        $marker->getIcon()->setSize(1, 2);
        $marker->getIcon()->getSize()->setJavascriptVariable('marker_icon_size');
        $marker->getIcon()->setScaledSize(1, 2);
        $marker->getIcon()->getScaledSize()->setJavascriptVariable('marker_icon_scaled_size');
        $marker->setShadow('url');
        $marker->getShadow()->setSize(1, 2);
        $marker->getShadow()->getSize()->setJavascriptVariable('marker_shadow_size');
        $marker->getShadow()->setScaledSize(1, 2);
        $marker->getShadow()->getScaledSize()->setJavascriptVariable('marker_shadow_scaled_size');
        $expected = <<<EOF
map_container.sizes.map_info_winfow_pixel_offset = map_info_winfow_pixel_offset = new google.maps.Size(1, 2);
map_container.sizes.marker_info_window_pixel_offset = marker_info_window_pixel_offset = new google.maps.Size(1, 2);
map_container.sizes.marker_icon_size = marker_icon_size = new google.maps.Size(1, 2);
map_container.sizes.marker_icon_scaled_size = marker_icon_scaled_size = new google.maps.Size(1, 2);
map_container.sizes.marker_shadow_size = marker_shadow_size = new google.maps.Size(1, 2);
map_container.sizes.marker_shadow_scaled_size = marker_shadow_scaled_size = new google.maps.Size(1, 2);

EOF;
        $this->assertSame($expected, $this->mapHelper->renderJsContainerSizes($map));
    }
Ejemplo n.º 4
0
 public function testPixelOffsetWithNullValue()
 {
     $this->infoWindow->setPixelOffset($this->getMock('Ivory\\GoogleMap\\Base\\Size'));
     $this->infoWindow->setPixelOffset(null);
     $this->assertNull($this->infoWindow->getPixelOffset());
 }