@Override
  protected void setValue(Object element, Object value) {
    HashMap<Integer, String> data = (HashMap<Integer, String>) element;
    HashMap<Integer, String> oldDataMap = (HashMap<Integer, String>) data.clone();

    String oldData = data.get(columnIndex) == null ? "" : data.get(columnIndex);
    if (oldData.equals(value.toString())) return;

    // 입력 값이 올바른지 검사합니다.
    String colType = tableDataTypeList.get(columnIndex - 1);
    if (!DataTypeValidate.isValid(editPart.getUserDB(), colType, value.toString())) {
      MessageDialog.openError(
          null,
          Messages.TextViewerEditingSupport_0,
          Messages.TextViewerEditingSupport_1
              + value
              + Messages.TextViewerEditingSupport_2
              + colType
              + Messages.TextViewerEditingSupport_3);
      return;
    }
    // insert가 아닌 경우에는
    if (!TbUtils.isInsert(data.get(0))) {
      data.put(0, TbUtils.getColumnText(TbUtils.COLUMN_MOD_TYPE.UPDATE));
    }
    // 수정된 데이터 표시
    data.put(columnIndex, TbUtils.getModifyData(value.toString()));
    editPart.setModifyButtonControl();

    viewer.refresh();
  }
  @Override
  protected Object getValue(Object element) {
    HashMap<Integer, String> data = (HashMap<Integer, String>) element;

    return TbUtils.getOriginalData(data.get(columnIndex) == null ? "" : data.get(columnIndex));
  }