diff --git a/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java b/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java index c1a2af37..bc72df27 100644 --- a/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java +++ b/src/main/java/io/github/dsheirer/module/decode/event/ClearableHistoryModel.java @@ -56,12 +56,21 @@ public abstract class ClearableHistoryModel extends AbstractTableModel */ public void add(T item) { - mItems.addFirst(item); - ClearableHistoryModel.this.fireTableRowsInserted(0, 0); - while(mItems.size() > mHistorySize) + if(mItems.contains(item)) { - mItems.removeLast(); - super.fireTableRowsDeleted(mItems.size() - 1, mItems.size() - 1); + int itemRow = mItems.indexOf(item); + fireTableRowsUpdated(itemRow, itemRow); + } + else + { + mItems.addFirst(item); + fireTableRowsInserted(0, 0); + + while(mItems.size() > mHistorySize) + { + mItems.removeLast(); + fireTableRowsDeleted(mItems.size() - 1, mItems.size() - 1); + } } } @@ -100,14 +109,6 @@ public abstract class ClearableHistoryModel extends AbstractTableModel return mHistorySize; } - /** - * Resets the history size to the default value. - */ - public void resetHistorySize() - { - setHistorySize(DEFAULT_HISTORY_SIZE); - } - /** * Sets the history size * @param historySize