package de.ivu.elect.presentation.wahl;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlterminProperties;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.presentation.replikation.ReplikationPresentationStatus;

/**
 *  on 25.07.2017.
 */
@Specializes
public class WasWahlEditView extends CommonWahlEditView {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient ReplikationPresentationStatus replikationPresentationStatus;

  @Override
  public void addProperties(FormBuilder formBuilder, Wahl wahl) {
    super.addProperties(formBuilder, wahl);
    if (isSlave()) {
      formBuilder.globalReadonly();
    }
  }

  // WASDE-1153
  private boolean isSlave() {
    return replikationPresentationStatus.isSlave();
  }

  @Override
  public boolean isBtnSaveRendered() {
    return super.isBtnSaveRendered() && !isSlave();
  }

  @Override
  public WahlterminProperties.WahldatumProperty getWahlterminWahldatumProperty() {
    WahlterminProperties.WahldatumProperty wahlterminWahldatumProperty = super.getWahlterminWahldatumProperty();
    wahlterminWahldatumProperty.setReadonly(isSlave());
    return wahlterminWahldatumProperty;
  }

  @Override
  public WahlterminProperties.NummerProperty getWahlterminWahlnummerProperty() {
    WahlterminProperties.NummerProperty wahlterminWahlnummerProperty = super.getWahlterminWahlnummerProperty();
    wahlterminWahlnummerProperty.setReadonly(isSlave());
    return wahlterminWahlnummerProperty;
  }
}
