/**
   * Updates a oda result set definition.
   *
   * @param param
   */
  private void updateOrVerifyResultSetDefinition1(ResultSetDefinition setDefn, boolean update) {
    List columns = setDefn.getResultSetColumns().getResultColumnDefinitions();

    ColumnDefinition column1 = (ColumnDefinition) columns.get(0);
    ColumnDefinition column2 = (ColumnDefinition) columns.get(1);

    DataElementAttributes dataAttrs = column1.getAttributes();
    DataElementUIHints dataUIHints = dataAttrs.getUiHints();
    if (update) dataUIHints.setDisplayName("new display name for column 1"); // $NON-NLS-1$
    else assertEquals("new display name for column 1", dataUIHints.getDisplayName());

    OutputElementAttributes usageHints = column1.getUsageHints();
    if (update) usageHints.setHelpText("new help text for column 1"); // $NON-NLS-1$
    else assertEquals("new help text for column 1", usageHints.getHelpText());

    // Setting to null object
    if (update)
      usageHints.getFormattingHints().setDisplayFormat("new format for column 1"); // $NON-NLS-1$
    else assertEquals(null, usageHints.getFormattingHints().getDisplayFormat());

    if (update) {
      AxisAttributes axisAttrs = DesignFactory.eINSTANCE.createAxisAttributes();
      axisAttrs.setAxisType(AxisType.DIMENSION_MEMBER_LITERAL);
      axisAttrs.setOnColumnLayout(false);
      column1.setMultiDimensionAttributes(axisAttrs);
    } else {
      AxisAttributes axisAttrs = column1.getMultiDimensionAttributes();
      assertEquals(AxisType.DIMENSION_MEMBER_LITERAL, axisAttrs.getAxisType());
      assertFalse(axisAttrs.isOnColumnLayout());
    }

    // new display name and help text, etc.
    if (update) {
      dataUIHints = DesignFactory.eINSTANCE.createDataElementUIHints();
      dataUIHints.setDisplayName("new display name for column 2"); // $NON-NLS-1$
      dataAttrs = column2.getAttributes();
      dataAttrs.setUiHints(dataUIHints);
    } else {
      dataUIHints = column2.getAttributes().getUiHints();
      assertEquals("new display name for column 2", dataUIHints.getDisplayName());
    }

    if (update) {
      usageHints = DesignFactory.eINSTANCE.createOutputElementAttributes();
      usageHints.setHelpText("new help text for column 2"); // $NON-NLS-1$
      ValueFormatHints format = DesignFactory.eINSTANCE.createValueFormatHints();
      format.setDisplayFormat("new format for column 2"); // $NON-NLS-1$
      usageHints.setFormattingHints(format);
      column2.setUsageHints(usageHints);
    } else {
      usageHints = column2.getUsageHints();
      assertEquals("new help text for column 2", usageHints.getHelpText());
      ValueFormatHints format = usageHints.getFormattingHints();
      assertEquals("new format for column 2", format.getDisplayFormat());
    }
  }
Exemplo n.º 2
0
  /**
   * Checks whether there are values for newly created column hint.
   *
   * @param dataUIHints the latest data ui hints
   * @param outputAttrs the latest output element attributes
   * @return <code>true</code> if no column hint value is set. Otherwise <code>false</code>.
   */
  private static boolean hasColumnHintValue(
      DataElementUIHints dataUIHints,
      OutputElementAttributes outputAttrs,
      AxisAttributes axisAttrs) {
    if (dataUIHints == null && outputAttrs == null && axisAttrs == null) return false;

    boolean isValueSet = false;
    if (dataUIHints != null) {
      if (dataUIHints.getDisplayName() != null) isValueSet = true;
    }

    if (!isValueSet && outputAttrs != null) {
      if (outputAttrs.getHelpText() != null) isValueSet = true;

      if (!isValueSet) {
        ValueFormatHints formatHints = outputAttrs.getFormattingHints();
        if (formatHints != null) isValueSet = true;
      }
    }

    if (!isValueSet && axisAttrs != null) {
      isValueSet = axisAttrs.isSetAxisType();

      if (!isValueSet) {
        isValueSet = axisAttrs.isSetOnColumnLayout();
      }
    }
    return isValueSet;
  }
  /**
   * Updates a oda result set definition.
   *
   * @param param
   */
  private void updateOrVerifyResultSetColumnAndHint(
      DataSetDesign setDesign, OdaDataSetHandle setHandle, boolean update)
      throws SemanticException {
    ResultSets sets = setDesign.getResultSets();
    ResultSetDefinition setDefn = (ResultSetDefinition) sets.getResultSetDefinitions().get(0);
    ColumnDefinition columnDef = setDefn.getResultSetColumns().getResultColumnDefinitions().get(0);

    DataElementAttributes dataAttrs = columnDef.getAttributes();
    DataElementUIHints dataUIHints = dataAttrs.getUiHints();
    OutputElementAttributes usageHints = columnDef.getUsageHints();
    if (columnDef.getMultiDimensionAttributes() == null) {
      columnDef.setMultiDimensionAttributes(DesignFactory.eINSTANCE.createAxisAttributes());
    }

    if (update) {
      dataAttrs.setNativeDataTypeCode(DataType.DECIMAL_TYPE);
      dataUIHints.setDisplayName("new display name for column 1"); // $NON-NLS-1$
      usageHints.setHelpText("new help text for column 1"); // $NON-NLS-1$
      ValueFormatHints format = DesignFactory.eINSTANCE.createValueFormatHints();
      format.setDisplayFormat("new format"); // $NON-NLS-1$
      usageHints.setFormattingHints(format);
      columnDef.setUsageHints(usageHints);
      columnDef.getMultiDimensionAttributes().setAxisType(AxisType.MEASURE_LITERAL);
      columnDef.getMultiDimensionAttributes().setOnColumnLayout(true);
    } else {
      assertEquals(DataType.DECIMAL_TYPE, dataAttrs.getNativeDataTypeCode());
      assertEquals("new display name for column 1", dataUIHints.getDisplayName());
      assertEquals("new help text for column 1", usageHints.getHelpText());
      assertEquals("new format", usageHints.getFormattingHints().getDisplayFormat());
      assertEquals(AxisType.MEASURE_LITERAL, columnDef.getMultiDimensionAttributes().getAxisType());
      assertTrue(columnDef.getMultiDimensionAttributes().isSetOnColumnLayout());
    }
  }
Exemplo n.º 4
0
  /**
   * Updates column hint values by given output element attributes.
   *
   * @param outputAttrs the latest output element attributes
   * @param cachedOutputAttrs the last(cached) output element attributes
   * @param newHint the column hint
   */
  private static void updateColumnHintFromUsageHints(
      OutputElementAttributes outputAttrs,
      OutputElementAttributes cachedOutputAttrs,
      ColumnHint newHint,
      OdaResultSetColumn column) {
    if (outputAttrs == null) return;

    // help text and key

    Object oldValue = cachedOutputAttrs == null ? null : cachedOutputAttrs.getHelpText();
    Object newValue = outputAttrs.getHelpText();
    if (!CompareUtil.isEquals(oldValue, newValue)) {
      newHint.setProperty(ColumnHint.HELP_TEXT_MEMBER, newValue);
    }

    oldValue = cachedOutputAttrs == null ? null : cachedOutputAttrs.getHelpTextKey();
    newValue = outputAttrs.getHelpTextKey();
    if (!CompareUtil.isEquals(oldValue, newValue)) {
      newHint.setProperty(ColumnHint.HELP_TEXT_ID_MEMBER, newValue);
    }

    // m_label maps to heading

    oldValue = cachedOutputAttrs == null ? null : cachedOutputAttrs.getLabel();
    newValue = outputAttrs.getLabel();
    if (!CompareUtil.isEquals(oldValue, newValue)) {
      newHint.setProperty(ColumnHint.HEADING_MEMBER, newValue);
    }

    oldValue = cachedOutputAttrs == null ? null : cachedOutputAttrs.getLabelKey();
    newValue = outputAttrs.getLabelKey();
    if (!CompareUtil.isEquals(oldValue, newValue)) {
      newHint.setProperty(ColumnHint.HEADING_ID_MEMBER, newValue);
    }

    // for values in formatting.

    ValueFormatHints formatHints = outputAttrs.getFormattingHints();
    if (formatHints == null) return;

    ValueFormatHints cachedFormatHints =
        cachedOutputAttrs == null ? null : cachedOutputAttrs.getFormattingHints();
    oldValue = cachedFormatHints == null ? null : cachedFormatHints.getDisplayFormat();

    // convert display format in oda to pattern part of value-format member
    newValue = formatHints.getDisplayFormat();
    if (!CompareUtil.isEquals(oldValue, newValue)) {
      FormatValue format = (FormatValue) newHint.getProperty(null, ColumnHint.VALUE_FORMAT_MEMBER);
      if (format == null && newValue != null) {
        format = StructureFactory.newFormatValue();
        newHint.setProperty(ColumnHint.VALUE_FORMAT_MEMBER, format);
      }

      // add logic to fix 32742: if the column is date-time, then do some
      // special handle for the format string in IO
      if (newValue != null
          && (column != null
              && DesignChoiceConstants.COLUMN_DATA_TYPE_DATETIME.equals(column.getDataType()))) {
        String formatValue = (String) newValue;
        newValue = formatValue.replaceFirst("mm/", "MM/"); // $NON-NLS-1$//$NON-NLS-2$
      }
      if (format != null) format.setPattern((String) newValue);
    }

    // not support display length
    /*
     * newValue = formatHints.getDisplaySize( ); oldValue =
     * cachedFormatHints == null ? null : cachedFormatHints .getDisplaySize(
     * ); if ( oldValue == null || !oldValue.equals( newValue ) ) {
     * newHint.setProperty( ColumnHint.DISPLAY_LENGTH_MEMBER, newValue ); }
     */

    newValue = formatHints.getHorizontalAlignment();
    oldValue = cachedFormatHints == null ? null : cachedFormatHints.getHorizontalAlignment();
    if (formatHints.isSetHorizontalAlignment() && !CompareUtil.isEquals(oldValue, newValue)) {
      newHint.setProperty(
          ColumnHint.HORIZONTAL_ALIGN_MEMBER,
          convertToROMHorizontalAlignment((HorizontalAlignment) newValue));
    }

    // not support word-wrap
    /*
     * newValue = formatHints.getTextWrapType( ); oldValue =
     * cachedFormatHints == null ? null : cachedFormatHints
     * .getTextWrapType( );
     *
     * if ( oldValue == null || !oldValue.equals( newValue ) ) {
     * newHint.setProperty( ColumnHint.WORD_WRAP_MEMBER,
     * convertToROMWordWrap( (TextWrapType) newValue ) ); }
     */

    // cannot handle text format since two objects in ODA and ROM are
    // different.
  }