!7

sclass UsersMailAddress extends DynModule {
  S address;
  bool allowedToLookAtMails;

  JComponent visualize() {
    ret jSection("Your E-Mail Address",
      centerAndSouth(centerBoldLabel(jLiveValueLabel(dm_fieldLiveValue(this, address))),
      jcenteredbuttons("Change...", r {
        final JTextField tf = jtextfield(address);
        showFormTitled("Set your e-mail address",
          "Address", tf, disableButtonWhileCalcing(func -> bool {
            S s = getTextTrim(tf);
            if (empty(s) || isValidEmailAddress(s)) {
              setField(address := s);
              true;
            }
            infoBox("Not a valid mail address");
            false;
          }));
      ));
  }
}