/** DOCUMENT ME! */
  private void cleanup() {
    final CidsBean pointBean = getCidsBean();
    if (pointBean != null) {
      pointBean.removePropertyChangeListener(getCidsBeanListener());
    }

    if (isEditable()) {
      if (pointBean != null) {
        // altes feature entfernen
        final LinearReferencedPointFeature oldFeature =
            FEATURE_REGISTRY.removeStationFeature(pointBean);
        if (oldFeature != null) {
          // listener auf altem Feature entfernen
          oldFeature.removeListener(getFeatureListener());
        }

        FEATURE_REGISTRY.removeListener(pointBean, getMapRegistryListener());
      }

      final Feature badGeomFeature = getBadGeomFeature();
      if (badGeomFeature != null) {
        // badgeomfeature entfernen.
        MAPPING_COMPONENT.getFeatureCollection().removeFeature(badGeomFeature);
        setBadGeomFeature(null);
      }
    }

    setInited(false);

    if (isEditable()) {
      // auf startzustand setzen => hinzufügenpanel anzeigen
      showCard(Card.add);
    } else {
      setErrorMsg("keine Station zugewiesen");
      showCard(Card.error);
    }
  }