/** * 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)); }
public function testRenderJavascriptsWithInfoBox() { $this->mapHelper->setInfoWindowHelper(new InfoBoxHelper()); $this->mapHelper->setExtensionHelper('info_box', new InfoBoxExtensionHelper()); $map = new Map(); $map->setJavascriptVariable('map'); $map->getCenter()->setJavascriptVariable('map_center'); $map->addInfoWindow($infoBox = new InfoWindow()); $infoBox->setJavascriptVariable('map_info_box'); $infoBox->setPosition(1, 2, true); $infoBox->getPosition()->setJavascriptVariable('map_info_box_position'); $expected = <<<EOF <script type="text/javascript"> function load_ivory_google_map_api () { google.load("maps", "3", {"other_params":"language=en&sensor=false"}); }; </script> <script type="text/javascript" src="//www.google.com/jsapi?callback=load_ivory_google_map_api"></script> <script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox_packed.js"></script> <script type="text/javascript"> map_container = {"map":null,"coordinates":{},"bounds":{},"points":{},"sizes":{},"circles":{},"encoded_polylines":{},"ground_overlays":{},"polygons":{},"polylines":{},"rectangles":{},"info_windows":{},"marker_images":{},"marker_shapes":{},"markers":{},"marker_cluster":null,"kml_layers":{},"event_manager":{"dom_events":{},"dom_events_once":{},"events":{},"events_once":{}},"closable_info_windows":{},"functions":{"to_array":function (object) { var array = []; for (var key in object) { array.push(object[key]); } return array; }}}; map_container.coordinates.map_center = map_center = new google.maps.LatLng(0, 0, true); map_container.coordinates.map_info_box_position = map_info_box_position = new google.maps.LatLng(1, 2, true); map_container.map = map = new google.maps.Map(document.getElementById("map_canvas"), {"mapTypeId":google.maps.MapTypeId.ROADMAP,"zoom":3}); map_container.info_windows.map_info_box = map_info_box = new InfoBox({"position":map_info_box_position,"content":"<p>Default content<\\/p>"}); map.setCenter(map_center); </script> EOF; $this->assertSame($expected, $this->mapHelper->renderJavascripts($map)); }
public function testPositionWithNullValue() { $this->infoWindow->setPosition($this->getMock('Ivory\\GoogleMap\\Base\\Coordinate')); $this->infoWindow->setPosition(null); $this->assertNull($this->infoWindow->getPosition()); }