Skip to content

Commit ad97de7

Browse files
committed
Do not add duplicate logs into 'My Logs'
1 parent d99530a commit ad97de7

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

src/main/java/com/tibagni/logviewer/LogViewerView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ class LogViewerViewImpl(private val mainView: MainView, initialLogFiles: Set<Fil
437437
.addActionListener {
438438
selectedRows
439439
.map { model.getValueAt(it, 0) as LogEntry }
440-
.forEach { myLogsListTableModel.addLog(it) }
440+
.forEach { myLogsListTableModel.addLogIfDoesNotExist(it) }
441441
sidePanel.showMyLogsView()
442442
myLogsListTableModel.lastEntry?.let { myLogsRenderer.recalculateLineNumberPreferredSize(it.index) }
443443
}

src/main/java/com/tibagni/logviewer/log/LogListTableModel.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,14 @@ public void setLogs(List<LogEntry> entries) {
5555
fireTableRowsInserted(0, this.entries.size() - 1);
5656
}
5757

58-
public void addLog(LogEntry entry) {
58+
public void addLogIfDoesNotExist(LogEntry entry) {
5959
// find the nearest time pos to insert the new entry
60-
int possibleIndex = Collections.binarySearch(this.entries, entry);
61-
int targetIndex = possibleIndex;
62-
if (possibleIndex < 0) {
63-
targetIndex = Math.abs(possibleIndex + 1);
60+
int indexFound = Collections.binarySearch(this.entries, entry);
61+
if (indexFound < 0) { // Element not found. Insert
62+
int targetIndex = Math.abs(indexFound + 1);
63+
this.entries.add(targetIndex, entry);
64+
fireTableRowsInserted(targetIndex, targetIndex);
6465
}
65-
this.entries.add(targetIndex, entry);
66-
fireTableRowsInserted(targetIndex, targetIndex);
6766
}
6867

6968
public void removeLog(LogEntry entry) {

0 commit comments

Comments
 (0)