From 9886bd32a0b6e8be203c4608aec964af53d3f7b8 Mon Sep 17 00:00:00 2001 From: Luca Keidel <info@lucakeidel.de> Date: Sat, 18 Jun 2016 13:43:24 +0200 Subject: [PATCH] Improved logging model performance --- .../java/fucoin/gui/FilteredLogModel.java | 21 +++++++++++++------ .../fucoin/gui/SuperVisorGuiControlImpl.java | 2 -- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/fucoin/gui/FilteredLogModel.java b/src/main/java/fucoin/gui/FilteredLogModel.java index 501c883..225e008 100644 --- a/src/main/java/fucoin/gui/FilteredLogModel.java +++ b/src/main/java/fucoin/gui/FilteredLogModel.java @@ -14,8 +14,7 @@ public class FilteredLogModel extends AbstractListModel<LogMessage> { public FilteredLogModel() { super(); - this. - log = new ArrayList<>(); + this.log = new ArrayList<>(); filteredLog = new ArrayList<>(); } @@ -32,9 +31,7 @@ public class FilteredLogModel extends AbstractListModel<LogMessage> { private void refilter() { filteredLog.clear(); for (LogMessage msg : log) { - if (!filterTransactions - || (msg.getContext() == LogMessage.Context.TRANSACTION_SUCCESS - || msg.getContext() == LogMessage.Context.TRANSACTION_FAIL)) { + if (matchesFilter(msg)) { filteredLog.add(msg); } @@ -42,6 +39,12 @@ public class FilteredLogModel extends AbstractListModel<LogMessage> { fireContentsChanged(this, 0, getSize()-1); } + private boolean matchesFilter(LogMessage msg){ + return !filterTransactions + || (msg.getContext() == LogMessage.Context.TRANSACTION_SUCCESS + || msg.getContext() == LogMessage.Context.TRANSACTION_FAIL); + } + @Override public int getSize() { return filteredLog.size(); @@ -54,7 +57,13 @@ public class FilteredLogModel extends AbstractListModel<LogMessage> { public void addElement(LogMessage message) { + log.add(message); - refilter(); + + if(matchesFilter(message)){ + filteredLog.add(message); + int index = getSize() - 1; + fireIntervalAdded(this, index, index); + } } } diff --git a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java index 91efa95..cb4aaf2 100644 --- a/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java +++ b/src/main/java/fucoin/gui/SuperVisorGuiControlImpl.java @@ -7,8 +7,6 @@ import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; public class SuperVisorGuiControlImpl implements SuperVisorGuiControl { private SuperVisorImpl superVisor; -- GitLab