Example #1
0
  /**
   * Replace a layer identified by its name, by another.
   *
   * @param layerName the name of the layer to be replaced
   * @param layer the new layer
   */
  public void replaceLayer(String layerName, FLayer layer) throws LoadLayerException {
    FLayer lyr;
    FLayer parent;
    for (int i = 0; i < layers.size(); i++) {
      lyr = ((FLayer) layers.get(i));

      if (lyr.getName().compareToIgnoreCase(layerName) == 0) {
        parent = lyr.getParentLayer();
        removeLayer(i);
        if (parent != null) {
          // Notificamos a la capa que va a ser añadida
          if (layer instanceof FLyrDefault) {
            ((FLyrDefault) layer).wakeUp();
          }
        }

        if (layer instanceof FLayers) {
          FLayers layers = (FLayers) layer;
          fmap.addAsCollectionListener(layers);
        }
        callLayerAdding(LayerCollectionEvent.createLayerAddingEvent(layer));

        layers.add(i, layer);
        layer.setParentLayer(this);

        callLayerAdded(LayerCollectionEvent.createLayerAddedEvent(layer));
        break;
      }
    }
  }
Example #2
0
  /*
   * (non-Javadoc)
   * @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#setCoordTrans(org.cresques.cts.ICoordTrans)
   */
  public void setCoordTrans(ICoordTrans ct) {
    super.setCoordTrans(ct);

    for (Iterator iter = layers.iterator(); iter.hasNext(); ) {
      FLayer layer = (FLayer) iter.next();
      layer.setCoordTrans(ct);
    }
  }
Example #3
0
  /**
   * Inserts layers and properties to this collection of layers.
   *
   * <p>This root node has the same properties that return <code>FlyrDefault#getXMLEntity()</code>
   * adding:
   *
   * <ul>
   *   <li><i>numLayers</i> : number of first-level layers of this collection
   *   <li><i>LayerNames</i> : an array list with the name of the first-level layers of this
   *       collection <code>FLayer.getXMLEntity()</code>
   * </ul>
   *
   * @see FLyrDefault#setXMLEntity()
   * @see FLyrDefault#getXMLEntity()
   * @see CopyOfFLayers#addLayerFromXML(XMLEntity, String)
   * @param xml an <code>XMLEntity</code> with the information
   * @throws XMLException if there is an error setting the object.
   */
  public void setXMLEntity(XMLEntity xml) throws XMLException {
    super.setXMLEntity(xml);
    // LoadLayerException loadLayerException=new LoadLayerException();

    String[] s = xml.getStringArrayProperty("LayerNames");
    // try {
    fmap.clearErrors();
    int numLayers = xml.getIntProperty("numLayers");
    Iterator iter = xml.findChildren("tagName", "layer");
    XMLEntity xmlLayer;
    while (iter.hasNext()) {
      xmlLayer = (XMLEntity) iter.next();
      try {
        this.addLayerFromXML(xmlLayer, null);
      } catch (LoadLayerException e) {
        throw new XMLLayerException(getName(), e);
      }
    }
    if (numLayers != this.layers.size()) {
      logger.warn(this.getName() + ": layer count no match");
    }
  }
Example #4
0
  /**
   * Adds a layer in an specified position in this node.
   *
   * @param layer a layer
   */
  public void addLayer(int pos, FLayer layer) {
    try {
      // Notificamos a la capa que va a ser añadida
      if (layer instanceof FLyrDefault) {
        ((FLyrDefault) layer).wakeUp();
      }

      if (layer instanceof FLayers) {
        FLayers layers = (FLayers) layer;
        fmap.addAsCollectionListener(layers);
      }
      callLayerAdding(LayerCollectionEvent.createLayerAddingEvent(layer));

      doAddLayer(pos, layer);

      callLayerAdded(LayerCollectionEvent.createLayerAddedEvent(layer));
    } catch (CancelationException e) {
      logger.warn(e.getMessage());
    } catch (LoadLayerException e) {
      layer.setAvailable(false);
      layer.addError(e);
    }
  }
Example #5
0
 /*
  * (non-Javadoc)
  * @see com.iver.cit.gvsig.fmap.layers.FLyrDefault#setActive(boolean)
  */
 public void setActive(boolean b) {
   super.setActive(b);
   for (int i = 0; i < layers.size(); i++) {
     ((FLayer) layers.get(i)).setActive(b);
   }
 }