// Delete Attribute
  @Override
  public void deleteAttribute(int row, AttributeTableModel model) {
    AttributeContainer node = view.tree;

    if (node == null) {
      return;
    }

    String key = (String) model.keys.get(row);

    Object oldValue = node.getAttribute(key);
    boolean oldReadOnly = node.isReadOnly(key);

    node.removeAttribute(key);
    model.keys.remove(row);
    model.values.remove(row);
    model.readOnly.remove(row);

    OutlinerDocument doc = view.tree.getDocument();
    doc.setModified(true);

    // undo
    Undoable undoable =
        new UndoableDocumentAttributeChange(
            view.tree, key, oldValue, oldReadOnly, null, null, false);
    undoable.setName("Delete Document Attribute");
    doc.getUndoQueue().add(undoable);

    model.fireTableRowsDeleted(row, row);
  }