/**
   * Restore all the properties to their initial default. This may not change properties that are
   * currently active or that are read at initialization. These changes will take effect at the next
   * restart.
   */
  public static synchronized void resetDefaultProperties() {
    BoardSetup setup = BoardSetup.getSetup();

    setup.resetProperties();

    for (Map.Entry<String, BoardProperties> ent : loaded_properties.entrySet()) {
      String id = ent.getKey();
      if (id.equals("System")) continue;
      BoardProperties bp = ent.getValue();
      bp.clear();
      bp.loadProperties(id);
    }
  }
  /** ***************************************************************************** */
  private void loadProperties(String id) {
    prop_file = loadIfPossible(id);
    loadIfPossible(id + "." + BOARD_ARCH);

    if (id.equals("System") || id.equals("Board"))
      return; // these need to be inited before we can use them

    String s = BoardSetup.getSetup().getLanguage().toString().toLowerCase();
    loadIfPossible(id + "." + s);
    loadIfPossible(id + "." + s + "." + BOARD_ARCH);

    String cnm = BoardSetup.getSetup().getCourseName();
    if (cnm != null) {
      loadIfPossible(id + "." + cnm);
    }
    String anm = BoardSetup.getSetup().getCourseAssignment();
    if (anm != null) {
      loadIfPossible(id + "." + cnm + "." + anm);
      loadIfPossible(id + "." + cnm + "@" + anm);
    }
  }