From 70cd47811814c25b315d8378e46b613574694837 Mon Sep 17 00:00:00 2001 From: "guilhem.duche" Date: Mon, 26 May 2008 20:46:46 +0000 Subject: [PATCH] fixed reconnection. Added definitive close. git-svn-id: http://wiiusej.googlecode.com/svn/trunk@156 ae48ae66-6a45-0410-b38e-211266189506 --- WiiUseJ/src/wiiusej/WiiUseApiManager.java | 12 +- WiiUseJ/src/wiiusej/test/Main.java | 13 +- WiiUseJ/src/wiiusej/test/WiiuseJGuiTest.java | 2449 +++++++++--------- 3 files changed, 1299 insertions(+), 1175 deletions(-) diff --git a/WiiUseJ/src/wiiusej/WiiUseApiManager.java b/WiiUseJ/src/wiiusej/WiiUseApiManager.java index 8c6302e..d84fb38 100644 --- a/WiiUseJ/src/wiiusej/WiiUseApiManager.java +++ b/WiiUseJ/src/wiiusej/WiiUseApiManager.java @@ -46,6 +46,8 @@ public class WiiUseApiManager extends Thread { private int connected = -1; private AtomicBoolean running = new AtomicBoolean(false); + + private boolean leave = false; public static int WIIUSE_STACK_UNKNOWN = 0; public static int WIIUSE_STACK_MS = 1; @@ -246,6 +248,14 @@ public class WiiUseApiManager extends Thread { running.set(false); wiiuse.cleanUp(); } + + /** + * Stop wiiuseJ definitively for this program. + */ + public void definitiveShutdown(){ + leave = true; + shutdown(); + } /** * Activate the rumble for the wiimote with the given id. @@ -548,7 +558,7 @@ public class WiiUseApiManager extends Thread { @Override public void run() { - while (true) { + while (!leave) { try { semaphore.acquire(); } catch (InterruptedException e) { diff --git a/WiiUseJ/src/wiiusej/test/Main.java b/WiiUseJ/src/wiiusej/test/Main.java index daaca2a..be449c4 100644 --- a/WiiUseJ/src/wiiusej/test/Main.java +++ b/WiiUseJ/src/wiiusej/test/Main.java @@ -30,11 +30,14 @@ public class Main { */ public static void main(String[] args) { Wiimote[] wiimotes = WiiUseApiManager.getWiimotes(1, true); - if (wiimotes.length>0){ - WiiuseJGuiTest gui = new WiiuseJGuiTest(wiimotes[0]); - gui.setDefaultCloseOperation(gui.EXIT_ON_CLOSE); - gui.setVisible(true); - } + WiiuseJGuiTest gui = null; + if (wiimotes.length > 0) { + gui = new WiiuseJGuiTest(wiimotes[0]); + } else { + gui = new WiiuseJGuiTest(); + } + gui.setDefaultCloseOperation(gui.EXIT_ON_CLOSE); + gui.setVisible(true); } } diff --git a/WiiUseJ/src/wiiusej/test/WiiuseJGuiTest.java b/WiiUseJ/src/wiiusej/test/WiiuseJGuiTest.java index 63b9476..bf44827 100644 --- a/WiiUseJ/src/wiiusej/test/WiiuseJGuiTest.java +++ b/WiiUseJ/src/wiiusej/test/WiiuseJGuiTest.java @@ -46,1174 +46,1285 @@ import wiiusej.wiiusejevents.wiiuseapievents.StatusEvent; /** * Gui class to test WiiuseJ. - * @author guiguito + * + * @author guiguito */ -public class WiiuseJGuiTest extends javax.swing.JFrame implements WiimoteListener { - - private Wiimote wiimote; - private Robot robot = null; - private boolean statusMotionRequested = false; - private boolean statusIRRequested = false; - private JFrame expansionFrame = null; - private boolean isFirstStatusGot = false; - private WindowListener buttonSetter = new WindowListener() { - - public void windowOpened(WindowEvent e) { - //nothing - } - - public void windowClosing(WindowEvent e) { - //nothing - } - - public void windowClosed(WindowEvent e) { - //nothing - } - - public void windowIconified(WindowEvent e) { - //nothing - } - - public void windowDeiconified(WindowEvent e) { - //nothing - } - - public void windowActivated(WindowEvent e) { - showExpansionWiimoteButton.setEnabled(false); - showExpansionWiimoteButton.setText("Hide Nunchuk"); - } - - public void windowDeactivated(WindowEvent e) { - showExpansionWiimoteButton.setEnabled(true); - showExpansionWiimoteButton.setText("Show Nunchuk"); - } - }; - - /** Creates new form WiiuseJGuiTest */ - public WiiuseJGuiTest(Wiimote wiimote) { - initComponents(); - this.addWindowListener(new CloseGuiTestCleanly()); - this.wiimote = wiimote; - registerListeners(); - initWiimote(); - isFirstStatusGot = false; - getStatusButtonMousePressed(null); - } - - /** - * Clear all views - */ - private void clearViews(){ - ((IRPanel) irViewPanel).clearView(); - ((ButtonsEventPanel) buttonsPanel).clearView(); - ((OrientationPanel) motionSensingPanel).clearView(); - ((GForcePanel) gForcePanel).clearView(); - ((AccelerationPanel) accelerationPanel).clearView(); - } - - /** - * Unregister all listeners. - */ - private void unregisterListeners(){ - wiimote.removeWiiMoteEventListeners((IRPanel) irViewPanel); - wiimote.removeWiiMoteEventListeners((ButtonsEventPanel) buttonsPanel); - wiimote.removeWiiMoteEventListeners((OrientationPanel) motionSensingPanel); - wiimote.removeWiiMoteEventListeners((GForcePanel) gForcePanel); - wiimote.removeWiiMoteEventListeners((AccelerationPanel) accelerationPanel); - wiimote.removeWiiMoteEventListeners(this); - } - - private void initWiimote(){ - wiimote.deactivateContinuous(); - wiimote.deactivateSmoothing(); - wiimote.setScreenAspectRatio169(); - wiimote.setSensorBarBelowScreen(); - } - - /** - * Register all listeners - */ - private void registerListeners(){ - wiimote.addWiiMoteEventListeners((IRPanel) irViewPanel); - wiimote.addWiiMoteEventListeners((ButtonsEventPanel) buttonsPanel); - wiimote.addWiiMoteEventListeners((OrientationPanel) motionSensingPanel); - wiimote.addWiiMoteEventListeners((GForcePanel) gForcePanel); - wiimote.addWiiMoteEventListeners((AccelerationPanel) accelerationPanel); - wiimote.addWiiMoteEventListeners(this); - - } - - public void onButtonsEvent(WiimoteButtonsEvent arg0) { - if (robot != null) { - if (arg0.isButtonAPressed()) { - robot.mousePress(InputEvent.BUTTON1_MASK); - - } - if (arg0.isButtonBPressed()) { - robot.mousePress(InputEvent.BUTTON2_MASK); - - } - if (arg0.isButtonOnePressed()) { - robot.mousePress(InputEvent.BUTTON3_MASK); - - } - if (arg0.isButtonAJustReleased()) { - robot.mouseRelease(InputEvent.BUTTON1_MASK); - - } - if (arg0.isButtonBJustReleased()) { - robot.mouseRelease(InputEvent.BUTTON2_MASK); - - } - if (arg0.isButtonOneJustReleased()) { - robot.mouseRelease(InputEvent.BUTTON3_MASK); - - } - if (arg0.isButtonUpPressed()) {//mouse wheel up - robot.mouseWheel(-1); - } - if (arg0.isButtonDownPressed()) {//mouse wheel down - robot.mouseWheel(1); - } - - if (arg0.isButtonTwoPressed()) {//stop mouse control - mouseIRControlButtonMousePressed(null); - } - } - } - - public void onIrEvent(IREvent arg0) { - if (robot != null) {//if mouse control activated - robot.mouseMove(arg0.getX(), arg0.getY()); - } - if (statusIRRequested) { - xResolutionTextField.setText("" + arg0.getXVRes()); - yResolutionTextField.setText("" + arg0.getYVRes()); - statusIRRequested = false; - } - } - - public void onMotionSensingEvent(MotionSensingEvent arg0) { - if (statusMotionRequested) {//Status requested - accelerationThresholdTextField.setText("" + arg0.getAccelerationThreshold()); - orientationThresholdTextField.setText("" + arg0.getOrientationThreshold()); - alphaSmoothingTextField.setText("" + arg0.getAlphaSmoothing()); - statusMotionRequested = false; - } - } - - public void onExpansionEvent(ExpansionEvent e) { - //nothing yet - } - - public void onStatusEvent(StatusEvent arg0) { - if (!isFirstStatusGot) { - if (arg0.isNunchukConnected()) { - showExpansionWiimoteButton.setEnabled(true); - showExpansionWiimoteButton.setText("Show Nunchuk"); - expansionFrame = new NunchukGuiTest(wiimote); - expansionFrame.setDefaultCloseOperation(expansionFrame.HIDE_ON_CLOSE); - expansionFrame.addWindowListener(buttonSetter); - isFirstStatusGot = true; - } - } - messageText.setText("Status received !"); - batteryLevelText.setText(arg0.getBatteryLevel() + " %"); - led1Button.setEnabled(arg0.isLed1Set()); - led2Button.setEnabled(arg0.isLed2Set()); - led3Button.setEnabled(arg0.isLed3Set()); - led4Button.setEnabled(arg0.isLed4Set()); - if (arg0.isNunchukConnected()) { - ((NunchukGuiTest)expansionFrame).requestThresholdsUpdate(); - } - //attachments - int eventType = arg0.getEventType(); - if (eventType == StatusEvent.WIIUSE_CLASSIC_CTRL_INSERTED) { - expansionText.setText("Classic control connected."); - } else if (eventType == StatusEvent.WIIUSE_CLASSIC_CTRL_REMOVED) { - expansionText.setText("Classic control removed."); - } else if (eventType == StatusEvent.WIIUSE_NUNCHUK_INSERTED) { - expansionText.setText("Nunchuk connected."); - } else if (eventType == StatusEvent.WIIUSE_NUNCHUK_REMOVED) { - expansionText.setText("Nunchuk removed."); - } else if (eventType == StatusEvent.WIIUSE_GUITAR_HERO_3_CTRL_INSERTED) { - expansionText.setText("Guitar Hero 3 control connected."); - } else if (eventType == StatusEvent.WIIUSE_GUITAR_HERO_3_CTRL_REMOVED) { - expansionText.setText("Guitar Hero 3 control removed."); - } - } - - public void onDisconnectionEvent(DisconnectionEvent arg0) { - messageText.setText("Wiimote Disconnected !"); - unregisterListeners(); - clearViews(); - isFirstStatusGot = false; - } - - public void onNunchukInsertedEvent(NunchukInsertedEvent e) { - messageText.setText("Nunchuk connected !"); - expansionText.setText("Expansion connected : Nunchuk."); - showExpansionWiimoteButton.setEnabled(true); - showExpansionWiimoteButton.setText("Show nunchuk"); - expansionFrame = new NunchukGuiTest(wiimote); - expansionFrame.setDefaultCloseOperation(expansionFrame.HIDE_ON_CLOSE); - expansionFrame.addWindowListener(buttonSetter); - } - - public void onNunchukRemovedEvent(NunchukRemovedEvent e) { - messageText.setText("Nunchuk disconnected !"); - expansionText.setText("No expansion connected."); - showExpansionWiimoteButton.setEnabled(false); - showExpansionWiimoteButton.setText("No expansion"); - if (expansionFrame != null) { - if (expansionFrame instanceof NunchukGuiTest) { - ((NunchukGuiTest) expansionFrame).unRegisterListeners(); - } - expansionFrame.setEnabled(false); - expansionFrame.dispose(); - expansionFrame = null; - } - } - - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - // //GEN-BEGIN:initComponents - private void initComponents() { - - leftPanel = new javax.swing.JPanel(); - irViewPanel = new IRPanel(); - jTabbedPane1 = new javax.swing.JTabbedPane(); - accelerationPanel = new AccelerationWiimoteEventPanel(); - motionSensingPanel = new OrientationWiimoteEventPanel(); - gForcePanel = new wiiusej.utils.GForceWiimoteEventPanel(); - rightPanel = new javax.swing.JPanel(); - fixedWiimotePanel = new javax.swing.JPanel(); - buttonsPanel = new ButtonsEventPanel(); - controlsPanel = new javax.swing.JPanel(); - activateRumbleIRPanel = new javax.swing.JPanel(); - toggleRumbleButton = new javax.swing.JButton(); - toggleIRTrackingButton = new javax.swing.JButton(); - activateMotionSensingPanel = new javax.swing.JPanel(); - toggleMotionSensingTrackingButton = new javax.swing.JButton(); - activateSmoothingContinuousPanel = new javax.swing.JPanel(); - toggleSmoothingButton = new javax.swing.JButton(); - toggleContinuousButton = new javax.swing.JButton(); - setLedsPanel = new javax.swing.JPanel(); - led1Button = new javax.swing.JButton(); - led2Button = new javax.swing.JButton(); - led3Button = new javax.swing.JButton(); - led4Button = new javax.swing.JButton(); - setLedsButton = new javax.swing.JButton(); - setAlphaSmoothingPanel = new javax.swing.JPanel(); - alphaSmoothingTextField = new javax.swing.JTextField(); - alphaSmoothingButton = new javax.swing.JButton(); - setOrientationThresholdPanel = new javax.swing.JPanel(); - orientationThresholdTextField = new javax.swing.JTextField(); - orientationThresholdButton = new javax.swing.JButton(); - setAccelerationThresholdPanel = new javax.swing.JPanel(); - accelerationThresholdTextField = new javax.swing.JTextField(); - accelerationThresholdButton = new javax.swing.JButton(); - getStatusPanel = new javax.swing.JPanel(); - getStatusButton = new javax.swing.JButton(); - batteryText = new javax.swing.JLabel(); - batteryLevelText = new javax.swing.JLabel(); - setIrSensitivyPanel = new javax.swing.JPanel(); - setIrSensitivySpinner = new javax.swing.JSpinner(); - setIrSensitivyButton = new javax.swing.JButton(); - setTimeoutButton = new javax.swing.JButton(); - setTimeoutPanel = new javax.swing.JPanel(); - normalTimeoutSpinner = new javax.swing.JSpinner(); - normalTimeoutText = new javax.swing.JLabel(); - expansionHandshakeTimeoutSpinner = new javax.swing.JSpinner(); - expansionHandshakeTimeoutText = new javax.swing.JLabel(); - setIRConfPanel = new javax.swing.JPanel(); - toggleSensorBarPositionButton = new javax.swing.JButton(); - toggleScreenAspectRatioButton = new javax.swing.JButton(); - setVirtualResolutionPanel = new javax.swing.JPanel(); - xLabel = new javax.swing.JLabel(); - xResolutionTextField = new javax.swing.JTextField(); - yLabel = new javax.swing.JLabel(); - yResolutionTextField = new javax.swing.JTextField(); - setVirtualResolutionButton = new javax.swing.JButton(); - startMouseControlPanel = new javax.swing.JPanel(); - mouseIRControlButton = new javax.swing.JButton(); - exPansionPanel = new javax.swing.JPanel(); - expansionText = new javax.swing.JLabel(); - showExpansionWiimoteButton = new javax.swing.JButton(); - showExpansionWiimoteButton.setEnabled(false); - messagesPanel = new javax.swing.JPanel(); - reconnectWiimotesButton = new javax.swing.JButton(); - messageLabelText = new javax.swing.JLabel(); - messageText = new javax.swing.JLabel(); - - setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); - setTitle("WiiuseJ Test GUI"); - setName("WiiuseJ Test GUI"); // NOI18N - - leftPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - - irViewPanel.setBackground(new java.awt.Color(0, 0, 0)); - irViewPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 153, 153), 2, true), "IR View", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(255, 0, 51))); - irViewPanel.setToolTipText("IREvent"); - - javax.swing.GroupLayout irViewPanelLayout = new javax.swing.GroupLayout(irViewPanel); - irViewPanel.setLayout(irViewPanelLayout); - irViewPanelLayout.setHorizontalGroup( - irViewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 272, Short.MAX_VALUE) - ); - irViewPanelLayout.setVerticalGroup( - irViewPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 299, Short.MAX_VALUE) - ); - - accelerationPanel.setToolTipText("MotionSensingEvent"); - - javax.swing.GroupLayout accelerationPanelLayout = new javax.swing.GroupLayout(accelerationPanel); - accelerationPanel.setLayout(accelerationPanelLayout); - accelerationPanelLayout.setHorizontalGroup( - accelerationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 279, Short.MAX_VALUE) - ); - accelerationPanelLayout.setVerticalGroup( - accelerationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 213, Short.MAX_VALUE) - ); - - jTabbedPane1.addTab("Acceleration", accelerationPanel); - - javax.swing.GroupLayout motionSensingPanelLayout = new javax.swing.GroupLayout(motionSensingPanel); - motionSensingPanel.setLayout(motionSensingPanelLayout); - motionSensingPanelLayout.setHorizontalGroup( - motionSensingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 279, Short.MAX_VALUE) - ); - motionSensingPanelLayout.setVerticalGroup( - motionSensingPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 213, Short.MAX_VALUE) - ); - - jTabbedPane1.addTab("Orientation", motionSensingPanel); - - javax.swing.GroupLayout gForcePanelLayout = new javax.swing.GroupLayout(gForcePanel); - gForcePanel.setLayout(gForcePanelLayout); - gForcePanelLayout.setHorizontalGroup( - gForcePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 279, Short.MAX_VALUE) - ); - gForcePanelLayout.setVerticalGroup( - gForcePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 213, Short.MAX_VALUE) - ); - - jTabbedPane1.addTab("GForce", gForcePanel); - - javax.swing.GroupLayout leftPanelLayout = new javax.swing.GroupLayout(leftPanel); - leftPanel.setLayout(leftPanelLayout); - leftPanelLayout.setHorizontalGroup( - leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(irViewPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 284, Short.MAX_VALUE) - ); - leftPanelLayout.setVerticalGroup( - leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, leftPanelLayout.createSequentialGroup() - .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(irViewPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - jTabbedPane1.getAccessibleContext().setAccessibleName("Orientation"); - - rightPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - rightPanel.setLayout(new javax.swing.BoxLayout(rightPanel, javax.swing.BoxLayout.LINE_AXIS)); - - fixedWiimotePanel.setMaximumSize(new java.awt.Dimension(120, 32767)); - fixedWiimotePanel.setMinimumSize(new java.awt.Dimension(120, 100)); - fixedWiimotePanel.setPreferredSize(new java.awt.Dimension(120, 100)); - fixedWiimotePanel.setRequestFocusEnabled(false); - fixedWiimotePanel.setLayout(null); - - buttonsPanel.setMaximumSize(new java.awt.Dimension(120, 484)); - buttonsPanel.setMinimumSize(new java.awt.Dimension(120, 484)); - buttonsPanel.setOpaque(false); - buttonsPanel.setPreferredSize(new java.awt.Dimension(120, 484)); - - javax.swing.GroupLayout buttonsPanelLayout = new javax.swing.GroupLayout(buttonsPanel); - buttonsPanel.setLayout(buttonsPanelLayout); - buttonsPanelLayout.setHorizontalGroup( - buttonsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 120, Short.MAX_VALUE) - ); - buttonsPanelLayout.setVerticalGroup( - buttonsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 484, Short.MAX_VALUE) - ); - - fixedWiimotePanel.add(buttonsPanel); - buttonsPanel.setBounds(0, 0, 120, 484); - - rightPanel.add(fixedWiimotePanel); - - controlsPanel.setMinimumSize(new java.awt.Dimension(100, 264)); - controlsPanel.setPreferredSize(new java.awt.Dimension(190, 264)); - controlsPanel.setLayout(new java.awt.GridLayout(16, 1)); - - toggleRumbleButton.setText("Activate Rumble"); - toggleRumbleButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleRumbleButtonMousePressed(evt); - } - }); - activateRumbleIRPanel.add(toggleRumbleButton); - - toggleIRTrackingButton.setText("Activate IR Tracking"); - toggleIRTrackingButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleIRTrackingButtonMousePressed(evt); - } - }); - activateRumbleIRPanel.add(toggleIRTrackingButton); - - controlsPanel.add(activateRumbleIRPanel); - - toggleMotionSensingTrackingButton.setText("Activate motion sensing Tracking"); - toggleMotionSensingTrackingButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleMotionSensingTrackingButtonMousePressed(evt); - } - }); - activateMotionSensingPanel.add(toggleMotionSensingTrackingButton); - - controlsPanel.add(activateMotionSensingPanel); - - toggleSmoothingButton.setText("Activate Smoothing"); - toggleSmoothingButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleSmoothingButtonMousePressed(evt); - } - }); - activateSmoothingContinuousPanel.add(toggleSmoothingButton); - - toggleContinuousButton.setText("Activate Continuous"); - toggleContinuousButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleContinuousButtonMousePressed(evt); - } - }); - activateSmoothingContinuousPanel.add(toggleContinuousButton); - - controlsPanel.add(activateSmoothingContinuousPanel); - - led1Button.setText("Led1"); - led1Button.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - led1ButtonMousePressed(evt); - } - }); - setLedsPanel.add(led1Button); - - led2Button.setText("Led2"); - led2Button.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - led2ButtonMousePressed(evt); - } - }); - setLedsPanel.add(led2Button); - - led3Button.setText("Led3"); - led3Button.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - led3ButtonMousePressed(evt); - } - }); - setLedsPanel.add(led3Button); - - led4Button.setText("Led4"); - led4Button.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - led4ButtonMousePressed(evt); - } - }); - setLedsPanel.add(led4Button); - - setLedsButton.setText("Set leds"); - setLedsButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - setLedsButtonMousePressed(evt); - } - }); - setLedsPanel.add(setLedsButton); - - controlsPanel.add(setLedsPanel); - - alphaSmoothingTextField.setMinimumSize(new java.awt.Dimension(100, 20)); - alphaSmoothingTextField.setPreferredSize(new java.awt.Dimension(100, 20)); - setAlphaSmoothingPanel.add(alphaSmoothingTextField); - - alphaSmoothingButton.setText("Set alpha smoothing"); - alphaSmoothingButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - alphaSmoothingButtonMousePressed(evt); - } - }); - setAlphaSmoothingPanel.add(alphaSmoothingButton); - - controlsPanel.add(setAlphaSmoothingPanel); - - orientationThresholdTextField.setMinimumSize(new java.awt.Dimension(100, 20)); - orientationThresholdTextField.setPreferredSize(new java.awt.Dimension(100, 20)); - setOrientationThresholdPanel.add(orientationThresholdTextField); - - orientationThresholdButton.setText("Set orientation threshold"); - orientationThresholdButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - orientationThresholdButtonMousePressed(evt); - } - }); - setOrientationThresholdPanel.add(orientationThresholdButton); - - controlsPanel.add(setOrientationThresholdPanel); - - accelerationThresholdTextField.setPreferredSize(new java.awt.Dimension(100, 20)); - setAccelerationThresholdPanel.add(accelerationThresholdTextField); - - accelerationThresholdButton.setText("Set acceleration threshold"); - accelerationThresholdButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - accelerationThresholdButtonMousePressed(evt); - } - }); - setAccelerationThresholdPanel.add(accelerationThresholdButton); - - controlsPanel.add(setAccelerationThresholdPanel); - - getStatusButton.setText("Get status"); - getStatusButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - getStatusButtonMousePressed(evt); - } - }); - getStatusPanel.add(getStatusButton); - - batteryText.setFont(new java.awt.Font("Tahoma", 0, 14)); - batteryText.setText("Battery level :"); - getStatusPanel.add(batteryText); - - batteryLevelText.setFont(new java.awt.Font("Arial", 0, 14)); - batteryLevelText.setText(" %"); - getStatusPanel.add(batteryLevelText); - - controlsPanel.add(getStatusPanel); - - setIrSensitivySpinner.setPreferredSize(new java.awt.Dimension(50, 18)); - setIrSensitivySpinner.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - setIrSensitivySpinnerStateChanged(evt); - } - }); - setIrSensitivyPanel.add(setIrSensitivySpinner); - - setIrSensitivyButton.setText("SetIrSensivity"); - setIrSensitivyButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - setIrSensitivyButtonMousePressed(evt); - } - }); - setIrSensitivyPanel.add(setIrSensitivyButton); - - setTimeoutButton.setText("Set timeouts in ms"); - setTimeoutButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - setTimeoutButtonMousePressed(evt); - } - }); - setIrSensitivyPanel.add(setTimeoutButton); - - controlsPanel.add(setIrSensitivyPanel); - - normalTimeoutSpinner.setPreferredSize(new java.awt.Dimension(40, 18)); - normalTimeoutSpinner.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - normalTimeoutSpinnerStateChanged(evt); - } - }); - setTimeoutPanel.add(normalTimeoutSpinner); - - normalTimeoutText.setText("Normal timeout"); - setTimeoutPanel.add(normalTimeoutText); - - expansionHandshakeTimeoutSpinner.setPreferredSize(new java.awt.Dimension(40, 18)); - expansionHandshakeTimeoutSpinner.addChangeListener(new javax.swing.event.ChangeListener() { - public void stateChanged(javax.swing.event.ChangeEvent evt) { - expansionHandshakeTimeoutSpinnerStateChanged(evt); - } - }); - setTimeoutPanel.add(expansionHandshakeTimeoutSpinner); - - expansionHandshakeTimeoutText.setText("Expansion handshake timeout"); - setTimeoutPanel.add(expansionHandshakeTimeoutText); - - controlsPanel.add(setTimeoutPanel); - - toggleSensorBarPositionButton.setText("Set sensor bar above"); - toggleSensorBarPositionButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleSensorBarPositionButtonMousePressed(evt); - } - }); - setIRConfPanel.add(toggleSensorBarPositionButton); - - toggleScreenAspectRatioButton.setText("Set screen aspect ratio 4/3"); - toggleScreenAspectRatioButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - toggleScreenAspectRatioButtonMousePressed(evt); - } - }); - setIRConfPanel.add(toggleScreenAspectRatioButton); - - controlsPanel.add(setIRConfPanel); - - xLabel.setText("X"); - setVirtualResolutionPanel.add(xLabel); - - xResolutionTextField.setMinimumSize(new java.awt.Dimension(40, 20)); - xResolutionTextField.setPreferredSize(new java.awt.Dimension(40, 20)); - setVirtualResolutionPanel.add(xResolutionTextField); - - yLabel.setText("Y"); - setVirtualResolutionPanel.add(yLabel); - - yResolutionTextField.setFocusTraversalPolicyProvider(true); - yResolutionTextField.setMinimumSize(new java.awt.Dimension(40, 20)); - yResolutionTextField.setPreferredSize(new java.awt.Dimension(40, 20)); - setVirtualResolutionPanel.add(yResolutionTextField); - - setVirtualResolutionButton.setText("Set virtual resolution"); - setVirtualResolutionButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - setVirtualResolutionButtonMousePressed(evt); - } - }); - setVirtualResolutionPanel.add(setVirtualResolutionButton); - - controlsPanel.add(setVirtualResolutionPanel); - - mouseIRControlButton.setText("Start infrared mouse control"); - mouseIRControlButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - mouseIRControlButtonMousePressed(evt); - } - }); - startMouseControlPanel.add(mouseIRControlButton); - - controlsPanel.add(startMouseControlPanel); - - expansionText.setText("No expansion connected."); - exPansionPanel.add(expansionText); - - showExpansionWiimoteButton.setText("No expansion connected"); - showExpansionWiimoteButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - showExpansionWiimoteButtonMousePressed(evt); - } - }); - exPansionPanel.add(showExpansionWiimoteButton); - - controlsPanel.add(exPansionPanel); - - reconnectWiimotesButton.setText("Reconnect wiimote"); - reconnectWiimotesButton.addMouseListener(new java.awt.event.MouseAdapter() { - public void mousePressed(java.awt.event.MouseEvent evt) { - reconnectWiimotesButtonMousePressed(evt); - } - }); - messagesPanel.add(reconnectWiimotesButton); - - messageLabelText.setFont(new java.awt.Font("Tahoma", 0, 14)); - messageLabelText.setText("Message : "); - messagesPanel.add(messageLabelText); - - messageText.setFont(new java.awt.Font("Arial", 0, 14)); - messageText.setText("None"); - messagesPanel.add(messageText); - - controlsPanel.add(messagesPanel); - - rightPanel.add(controlsPanel); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(leftPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(rightPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 498, Short.MAX_VALUE)) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(leftPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(rightPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 573, Short.MAX_VALUE) - ); - - java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); - setBounds((screenSize.width-800)/2, (screenSize.height-600)/2, 800, 600); - }// //GEN-END:initComponents - private void toggleRumbleButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleRumbleButtonMousePressed - if (toggleRumbleButton.isEnabled()) { - wiimote.activateRumble(); - toggleRumbleButton.setEnabled(false); - toggleRumbleButton.setText("Deactivate Rumble"); - messageText.setText("Rumble activated"); - } else { - wiimote.deactivateRumble(); - toggleRumbleButton.setEnabled(true); - toggleRumbleButton.setText("Activate Rumble"); - messageText.setText("Rumble deactivated"); - } - }//GEN-LAST:event_toggleRumbleButtonMousePressed - - private void toggleIRTrackingButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleIRTrackingButtonMousePressed - if (toggleIRTrackingButton.isEnabled()) { - wiimote.activateIRTRacking(); - toggleIRTrackingButton.setEnabled(false); - toggleIRTrackingButton.setText("Deactivate IR Tracking"); - messageText.setText("IR Tracking activated"); - } else { - wiimote.deactivateIRTRacking(); - toggleIRTrackingButton.setEnabled(true); - toggleIRTrackingButton.setText("Activate IR Tracking"); - ((IRPanel) irViewPanel).onDisconnectionEvent(null); - messageText.setText("IR Tracking deactivated"); - } - }//GEN-LAST:event_toggleIRTrackingButtonMousePressed - - private void toggleMotionSensingTrackingButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleMotionSensingTrackingButtonMousePressed - if (toggleMotionSensingTrackingButton.isEnabled()) { - wiimote.activateMotionSensing(); - toggleMotionSensingTrackingButton.setEnabled(false); - toggleMotionSensingTrackingButton.setText("Deactivate Motion Sensing"); - messageText.setText("Motion Sensing activated"); - } else { - wiimote.deactivateMotionSensing(); - toggleMotionSensingTrackingButton.setEnabled(true); - toggleMotionSensingTrackingButton.setText("Activate Motion Sensing"); - ((OrientationPanel) motionSensingPanel).onDisconnectionEvent(null); - ((GForcePanel) gForcePanel).onDisconnectionEvent(null); - messageText.setText("Motion Sensing deactivated"); - } - }//GEN-LAST:event_toggleMotionSensingTrackingButtonMousePressed - - private void toggleSmoothingButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleSmoothingButtonMousePressed - if (toggleSmoothingButton.isEnabled()) { - wiimote.activateSmoothing(); - toggleSmoothingButton.setEnabled(false); - toggleSmoothingButton.setText("Deactivate Alpha Smoothing"); - messageText.setText("Alpha Smoothing activated"); - } else { - wiimote.deactivateSmoothing(); - toggleSmoothingButton.setEnabled(true); - toggleSmoothingButton.setText("Activate Alpha Smoothing"); - messageText.setText("Alpha Smoothing deactivated"); - } - }//GEN-LAST:event_toggleSmoothingButtonMousePressed - - private void toggleContinuousButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleContinuousButtonMousePressed - if (toggleContinuousButton.isEnabled()) { - wiimote.activateContinuous(); - toggleContinuousButton.setEnabled(false); - toggleContinuousButton.setText("Deactivate Continuous"); - messageText.setText("Continuous activated"); - } else { - wiimote.deactivateContinuous(); - toggleContinuousButton.setEnabled(true); - toggleContinuousButton.setText("Activate Continuous"); - messageText.setText("Continuous deactivated"); - } - }//GEN-LAST:event_toggleContinuousButtonMousePressed - - private void led1ButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_led1ButtonMousePressed - if (led1Button.isEnabled()) { - led1Button.setEnabled(false); - } else { - led1Button.setEnabled(true); - } - }//GEN-LAST:event_led1ButtonMousePressed - - private void led2ButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_led2ButtonMousePressed - if (led2Button.isEnabled()) { - led2Button.setEnabled(false); - } else { - led2Button.setEnabled(true); - } - }//GEN-LAST:event_led2ButtonMousePressed - - private void led3ButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_led3ButtonMousePressed - if (led3Button.isEnabled()) { - led3Button.setEnabled(false); - } else { - led3Button.setEnabled(true); - } - }//GEN-LAST:event_led3ButtonMousePressed - - private void led4ButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_led4ButtonMousePressed - if (led4Button.isEnabled()) { - led4Button.setEnabled(false); - } else { - led4Button.setEnabled(true); - } - }//GEN-LAST:event_led4ButtonMousePressed - - private void setLedsButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_setLedsButtonMousePressed - wiimote.setLeds(led1Button.isEnabled(), led2Button.isEnabled(), - led3Button.isEnabled(), led4Button.isEnabled()); - messageText.setText("Leds set"); - }//GEN-LAST:event_setLedsButtonMousePressed - - private void alphaSmoothingButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_alphaSmoothingButtonMousePressed - try { - float nb = Float.parseFloat(alphaSmoothingTextField.getText()); - wiimote.setAlphaSmoothingValue(nb); - messageText.setText("Alpha smoothing set to " + nb); - } catch (NumberFormatException e) { - messageText.setText("Number is not a float, alpha smoothing not set !"); - } - }//GEN-LAST:event_alphaSmoothingButtonMousePressed - - private void orientationThresholdButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_orientationThresholdButtonMousePressed - try { - float nb = Float.parseFloat(orientationThresholdTextField.getText()); - wiimote.setOrientationThreshold(nb); - messageText.setText("Orientation threshold set to " + nb); - } catch (NumberFormatException e) { - messageText.setText("Number is not a float, orientation threshold not set !"); - } - }//GEN-LAST:event_orientationThresholdButtonMousePressed - - private void accelerationThresholdButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_accelerationThresholdButtonMousePressed - try { - int nb = Integer.parseInt(accelerationThresholdTextField.getText()); - wiimote.setAccelerationThreshold(nb); - messageText.setText("Acceleration threshold set to " + nb); - } catch (NumberFormatException e) { - messageText.setText("Number is not an integer, acceleration threshold not set !"); - } - }//GEN-LAST:event_accelerationThresholdButtonMousePressed - - private void getStatusButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_getStatusButtonMousePressed - wiimote.getStatus(); - statusMotionRequested = true; - statusIRRequested = true; - if (expansionFrame instanceof NunchukGuiTest){ - ((NunchukGuiTest)expansionFrame).requestThresholdsUpdate(); - } - }//GEN-LAST:event_getStatusButtonMousePressed - - private void toggleSensorBarPositionButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleSensorBarPositionButtonMousePressed - if (toggleSensorBarPositionButton.isEnabled()) { - wiimote.setSensorBarBelowScreen(); - toggleSensorBarPositionButton.setEnabled(false); - toggleSensorBarPositionButton.setText("Set sensor bar below"); - messageText.setText("Sensor bar set above"); - } else { - wiimote.setSensorBarAboveScreen(); - toggleSensorBarPositionButton.setEnabled(true); - toggleSensorBarPositionButton.setText("Set sensor bar above"); - messageText.setText("Sensor bar set below"); - } - }//GEN-LAST:event_toggleSensorBarPositionButtonMousePressed - - private void toggleScreenAspectRatioButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_toggleScreenAspectRatioButtonMousePressed - if (toggleScreenAspectRatioButton.isEnabled()) { - wiimote.setScreenAspectRatio43(); - toggleScreenAspectRatioButton.setEnabled(false); - toggleScreenAspectRatioButton.setText("Set screen aspect ratio 16/9"); - messageText.setText("creen aspect ratio to 4/3"); - } else { - wiimote.setScreenAspectRatio169(); - toggleScreenAspectRatioButton.setEnabled(true); - toggleScreenAspectRatioButton.setText("Set screen aspect ratio 4/3"); - messageText.setText("Screen aspect ratio to 16/9"); - } - }//GEN-LAST:event_toggleScreenAspectRatioButtonMousePressed - - private void setVirtualResolutionButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_setVirtualResolutionButtonMousePressed - try { - int xres = Integer.parseInt(xResolutionTextField.getText()); - int yres = Integer.parseInt(yResolutionTextField.getText()); - wiimote.setVirtualResolution(xres, yres); - messageText.setText("Virtual resolution set to " + xres + "X" + yres); - } catch (NumberFormatException e) { - messageText.setText("A number in the virtual resolution is not an integer. Virtual resolution not set!"); - } - }//GEN-LAST:event_setVirtualResolutionButtonMousePressed - - private void mouseIRControlButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_mouseIRControlButtonMousePressed - if (mouseIRControlButton.isEnabled()) { - try { - mouseIRControlButton.setEnabled(false); - mouseIRControlButton.setText("Stop infrared mouse control"); - robot = new Robot(); - messageText.setText("Infrared mouse control started"); - } catch (AWTException ex) { - Logger.getLogger(WiiuseJGuiTest.class.getName()).log(Level.SEVERE, null, ex); - } - } else { - mouseIRControlButton.setEnabled(true); - mouseIRControlButton.setText("Start infrared mouse control"); - robot = null; - messageText.setText("Infrared mouse control stopped"); - } - }//GEN-LAST:event_mouseIRControlButtonMousePressed - - private void normalTimeoutSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_normalTimeoutSpinnerStateChanged - String value = normalTimeoutSpinner.getValue().toString(); - boolean isInt = true; - int valueInt = 0; - try { - valueInt = Integer.parseInt(value); - } catch (NumberFormatException e) { - isInt = false; - messageText.setText("Wrong value for normal timeout."); - } - if (isInt) { - if (valueInt > 1000) { - normalTimeoutSpinner.setValue("1000"); - } else if (valueInt < 0) { - normalTimeoutSpinner.setValue("0"); - } - } - }//GEN-LAST:event_normalTimeoutSpinnerStateChanged - - private void expansionHandshakeTimeoutSpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_expansionHandshakeTimeoutSpinnerStateChanged - String value = expansionHandshakeTimeoutSpinner.getValue().toString(); - boolean isInt = true; - int valueInt = 0; - try { - valueInt = Integer.parseInt(value); - } catch (NumberFormatException e) { - isInt = false; - messageText.setText("Wrong value for expansion handshake timeout."); - } - if (isInt) { - if (valueInt > 1000) { - expansionHandshakeTimeoutSpinner.setValue("1000"); - } else if (valueInt < 0) { - expansionHandshakeTimeoutSpinner.setValue("0"); - } - } - }//GEN-LAST:event_expansionHandshakeTimeoutSpinnerStateChanged - - private void setIrSensitivySpinnerStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_setIrSensitivySpinnerStateChanged - String value = setIrSensitivySpinner.getValue().toString(); - boolean isInt = true; - int valueInt = 0; - try { - valueInt = Integer.parseInt(value); - } catch (NumberFormatException e) { - isInt = false; - messageText.setText("Wrong value for IR senstivity."); - } - if (isInt) { - if (valueInt > 5) { - setIrSensitivySpinner.setValue("1000"); - } else if (valueInt < 0) { - setIrSensitivySpinner.setValue("0"); - } - } - }//GEN-LAST:event_setIrSensitivySpinnerStateChanged - - private void setIrSensitivyButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_setIrSensitivyButtonMousePressed - String value = setIrSensitivySpinner.getValue().toString(); - boolean isInt = true; - int valueInt = 0; - try { - valueInt = Integer.parseInt(value); - } catch (NumberFormatException e) { - isInt = false; - messageText.setText("Wrong value for IR sensitivity. It must be an int !"); - } - if (isInt) { - if (valueInt >= 1 && valueInt <= 5) { - wiimote.setIrSensitivity(valueInt); - messageText.setText("IR senstivity set to: " + valueInt + "."); - } else { - messageText.setText("Wrong value for IR senstivity. It muset be between 1 and 5 !"); - } - } - }//GEN-LAST:event_setIrSensitivyButtonMousePressed - - private void setTimeoutButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_setTimeoutButtonMousePressed - //get normal timeout - String value = normalTimeoutSpinner.getValue().toString(); - boolean isInt = true; - short valueInt = 0; - try { - valueInt = Short.parseShort(value); - } catch (NumberFormatException e) { - isInt = false; - messageText.setText("Wrong value for normal timeout. It must be an int !"); - } - //get expansion handshake timeout - String value2 = expansionHandshakeTimeoutSpinner.getValue().toString(); - boolean isInt2 = true; - short valueInt2 = 0; - try { - valueInt2 = Short.parseShort(value2); - } catch (NumberFormatException e) { - isInt2 = false; - messageText.setText("Wrong value for expansion handshake timeout. It must be an int !"); - } - if (isInt && isInt2) { - if (valueInt > 0 && valueInt2 > 0) { - wiimote.setTimeout(valueInt, valueInt2); - messageText.setText("Normal timeout set to: " + valueInt + " and expansion handshake timeout set to: " + valueInt2 + "!"); - } else { - messageText.setText("Wrong value for one of the timeout value. It must be an integer > 0 !"); - } - } - }//GEN-LAST:event_setTimeoutButtonMousePressed - - private void reconnectWiimotesButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_reconnectWiimotesButtonMousePressed - //stop manager - WiiUseApiManager manager = WiiUseApiManager.getInstance(); - manager.shutdown(); - - //unregister previous wiimote - if (wiimote != null){ - onDisconnectionEvent(null); - } - - //Reset Gui - //remove frame for expansion - if (expansionFrame != null) { - if (expansionFrame instanceof NunchukGuiTest) { - ((NunchukGuiTest) expansionFrame).unRegisterListeners(); - } - expansionFrame.setEnabled(false); - expansionFrame.dispose(); - expansionFrame = null; - } - - //setup buttons In first state - toggleRumbleButton.setText("Activate Rumble"); - toggleRumbleButton.setEnabled(true); - toggleMotionSensingTrackingButton.setText("Activate motion sensing Tracking"); - toggleMotionSensingTrackingButton.setEnabled(true); - toggleIRTrackingButton.setText("Activate IR Tracking"); - toggleIRTrackingButton.setEnabled(true); - toggleContinuousButton.setText("Activate Continuous"); - toggleContinuousButton.setEnabled(true); - toggleScreenAspectRatioButton.setText("Set screen aspect ratio 4/3"); - toggleScreenAspectRatioButton.setEnabled(true); - toggleSensorBarPositionButton.setText("Set sensor bar above"); - toggleSensorBarPositionButton.setEnabled(true); - toggleSmoothingButton.setText("Activate Smoothing"); - toggleSmoothingButton.setEnabled(true); - mouseIRControlButton.setText("Start infrared mouse control"); - mouseIRControlButton.setEnabled(true); - - //get wiimote - Wiimote[] listWiimote = WiiUseApiManager.getWiimotes(1, true); - if (listWiimote.length > 0){ - wiimote = listWiimote[0]; - - //registers listeners - registerListeners(); - initWiimote(); - - isFirstStatusGot = false; - getStatusButtonMousePressed(null); - } - }//GEN-LAST:event_reconnectWiimotesButtonMousePressed - - private void showExpansionWiimoteButtonMousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_showExpansionWiimoteButtonMousePressed - if (expansionFrame != null) { - if (showExpansionWiimoteButton.isEnabled()) {//expansion frame not shown - //show it - expansionFrame.setEnabled(true); - expansionFrame.setVisible(true); - showExpansionWiimoteButton.setEnabled(false); - showExpansionWiimoteButton.setText("Hide Nunchuk"); - messageText.setText("Nunchuk displayed !"); - } else {//already being shown - expansionFrame.setEnabled(false); - expansionFrame.setVisible(false); - showExpansionWiimoteButton.setEnabled(true); - showExpansionWiimoteButton.setText("Show Nunchuk"); - messageText.setText("Nunchuk hidden !"); - } - } - }//GEN-LAST:event_showExpansionWiimoteButtonMousePressed - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JPanel accelerationPanel; - private javax.swing.JButton accelerationThresholdButton; - private javax.swing.JTextField accelerationThresholdTextField; - private javax.swing.JPanel activateMotionSensingPanel; - private javax.swing.JPanel activateRumbleIRPanel; - private javax.swing.JPanel activateSmoothingContinuousPanel; - private javax.swing.JButton alphaSmoothingButton; - private javax.swing.JTextField alphaSmoothingTextField; - private javax.swing.JLabel batteryLevelText; - private javax.swing.JLabel batteryText; - private javax.swing.JPanel buttonsPanel; - private javax.swing.JPanel controlsPanel; - private javax.swing.JPanel exPansionPanel; - private javax.swing.JSpinner expansionHandshakeTimeoutSpinner; - private javax.swing.JLabel expansionHandshakeTimeoutText; - private javax.swing.JLabel expansionText; - private javax.swing.JPanel fixedWiimotePanel; - private javax.swing.JPanel gForcePanel; - private javax.swing.JButton getStatusButton; - private javax.swing.JPanel getStatusPanel; - private javax.swing.JPanel irViewPanel; - private javax.swing.JTabbedPane jTabbedPane1; - private javax.swing.JButton led1Button; - private javax.swing.JButton led2Button; - private javax.swing.JButton led3Button; - private javax.swing.JButton led4Button; - private javax.swing.JPanel leftPanel; - private javax.swing.JLabel messageLabelText; - private javax.swing.JLabel messageText; - private javax.swing.JPanel messagesPanel; - private javax.swing.JPanel motionSensingPanel; - private javax.swing.JButton mouseIRControlButton; - private javax.swing.JSpinner normalTimeoutSpinner; - private javax.swing.JLabel normalTimeoutText; - private javax.swing.JButton orientationThresholdButton; - private javax.swing.JTextField orientationThresholdTextField; - private javax.swing.JButton reconnectWiimotesButton; - private javax.swing.JPanel rightPanel; - private javax.swing.JPanel setAccelerationThresholdPanel; - private javax.swing.JPanel setAlphaSmoothingPanel; - private javax.swing.JPanel setIRConfPanel; - private javax.swing.JButton setIrSensitivyButton; - private javax.swing.JPanel setIrSensitivyPanel; - private javax.swing.JSpinner setIrSensitivySpinner; - private javax.swing.JButton setLedsButton; - private javax.swing.JPanel setLedsPanel; - private javax.swing.JPanel setOrientationThresholdPanel; - private javax.swing.JButton setTimeoutButton; - private javax.swing.JPanel setTimeoutPanel; - private javax.swing.JButton setVirtualResolutionButton; - private javax.swing.JPanel setVirtualResolutionPanel; - private javax.swing.JButton showExpansionWiimoteButton; - private javax.swing.JPanel startMouseControlPanel; - private javax.swing.JButton toggleContinuousButton; - private javax.swing.JButton toggleIRTrackingButton; - private javax.swing.JButton toggleMotionSensingTrackingButton; - private javax.swing.JButton toggleRumbleButton; - private javax.swing.JButton toggleScreenAspectRatioButton; - private javax.swing.JButton toggleSensorBarPositionButton; - private javax.swing.JButton toggleSmoothingButton; - private javax.swing.JLabel xLabel; - private javax.swing.JTextField xResolutionTextField; - private javax.swing.JLabel yLabel; - private javax.swing.JTextField yResolutionTextField; - // End of variables declaration//GEN-END:variables +public class WiiuseJGuiTest extends javax.swing.JFrame implements + WiimoteListener { + + private Wiimote wiimote; + private Robot robot = null; + private boolean statusMotionRequested = false; + private boolean statusIRRequested = false; + private JFrame expansionFrame = null; + private boolean isFirstStatusGot = false; + private WindowListener buttonSetter = new WindowListener() { + + public void windowOpened(WindowEvent e) { + // nothing + } + + public void windowClosing(WindowEvent e) { + // nothing + } + + public void windowClosed(WindowEvent e) { + // nothing + } + + public void windowIconified(WindowEvent e) { + // nothing + } + + public void windowDeiconified(WindowEvent e) { + // nothing + } + + public void windowActivated(WindowEvent e) { + showExpansionWiimoteButton.setEnabled(false); + showExpansionWiimoteButton.setText("Hide Nunchuk"); + } + + public void windowDeactivated(WindowEvent e) { + showExpansionWiimoteButton.setEnabled(true); + showExpansionWiimoteButton.setText("Show Nunchuk"); + } + }; + + /** + * default constructor + */ + public WiiuseJGuiTest() { + initComponents(); + this.addWindowListener(new CloseGuiTestCleanly()); + } + + /** + * Creates new form WiiuseJGuiTest + */ + public WiiuseJGuiTest(Wiimote wiimote) { + initComponents(); + this.addWindowListener(new CloseGuiTestCleanly()); + if (wiimote != null) { + this.wiimote = wiimote; + registerListeners(); + initWiimote(); + isFirstStatusGot = false; + getStatusButtonMousePressed(null); + } + } + + /** + * Clear all views + */ + private void clearViews() { + ((IRPanel) irViewPanel).clearView(); + ((ButtonsEventPanel) buttonsPanel).clearView(); + ((OrientationPanel) motionSensingPanel).clearView(); + ((GForcePanel) gForcePanel).clearView(); + ((AccelerationPanel) accelerationPanel).clearView(); + } + + /** + * Unregister all listeners. + */ + private void unregisterListeners() { + wiimote.removeWiiMoteEventListeners((IRPanel) irViewPanel); + wiimote.removeWiiMoteEventListeners((ButtonsEventPanel) buttonsPanel); + wiimote + .removeWiiMoteEventListeners((OrientationPanel) motionSensingPanel); + wiimote.removeWiiMoteEventListeners((GForcePanel) gForcePanel); + wiimote + .removeWiiMoteEventListeners((AccelerationPanel) accelerationPanel); + wiimote.removeWiiMoteEventListeners(this); + } + + private void initWiimote() { + wiimote.deactivateContinuous(); + wiimote.deactivateSmoothing(); + wiimote.setScreenAspectRatio169(); + wiimote.setSensorBarBelowScreen(); + } + + /** + * Register all listeners + */ + private void registerListeners() { + wiimote.addWiiMoteEventListeners((IRPanel) irViewPanel); + wiimote.addWiiMoteEventListeners((ButtonsEventPanel) buttonsPanel); + wiimote.addWiiMoteEventListeners((OrientationPanel) motionSensingPanel); + wiimote.addWiiMoteEventListeners((GForcePanel) gForcePanel); + wiimote.addWiiMoteEventListeners((AccelerationPanel) accelerationPanel); + wiimote.addWiiMoteEventListeners(this); + + } + + public void onButtonsEvent(WiimoteButtonsEvent arg0) { + if (robot != null) { + if (arg0.isButtonAPressed()) { + robot.mousePress(InputEvent.BUTTON1_MASK); + + } + if (arg0.isButtonBPressed()) { + robot.mousePress(InputEvent.BUTTON2_MASK); + + } + if (arg0.isButtonOnePressed()) { + robot.mousePress(InputEvent.BUTTON3_MASK); + + } + if (arg0.isButtonAJustReleased()) { + robot.mouseRelease(InputEvent.BUTTON1_MASK); + + } + if (arg0.isButtonBJustReleased()) { + robot.mouseRelease(InputEvent.BUTTON2_MASK); + + } + if (arg0.isButtonOneJustReleased()) { + robot.mouseRelease(InputEvent.BUTTON3_MASK); + + } + if (arg0.isButtonUpPressed()) {// mouse wheel up + robot.mouseWheel(-1); + } + if (arg0.isButtonDownPressed()) {// mouse wheel down + robot.mouseWheel(1); + } + + if (arg0.isButtonTwoPressed()) {// stop mouse control + mouseIRControlButtonMousePressed(null); + } + } + } + + public void onIrEvent(IREvent arg0) { + if (robot != null) {// if mouse control activated + robot.mouseMove(arg0.getX(), arg0.getY()); + } + if (statusIRRequested) { + xResolutionTextField.setText("" + arg0.getXVRes()); + yResolutionTextField.setText("" + arg0.getYVRes()); + statusIRRequested = false; + } + } + + public void onMotionSensingEvent(MotionSensingEvent arg0) { + if (statusMotionRequested) {// Status requested + accelerationThresholdTextField.setText("" + + arg0.getAccelerationThreshold()); + orientationThresholdTextField.setText("" + + arg0.getOrientationThreshold()); + alphaSmoothingTextField.setText("" + arg0.getAlphaSmoothing()); + statusMotionRequested = false; + } + } + + public void onExpansionEvent(ExpansionEvent e) { + // nothing yet + } + + public void onStatusEvent(StatusEvent arg0) { + if (!isFirstStatusGot) { + if (arg0.isNunchukConnected()) { + showExpansionWiimoteButton.setEnabled(true); + showExpansionWiimoteButton.setText("Show Nunchuk"); + expansionFrame = new NunchukGuiTest(wiimote); + expansionFrame + .setDefaultCloseOperation(expansionFrame.HIDE_ON_CLOSE); + expansionFrame.addWindowListener(buttonSetter); + isFirstStatusGot = true; + } + } + messageText.setText("Status received !"); + batteryLevelText.setText(arg0.getBatteryLevel() + " %"); + led1Button.setEnabled(arg0.isLed1Set()); + led2Button.setEnabled(arg0.isLed2Set()); + led3Button.setEnabled(arg0.isLed3Set()); + led4Button.setEnabled(arg0.isLed4Set()); + if (arg0.isNunchukConnected()) { + ((NunchukGuiTest) expansionFrame).requestThresholdsUpdate(); + } + // attachments + int eventType = arg0.getEventType(); + if (eventType == StatusEvent.WIIUSE_CLASSIC_CTRL_INSERTED) { + expansionText.setText("Classic control connected."); + } else if (eventType == StatusEvent.WIIUSE_CLASSIC_CTRL_REMOVED) { + expansionText.setText("Classic control removed."); + } else if (eventType == StatusEvent.WIIUSE_NUNCHUK_INSERTED) { + expansionText.setText("Nunchuk connected."); + } else if (eventType == StatusEvent.WIIUSE_NUNCHUK_REMOVED) { + expansionText.setText("Nunchuk removed."); + } else if (eventType == StatusEvent.WIIUSE_GUITAR_HERO_3_CTRL_INSERTED) { + expansionText.setText("Guitar Hero 3 control connected."); + } else if (eventType == StatusEvent.WIIUSE_GUITAR_HERO_3_CTRL_REMOVED) { + expansionText.setText("Guitar Hero 3 control removed."); + } + } + + public void onDisconnectionEvent(DisconnectionEvent arg0) { + messageText.setText("Wiimote Disconnected !"); + unregisterListeners(); + clearViews(); + isFirstStatusGot = false; + } + + public void onNunchukInsertedEvent(NunchukInsertedEvent e) { + messageText.setText("Nunchuk connected !"); + expansionText.setText("Expansion connected : Nunchuk."); + showExpansionWiimoteButton.setEnabled(true); + showExpansionWiimoteButton.setText("Show nunchuk"); + expansionFrame = new NunchukGuiTest(wiimote); + expansionFrame.setDefaultCloseOperation(expansionFrame.HIDE_ON_CLOSE); + expansionFrame.addWindowListener(buttonSetter); + } + + public void onNunchukRemovedEvent(NunchukRemovedEvent e) { + messageText.setText("Nunchuk disconnected !"); + expansionText.setText("No expansion connected."); + showExpansionWiimoteButton.setEnabled(false); + showExpansionWiimoteButton.setText("No expansion"); + if (expansionFrame != null) { + if (expansionFrame instanceof NunchukGuiTest) { + ((NunchukGuiTest) expansionFrame).unRegisterListeners(); + } + expansionFrame.setEnabled(false); + expansionFrame.dispose(); + expansionFrame = null; + } + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + // //GEN-BEGIN:initComponents + private void initComponents() { + + leftPanel = new javax.swing.JPanel(); + irViewPanel = new IRPanel(); + jTabbedPane1 = new javax.swing.JTabbedPane(); + accelerationPanel = new AccelerationWiimoteEventPanel(); + motionSensingPanel = new OrientationWiimoteEventPanel(); + gForcePanel = new wiiusej.utils.GForceWiimoteEventPanel(); + rightPanel = new javax.swing.JPanel(); + fixedWiimotePanel = new javax.swing.JPanel(); + buttonsPanel = new ButtonsEventPanel(); + controlsPanel = new javax.swing.JPanel(); + activateRumbleIRPanel = new javax.swing.JPanel(); + toggleRumbleButton = new javax.swing.JButton(); + toggleIRTrackingButton = new javax.swing.JButton(); + activateMotionSensingPanel = new javax.swing.JPanel(); + toggleMotionSensingTrackingButton = new javax.swing.JButton(); + activateSmoothingContinuousPanel = new javax.swing.JPanel(); + toggleSmoothingButton = new javax.swing.JButton(); + toggleContinuousButton = new javax.swing.JButton(); + setLedsPanel = new javax.swing.JPanel(); + led1Button = new javax.swing.JButton(); + led2Button = new javax.swing.JButton(); + led3Button = new javax.swing.JButton(); + led4Button = new javax.swing.JButton(); + setLedsButton = new javax.swing.JButton(); + setAlphaSmoothingPanel = new javax.swing.JPanel(); + alphaSmoothingTextField = new javax.swing.JTextField(); + alphaSmoothingButton = new javax.swing.JButton(); + setOrientationThresholdPanel = new javax.swing.JPanel(); + orientationThresholdTextField = new javax.swing.JTextField(); + orientationThresholdButton = new javax.swing.JButton(); + setAccelerationThresholdPanel = new javax.swing.JPanel(); + accelerationThresholdTextField = new javax.swing.JTextField(); + accelerationThresholdButton = new javax.swing.JButton(); + getStatusPanel = new javax.swing.JPanel(); + getStatusButton = new javax.swing.JButton(); + batteryText = new javax.swing.JLabel(); + batteryLevelText = new javax.swing.JLabel(); + setIrSensitivyPanel = new javax.swing.JPanel(); + setIrSensitivySpinner = new javax.swing.JSpinner(); + setIrSensitivyButton = new javax.swing.JButton(); + setTimeoutButton = new javax.swing.JButton(); + setTimeoutPanel = new javax.swing.JPanel(); + normalTimeoutSpinner = new javax.swing.JSpinner(); + normalTimeoutText = new javax.swing.JLabel(); + expansionHandshakeTimeoutSpinner = new javax.swing.JSpinner(); + expansionHandshakeTimeoutText = new javax.swing.JLabel(); + setIRConfPanel = new javax.swing.JPanel(); + toggleSensorBarPositionButton = new javax.swing.JButton(); + toggleScreenAspectRatioButton = new javax.swing.JButton(); + setVirtualResolutionPanel = new javax.swing.JPanel(); + xLabel = new javax.swing.JLabel(); + xResolutionTextField = new javax.swing.JTextField(); + yLabel = new javax.swing.JLabel(); + yResolutionTextField = new javax.swing.JTextField(); + setVirtualResolutionButton = new javax.swing.JButton(); + startMouseControlPanel = new javax.swing.JPanel(); + mouseIRControlButton = new javax.swing.JButton(); + exPansionPanel = new javax.swing.JPanel(); + expansionText = new javax.swing.JLabel(); + showExpansionWiimoteButton = new javax.swing.JButton(); + showExpansionWiimoteButton.setEnabled(false); + messagesPanel = new javax.swing.JPanel(); + reconnectWiimotesButton = new javax.swing.JButton(); + messageLabelText = new javax.swing.JLabel(); + messageText = new javax.swing.JLabel(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + setTitle("WiiuseJ Test GUI"); + setName("WiiuseJ Test GUI"); // NOI18N + + leftPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + + irViewPanel.setBackground(new java.awt.Color(0, 0, 0)); + irViewPanel.setBorder(javax.swing.BorderFactory.createTitledBorder( + new javax.swing.border.LineBorder(new java.awt.Color(0, 153, + 153), 2, true), "IR View", + javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, + javax.swing.border.TitledBorder.DEFAULT_POSITION, + new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(255, 0, + 51))); + irViewPanel.setToolTipText("IREvent"); + + javax.swing.GroupLayout irViewPanelLayout = new javax.swing.GroupLayout( + irViewPanel); + irViewPanel.setLayout(irViewPanelLayout); + irViewPanelLayout.setHorizontalGroup(irViewPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 272, Short.MAX_VALUE)); + irViewPanelLayout.setVerticalGroup(irViewPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 299, Short.MAX_VALUE)); + + accelerationPanel.setToolTipText("MotionSensingEvent"); + + javax.swing.GroupLayout accelerationPanelLayout = new javax.swing.GroupLayout( + accelerationPanel); + accelerationPanel.setLayout(accelerationPanelLayout); + accelerationPanelLayout.setHorizontalGroup(accelerationPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 279, Short.MAX_VALUE)); + accelerationPanelLayout.setVerticalGroup(accelerationPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 213, Short.MAX_VALUE)); + + jTabbedPane1.addTab("Acceleration", accelerationPanel); + + javax.swing.GroupLayout motionSensingPanelLayout = new javax.swing.GroupLayout( + motionSensingPanel); + motionSensingPanel.setLayout(motionSensingPanelLayout); + motionSensingPanelLayout.setHorizontalGroup(motionSensingPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 279, Short.MAX_VALUE)); + motionSensingPanelLayout.setVerticalGroup(motionSensingPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 213, Short.MAX_VALUE)); + + jTabbedPane1.addTab("Orientation", motionSensingPanel); + + javax.swing.GroupLayout gForcePanelLayout = new javax.swing.GroupLayout( + gForcePanel); + gForcePanel.setLayout(gForcePanelLayout); + gForcePanelLayout.setHorizontalGroup(gForcePanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 279, Short.MAX_VALUE)); + gForcePanelLayout.setVerticalGroup(gForcePanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 213, Short.MAX_VALUE)); + + jTabbedPane1.addTab("GForce", gForcePanel); + + javax.swing.GroupLayout leftPanelLayout = new javax.swing.GroupLayout( + leftPanel); + leftPanel.setLayout(leftPanelLayout); + leftPanelLayout.setHorizontalGroup(leftPanelLayout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addComponent( + irViewPanel, javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jTabbedPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 284, + Short.MAX_VALUE)); + leftPanelLayout + .setVerticalGroup(leftPanelLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + leftPanelLayout + .createSequentialGroup() + .addComponent( + jTabbedPane1, + javax.swing.GroupLayout.PREFERRED_SIZE, + 238, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + irViewPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); + + jTabbedPane1.getAccessibleContext().setAccessibleName("Orientation"); + + rightPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + rightPanel.setLayout(new javax.swing.BoxLayout(rightPanel, + javax.swing.BoxLayout.LINE_AXIS)); + + fixedWiimotePanel.setMaximumSize(new java.awt.Dimension(120, 32767)); + fixedWiimotePanel.setMinimumSize(new java.awt.Dimension(120, 100)); + fixedWiimotePanel.setPreferredSize(new java.awt.Dimension(120, 100)); + fixedWiimotePanel.setRequestFocusEnabled(false); + fixedWiimotePanel.setLayout(null); + + buttonsPanel.setMaximumSize(new java.awt.Dimension(120, 484)); + buttonsPanel.setMinimumSize(new java.awt.Dimension(120, 484)); + buttonsPanel.setOpaque(false); + buttonsPanel.setPreferredSize(new java.awt.Dimension(120, 484)); + + javax.swing.GroupLayout buttonsPanelLayout = new javax.swing.GroupLayout( + buttonsPanel); + buttonsPanel.setLayout(buttonsPanelLayout); + buttonsPanelLayout.setHorizontalGroup(buttonsPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 120, Short.MAX_VALUE)); + buttonsPanelLayout.setVerticalGroup(buttonsPanelLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 484, Short.MAX_VALUE)); + + fixedWiimotePanel.add(buttonsPanel); + buttonsPanel.setBounds(0, 0, 120, 484); + + rightPanel.add(fixedWiimotePanel); + + controlsPanel.setMinimumSize(new java.awt.Dimension(100, 264)); + controlsPanel.setPreferredSize(new java.awt.Dimension(190, 264)); + controlsPanel.setLayout(new java.awt.GridLayout(16, 1)); + + toggleRumbleButton.setText("Activate Rumble"); + toggleRumbleButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleRumbleButtonMousePressed(evt); + } + }); + activateRumbleIRPanel.add(toggleRumbleButton); + + toggleIRTrackingButton.setText("Activate IR Tracking"); + toggleIRTrackingButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleIRTrackingButtonMousePressed(evt); + } + }); + activateRumbleIRPanel.add(toggleIRTrackingButton); + + controlsPanel.add(activateRumbleIRPanel); + + toggleMotionSensingTrackingButton + .setText("Activate motion sensing Tracking"); + toggleMotionSensingTrackingButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleMotionSensingTrackingButtonMousePressed(evt); + } + }); + activateMotionSensingPanel.add(toggleMotionSensingTrackingButton); + + controlsPanel.add(activateMotionSensingPanel); + + toggleSmoothingButton.setText("Activate Smoothing"); + toggleSmoothingButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleSmoothingButtonMousePressed(evt); + } + }); + activateSmoothingContinuousPanel.add(toggleSmoothingButton); + + toggleContinuousButton.setText("Activate Continuous"); + toggleContinuousButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleContinuousButtonMousePressed(evt); + } + }); + activateSmoothingContinuousPanel.add(toggleContinuousButton); + + controlsPanel.add(activateSmoothingContinuousPanel); + + led1Button.setText("Led1"); + led1Button.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + led1ButtonMousePressed(evt); + } + }); + setLedsPanel.add(led1Button); + + led2Button.setText("Led2"); + led2Button.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + led2ButtonMousePressed(evt); + } + }); + setLedsPanel.add(led2Button); + + led3Button.setText("Led3"); + led3Button.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + led3ButtonMousePressed(evt); + } + }); + setLedsPanel.add(led3Button); + + led4Button.setText("Led4"); + led4Button.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + led4ButtonMousePressed(evt); + } + }); + setLedsPanel.add(led4Button); + + setLedsButton.setText("Set leds"); + setLedsButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + setLedsButtonMousePressed(evt); + } + }); + setLedsPanel.add(setLedsButton); + + controlsPanel.add(setLedsPanel); + + alphaSmoothingTextField.setMinimumSize(new java.awt.Dimension(100, 20)); + alphaSmoothingTextField + .setPreferredSize(new java.awt.Dimension(100, 20)); + setAlphaSmoothingPanel.add(alphaSmoothingTextField); + + alphaSmoothingButton.setText("Set alpha smoothing"); + alphaSmoothingButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + alphaSmoothingButtonMousePressed(evt); + } + }); + setAlphaSmoothingPanel.add(alphaSmoothingButton); + + controlsPanel.add(setAlphaSmoothingPanel); + + orientationThresholdTextField.setMinimumSize(new java.awt.Dimension( + 100, 20)); + orientationThresholdTextField.setPreferredSize(new java.awt.Dimension( + 100, 20)); + setOrientationThresholdPanel.add(orientationThresholdTextField); + + orientationThresholdButton.setText("Set orientation threshold"); + orientationThresholdButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + orientationThresholdButtonMousePressed(evt); + } + }); + setOrientationThresholdPanel.add(orientationThresholdButton); + + controlsPanel.add(setOrientationThresholdPanel); + + accelerationThresholdTextField.setPreferredSize(new java.awt.Dimension( + 100, 20)); + setAccelerationThresholdPanel.add(accelerationThresholdTextField); + + accelerationThresholdButton.setText("Set acceleration threshold"); + accelerationThresholdButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + accelerationThresholdButtonMousePressed(evt); + } + }); + setAccelerationThresholdPanel.add(accelerationThresholdButton); + + controlsPanel.add(setAccelerationThresholdPanel); + + getStatusButton.setText("Get status"); + getStatusButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + getStatusButtonMousePressed(evt); + } + }); + getStatusPanel.add(getStatusButton); + + batteryText.setFont(new java.awt.Font("Tahoma", 0, 14)); + batteryText.setText("Battery level :"); + getStatusPanel.add(batteryText); + + batteryLevelText.setFont(new java.awt.Font("Arial", 0, 14)); + batteryLevelText.setText(" %"); + getStatusPanel.add(batteryLevelText); + + controlsPanel.add(getStatusPanel); + + setIrSensitivySpinner.setPreferredSize(new java.awt.Dimension(50, 18)); + setIrSensitivySpinner + .addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + setIrSensitivySpinnerStateChanged(evt); + } + }); + setIrSensitivyPanel.add(setIrSensitivySpinner); + + setIrSensitivyButton.setText("SetIrSensivity"); + setIrSensitivyButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + setIrSensitivyButtonMousePressed(evt); + } + }); + setIrSensitivyPanel.add(setIrSensitivyButton); + + setTimeoutButton.setText("Set timeouts in ms"); + setTimeoutButton.addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + setTimeoutButtonMousePressed(evt); + } + }); + setIrSensitivyPanel.add(setTimeoutButton); + + controlsPanel.add(setIrSensitivyPanel); + + normalTimeoutSpinner.setPreferredSize(new java.awt.Dimension(40, 18)); + normalTimeoutSpinner + .addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + normalTimeoutSpinnerStateChanged(evt); + } + }); + setTimeoutPanel.add(normalTimeoutSpinner); + + normalTimeoutText.setText("Normal timeout"); + setTimeoutPanel.add(normalTimeoutText); + + expansionHandshakeTimeoutSpinner + .setPreferredSize(new java.awt.Dimension(40, 18)); + expansionHandshakeTimeoutSpinner + .addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + expansionHandshakeTimeoutSpinnerStateChanged(evt); + } + }); + setTimeoutPanel.add(expansionHandshakeTimeoutSpinner); + + expansionHandshakeTimeoutText.setText("Expansion handshake timeout"); + setTimeoutPanel.add(expansionHandshakeTimeoutText); + + controlsPanel.add(setTimeoutPanel); + + toggleSensorBarPositionButton.setText("Set sensor bar above"); + toggleSensorBarPositionButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleSensorBarPositionButtonMousePressed(evt); + } + }); + setIRConfPanel.add(toggleSensorBarPositionButton); + + toggleScreenAspectRatioButton.setText("Set screen aspect ratio 4/3"); + toggleScreenAspectRatioButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + toggleScreenAspectRatioButtonMousePressed(evt); + } + }); + setIRConfPanel.add(toggleScreenAspectRatioButton); + + controlsPanel.add(setIRConfPanel); + + xLabel.setText("X"); + setVirtualResolutionPanel.add(xLabel); + + xResolutionTextField.setMinimumSize(new java.awt.Dimension(40, 20)); + xResolutionTextField.setPreferredSize(new java.awt.Dimension(40, 20)); + setVirtualResolutionPanel.add(xResolutionTextField); + + yLabel.setText("Y"); + setVirtualResolutionPanel.add(yLabel); + + yResolutionTextField.setFocusTraversalPolicyProvider(true); + yResolutionTextField.setMinimumSize(new java.awt.Dimension(40, 20)); + yResolutionTextField.setPreferredSize(new java.awt.Dimension(40, 20)); + setVirtualResolutionPanel.add(yResolutionTextField); + + setVirtualResolutionButton.setText("Set virtual resolution"); + setVirtualResolutionButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + setVirtualResolutionButtonMousePressed(evt); + } + }); + setVirtualResolutionPanel.add(setVirtualResolutionButton); + + controlsPanel.add(setVirtualResolutionPanel); + + mouseIRControlButton.setText("Start infrared mouse control"); + mouseIRControlButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + mouseIRControlButtonMousePressed(evt); + } + }); + startMouseControlPanel.add(mouseIRControlButton); + + controlsPanel.add(startMouseControlPanel); + + expansionText.setText("No expansion connected."); + exPansionPanel.add(expansionText); + + showExpansionWiimoteButton.setText("No expansion connected"); + showExpansionWiimoteButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + showExpansionWiimoteButtonMousePressed(evt); + } + }); + exPansionPanel.add(showExpansionWiimoteButton); + + controlsPanel.add(exPansionPanel); + + reconnectWiimotesButton.setText("Reconnect wiimote"); + reconnectWiimotesButton + .addMouseListener(new java.awt.event.MouseAdapter() { + public void mousePressed(java.awt.event.MouseEvent evt) { + reconnectWiimotesButtonMousePressed(evt); + } + }); + messagesPanel.add(reconnectWiimotesButton); + + messageLabelText.setFont(new java.awt.Font("Tahoma", 0, 14)); + messageLabelText.setText("Message : "); + messagesPanel.add(messageLabelText); + + messageText.setFont(new java.awt.Font("Arial", 0, 14)); + messageText.setText("None"); + messagesPanel.add(messageText); + + controlsPanel.add(messagesPanel); + + rightPanel.add(controlsPanel); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout + .setHorizontalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addComponent( + leftPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + rightPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + 498, Short.MAX_VALUE))); + layout.setVerticalGroup(layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addComponent( + leftPanel, javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(rightPanel, javax.swing.GroupLayout.DEFAULT_SIZE, + 573, Short.MAX_VALUE)); + + java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit() + .getScreenSize(); + setBounds((screenSize.width - 800) / 2, (screenSize.height - 600) / 2, + 800, 600); + }// //GEN-END:initComponents + + private void toggleRumbleButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleRumbleButtonMousePressed + if (toggleRumbleButton.isEnabled()) { + wiimote.activateRumble(); + toggleRumbleButton.setEnabled(false); + toggleRumbleButton.setText("Deactivate Rumble"); + messageText.setText("Rumble activated"); + } else { + wiimote.deactivateRumble(); + toggleRumbleButton.setEnabled(true); + toggleRumbleButton.setText("Activate Rumble"); + messageText.setText("Rumble deactivated"); + } + }// GEN-LAST:event_toggleRumbleButtonMousePressed + + private void toggleIRTrackingButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleIRTrackingButtonMousePressed + if (toggleIRTrackingButton.isEnabled()) { + wiimote.activateIRTRacking(); + toggleIRTrackingButton.setEnabled(false); + toggleIRTrackingButton.setText("Deactivate IR Tracking"); + messageText.setText("IR Tracking activated"); + } else { + wiimote.deactivateIRTRacking(); + toggleIRTrackingButton.setEnabled(true); + toggleIRTrackingButton.setText("Activate IR Tracking"); + ((IRPanel) irViewPanel).onDisconnectionEvent(null); + messageText.setText("IR Tracking deactivated"); + } + }// GEN-LAST:event_toggleIRTrackingButtonMousePressed + + private void toggleMotionSensingTrackingButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleMotionSensingTrackingButtonMousePressed + if (toggleMotionSensingTrackingButton.isEnabled()) { + wiimote.activateMotionSensing(); + toggleMotionSensingTrackingButton.setEnabled(false); + toggleMotionSensingTrackingButton + .setText("Deactivate Motion Sensing"); + messageText.setText("Motion Sensing activated"); + } else { + wiimote.deactivateMotionSensing(); + toggleMotionSensingTrackingButton.setEnabled(true); + toggleMotionSensingTrackingButton + .setText("Activate Motion Sensing"); + ((OrientationPanel) motionSensingPanel).onDisconnectionEvent(null); + ((GForcePanel) gForcePanel).onDisconnectionEvent(null); + messageText.setText("Motion Sensing deactivated"); + } + }// GEN-LAST:event_toggleMotionSensingTrackingButtonMousePressed + + private void toggleSmoothingButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleSmoothingButtonMousePressed + if (toggleSmoothingButton.isEnabled()) { + wiimote.activateSmoothing(); + toggleSmoothingButton.setEnabled(false); + toggleSmoothingButton.setText("Deactivate Alpha Smoothing"); + messageText.setText("Alpha Smoothing activated"); + } else { + wiimote.deactivateSmoothing(); + toggleSmoothingButton.setEnabled(true); + toggleSmoothingButton.setText("Activate Alpha Smoothing"); + messageText.setText("Alpha Smoothing deactivated"); + } + }// GEN-LAST:event_toggleSmoothingButtonMousePressed + + private void toggleContinuousButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleContinuousButtonMousePressed + if (toggleContinuousButton.isEnabled()) { + wiimote.activateContinuous(); + toggleContinuousButton.setEnabled(false); + toggleContinuousButton.setText("Deactivate Continuous"); + messageText.setText("Continuous activated"); + } else { + wiimote.deactivateContinuous(); + toggleContinuousButton.setEnabled(true); + toggleContinuousButton.setText("Activate Continuous"); + messageText.setText("Continuous deactivated"); + } + }// GEN-LAST:event_toggleContinuousButtonMousePressed + + private void led1ButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_led1ButtonMousePressed + if (led1Button.isEnabled()) { + led1Button.setEnabled(false); + } else { + led1Button.setEnabled(true); + } + }// GEN-LAST:event_led1ButtonMousePressed + + private void led2ButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_led2ButtonMousePressed + if (led2Button.isEnabled()) { + led2Button.setEnabled(false); + } else { + led2Button.setEnabled(true); + } + }// GEN-LAST:event_led2ButtonMousePressed + + private void led3ButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_led3ButtonMousePressed + if (led3Button.isEnabled()) { + led3Button.setEnabled(false); + } else { + led3Button.setEnabled(true); + } + }// GEN-LAST:event_led3ButtonMousePressed + + private void led4ButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_led4ButtonMousePressed + if (led4Button.isEnabled()) { + led4Button.setEnabled(false); + } else { + led4Button.setEnabled(true); + } + }// GEN-LAST:event_led4ButtonMousePressed + + private void setLedsButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_setLedsButtonMousePressed + wiimote.setLeds(led1Button.isEnabled(), led2Button.isEnabled(), + led3Button.isEnabled(), led4Button.isEnabled()); + messageText.setText("Leds set"); + }// GEN-LAST:event_setLedsButtonMousePressed + + private void alphaSmoothingButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_alphaSmoothingButtonMousePressed + try { + float nb = Float.parseFloat(alphaSmoothingTextField.getText()); + wiimote.setAlphaSmoothingValue(nb); + messageText.setText("Alpha smoothing set to " + nb); + } catch (NumberFormatException e) { + messageText + .setText("Number is not a float, alpha smoothing not set !"); + } + }// GEN-LAST:event_alphaSmoothingButtonMousePressed + + private void orientationThresholdButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_orientationThresholdButtonMousePressed + try { + float nb = Float + .parseFloat(orientationThresholdTextField.getText()); + wiimote.setOrientationThreshold(nb); + messageText.setText("Orientation threshold set to " + nb); + } catch (NumberFormatException e) { + messageText + .setText("Number is not a float, orientation threshold not set !"); + } + }// GEN-LAST:event_orientationThresholdButtonMousePressed + + private void accelerationThresholdButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_accelerationThresholdButtonMousePressed + try { + int nb = Integer.parseInt(accelerationThresholdTextField.getText()); + wiimote.setAccelerationThreshold(nb); + messageText.setText("Acceleration threshold set to " + nb); + } catch (NumberFormatException e) { + messageText + .setText("Number is not an integer, acceleration threshold not set !"); + } + }// GEN-LAST:event_accelerationThresholdButtonMousePressed + + private void getStatusButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_getStatusButtonMousePressed + wiimote.getStatus(); + statusMotionRequested = true; + statusIRRequested = true; + if (expansionFrame instanceof NunchukGuiTest) { + ((NunchukGuiTest) expansionFrame).requestThresholdsUpdate(); + } + }// GEN-LAST:event_getStatusButtonMousePressed + + private void toggleSensorBarPositionButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleSensorBarPositionButtonMousePressed + if (toggleSensorBarPositionButton.isEnabled()) { + wiimote.setSensorBarBelowScreen(); + toggleSensorBarPositionButton.setEnabled(false); + toggleSensorBarPositionButton.setText("Set sensor bar below"); + messageText.setText("Sensor bar set above"); + } else { + wiimote.setSensorBarAboveScreen(); + toggleSensorBarPositionButton.setEnabled(true); + toggleSensorBarPositionButton.setText("Set sensor bar above"); + messageText.setText("Sensor bar set below"); + } + }// GEN-LAST:event_toggleSensorBarPositionButtonMousePressed + + private void toggleScreenAspectRatioButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_toggleScreenAspectRatioButtonMousePressed + if (toggleScreenAspectRatioButton.isEnabled()) { + wiimote.setScreenAspectRatio43(); + toggleScreenAspectRatioButton.setEnabled(false); + toggleScreenAspectRatioButton + .setText("Set screen aspect ratio 16/9"); + messageText.setText("creen aspect ratio to 4/3"); + } else { + wiimote.setScreenAspectRatio169(); + toggleScreenAspectRatioButton.setEnabled(true); + toggleScreenAspectRatioButton + .setText("Set screen aspect ratio 4/3"); + messageText.setText("Screen aspect ratio to 16/9"); + } + }// GEN-LAST:event_toggleScreenAspectRatioButtonMousePressed + + private void setVirtualResolutionButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_setVirtualResolutionButtonMousePressed + try { + int xres = Integer.parseInt(xResolutionTextField.getText()); + int yres = Integer.parseInt(yResolutionTextField.getText()); + wiimote.setVirtualResolution(xres, yres); + messageText.setText("Virtual resolution set to " + xres + "X" + + yres); + } catch (NumberFormatException e) { + messageText + .setText("A number in the virtual resolution is not an integer. Virtual resolution not set!"); + } + }// GEN-LAST:event_setVirtualResolutionButtonMousePressed + + private void mouseIRControlButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_mouseIRControlButtonMousePressed + if (mouseIRControlButton.isEnabled()) { + try { + mouseIRControlButton.setEnabled(false); + mouseIRControlButton.setText("Stop infrared mouse control"); + robot = new Robot(); + messageText.setText("Infrared mouse control started"); + } catch (AWTException ex) { + Logger.getLogger(WiiuseJGuiTest.class.getName()).log( + Level.SEVERE, null, ex); + } + } else { + mouseIRControlButton.setEnabled(true); + mouseIRControlButton.setText("Start infrared mouse control"); + robot = null; + messageText.setText("Infrared mouse control stopped"); + } + }// GEN-LAST:event_mouseIRControlButtonMousePressed + + private void normalTimeoutSpinnerStateChanged( + javax.swing.event.ChangeEvent evt) {// GEN-FIRST:event_normalTimeoutSpinnerStateChanged + String value = normalTimeoutSpinner.getValue().toString(); + boolean isInt = true; + int valueInt = 0; + try { + valueInt = Integer.parseInt(value); + } catch (NumberFormatException e) { + isInt = false; + messageText.setText("Wrong value for normal timeout."); + } + if (isInt) { + if (valueInt > 1000) { + normalTimeoutSpinner.setValue("1000"); + } else if (valueInt < 0) { + normalTimeoutSpinner.setValue("0"); + } + } + }// GEN-LAST:event_normalTimeoutSpinnerStateChanged + + private void expansionHandshakeTimeoutSpinnerStateChanged( + javax.swing.event.ChangeEvent evt) {// GEN-FIRST:event_expansionHandshakeTimeoutSpinnerStateChanged + String value = expansionHandshakeTimeoutSpinner.getValue().toString(); + boolean isInt = true; + int valueInt = 0; + try { + valueInt = Integer.parseInt(value); + } catch (NumberFormatException e) { + isInt = false; + messageText.setText("Wrong value for expansion handshake timeout."); + } + if (isInt) { + if (valueInt > 1000) { + expansionHandshakeTimeoutSpinner.setValue("1000"); + } else if (valueInt < 0) { + expansionHandshakeTimeoutSpinner.setValue("0"); + } + } + }// GEN-LAST:event_expansionHandshakeTimeoutSpinnerStateChanged + + private void setIrSensitivySpinnerStateChanged( + javax.swing.event.ChangeEvent evt) {// GEN-FIRST:event_setIrSensitivySpinnerStateChanged + String value = setIrSensitivySpinner.getValue().toString(); + boolean isInt = true; + int valueInt = 0; + try { + valueInt = Integer.parseInt(value); + } catch (NumberFormatException e) { + isInt = false; + messageText.setText("Wrong value for IR senstivity."); + } + if (isInt) { + if (valueInt > 5) { + setIrSensitivySpinner.setValue("1000"); + } else if (valueInt < 0) { + setIrSensitivySpinner.setValue("0"); + } + } + }// GEN-LAST:event_setIrSensitivySpinnerStateChanged + + private void setIrSensitivyButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_setIrSensitivyButtonMousePressed + String value = setIrSensitivySpinner.getValue().toString(); + boolean isInt = true; + int valueInt = 0; + try { + valueInt = Integer.parseInt(value); + } catch (NumberFormatException e) { + isInt = false; + messageText + .setText("Wrong value for IR sensitivity. It must be an int !"); + } + if (isInt) { + if (valueInt >= 1 && valueInt <= 5) { + wiimote.setIrSensitivity(valueInt); + messageText.setText("IR senstivity set to: " + valueInt + "."); + } else { + messageText + .setText("Wrong value for IR senstivity. It muset be between 1 and 5 !"); + } + } + }// GEN-LAST:event_setIrSensitivyButtonMousePressed + + private void setTimeoutButtonMousePressed(java.awt.event.MouseEvent evt) {// GEN-FIRST:event_setTimeoutButtonMousePressed + // get normal timeout + String value = normalTimeoutSpinner.getValue().toString(); + boolean isInt = true; + short valueInt = 0; + try { + valueInt = Short.parseShort(value); + } catch (NumberFormatException e) { + isInt = false; + messageText + .setText("Wrong value for normal timeout. It must be an int !"); + } + // get expansion handshake timeout + String value2 = expansionHandshakeTimeoutSpinner.getValue().toString(); + boolean isInt2 = true; + short valueInt2 = 0; + try { + valueInt2 = Short.parseShort(value2); + } catch (NumberFormatException e) { + isInt2 = false; + messageText + .setText("Wrong value for expansion handshake timeout. It must be an int !"); + } + if (isInt && isInt2) { + if (valueInt > 0 && valueInt2 > 0) { + wiimote.setTimeout(valueInt, valueInt2); + messageText.setText("Normal timeout set to: " + valueInt + + " and expansion handshake timeout set to: " + + valueInt2 + "!"); + } else { + messageText + .setText("Wrong value for one of the timeout value. It must be an integer > 0 !"); + } + } + }// GEN-LAST:event_setTimeoutButtonMousePressed + + private void reconnectWiimotesButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_reconnectWiimotesButtonMousePressed + // stop manager + WiiUseApiManager manager = WiiUseApiManager.getInstance(); + manager.definitiveShutdown(); + + // unregister previous wiimote + if (wiimote != null) { + onDisconnectionEvent(null); + } + + // Reset Gui + // remove frame for expansion + if (expansionFrame != null) { + if (expansionFrame instanceof NunchukGuiTest) { + ((NunchukGuiTest) expansionFrame).unRegisterListeners(); + } + expansionFrame.setEnabled(false); + expansionFrame.dispose(); + expansionFrame = null; + } + + // setup buttons In first state + toggleRumbleButton.setText("Activate Rumble"); + toggleRumbleButton.setEnabled(true); + toggleMotionSensingTrackingButton + .setText("Activate motion sensing Tracking"); + toggleMotionSensingTrackingButton.setEnabled(true); + toggleIRTrackingButton.setText("Activate IR Tracking"); + toggleIRTrackingButton.setEnabled(true); + toggleContinuousButton.setText("Activate Continuous"); + toggleContinuousButton.setEnabled(true); + toggleScreenAspectRatioButton.setText("Set screen aspect ratio 4/3"); + toggleScreenAspectRatioButton.setEnabled(true); + toggleSensorBarPositionButton.setText("Set sensor bar above"); + toggleSensorBarPositionButton.setEnabled(true); + toggleSmoothingButton.setText("Activate Smoothing"); + toggleSmoothingButton.setEnabled(true); + mouseIRControlButton.setText("Start infrared mouse control"); + mouseIRControlButton.setEnabled(true); + + // get wiimote + Wiimote[] listWiimote = WiiUseApiManager.getWiimotes(1, true); + if (listWiimote.length > 0) { + wiimote = listWiimote[0]; + + // registers listeners + registerListeners(); + initWiimote(); + + isFirstStatusGot = false; + getStatusButtonMousePressed(null); + } + }// GEN-LAST:event_reconnectWiimotesButtonMousePressed + + private void showExpansionWiimoteButtonMousePressed( + java.awt.event.MouseEvent evt) {// GEN-FIRST:event_showExpansionWiimoteButtonMousePressed + if (expansionFrame != null) { + if (showExpansionWiimoteButton.isEnabled()) {// expansion frame + // not shown + // show it + expansionFrame.setEnabled(true); + expansionFrame.setVisible(true); + showExpansionWiimoteButton.setEnabled(false); + showExpansionWiimoteButton.setText("Hide Nunchuk"); + messageText.setText("Nunchuk displayed !"); + } else {// already being shown + expansionFrame.setEnabled(false); + expansionFrame.setVisible(false); + showExpansionWiimoteButton.setEnabled(true); + showExpansionWiimoteButton.setText("Show Nunchuk"); + messageText.setText("Nunchuk hidden !"); + } + } + }// GEN-LAST:event_showExpansionWiimoteButtonMousePressed + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JPanel accelerationPanel; + private javax.swing.JButton accelerationThresholdButton; + private javax.swing.JTextField accelerationThresholdTextField; + private javax.swing.JPanel activateMotionSensingPanel; + private javax.swing.JPanel activateRumbleIRPanel; + private javax.swing.JPanel activateSmoothingContinuousPanel; + private javax.swing.JButton alphaSmoothingButton; + private javax.swing.JTextField alphaSmoothingTextField; + private javax.swing.JLabel batteryLevelText; + private javax.swing.JLabel batteryText; + private javax.swing.JPanel buttonsPanel; + private javax.swing.JPanel controlsPanel; + private javax.swing.JPanel exPansionPanel; + private javax.swing.JSpinner expansionHandshakeTimeoutSpinner; + private javax.swing.JLabel expansionHandshakeTimeoutText; + private javax.swing.JLabel expansionText; + private javax.swing.JPanel fixedWiimotePanel; + private javax.swing.JPanel gForcePanel; + private javax.swing.JButton getStatusButton; + private javax.swing.JPanel getStatusPanel; + private javax.swing.JPanel irViewPanel; + private javax.swing.JTabbedPane jTabbedPane1; + private javax.swing.JButton led1Button; + private javax.swing.JButton led2Button; + private javax.swing.JButton led3Button; + private javax.swing.JButton led4Button; + private javax.swing.JPanel leftPanel; + private javax.swing.JLabel messageLabelText; + private javax.swing.JLabel messageText; + private javax.swing.JPanel messagesPanel; + private javax.swing.JPanel motionSensingPanel; + private javax.swing.JButton mouseIRControlButton; + private javax.swing.JSpinner normalTimeoutSpinner; + private javax.swing.JLabel normalTimeoutText; + private javax.swing.JButton orientationThresholdButton; + private javax.swing.JTextField orientationThresholdTextField; + private javax.swing.JButton reconnectWiimotesButton; + private javax.swing.JPanel rightPanel; + private javax.swing.JPanel setAccelerationThresholdPanel; + private javax.swing.JPanel setAlphaSmoothingPanel; + private javax.swing.JPanel setIRConfPanel; + private javax.swing.JButton setIrSensitivyButton; + private javax.swing.JPanel setIrSensitivyPanel; + private javax.swing.JSpinner setIrSensitivySpinner; + private javax.swing.JButton setLedsButton; + private javax.swing.JPanel setLedsPanel; + private javax.swing.JPanel setOrientationThresholdPanel; + private javax.swing.JButton setTimeoutButton; + private javax.swing.JPanel setTimeoutPanel; + private javax.swing.JButton setVirtualResolutionButton; + private javax.swing.JPanel setVirtualResolutionPanel; + private javax.swing.JButton showExpansionWiimoteButton; + private javax.swing.JPanel startMouseControlPanel; + private javax.swing.JButton toggleContinuousButton; + private javax.swing.JButton toggleIRTrackingButton; + private javax.swing.JButton toggleMotionSensingTrackingButton; + private javax.swing.JButton toggleRumbleButton; + private javax.swing.JButton toggleScreenAspectRatioButton; + private javax.swing.JButton toggleSensorBarPositionButton; + private javax.swing.JButton toggleSmoothingButton; + private javax.swing.JLabel xLabel; + private javax.swing.JTextField xResolutionTextField; + private javax.swing.JLabel yLabel; + private javax.swing.JTextField yResolutionTextField; + // End of variables declaration//GEN-END:variables }