diff options
Diffstat (limited to 'altosui')
| -rw-r--r-- | altosui/Altos.java | 4 | ||||
| -rw-r--r-- | altosui/AltosAscent.java | 4 | ||||
| -rw-r--r-- | altosui/AltosCompanionInfo.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfig.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfigPyroUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfigTD.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfigTDUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfigUI.java | 23 | ||||
| -rw-r--r-- | altosui/AltosConfigureUI.java | 2 | ||||
| -rw-r--r-- | altosui/AltosDescent.java | 4 | ||||
| -rw-r--r-- | altosui/AltosFlightStatus.java | 4 | ||||
| -rw-r--r-- | altosui/AltosFlightStatusTableModel.java | 2 | ||||
| -rw-r--r-- | altosui/AltosFlightStatusUpdate.java | 2 | ||||
| -rw-r--r-- | altosui/AltosFlightUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosGraphUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosIdleMonitorUI.java | 17 | ||||
| -rw-r--r-- | altosui/AltosIgniteUI.java | 11 | ||||
| -rw-r--r-- | altosui/AltosIgnitor.java | 4 | ||||
| -rw-r--r-- | altosui/AltosLanded.java | 4 | ||||
| -rw-r--r-- | altosui/AltosLaunch.java | 2 | ||||
| -rw-r--r-- | altosui/AltosLaunchUI.java | 2 | ||||
| -rw-r--r-- | altosui/AltosPad.java | 4 | ||||
| -rw-r--r-- | altosui/AltosUI.java | 4 | ||||
| -rw-r--r-- | altosui/Instdrv/NSIS/Includes/java.nsh | 261 |
24 files changed, 185 insertions, 197 deletions
diff --git a/altosui/Altos.java b/altosui/Altos.java index aae2a793..81bc8c28 100644 --- a/altosui/Altos.java +++ b/altosui/Altos.java @@ -20,8 +20,8 @@ package altosui; import java.awt.*; import libaltosJNI.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class Altos extends AltosUILib { diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 2fed6e7c..85260a70 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -21,8 +21,8 @@ import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosAscent extends AltosUIFlightTab { JLabel cur, max; diff --git a/altosui/AltosCompanionInfo.java b/altosui/AltosCompanionInfo.java index f5080f56..251982ad 100644 --- a/altosui/AltosCompanionInfo.java +++ b/altosui/AltosCompanionInfo.java @@ -19,8 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosCompanionInfo extends JTable implements AltosFlightDisplay { private AltosFlightInfoTableModel model; diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index 50be7f8e..e47b0e22 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -22,8 +22,8 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.text.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfig implements ActionListener { diff --git a/altosui/AltosConfigPyroUI.java b/altosui/AltosConfigPyroUI.java index 4ad62405..e0915a17 100644 --- a/altosui/AltosConfigPyroUI.java +++ b/altosui/AltosConfigPyroUI.java @@ -22,8 +22,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfigPyroUI extends AltosUIDialog diff --git a/altosui/AltosConfigTD.java b/altosui/AltosConfigTD.java index 3958a013..eedc18c5 100644 --- a/altosui/AltosConfigTD.java +++ b/altosui/AltosConfigTD.java @@ -21,8 +21,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfigTD implements ActionListener { diff --git a/altosui/AltosConfigTDUI.java b/altosui/AltosConfigTDUI.java index 94416465..9a76fbe2 100644 --- a/altosui/AltosConfigTDUI.java +++ b/altosui/AltosConfigTDUI.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfigTDUI extends AltosUIDialog diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index a4216212..24167df3 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -22,8 +22,8 @@ import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.text.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfigUI extends AltosUIDialog @@ -63,7 +63,7 @@ public class AltosConfigUI JComboBox<String> apogee_delay_value; JComboBox<String> apogee_lockout_value; AltosUIFreqList radio_frequency_value; - JTextField radio_calibration_value; + JLabel radio_calibration_value; JRadioButton radio_enable_value; AltosUIRateList rate_value; JComboBox<String> aprs_interval_value; @@ -191,13 +191,6 @@ public class AltosConfigUI return product != null && product.startsWith("TeleMetrum"); } - void set_radio_calibration_tool_tip() { - if (radio_calibration_value.isEnabled()) - radio_calibration_value.setToolTipText("Tune radio output to match desired frequency"); - else - radio_calibration_value.setToolTipText("Cannot tune radio while connected over packet mode"); - } - void set_radio_enable_tool_tip() { if (radio_enable_value.isEnabled()) radio_enable_value.setToolTipText("Enable/Disable telemetry and RDF transmissions"); @@ -478,12 +471,8 @@ public class AltosConfigUI c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - radio_calibration_value = new JTextField(String.format("%d", 1186611)); - radio_calibration_value.getDocument().addDocumentListener(this); - if (remote) - radio_calibration_value.setEnabled(false); + radio_calibration_value = new JLabel(String.format("%d", 1186611)); pane.add(radio_calibration_value, c); - set_radio_calibration_tool_tip(); row++; /* Radio Enable */ @@ -1087,10 +1076,6 @@ public class AltosConfigUI radio_calibration_value.setText(String.format("%d", new_radio_calibration)); } - public int radio_calibration() throws AltosConfigDataException { - return parse_int("radio calibration", radio_calibration_value.getText(), false); - } - public void set_radio_enable(int new_radio_enable) { radio_enable_label.setVisible(new_radio_enable >= 0); radio_enable_value.setVisible(new_radio_enable >= 0); diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java index 3d8bb754..52c50352 100644 --- a/altosui/AltosConfigureUI.java +++ b/altosui/AltosConfigureUI.java @@ -22,7 +22,7 @@ import java.awt.event.*; import java.beans.*; import javax.swing.*; import javax.swing.event.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altosuilib_10.*; public class AltosConfigureUI extends AltosUIConfigure diff --git a/altosui/AltosDescent.java b/altosui/AltosDescent.java index 9257f069..eeaed19e 100644 --- a/altosui/AltosDescent.java +++ b/altosui/AltosDescent.java @@ -21,8 +21,8 @@ import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosDescent extends AltosUIFlightTab { diff --git a/altosui/AltosFlightStatus.java b/altosui/AltosFlightStatus.java index cffed41d..4229e4fc 100644 --- a/altosui/AltosFlightStatus.java +++ b/altosui/AltosFlightStatus.java @@ -19,8 +19,8 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosFlightStatus extends JComponent implements AltosFlightDisplay { GridBagLayout layout; diff --git a/altosui/AltosFlightStatusTableModel.java b/altosui/AltosFlightStatusTableModel.java index f8a643fe..7bf2bb78 100644 --- a/altosui/AltosFlightStatusTableModel.java +++ b/altosui/AltosFlightStatusTableModel.java @@ -27,7 +27,7 @@ import java.util.*; import java.text.*; import java.util.prefs.*; import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.altoslib_9.*; +import org.altusmetrum.altoslib_10.*; public class AltosFlightStatusTableModel extends AbstractTableModel { private String[] columnNames = { diff --git a/altosui/AltosFlightStatusUpdate.java b/altosui/AltosFlightStatusUpdate.java index 9fa813d2..d39366da 100644 --- a/altosui/AltosFlightStatusUpdate.java +++ b/altosui/AltosFlightStatusUpdate.java @@ -18,7 +18,7 @@ package altosui; import java.awt.event.*; -import org.altusmetrum.altoslib_9.*; +import org.altusmetrum.altoslib_10.*; public class AltosFlightStatusUpdate implements ActionListener { diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index d7646a77..a1526cb5 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -22,8 +22,8 @@ import java.awt.event.*; import javax.swing.*; import java.util.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosFlightUI extends AltosUIFrame implements AltosFlightDisplay { AltosVoice voice; diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index 8e12f229..34d56b24 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -23,8 +23,8 @@ import java.util.ArrayList; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java index 565ab1b1..d789de77 100644 --- a/altosui/AltosIdleMonitorUI.java +++ b/altosui/AltosIdleMonitorUI.java @@ -24,8 +24,8 @@ import javax.swing.event.*; import java.io.*; import java.util.concurrent.*; import java.util.Arrays; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDisplay, AltosIdleMonitorListener, DocumentListener { AltosDevice device; @@ -128,6 +128,19 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl SwingUtilities.invokeLater(r); } + public void error(final String reason) { + Runnable r = new Runnable() { + public void run() { + disconnect(); + JOptionPane.showMessageDialog(AltosIdleMonitorUI.this, + reason, + "Error fetching data", + JOptionPane.ERROR_MESSAGE); + } + }; + SwingUtilities.invokeLater(r); + } + Container bag; AltosUIFreqList frequencies; JTextField callsign_value; diff --git a/altosui/AltosIgniteUI.java b/altosui/AltosIgniteUI.java index 01d58b5e..eca2a668 100644 --- a/altosui/AltosIgniteUI.java +++ b/altosui/AltosIgniteUI.java @@ -24,8 +24,8 @@ import java.io.*; import java.text.*; import java.util.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosIgniteUI extends AltosUIDialog @@ -48,6 +48,8 @@ public class AltosIgniteUI int time_remaining; boolean timer_running; + int poll_remaining; + LinkedBlockingQueue<String> command_queue; class Igniter { @@ -256,6 +258,7 @@ public class AltosIgniteUI void set_ignite_status() { getting_status = false; + poll_remaining = 2; if (!visible) { visible = true; setVisible(true); @@ -263,6 +266,10 @@ public class AltosIgniteUI } void poll_ignite_status() { + if (poll_remaining > 0) { + --poll_remaining; + return; + } if (!getting_status) { getting_status = true; send_command("get_status"); diff --git a/altosui/AltosIgnitor.java b/altosui/AltosIgnitor.java index e0f9e921..903da5a9 100644 --- a/altosui/AltosIgnitor.java +++ b/altosui/AltosIgnitor.java @@ -20,8 +20,8 @@ package altosui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosIgnitor extends AltosUIFlightTab { diff --git a/altosui/AltosLanded.java b/altosui/AltosLanded.java index 423e0e23..b704651d 100644 --- a/altosui/AltosLanded.java +++ b/altosui/AltosLanded.java @@ -21,8 +21,8 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosLanded extends AltosUIFlightTab implements ActionListener { diff --git a/altosui/AltosLaunch.java b/altosui/AltosLaunch.java index da0dfd92..503b0621 100644 --- a/altosui/AltosLaunch.java +++ b/altosui/AltosLaunch.java @@ -20,7 +20,7 @@ package altosui; import java.io.*; import java.util.concurrent.*; import java.awt.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altosuilib_10.*; public class AltosLaunch { AltosDevice device; diff --git a/altosui/AltosLaunchUI.java b/altosui/AltosLaunchUI.java index e6bc7929..127a33a3 100644 --- a/altosui/AltosLaunchUI.java +++ b/altosui/AltosLaunchUI.java @@ -23,7 +23,7 @@ import javax.swing.*; import java.io.*; import java.text.*; import java.util.concurrent.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altosuilib_10.*; class FireButton extends JButton { protected void processMouseEvent(MouseEvent e) { diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index f984e908..4f55636d 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -18,8 +18,8 @@ package altosui; import java.util.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosPad extends AltosUIFlightTab { diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index de6aa34c..4a390ee6 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -22,8 +22,8 @@ import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.concurrent.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altosuilib_10.*; public class AltosUI extends AltosUIFrame { public AltosVoice voice = new AltosVoice(); diff --git a/altosui/Instdrv/NSIS/Includes/java.nsh b/altosui/Instdrv/NSIS/Includes/java.nsh index d989ddd6..8e0e208a 100644 --- a/altosui/Instdrv/NSIS/Includes/java.nsh +++ b/altosui/Instdrv/NSIS/Includes/java.nsh @@ -2,153 +2,134 @@ ; Definitions for Java Detection -!define JRE_VERSION "1.6" -!define JRE32_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52247&/jre-6u27-windows-i586.exe" -!define JRE64_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=52249&/jre-6u27-windows-x64.exe" - -Var JavaDownload -Var JavaBits +!define JAVA_VERSION "6.0" + +Function GetFileVersion + !define GetFileVersion `!insertmacro GetFileVersionCall` + + !macro GetFileVersionCall _FILE _RESULT + Push `${_FILE}` + Call GetFileVersion + Pop ${_RESULT} + !macroend + + Exch $0 + Push $1 + Push $2 + Push $3 + Push $4 + Push $5 + Push $6 + ClearErrors + + GetDllVersion '$0' $1 $2 + IfErrors error + IntOp $3 $1 >> 16 + IntOp $3 $3 & 0x0000FFFF + IntOp $4 $1 & 0x0000FFFF + IntOp $5 $2 >> 16 + IntOp $5 $5 & 0x0000FFFF + IntOp $6 $2 & 0x0000FFFF + StrCpy $0 '$3.$4.$5.$6' + goto end + + error: + SetErrors + StrCpy $0 '' + + end: + Pop $6 + Pop $5 + Pop $4 + Pop $3 + Pop $2 + Pop $1 + Exch $0 +FunctionEnd -Function GetJRE - ${If} ${RunningX64} - StrCpy $JavaDownload ${JRE64_URL} - StrCpy $JavaBits "64" - ${Else} - StrCpy $JavaDownload ${JRE32_URL} - StrCpy $JavaBits "32" - ${EndIf} - - MessageBox MB_OK "This product uses Java ${JRE_VERSION}, \ - $JavaBits bits, it will now \ - be downloaded and installed" - - StrCpy $2 "$TEMP\Java Runtime Environment.exe" - nsisdl::download /TIMEOUT=30000 $JavaDownload $2 - Pop $R0 ;Get the return value - StrCmp $R0 "success" +3 - MessageBox MB_OK "Download failed: $R0" - Quit - ExecWait $2 - Delete $2 +Function openLinkNewWindow + Push $3 + Exch + Push $2 + Exch + Push $1 + Exch + Push $0 + Exch + + ReadRegStr $1 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice" "Progid" + IfErrors iexplore + + Goto foundbrowser +iexplore: + StrCpy $1 "IE.AssocFile.HTM" + +foundbrowser: + + StrCpy $2 "\shell\open\command" + + StrCpy $3 $1$2 + + ReadRegStr $0 HKCR $3 "" + +# Get browser path + DetailPrint $0 + + StrCpy $2 '"' + StrCpy $1 $0 1 + StrCmp $1 $2 +2 # if path is not enclosed in " look for space as final char + StrCpy $2 ' ' + StrCpy $3 1 + loop: + StrCpy $1 $0 1 $3 + DetailPrint $1 + StrCmp $1 $2 found + StrCmp $1 "" found + IntOp $3 $3 + 1 + Goto loop + + found: + StrCpy $1 $0 $3 + StrCmp $2 " " +2 + StrCpy $1 '$1"' + + Pop $0 + Exec '$1 $0' + Pop $0 + Pop $1 + Pop $2 + Pop $3 FunctionEnd + +!macro _OpenURL URL +Push "${URL}" +Call openLinkNewWindow +!macroend + +!define OpenURL '!insertmacro "_OpenURL"' Function DoDetectJRE - DetailPrint "Desired Java version ${JRE_VERSION}" - - ; Check in HKCU for CurrentVersion - - ClearErrors - ReadRegStr $2 HKCU "SOFTWARE\JavaSoft\Java Runtime Environment" \ - "CurrentVersion" - - IfErrors hkcuwow_version - - DetailPrint "HKEY_CURRENT_USER Java version $2" - - ${VersionCompare} $2 ${JRE_VERSION} $3 - - IntCmp $3 1 yes yes no - -hkcuwow_version: - - ; Check in HKCU Wow6432Node for CurrentVersion - - ClearErrors - ReadRegStr $2 HKCU "SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" \ - "CurrentVersion" - - Iferrors hklm_version - - DetailPrint "HKEY_CURRENT_USER Wow6432Node Java version $2" + DetailPrint "Desired Java version ${JAVA_VERSION}" - ${VersionCompare} $2 ${JRE_VERSION} $3 - - IntCmp $3 1 yes yes no - -hklm_version: - - ; Check in HKLM for CurrentVersion - - ClearErrors - ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \ - "CurrentVersion" + SearchPath $0 javaw.exe + IfErrors no - IfErrors hklmwow_version - - DetailPrint "HKEY_LOCAL_MACHINE Java version $2" - - ${VersionCompare} $2 ${JRE_VERSION} $3 - - IntCmp $3 1 yes yes no - -hklmwow_version: - - ; Check in HKLM Wow6432Node for CurrentVersion - - ClearErrors - ReadRegStr $2 HKLM "SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" \ - "CurrentVersion" - - Iferrors hkcu_any - - DetailPrint "HKEY_LOCAL_MACHINE Wow6432Node Java version $2" - - ${VersionCompare} $2 ${JRE_VERSION} $3 + DetailPrint "Detected java in $0" - IntCmp $3 1 yes yes no + ${GetFileVersion} "$0" $1 + IfErrors no -hkcu_any: + DetailPrint "Java version $1" - ; Check in HKCU for any Java install - - StrCpy $0 0 - -hkcu_any_loop: - EnumRegKey $1 HKCU "SOFTWARE\JavaSoft" $0 - - StrCmp $1 "Java Runtime Environment" found_hkcu - - StrCmp $1 "" hklm_any - - IntOp $0 $0 + 1 - - Goto hkcu_any_loop - -found_hkcu: - - DetailPrint "HKEY_CURRENT_USER has SOFTWARE\JavaSoft\$1" - - Goto maybe - -hklm_any: - - ; Check in HKCU for any Java install - - StrCpy $0 0 - -hklm_any_loop: - EnumRegKey $1 HKLM "SOFTWARE\JavaSoft" $0 - - StrCmp $1 "Java Runtime Environment" found_hklm - - StrCmp $1 "" no - - IntOp $0 $0 + 1 - - Goto hklm_any_loop - -found_hklm: - - DetailPrint "HKEY_CURRENT_USER has SOFTWARE\JavaSoft\$1" - - Goto maybe + ${VersionCompare} $1 ${JAVA_VERSION} $2 + IntCmp $2 1 yes yes old yes: StrCpy $0 2 Goto done -maybe: +old: StrCpy $0 1 Goto done @@ -168,26 +149,28 @@ var install var quit var skip +Function GetJRE + ${OpenURL} "java.com" + MessageBox MB_OK "Click OK to continue after completing the Java Install." +FunctionEnd + Function DetectJRE Call DoDetectJRE - IntCmp $0 1 ask_maybe ask_no yes + IntCmp $0 1 ask_old ask_no yes ask_no: - StrCpy $0 "No Java detected. Download and install?" + StrCpy $0 "Cannot find Java. Download and install?" Goto ask -ask_maybe: - StrCpy $0 "Cannot determine installed Java version. Download and install?" +ask_old: + StrCpy $0 "Java version appears to be too old. Download and install?" Goto ask ask: MessageBox MB_YESNOCANCEL $0 IDYES do_java IDNO skip_java -bail: - Abort - do_java: Call GetJRE |
