package nbtool.gui; import java.util.LinkedList; import javax.swing.SwingUtilities; public final class Displays { private Displays(){} protected static final LinkedList<ToolDisplayHandler> displays = new LinkedList<>(); protected static void addNew(ToolDisplayHandler handler) { synchronized(displays) { displays.add(handler); } } public static void requestAnotherDisplay() { SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { synchronized(displays) { for (ToolDisplayHandler handler : displays) { if (!handler.isVisible()) { handler.show(true); return; } } } /* no existing displays are hidden, create a new one */ ToolDisplayHandler handler = new ToolDisplayHandler(); addNew(handler); handler.show(true); } }); } }