package org.rzo.yajsw.wrapper; import java.awt.Color; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class TrayIconProxy { List<TrayIconMessage> messages = Collections.synchronizedList(new ArrayList<TrayIconMessage>()); volatile String _inquireMessage; volatile String _inquireResponse; volatile Color _userColor; public enum Types { ERROR, INFO, WARNING, MESSAGE }; public void error(String caption, String message) { synchronized (messages) { messages.add(new TrayIconMessage(Types.ERROR, caption, message)); } } public void info(String caption, String message) { synchronized (messages) { messages.add(new TrayIconMessage(Types.INFO, caption, message)); } } public void warning(String caption, String message) { synchronized (messages) { messages.add(new TrayIconMessage(Types.WARNING, caption, message)); } } public void message(String caption, String message) { synchronized (messages) { messages.add(new TrayIconMessage(Types.MESSAGE, caption, message)); } } public String inquire(String message) { String result = null; if (_inquireResponse != null) { result = _inquireResponse; System.out.println("got response for inquire "); _inquireResponse = null; } else { System.out.println("waiting for inquire " + message); _inquireMessage = message; result = null; } return result; } public String[][] toArrayAndClear() { String[][] result = null; synchronized (messages) { if (messages.size() == 0) return null; result = new String[messages.size()][]; int i = 0; for (TrayIconMessage message : messages) result[i++] = message.toStringArray(); messages.clear(); } return result; } public void setUserColor(Color color) { _userColor = color; } public Color getUserColor() { return _userColor; } }