@Override
  protected PropertyGroupWrapper createVersionDataGroup() {
    PropertyGroupWrapper versionDataGroup = super.createVersionDataGroup();

    VersionUtility.addMDComponentModelGroup(getFormContext(), versionDataGroup);

    return versionDataGroup;
  }
예제 #2
0
  @Override
  public EFieldType getFieldType() {
    if (m_fieldType == null && isField()) {
      String fieldTypeName = getFieldTypeName();
      String businessType = getBusinessType();

      // For local refs to a date, the fieldTypeName becomes "D" and businessType is blank
      //
      if ("date".equalsIgnoreCase(fieldTypeName)
          || "D".equalsIgnoreCase(businessType)
          || "DDMM".equalsIgnoreCase(businessType)
          || "FOREXD".equalsIgnoreCase(businessType)
          || "MATLMM".equalsIgnoreCase(businessType)
          || "NDDATE".equalsIgnoreCase(businessType)
          || "D".equalsIgnoreCase(fieldTypeName)) {
        m_fieldType = EFieldType.DATE;
      } else if ("datetime".equalsIgnoreCase(fieldTypeName)
          || "RELTIME".equalsIgnoreCase(businessType)) {
        m_fieldType = EFieldType.DATE_TIME;
      } else if ("integer".equalsIgnoreCase(fieldTypeName)) {
        // Fix for 1134 - Treat integer type as text as they could have been decimal anyway, but the
        // introspection doesn't say so at the moment,
        // so for practical reasons, treat as text and let T24 handle it.
        //
        // NB: Also in current browser, apparently you can say "1T" to indicate 1 thousand!
        //
        m_fieldType = EFieldType.STRING; // EFieldType.INTEGER;
      } else if ("double".equalsIgnoreCase(fieldTypeName)) {
        m_fieldType = EFieldType.DOUBLE;
      } else if (("FQU".equals(businessType) || "FQO".equals(businessType))) {
        // Check for frequency BEFORE string as its underlying type is "string"
        //
        m_fieldType = EFieldType.FREQUENCY;
      } else if (m_mdfProperty.getType() instanceof MdfEnumeration) {
        // Check enumeration after date fields, as date fields seem to be "dummy" enumerations ..
        // presumably an introspection bug?
        //
        //  e.g. CUSTOMER__DATE_OF_BIRTH : mml:string
        //         n1000=1000
        //
        m_fieldType = EFieldType.LIST;
      } else if (T24Aspect.isMultiLanguage(m_mdfProperty)) {
        m_fieldType = EFieldType.MULTI_LANGUAGE_GROUP;
      } else if (VersionUtility.isTextArea(m_mdfProperty)) {
        m_fieldType = EFieldType.TEXT_AREA_GROUP;
      } else // Assume we're dealing with strings .. will handle exceptions as they're discovered
      {
        m_fieldType = EFieldType.STRING;
      }
    }

    return m_fieldType;
  }