/** Save the ProductionSite to DB. */
  protected void saveForm() {
    Log.d(TAG, "Save form.");
    boolean savedOK = false;
    if (updating) {
      getOptionalFields();
      savedOK = productionSiteDB.saveProductionSite(site);
      Log.d(TAG, "Updated the ProductionSite " + site.toString() + ": " + savedOK);
    } else { // save
      savedOK = verifyForm();
      Log.d(TAG, "Verified the form: " + savedOK);
      if (savedOK) {
        createProductionSiteFromForm();
        Log.d(TAG, "Has created site from form: " + site.get_id() + ", " + site.toString());
        savedOK = productionSiteDB.saveProductionSite(site);
      }
    }

    if (savedOK) {
      Intent intent = new Intent(this, MainActivity.class);
      intent.putExtra(MainActivity.EXTRA_SITE_UPDATED, site.getTitle());
      startActivity(intent);
    } else {
      String text = getString(R.string.toast_could_not_save) + " " + site.getTitle();
      Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
    }
  }
  /** Fill fields with intent-extras, disable input on ProductionSiteNr. */
  private void setupUpdate() {
    updating = true;
    Intent intent = getIntent();

    String siteNrStr = intent.getStringExtra(EXTRA_PRODUCTION_SITE);
    ProductionSiteNr siteNr = new ProductionSiteNr(siteNrStr);

    if (siteNr != null) {
      site = productionSiteDB.getProductionSite(siteNr);
    }

    if (site == null) {
      String text = getString(R.string.toast_could_not_fetch) + " " + siteNrStr;
      Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
      return;
    }

    Log.d(TAG, "site id: " + site.get_id());
    etOrg.setText(site.getSiteNr().getOrg());
    etPpnr.setText(site.getSiteNr().getPpnr());
    // disable input
    Utils.disableEntry(etOrg);
    Utils.disableEntry(etPpnr);

    if (site.hasName()) etName.setText(site.getName());
    if (site.hasAddress()) etAddress.setText(site.getAddress());
    if (site.hasPostnr()) etPostnr.setText(site.getPostnr());
    if (site.hasPostaddress()) etPostaddress.setText(site.getPostaddress());
    if (site.hasCoordinates()) etCoord.setText(site.getCoordinates());
    if (site.hasImageUriStr()) {
      imageUri = Uri.parse(site.getImageUriStr());
      Log.d(TAG, "loaded URI: " + imageUri);
      setThumbnail();
    } else {
      Log.d(TAG, "no loaded URI");
    }
  }