package com.lunivore.noughtsandcrosses.ui; import org.uispec4j.Trigger; import org.uispec4j.UISpec4J; import org.uispec4j.UISpecAdapter; import org.uispec4j.Window; import org.uispec4j.finder.ComponentMatchers; import org.uispec4j.interception.WindowInterceptor; import com.lunivore.noughtsandcrosses.NoughtsAndCrosses; public class WindowControl implements UISpecAdapter { private Window window; public WindowControl() { UISpec4J.init(); reset(); } public Window getMainWindow() { return window; } public void reset() { window = WindowInterceptor.run(new Trigger() { public void run() { NoughtsAndCrosses.main(new String[0]); } }); } public void destroy() { window.dispose(); } @SuppressWarnings("unchecked") public <T> T findComponent(Class<T> type, String name) { return (T)window.findUIComponent(ComponentMatchers.innerNameIdentity(name)).getAwtComponent(); } }