/** * {@inheritdoc} * * @return \Ivory\GoogleMap\Overlays\InfoWindow The info window. */ public function build() { $infoWindow = new $this->class(); if ($this->prefixJavascriptVariable !== null) { $infoWindow->setPrefixJavascriptVariable($this->prefixJavascriptVariable); } if ($this->content !== null) { $infoWindow->setContent($this->content); } if (!empty($this->position)) { $position = $this->coordinateBuilder->reset()->setLatitude($this->position[0])->setLongitude($this->position[1])->setNoWrap($this->position[2])->build(); $infoWindow->setPosition($position); } if (!empty($this->pixelOffset)) { $pixelOffset = $this->sizeBuilder->reset()->setWidth($this->pixelOffset[0])->setHeight($this->pixelOffset[1])->setWidthUnit($this->pixelOffset[2])->setHeightUnit($this->pixelOffset[3])->build(); $infoWindow->setPixelOffset($pixelOffset); } if ($this->open !== null) { $infoWindow->setOpen($this->open); } if ($this->openEvent !== null) { $infoWindow->setOpenEvent($this->openEvent); } if ($this->autoOpen !== null) { $infoWindow->setAutoOpen($this->autoOpen); } if ($this->autoClose !== null) { $infoWindow->setAutoClose($this->autoClose); } if (!empty($this->options)) { $infoWindow->setOptions($this->options); } return $infoWindow; }
/** * {@inheritdoc} * * @return \Ivory\GoogleMap\Overlays\MarkerImage The marker image. */ public function build() { $markerImage = new $this->class(); if ($this->prefixJavascriptVariable !== null) { $markerImage->setPrefixJavascriptVariable($this->prefixJavascriptVariable); } if ($this->url !== null) { $markerImage->setUrl($this->url); } if (!empty($this->anchor)) { $anchor = $this->pointBuilder->reset()->setX($this->anchor[0])->setY($this->anchor[1])->build(); $markerImage->setAnchor($anchor); } if (!empty($this->origin)) { $origin = $this->pointBuilder->reset()->setX($this->origin[0])->setY($this->origin[1])->build(); $markerImage->setOrigin($origin); } if (!empty($this->scaledSize)) { $scaledSize = $this->sizeBuilder->reset()->setWidth($this->scaledSize[0])->setHeight($this->scaledSize[1])->setWidthUnit($this->scaledSize[2])->setHeightUnit($this->scaledSize[3])->build(); $markerImage->setScaledSize($scaledSize); } if (!empty($this->size)) { $size = $this->sizeBuilder->reset()->setWidth($this->size[0])->setHeight($this->size[1])->setWidthUnit($this->size[2])->setHeightUnit($this->size[3])->build(); $markerImage->setSize($size); } return $markerImage; }
public function testMultipleBuildWithReset() { $this->sizeBuilder->setPrefixJavascriptVariable('foo')->setWidth(2)->setHeight(3)->setWidthUnit('px')->setHeightUnit('pt'); $size1 = $this->sizeBuilder->build(); $this->sizeBuilder->reset(); $size2 = $this->sizeBuilder->build(); $this->assertSame('foo', substr($size1->getJavascriptVariable(), 0, 3)); $this->assertSame(2, $size1->getWidth()); $this->assertSame(3, $size1->getHeight()); $this->assertSame('px', $size1->getWidthUnit()); $this->assertSame('pt', $size1->getHeightUnit()); $this->assertSame('size_', substr($size2->getJavascriptVariable(), 0, 5)); $this->assertSame(1, $size2->getWidth()); $this->assertSame(1, $size2->getHeight()); $this->assertNull($size2->getWidthUnit()); $this->assertNull($size2->getHeightUnit()); }