diff --git a/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java b/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java index f6b4527f8a..34db970e1e 100644 --- a/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java +++ b/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java @@ -23,13 +23,12 @@ public class ConnectPanel { private final JLabel status = new JLabel(); private LinkManager controllerConnector; + private final JButton connect = new JButton("Connect"); + private final JButton disconnect = new JButton("Disconnect"); public ConnectPanel(final ConnectionStateListener connectionStateListener) { JPanel flow = new JPanel(new FlowLayout()); - JButton connect = new JButton("Connect"); - JButton disconnect = new JButton("Disconnect"); - disconnect.setEnabled(false); disconnect.addActionListener(new AbstractAction() { @Override @@ -49,31 +48,14 @@ public class ConnectPanel { controllerConnector = new LinkManager() .setCompositeLogicEnabled(false) .setNeedPullData(false); - - String autoDetectedPort = null; try { - autoDetectedPort = PortDetector.autoDetectSerial(null); - controllerConnector.startAndConnect(autoDetectedPort, new ConnectionStateListener() { - public void onConnectionEstablished() { - SwingUtilities.invokeLater(() -> { - status.setText("Connected to rusEFI"); - disconnect.setEnabled(true); - connectionStateListener.onConnectionEstablished(); - }); - } - - public void onConnectionFailed() { - } - }); - + tryToConnect(connectionStateListener); } catch (Throwable er) { log.error("Error connecting", er); - SwingUtilities.invokeLater(() -> { - status.setText("Not found or error, see logs."); + status.setText("Some error, see logs."); connect.setEnabled(true); }); - } }); }); @@ -85,6 +67,27 @@ public class ConnectPanel { content.add(status, BorderLayout.SOUTH); } + private void tryToConnect(ConnectionStateListener connectionStateListener) { + String autoDetectedPort = PortDetector.autoDetectSerial(null); + if (autoDetectedPort == null) { + status.setText("rusEFI not found"); + connect.setEnabled(true); + } else { + controllerConnector.startAndConnect(autoDetectedPort, new ConnectionStateListener() { + public void onConnectionEstablished() { + SwingUtilities.invokeLater(() -> { + status.setText("Connected to rusEFI"); + disconnect.setEnabled(true); + connectionStateListener.onConnectionEstablished(); + }); + } + + public void onConnectionFailed() { + } + }); + } + } + public LinkManager getControllerConnector() { return controllerConnector; }