/** Configures the widgets that manage relation fields */
  private void setRelationFields() {

    /* field  CDT */
    cDTDataProvider = new CentreDiagTraitDataProvider(requestFactory);
    if (hideButtons) // in popup, relation buttons hidden
    CDT =
          new ImogSingleRelationBox<CentreDiagTraitProxy>(
              cDTDataProvider, EpicamRenderer.get(), true);
    else { // in wrapper panel, relation buttons enabled
      if (AccessManager.canCreateCentreDiagTrait() && AccessManager.canEditCentreDiagTrait())
        CDT =
            new ImogSingleRelationBox<CentreDiagTraitProxy>(cDTDataProvider, EpicamRenderer.get());
      else
        CDT =
            new ImogSingleRelationBox<CentreDiagTraitProxy>(
                false, cDTDataProvider, EpicamRenderer.get());
    }

    /* field  laboratoireReference */
    laboratoireReferenceDataProvider = new LaboratoireReferenceDataProvider(requestFactory);
    if (hideButtons) // in popup, relation buttons hidden
    laboratoireReference =
          new ImogSingleRelationBox<LaboratoireReferenceProxy>(
              laboratoireReferenceDataProvider, EpicamRenderer.get(), true);
    else { // in wrapper panel, relation buttons enabled
      if (AccessManager.canCreateLaboratoireReference()
          && AccessManager.canEditLaboratoireReference())
        laboratoireReference =
            new ImogSingleRelationBox<LaboratoireReferenceProxy>(
                laboratoireReferenceDataProvider, EpicamRenderer.get());
      else
        laboratoireReference =
            new ImogSingleRelationBox<LaboratoireReferenceProxy>(
                false, laboratoireReferenceDataProvider, EpicamRenderer.get());
    }

    /* field  casTb */
    casTbDataProvider = new CasTuberculoseDataProvider(requestFactory);
    if (hideButtons) // in popup, relation buttons hidden
    casTb =
          new ImogSingleRelationBox<CasTuberculoseProxy>(
              casTbDataProvider, EpicamRenderer.get(), true);
    else { // in wrapper panel, relation buttons enabled
      if (AccessManager.canCreateCasTuberculose() && AccessManager.canEditCasTuberculose())
        casTb =
            new ImogSingleRelationBox<CasTuberculoseProxy>(casTbDataProvider, EpicamRenderer.get());
      else
        casTb =
            new ImogSingleRelationBox<CasTuberculoseProxy>(
                false, casTbDataProvider, EpicamRenderer.get());
    }
  }
  /**
   * Display the current instance of LaboratoireReference in editor
   *
   * @param entity the LaboratoireReferenceProxy to be displayed
   */
  private void viewLaboratoireReference(LaboratoireReferenceProxy entity) {

    /* display instance information */
    setTitle(
        NLS.constants().laboratoireReference_name()
            + ": "
            + EpicamRenderer.get().getDisplayValue(entity));
    setMetaData((ImogBeanProxy) entity);

    /* push the instance to the editor in view mode */
    request = requestFactory.laboratoireReferenceRequest();
    current = request.edit(entity);
    if (current.getNom() == null) {
      LocalizedTextProxy newNom = request.create(LocalizedTextProxy.class);
      current.setNom(newNom);
    }
    if (current.getDescription() == null) {
      LocalizedTextProxy newDescription = request.create(LocalizedTextProxy.class);
      current.setDescription(newDescription);
    }
    if (current.getCoordonnees() == null) {
      GeoFieldProxy newCoordonnees = request.create(GeoFieldProxy.class);
      current.setCoordonnees(newCoordonnees);
    }

    editor.setEditedValue(current);

    /* set request context for list editor operations */
    editor.setRequestContextForListEditors(request);

    editorDriver.edit(current, request);
    editor.setEdited(false);

    /* update field widgets in editor */
    editor.computeVisibility(null, true);

    /* display edit button */
    if (AccessManager.canEditLaboratoireReference()) setModifiable(true);

    showGlassPanel = false;
    EpicamEntryPoint.GP.hide();
  }