package games.strategy.triplea.ai.proAI.logging;
import java.util.logging.Level;
import javax.swing.SwingUtilities;
import games.strategy.triplea.ui.TripleAFrame;
/**
* Class to manage log window display.
*/
public class ProLogUI {
private static ProLogWindow s_settingsWindow = null;
private static String currentName = "";
private static int currentRound = 0;
public static void initialize(final TripleAFrame frame) {
if (!SwingUtilities.isEventDispatchThread()) {
throw new IllegalStateException("Wrong thread, should be running on AWT thread.");
}
s_settingsWindow = new ProLogWindow(frame);
}
public static void clearCachedInstances() {
if (s_settingsWindow != null) {
s_settingsWindow.clear();
}
s_settingsWindow = null;
}
public static void showSettingsWindow() {
if (s_settingsWindow == null) {
return;
}
s_settingsWindow.setVisible(true);
}
public static void notifyAILogMessage(final Level level, final String message) {
if (s_settingsWindow == null) {
return;
}
s_settingsWindow.addMessage(level, message);
}
public static void notifyStartOfRound(final int round, final String name) {
if (s_settingsWindow == null) {
return;
}
if (round != currentRound || !name.equals(currentName)) {
currentRound = round;
currentName = name;
s_settingsWindow.notifyNewRound(round, name);
}
}
}