Beispiel #1
0
 /**
  * Encode a marker.
  *
  * @param Popup   $popup   The popup.
  * @param Encoder $encoder The encoder.
  *
  * @return bool
  */
 public function encodePopup(Popup $popup, Encoder $encoder)
 {
     $source = $popup->getSource();
     $buffer = sprintf('%s = L.marker(%s%s);', $encoder->encodeReference($popup), $encoder->encodeArray($popup->getOptions()), $source ? ', ' . $encoder->encodeReference($source) : '');
     $buffer .= $this->encodeMethodCalls($popup->getMethodCalls(), $encoder);
     return $buffer;
 }
Beispiel #2
0
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $name = $this->encodeName();
     $buffer = sprintf('%s = L.tileLayer.provider(\'' . $name . '\', %s)' . $encoder->close($flags), $encoder->encodeReference($this), $encoder->encodeValue(array('app_id' => $this->getAppId(), 'app_code' => $this->getAppCode())));
     $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
Beispiel #3
0
 /**
  * Compile a map.
  *
  * @param Map     $map     The map.
  * @param Encoder $encoder The builder.
  *
  * @return void
  */
 public function encodeMap(Map $map, Encoder $encoder)
 {
     $output = $encoder->getOutput();
     $hash = spl_object_hash($map);
     if (!isset($this->initialized[$hash])) {
         $output->prepend(sprintf('%s = L.map(%s);', $encoder->encodeReference($map), $encoder->encodeArguments(array($map->getElementId(), $map->getOptions()))));
         $this->initialized[$hash] = true;
     } else {
         foreach ($map->getControls() as $control) {
             $encoder->encodeReference($control);
         }
         foreach ($map->getLayers() as $layer) {
             $encoder->encodeReference($layer);
         }
         $output->append($this->encodeMethodCalls($map->getMethodCalls(), $encoder));
     }
 }
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $buffer = sprintf('%s = new L.OverPassLayer(%s, %s)%s', $encoder->encodeReference($this), $encoder->encodeArray($this->getOptions(), JSON_FORCE_OBJECT), $encoder->encodeArray($this->getMinZoomIndicatorOptions()->getOptions(), JSON_FORCE_OBJECT), $encoder->close($flags));
     $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     return $encoder->encodeArguments($this->getArguments(), $flags);
 }
Beispiel #6
0
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = true)
 {
     $buffer = sprintf('%s = L.geoJson.ajax(%s)%s', $encoder->encodeReference($this), $encoder->encodeArguments(array($this->url, $this->getOptions())), $encoder->close($flags));
     foreach ($this->getLayers() as $layer) {
         $buffer .= "\n";
         $buffer .= sprintf('%s.addLayer(%s);', $encoder->encodeReference($this), $encoder->encodeReference($layer));
     }
     return $buffer;
 }
Beispiel #7
0
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $template = '%s(%s, %s, %s)%s';
     $buffer = '';
     if ($this->getCustomLayer()) {
         $ref = $encoder->encodeReference($this->getCustomLayer());
     } else {
         $template = $encoder->encodeReference($this) . ' = ' . $template;
         $ref = 'null';
     }
     $buffer .= sprintf($template, strtolower(static::getType()), $encoder->encodeValue($this->getUrl()), $encoder->encodeArray($this->getOptions(), JSON_FORCE_OBJECT), $ref, $encoder->close($flags));
     $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     return sprintf('%s.%s', $encoder->encodeReference($this->object), parent::encode($encoder, $flags));
 }
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     return $this->expression . $encoder->close($flags);
 }
Beispiel #10
0
 /**
  * Encode the div icon.
  *
  * @param DivIcon $icon    The div icon.
  * @param Encoder $encoder The encoder.
  *
  * @return string
  */
 public function encodeDivIcon(DivIcon $icon, Encoder $encoder)
 {
     return sprintf('%s = L.DivIcon(%s);', $encoder->encodeReference($icon), $encoder->encodeArguments(array($icon->getOptions())));
 }
Beispiel #11
0
 /**
  * Get layer information correctly encoded.
  *
  * @param Layer[] $layers  The layers.
  * @param Encoder $encoder The encoder.
  *
  * @return array
  */
 private function encodeLayersInformation($layers, Encoder $encoder)
 {
     $layers = array_map(function ($layer) use($encoder) {
         return $encoder->encodeReference($layer);
     }, $layers);
     return '[' . implode(', ', $layers) . ']';
 }
Beispiel #12
0
 /**
  * Get references of given values.
  *
  * @param array   $values  Set of values.
  * @param Encoder $encoder The encoder.
  *
  * @return array
  */
 protected function getReferences(array $values, Encoder $encoder)
 {
     return array_map(function ($value) use($encoder) {
         return $encoder->encodeReference($value);
     }, $values);
 }
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     return sprintf('function(%s) { %s }%s', implode(', ', $this->argumentNames), implode("\n", $this->getLines()), $encoder->close($flags));
 }
Beispiel #14
0
 /**
  * Encode a tile layer.
  *
  * @param TileLayer $layer   The layer.
  * @param Encoder   $builder The builder.
  *
  * @return bool
  */
 public function encodeTileLayer(TileLayer $layer, Encoder $builder)
 {
     return sprintf('%s = L.tileLayer(%s);', $builder->encodeReference($layer), $builder->encodeArguments(array($layer->getUrl(), $layer->getOptions())));
 }
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $ref = $encoder->encodeReference($this);
     $buffer = sprintf('%s = new L.MarkerClusterGroup(%s)%s', $ref, $encoder->encodeArray($this->getOptions()), $encoder->close($flags));
     foreach ($this->getLayers() as $layer) {
         $buffer .= "\n" . sprintf('%s.addLayer(%s);', $ref, $encoder->encodeReference($layer));
     }
     $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
Beispiel #16
0
 /**
  * Encode an control.
  *
  * @param string          $name    Control name.
  * @param AbstractControl $control The control object.
  * @param Encoder         $encoder Javascript encoder.
  * @param null            $flags   Encoder flags.
  *
  * @return string
  */
 protected function encodeSimpleControl($name, AbstractControl $control, Encoder $encoder, $flags = null)
 {
     $buffer = sprintf('%s = L.%s(%s)%s', $encoder->encodeReference($control), $name, $encoder->encodeValue($control->getOptions()), $encoder->close($flags));
     $buffer .= $this->encodeMethodCalls($control->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
Beispiel #17
0
 /**
  * {@inheritdoc}
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $name = $this->encodeName();
     $buffer = sprintf('%s = L.tileLayer.provider(\'' . $name . '\')' . $encoder->close($flags), $encoder->encodeReference($this));
     $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
 /**
  * @inheritDoc
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $buffer = sprintf('%s = L.ExtraMarkers.icon(%s)%s', $encoder->encodeReference($this), $encoder->encodeArray($this->getOptions(), JSON_FORCE_OBJECT), $encoder->close($flags));
     $buffer .= $this->encodeMethodCalls($this->getMethodCalls(), $encoder, $flags);
     return $buffer;
 }
Beispiel #19
0
 /**
  * Encode a circle.
  * 
  * @param string  $type    The circle type.
  * @param Circle  $circle  The circle object.
  * @param Encoder $builder The builder.
  *
  * @return array
  */
 private function doCircleEncode($type, Circle $circle, Encoder $builder)
 {
     return sprintf('%s = L.%s(%s);', $builder->encodeReference($circle), $type, $builder->encodeArguments(array($circle->getLatLng(), $circle, $circle->getOptions())));
 }
Beispiel #20
0
 /**
  * Get layer information, so that label is used.
  *
  * @param Layer[] $layers  The layers.
  * @param Encoder $encoder The encoder.
  *
  * @return array
  */
 private function encodeLayersInformation($layers, Encoder $encoder)
 {
     $prepared = '';
     foreach ($layers as $layer) {
         if ($prepared) {
             $prepared .= ', ';
         }
         $prepared .= sprintf('%s: %s', $encoder->encodeValue($layer->getLabel()), $encoder->encodeReference($layer));
     }
     return '{' . $prepared . '}';
 }
 /**
  * Encode the javascript representation of the object.
  *
  * @param Encoder  $encoder The javascript encoder.
  * @param int|null $flags   The encoding flags.
  *
  * @return string
  */
 public function encode(Encoder $encoder, $flags = null)
 {
     $options = get_object_vars($this);
     unset($options['formId']);
     $options = $this->removeEmptyOptions($options);
     if (!empty($options['fields'])) {
         foreach ($options['fields'] as $name => $value) {
             /** @var Field $value */
             $options['fields'][$name] = $value->getOptions();
         }
     }
     return sprintf('$(\'#%s\').formValidation(%s);', $this->getFormId(), $encoder->encodeArray($options, Flags::add(JSON_FORCE_OBJECT, $flags)));
 }