package irc.message; import gui.forms.GUIMain; import java.awt.*; import java.util.ArrayList; /** * Created by Nick on 1/14/2015. * <p> * Created for the MessageQueue class which handles messages on a thread * to ensure better GUI performance while large amounts of text come in. */ public class MessageWrapper { private Message local; private ArrayList<Runnable> prints; public Message getLocal() { return local; } public MessageWrapper(Message m) { local = m; prints = new ArrayList<>(); } public void addPrint(Runnable r) { prints.add(r); } public void print() { if (!prints.isEmpty()) { Runnable handler = () -> { try { prints.forEach(java.lang.Runnable::run); } catch (Exception e) { GUIMain.log(e); } }; if (EventQueue.isDispatchThread()) { handler.run(); } else { try { EventQueue.invokeLater(handler); } catch (Exception e) { GUIMain.log(e); } } } } }