From 9d7275db7e7a53d5ce1e94d9ef38f9a2d7107ed9 Mon Sep 17 00:00:00 2001 From: fros4943 Date: Mon, 19 Oct 2009 17:33:25 +0000 Subject: [PATCH] added option to limit the number of messages in list --- .../se/sics/cooja/dialogs/MessageList.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/tools/cooja/java/se/sics/cooja/dialogs/MessageList.java b/tools/cooja/java/se/sics/cooja/dialogs/MessageList.java index a2f301f70..ff3519c1f 100644 --- a/tools/cooja/java/se/sics/cooja/dialogs/MessageList.java +++ b/tools/cooja/java/se/sics/cooja/dialogs/MessageList.java @@ -26,14 +26,14 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: MessageList.java,v 1.13 2009/06/25 15:46:57 fros4943 Exp $ + * $Id: MessageList.java,v 1.14 2009/10/19 17:33:25 fros4943 Exp $ * * ----------------------------------------------------------------- * * Author : Adam Dunkels, Joakim Eriksson, Niclas Finne, Fredrik Osterlind * Created : 2006-06-14 - * Updated : $Date: 2009/06/25 15:46:57 $ - * $Revision: 1.13 $ + * Updated : $Date: 2009/10/19 17:33:25 $ + * $Revision: 1.14 $ */ package se.sics.cooja.dialogs; @@ -79,6 +79,8 @@ public class MessageList extends JList { private JPopupMenu popup = null; private boolean hideNormal = false; + + private int max = -1; public MessageList() { super.setModel(new MessageModel()); @@ -86,6 +88,14 @@ public class MessageList extends JList { setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } + /** + * @param max Maximum number of messages + */ + public MessageList(int max) { + this(); + this.max = max; + } + public Color getForeground(int type) { Color c = type > 0 && type <= foregrounds.length ? foregrounds[type - 1] : null; @@ -158,6 +168,10 @@ public class MessageList extends JList { while (messages.size() > getModel().getSize()) { ((DefaultListModel) getModel()).addElement(messages.get(getModel().getSize())); } + while (max > 0 && getModel().getSize() > max) { + ((DefaultListModel) getModel()).removeElementAt(0); + messages.remove(0); + } if (scroll) { ensureIndexIsVisible(getModel().getSize() - 1);