public void addStationContainer(CStationContainer container) {
    if (container == null) throw new NullPointerException("container is null");
    if (containers.contains(container))
      throw new IllegalArgumentException("container already registered");

    for (CStationContainer child : containers) {
      if (child.getUniqueId().equals(container.getUniqueId())) {
        throw new IllegalArgumentException(
            "A container with unique id '" + container.getUniqueId() + "' is already registered");
      }
    }

    containers.add(container);

    try {
      settingDefaultStations = container == content;

      for (int i = 0, n = container.getStationCount(); i < n; i++) {
        control.addStation(container.getStation(i), true);
      }
    } finally {
      settingDefaultStations = false;
    }
    container.addStationContainerListener(containerListener);
  }