code: public String evalLabel(final UIValue _uiValue,
                              final Instance _fieldInst)
          throws CacheReloadException
      {
          final String key;
          if (getField().getLabel() == null) {
              if (_uiValue != null && _uiValue.getAttribute() != null) {
                  if (_fieldInst != null && _fieldInst.isValid()
                                  && _fieldInst.getType()
                                                  .getAttribute(_uiValue.getAttribute().getName()) != null) {
                      key = _fieldInst.getType().getAttribute(_uiValue.getAttribute().getName()).getLabelKey();
                  } else if (_uiValue.getInstance() != null
                                  && _uiValue.getInstance().getType()
                                                  .getAttribute(_uiValue.getAttribute().getName()) != null) {
                      key = _uiValue.getInstance().getType().getAttribute(_uiValue.getAttribute().getName())
                                      .getLabelKey();
                  } else {
                      key = _uiValue.getAttribute().getLabelKey();
                  }
              } else {
                  key = FieldConfiguration.class.getName() + ".NoLabel";
              }
          } else {
              key = getField().getLabel();
          }
          this.label = DBProperties.getProperty(key);
          return this.label;
      }
docs: Evaluate the label.
  
  @param _uiValue the _ui value
  @param _fieldInst the _field inst
  @return the label
  @throws CacheReloadException the cache reload exception