@Override
  public void refreshTableColumns(UpdatedNodeElement updated) {
    ERDiagram diagram = this.getDiagram();

    NormalColumnFigure columnFigure = (NormalColumnFigure) this.getFigure();

    NormalColumn normalColumn = (NormalColumn) this.getModel();

    TableViewEditPart parent = (TableViewEditPart) this.getParent();
    parent.getContentPane().add(figure);

    int notationLevel = diagram.getDiagramContents().getSettings().getNotationLevel();

    if (notationLevel != Settings.NOTATION_LEVLE_TITLE) {
      TableFigure tableFigure = (TableFigure) parent.getFigure();

      List<NormalColumn> selectedReferencedColulmnList = this.getSelectedReferencedColulmnList();
      List<NormalColumn> selectedForeignKeyColulmnList = this.getSelectedForeignKeyColulmnList();

      boolean isSelectedReferenced = selectedReferencedColulmnList.contains(normalColumn);
      boolean isSelectedForeignKey = selectedForeignKeyColulmnList.contains(normalColumn);

      boolean isAdded = false;
      boolean isUpdated = false;
      if (updated != null) {
        isAdded = updated.isAdded(normalColumn);
        isUpdated = updated.isUpdated(normalColumn);
      }

      if ((notationLevel == Settings.NOTATION_LEVLE_KEY)
          && !normalColumn.isPrimaryKey()
          && !normalColumn.isForeignKey()
          && !normalColumn.isReferedStrictly()) {
        columnFigure.clearLabel();
        return;
      }

      addColumnFigure(
          diagram,
          tableFigure,
          columnFigure,
          normalColumn,
          isSelectedReferenced,
          isSelectedForeignKey,
          isAdded,
          isUpdated,
          false);

      if (selected) {
        columnFigure.setBackgroundColor(ColorConstants.titleBackground);
        columnFigure.setForegroundColor(ColorConstants.titleForeground);
      }

    } else {
      columnFigure.clearLabel();
      return;
    }
  }