@Override
  public void execute() {
    oldType = (String) paramEncoding.getValue();

    String tempValue = newRealValue;
    tempValue = tempValue.replaceAll("'", ""); // $NON-NLS-1$ //$NON-NLS-2$
    tempValue = tempValue.replaceAll("\"", ""); // $NON-NLS-1$ //$NON-NLS-2$

    boolean newIsCustomAndoldIsNotCustom =
        tempValue.equals(EmfComponent.ENCODING_TYPE_CUSTOM)
            && !paramEncoding.getValue().equals(EmfComponent.ENCODING_TYPE_CUSTOM);
    boolean newIsNotCustomAndoldIsCustom =
        !tempValue.equals(EmfComponent.ENCODING_TYPE_CUSTOM)
            && paramEncoding.getValue().equals(EmfComponent.ENCODING_TYPE_CUSTOM);
    boolean toRefresh = false;
    if (fromCombo && (newIsCustomAndoldIsNotCustom || newIsNotCustomAndoldIsCustom)) {
      toRefresh = true;
    }
    if (ArrayUtils.contains(paramEncoding.getListItemsValue(), tempValue)) {
      paramEncoding.setValue(tempValue);
    }
    if (toRefresh) {
      getElement().setPropertyValue(EParameterName.UPDATE_COMPONENTS.getName(), Boolean.TRUE);
      if (DynamicTabbedPropertySection.getLastPropertyUsed() != null) {
        DynamicTabbedPropertySection.getLastPropertyUsed().refresh();
      }
    }
    super.execute();
  }
  @Override
  public void addComponents(boolean forceRedraw) {
    if (conSchema()) {
      disposeChildren();
      curRowSize = 0;

      List<? extends IElementParameter> listParam =
          ((Connection) elem).getSource().getElementParameters();

      generator.initController(this);
      for (IElementParameter cur : listParam) {
        if ((cur.getFieldType() == EParameterFieldType.SCHEMA_TYPE)
            && (cur.getContext().equals(((Connection) elem).getConnectorName()))) {
          AbstractElementPropertySectionController contorller =
              generator.getController(EParameterFieldType.SCHEMA_TYPE, this);
          contorller.createControl(composite, cur, 0, 0, 0, null);
        }
      }

      FormData data = new FormData();
      data.left = new FormAttachment(0, ITabbedPropertyConstants.HSPACE);
      data.right = new FormAttachment(100, -ITabbedPropertyConstants.HSPACE);
      data.top = new FormAttachment(0, curRowSize + ITabbedPropertyConstants.VSPACE);
      data.width = 300; // to correct bug of table growing indefinitly

      IMetadataTable outputMetaTable = ((Connection) elem).getMetadataTable();
      if (outputMetaTable != null) {
        // Composite compositeEditorView = new Composite(composite, SWT.BORDER);
        // compositeEditorView.setLayoutData(data);

        metadataTableEditor =
            new MetadataTableEditor(
                outputMetaTable,
                "Schema from " //$NON-NLS-1$
                    + ((Connection) elem).getSource().getElementName()
                    + " output "); //$NON-NLS-1$
        metadataTableEditorView =
            new MetadataTableEditorView(
                composite, SWT.NONE, metadataTableEditor, true, false, true, false);
        MetadataDialog.initializeMetadataTableView(
            metadataTableEditorView, ((Connection) elem).getSource(), outputMetaTable);
        metadataTableEditorView.initGraphicComponents();
        metadataTableEditorView.getExtendedTableViewer().setCommandStack(getCommandStack());
        CustomTableManager.addCustomManagementToTable(metadataTableEditorView, true);
        Composite compositeEditorView = metadataTableEditorView.getMainComposite();
        compositeEditorView.setLayoutData(data);
        // compositeEditorView.getParent().layout();

        Table table = metadataTableEditorView.getTable();
        int currentHeightEditor =
            table.getHeaderHeight()
                + outputMetaTable.getListColumns().size() * table.getItemHeight()
                + table.getItemHeight()
                + 50;
        curRowSize = currentHeightEditor + ITabbedPropertyConstants.VSPACE + curRowSize;
      }
      super.addComponents(forceRedraw, false);
    } else if (conIf()) {
      super.addComponents(forceRedraw);
    } else {
      disposeChildren();
    }
  }