Пример #1
0
  /**
   * Befüllt eine Kachel aus einem XML-Element
   *
   * @param tileData
   * @param xmlTile
   */
  protected void fillTileDataFromElement(TileData tileData, Element xmlTile) {
    // ID
    tileData.setId(xmlTile.getAttribute("id"));
    // Strecken
    ArrayList<RouteData> tileRoutes = new ArrayList<RouteData>();
    tileData.setRoutes(tileRoutes);

    // AmpelData
    tileData.setTrafficlight(getTrafficlight());

    NodeList props = xmlTile.getChildNodes();
    for (int j = 0; j < props.getLength(); j++) {
      Element prop = (Element) props.item(j);
      if (prop.getNodeName().equals("source")) {
        // Source
        tileData.setSource(prop.getAttribute("file"));
      } else if (prop.getNodeName().equals("name")) {
        // Name
        tileData.setName(prop.getTextContent());
      } else if (prop.getNodeName().equals("description")) {
        // description
        tileData.setDescription(prop.getTextContent());
      } else if (prop.getNodeName().equals("straight") || prop.getNodeName().equals("curve")) {
        // Strecke
        RouteData tileRoute;
        if (prop.getNodeName().equals("curve")) {
          tileRoute = new CurveData();
        } else {
          tileRoute = new StraightData();
        }
        NodeList locations = prop.getChildNodes();
        for (int k = 0; k < locations.getLength(); k++) {
          Element location = (Element) locations.item(k);
          if (location.getNodeName().equals("start")) {
            tileRoute.setStart(locationDataFromString(location));

          } else if (location.getNodeName().equals("end")) {
            tileRoute.setEnd(locationDataFromString(location));

          } else if (location.getNodeName().equals("corner")) {
            ((CurveData) tileRoute).setCorner(locationDataFromString(location));
          }
        }
        tileRoutes.add(tileRoute);
      }
    }
  }