package org.homebrew; import java.awt.BorderLayout; import javax.tv.xlet.Xlet; import javax.tv.xlet.XletContext; import javax.tv.xlet.XletStateChangeException; import org.havi.ui.HScene; import org.havi.ui.HSceneFactory; public class MyXlet extends Thread implements Xlet { private HScene scene; private AdjustmentsMenu menu; private boolean running; public void initXlet(XletContext context) throws XletStateChangeException { menu = new AdjustmentsMenu(); menu.setSize(1280, 720); scene = HSceneFactory.getInstance().getDefaultHScene(); scene.add(menu, BorderLayout.CENTER); scene.addKeyListener(menu); scene.validate(); scene.repaint(); } public void startXlet() throws XletStateChangeException { running = true; menu.setVisible(true); scene.setVisible(true); menu.requestFocus(); scene.requestFocus(); start(); } public void pauseXlet() { if (menu != null) { menu.setVisible(false); } } public void destroyXlet(boolean unconditional) { running = false; interrupt(); if (scene != null && menu != null) { menu.setVisible(false); scene.remove(menu); } scene = null; menu = null; } public void run() { while (running) { try { Thread.sleep(1000); } catch (InterruptedException e) { running = false; } } } }