JAL-4409 Fix some file extensions (including remove .txt)
[jalview.git] / utils / install4j / install4j10_template.install4j
1 <?xml version="1.0" encoding="UTF-8"?>
2 <install4j version="10.0.7" transformSequenceNumber="10">
3   <directoryPresets config="bin/Jalview" />
4   <application name="${compiler:JALVIEW_APPLICATION_NAME}" applicationId="${compiler:WINDOWS_APPLICATION_ID}" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:INTERNAL_ID}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="${compiler:JAVA_MAX_VERSION}" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
5     <searchSequence>
6       <directory location="${compiler:JRE_DIR}" />
7       <registry />
8       <envVar name="JAVA_HOME" />
9     </searchSequence>
10     <variables>
11       <variable name="JALVIEW_NAME" value="Jalview" />
12       <variable name="JALVIEW_APPLICATION_NAME" value="Jalview" />
13       <variable name="JALVIEW_DIR" value="../.." />
14       <variable name="BUILD_DIR" value="${compiler:JALVIEW_DIR}/build/install4j" />
15       <variable name="OSX_KEYSTORE" />
16       <variable name="OSX_APPLEID" />
17       <variable name="JSIGN_SH" value="echo" />
18       <variable name="JRE_DIR" value="jre" description="The folder under the app folder that the JRE will be either copied or unpacked into" />
19       <variable name="INSTALLER_TEMPLATE_VERSION" value="DEVELOPMENT_default" />
20       <variable name="JALVIEW_VERSION" value="DEVELOPMENT" />
21       <variable name="JAVA_MIN_VERSION" value="11" />
22       <variable name="JAVA_MAX_VERSION" value="11" />
23       <variable name="JAVA_VERSION" value="11" />
24       <variable name="JAVA_INTEGER_VERSION" value="11" />
25       <variable name="VERSION" value="DEVELOPMENT" />
26       <variable name="MACOS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
27       <variable name="MACOS_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-aarch64/jre" />
28       <variable name="WINDOWS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
29       <variable name="LINUX_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
30       <variable name="LINUX_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-aarch64/jre" />
31       <variable name="MACOS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_x64.tar.gz" />
32       <variable name="MACOS_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_aarch64.tar.gz" />
33       <variable name="WINDOWS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_windows_x64.tar.gz" />
34       <variable name="LINUX_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_x64.tar.gz" />
35       <variable name="LINUX_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_aarch64.tar.gz" />
36       <variable name="COPYRIGHT_MESSAGE" value="..." />
37       <variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
38       <variable name="INTERNAL_ID" value="Jalview" />
39       <variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
40       <variable name="MACOS_DMG_DS_STORE" value="utils/channels/default/images/jalview_default_dmg_DS_Store" />
41       <variable name="MACOS_DMG_BG_IMAGE" value="utils/channels/default/images/jalview_default_dmg_background-72dpi.png" />
42       <variable name="WRAPPER_LINK" value="jalview" />
43       <variable name="BASH_WRAPPER_SCRIPT" value="jalview.sh" />
44       <variable name="WRAPPER_SCRIPT_BIN_DIR" value="bin" />
45       <variable name="INSTALLER_NAME" value="Jalview Installer" />
46       <variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
47       <variable name="GETDOWN_CHANNEL_DIR" value="build/website/docroot/getdown/default" />
48       <variable name="GETDOWN_FILES_DIR" value="getdown/files" />
49       <variable name="GETDOWN_RESOURCE_DIR" value="resource" />
50       <variable name="GETDOWN_DIST_DIR" value="dist" />
51       <variable name="GETDOWN_ALT_DIR" value="alt" />
52       <variable name="GETDOWN_INSTALL_DIR" value="install" />
53       <variable name="INFO_PLIST_FILE_ASSOCIATIONS_FILE" value="file_associations_auto-Info_plist.xml" />
54       <variable name="APPLICATION_CATEGORIES" value="Science;Biology;Java;" />
55       <variable name="APPLICATION_FOLDER" value="Jalview" />
56       <variable name="UNIX_APPLICATION_FOLDER" value="jalview" />
57       <variable name="EXECUTABLE_NAME" value="jalviewg" />
58       <variable name="EXTRA_SCHEME" value="jalviewx" />
59       <variable name="MAC_ICONS_FILE" value="utils/channels/release/images/jalview_logo.icns" />
60       <variable name="WINDOWS_ICONS_FILE" value="utils/channels/release/images/jalview_logo.ico" />
61       <variable name="PNG_ICON_FILE" value="utils/channels/release/images/jalview_logo.png" />
62       <variable name="BACKGROUND" value="utils/channels/release/images/jalview_logo_background_fade-640x480.png" />
63       <variable name="BATCH_WRAPPER_SCRIPT" value="jalview.bat" />
64       <variable name="POWERSHELL_WRAPPER_SCRIPT" value="jalview.ps1" />
65       <variable name="WIZARD_WIDTH" value="640" description="Default/initial width of installer wizard window.  Linux media types adapt this.&#xA;NOT USED" />
66       <variable name="WIZARD_HEIGHT" value="480" description="Default/initial width of installer wizard window.  Linux media types adapt this.&#xA;NOT USED" />
67     </variables>
68     <codeSigning macEnabled="true" macPkcs12File="${compiler:OSX_KEYSTORE}" macNotarize="true" appleId="${compiler:OSX_APPLEID}">
69       <macAdditionalBinaries>
70         <entry>*.dylib</entry>
71         <entry>*.so</entry>
72         <entry>*.jnilib</entry>
73         <entry>unpack200</entry>
74         <entry>tnameserv</entry>
75         <entry>servertool</entry>
76         <entry>rmiregistry</entry>
77         <entry>rmid</entry>
78         <entry>policytool</entry>
79         <entry>pack200</entry>
80         <entry>orbd</entry>
81         <entry>keytool</entry>
82         <entry>jjs</entry>
83         <entry>java</entry>
84         <entry>jspawnhelper</entry>
85         <entry>libfreetype.dylib.6</entry>
86         <entry>applet</entry>
87         <entry>jaotc</entry>
88         <entry>jfr</entry>
89         <entry>jrunscript</entry>
90         <entry>libjli.dylib</entry>
91       </macAdditionalBinaries>
92     </codeSigning>
93   </application>
94   <files defaultUninstallMode="2">
95     <filesets>
96       <fileset name="Full file set" id="734" customizedId="FULL_FILE_SET" />
97       <fileset name="macOS x64 JVM" id="2801" customizedId="MACOS_X64_JVM" />
98       <fileset name="macOS aarch64 JVM" id="2803" customizedId="MACOS_AARCH64_JVM" />
99     </filesets>
100     <roots>
101       <root id="735" fileset="734" />
102       <root id="2802" fileset="2801" />
103       <root id="2804" fileset="2803" />
104     </roots>
105     <mountPoints>
106       <mountPoint id="736" root="735" />
107       <mountPoint id="2805" root="2802" />
108       <mountPoint id="2806" root="2804" />
109     </mountPoints>
110     <entries>
111       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files">
112         <exclude>
113           <entry location="${compiler:WRAPPER_SCRIPT_BIN_DIR}" />
114         </exclude>
115       </dirEntry>
116       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
117       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}/${compiler:WRAPPER_SCRIPT_BIN_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:WRAPPER_SCRIPT_BIN_DIR}" overrideDirMode="true" />
118       <dirEntry mountPoint="2805" file="${compiler:MACOS_X64_JAVA_VM_DIR}" overwriteMode="1" fileMode="755" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
119       <dirEntry mountPoint="2806" file="${compiler:MACOS_AARCH64_JAVA_VM_DIR}" overwriteMode="1" fileMode="755" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
120     </entries>
121     <components>
122       <component name="jalview_getdown" id="1031">
123         <include>
124           <entry filesetId="734" />
125         </include>
126       </component>
127     </components>
128   </files>
129   <launchers>
130     <launcher name="Jalview Launcher" id="737" customizedId="JALVIEW" menuName="${compiler:JALVIEW_APPLICATION_NAME}" icnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:JALVIEW_APPLICATION_NAME}">
131       <executable name="${compiler:EXECUTABLE_NAME}" iconSet="true" iconFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}" redirectStdout="true" executableMode="gui" changeWorkingDirectory="false" singleInstance="true" checkConsoleParameter="true">
132         <versionInfo include="true" fileDescription="${compiler:sys.fullName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:INTERNAL_ID}" productName="${compiler:sys.fullName}" />
133       </executable>
134       <splashScreen width="640" height="480" bitmapFile="${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}" textOverlay="true">
135         <text>
136           <statusLine x="85" y="81" text="${compiler:sys.shortName}" fontSize="18" />
137           <versionLine x="85" y="109" text="version ${compiler:sys.version}" />
138         </text>
139       </splashScreen>
140       <java mainClass="com.threerings.getdown.launcher.GetdownApp" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION} -Dchannel.app_name=&quot;${compiler:JALVIEW_APPLICATION_NAME}&quot;" arguments="&quot;${launcher:sys.launcherDirectory}&quot; jalview">
141         <classPath>
142           <archive location="getdown-launcher.jar" />
143           <archive location="${compiler:GETDOWN_INSTALL_DIR}/getdown-launcher.jar" failOnError="false" />
144         </classPath>
145         <nativeLibraryDirectories>
146           <directory name="${compiler:JRE_DIR}/bin" />
147           <directory name="${compiler:GETDOWN_DIST_DIR}" />
148         </nativeLibraryDirectories>
149       </java>
150       <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
151       <iconImageFiles>
152         <file path="${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}" />
153       </iconImageFiles>
154       <macStaticAssociations>
155         <urlHandler scheme="jalview" />
156         <urlHandler scheme="jalviews" />
157         <urlHandler scheme="jalviewhttp" />
158         <urlHandler scheme="jalviewhttps" />
159         <urlHandler scheme="${compiler:EXTRA_SCHEME}" />
160       </macStaticAssociations>
161     </launcher>
162   </launchers>
163   <installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
164     <applications>
165       <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" styleId="35" customIcnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customIcoFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}">
166         <serializedBean>
167           <property name="frameHeight" type="int" value="480" />
168           <property name="frameWidth" type="int" value="640" />
169           <property name="useCustomIcon" type="boolean" value="true" />
170         </serializedBean>
171         <styleOverrides>
172           <styleOverride name="Customize banner image" enabled="true">
173             <group id="146" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
174               <serializedBean>
175                 <property name="backgroundColor">
176                   <object class="com.install4j.runtime.beans.LightOrDarkColor">
177                     <object class="java.awt.Color">
178                       <int>255</int>
179                       <int>255</int>
180                       <int>255</int>
181                       <int>255</int>
182                     </object>
183                     <object class="java.awt.Color">
184                       <int>49</int>
185                       <int>52</int>
186                       <int>53</int>
187                       <int>255</int>
188                     </object>
189                   </object>
190                 </property>
191                 <property name="borderSides">
192                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
193                     <property name="bottom" type="boolean" value="true" />
194                   </object>
195                 </property>
196                 <property name="imageEdgeBackgroundColor">
197                   <object class="java.awt.Color">
198                     <int>255</int>
199                     <int>255</int>
200                     <int>255</int>
201                     <int>255</int>
202                   </object>
203                 </property>
204                 <property name="imageEdgeBorder" type="boolean" value="true" />
205                 <property name="imageFile">
206                   <object class="com.install4j.api.beans.ExternalFile">
207                     <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
208                   </object>
209                 </property>
210                 <property name="insets">
211                   <object class="java.awt.Insets">
212                     <int>5</int>
213                     <int>10</int>
214                     <int>10</int>
215                     <int>10</int>
216                   </object>
217                 </property>
218               </serializedBean>
219               <externalParametrizationPropertyNames>
220                 <propertyName>imageAnchor</propertyName>
221                 <propertyName>imageEdgeBackgroundColor</propertyName>
222                 <propertyName>imageFile</propertyName>
223               </externalParametrizationPropertyNames>
224             </group>
225           </styleOverride>
226           <styleOverride name="Jalview" enabled="true">
227             <formComponent name="Watermark" id="352" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Jalview" externalParametrizationMode="include">
228               <serializedBean>
229                 <property name="enabledTitleText" type="boolean" value="false" />
230               </serializedBean>
231               <externalParametrizationPropertyNames>
232                 <propertyName>labelText</propertyName>
233               </externalParametrizationPropertyNames>
234             </formComponent>
235           </styleOverride>
236         </styleOverrides>
237         <startup>
238           <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
239             <actions>
240               <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
241                 <serializedBean>
242                   <property name="obtainIfAdminWin" type="boolean" value="false" />
243                 </serializedBean>
244               </action>
245               <action name="Set unixUserBinDir (Linux or Unix)" id="2738" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
246                 <serializedBean>
247                   <property name="script">
248                     <object class="com.install4j.api.beans.ScriptProperty">
249                       <property name="value" type="string">String userHome = (String)context.getVariable("sys.userHome");
250
251 ArrayList&lt;String&gt; tryPaths = new ArrayList&lt;&gt; ();
252 tryPaths.add(userHome + File.separator + "bin");
253 tryPaths.add(userHome + File.separator + ".local" + File.separator + "bin");
254 tryPaths.add(userHome + File.separator + "local" + File.separator + "bin");
255 tryPaths.add(userHome + File.separator + "opt" + File.separator + "bin");
256
257 if (Util.isMacOS()) { // &amp;&amp; root permission?
258     tryPaths.add(File.separator + "usr" + File.separator + "local" + File.separator + "bin"); 
259 }
260
261 for (int i = 0; i &lt; tryPaths.size(); i++) {
262     String tryPath = tryPaths.get(i);
263     File unixUserBinDir = new File(tryPath);
264     if (unixUserBinDir.exists()) {
265         return tryPath;
266     }
267 }
268
269 return null;
270 </property>
271                     </object>
272                   </property>
273                   <property name="variableName" type="string">unixUserBinDir</property>
274                 </serializedBean>
275                 <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
276               </action>
277               <action name="Set macWrapperLinkLocation (macOS)" id="2745" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
278                 <serializedBean>
279                   <property name="script">
280                     <object class="com.install4j.api.beans.ScriptProperty">
281                       <property name="value" type="string">String javaHome = System.getProperty("java.home");
282 String appName = ((String)context.getCompilerVariable("JALVIEW_APPLICATION_NAME")) + ".app";
283 int i = javaHome.indexOf(appName);
284 String wrapperLink = null;
285 if (i &gt; -1) {
286     wrapperLink = javaHome.substring(0, i) + appName + File.separator + "Contents" + File.separator + "MacOS" + File.separator + ((String)context.getCompilerVariable("WRAPPER_LINK"));
287 }
288 return wrapperLink;
289 </property>
290                     </object>
291                   </property>
292                   <property name="variableName" type="string">macWrapperLinkLocation</property>
293                 </serializedBean>
294                 <condition>Util.isMacOS()</condition>
295               </action>
296             </actions>
297           </screen>
298         </startup>
299         <screens>
300           <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" rollbackBarrierExitCode="0">
301             <styleOverrides>
302               <styleOverride name="Customize banner image" enabled="true">
303                 <group id="145" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
304                   <serializedBean>
305                     <property name="backgroundColor">
306                       <object class="com.install4j.runtime.beans.LightOrDarkColor">
307                         <object class="java.awt.Color">
308                           <int>255</int>
309                           <int>255</int>
310                           <int>255</int>
311                           <int>255</int>
312                         </object>
313                         <object class="java.awt.Color">
314                           <int>49</int>
315                           <int>52</int>
316                           <int>53</int>
317                           <int>255</int>
318                         </object>
319                       </object>
320                     </property>
321                     <property name="borderSides">
322                       <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
323                         <property name="bottom" type="boolean" value="true" />
324                       </object>
325                     </property>
326                     <property name="imageEdgeBackgroundColor">
327                       <object class="com.install4j.runtime.beans.LightOrDarkColor">
328                         <object class="java.awt.Color">
329                           <int>25</int>
330                           <int>143</int>
331                           <int>220</int>
332                           <int>255</int>
333                         </object>
334                         <object class="java.awt.Color">
335                           <int>0</int>
336                           <int>74</int>
337                           <int>151</int>
338                           <int>255</int>
339                         </object>
340                       </object>
341                     </property>
342                     <property name="imageEdgeBorder" type="boolean" value="true" />
343                     <property name="imageFile">
344                       <object class="com.install4j.api.beans.ExternalFile">
345                         <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
346                       </object>
347                     </property>
348                     <property name="insets">
349                       <object class="java.awt.Insets">
350                         <int>5</int>
351                         <int>10</int>
352                         <int>10</int>
353                         <int>10</int>
354                       </object>
355                     </property>
356                   </serializedBean>
357                   <externalParametrizationPropertyNames>
358                     <propertyName>imageAnchor</propertyName>
359                     <propertyName>imageEdgeBackgroundColor</propertyName>
360                     <propertyName>imageFile</propertyName>
361                   </externalParametrizationPropertyNames>
362                 </group>
363               </styleOverride>
364             </styleOverrides>
365             <actions>
366               <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
367                 <serializedBean>
368                   <property name="excludedVariables" type="array" elementType="string" length="1">
369                     <element index="0">sys.installationDir</element>
370                   </property>
371                 </serializedBean>
372                 <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
373               </action>
374             </actions>
375             <formComponents>
376               <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
377                 <serializedBean>
378                   <property name="labelText" type="string">${form:welcomeMessage}</property>
379                 </serializedBean>
380                 <visibilityScript>!context.isConsole()</visibilityScript>
381               </formComponent>
382               <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
383                 <serializedBean>
384                   <property name="consoleScript">
385                     <object class="com.install4j.api.beans.ScriptProperty">
386                       <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
387 return console.askOkCancel(message, true);
388 </property>
389                     </object>
390                   </property>
391                 </serializedBean>
392               </formComponent>
393               <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
394                 <externalParametrizationPropertyNames>
395                   <propertyName>updateCheck</propertyName>
396                 </externalParametrizationPropertyNames>
397               </formComponent>
398               <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
399                 <serializedBean>
400                   <property name="labelText" type="string">${i18n:ClickNext}</property>
401                 </serializedBean>
402               </formComponent>
403             </formComponents>
404           </screen>
405           <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" rollbackBarrierExitCode="0">
406             <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
407             <actions>
408               <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
409                 <serializedBean>
410                   <property name="excludedVariables" type="array" elementType="string" length="1">
411                     <element index="0">sys.installationDir</element>
412                   </property>
413                 </serializedBean>
414                 <condition>context.getVariable("sys.responseFile") == null</condition>
415               </action>
416             </actions>
417             <formComponents>
418               <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
419                 <serializedBean>
420                   <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
421                 </serializedBean>
422               </formComponent>
423               <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
424                 <serializedBean>
425                   <property name="requestFocus" type="boolean" value="true" />
426                 </serializedBean>
427                 <externalParametrizationPropertyNames>
428                   <propertyName>allowSpacesOnUnix</propertyName>
429                   <propertyName>checkFreeSpace</propertyName>
430                   <propertyName>checkWritable</propertyName>
431                   <propertyName>existingDirWarning</propertyName>
432                   <propertyName>manualEntryAllowed</propertyName>
433                   <propertyName>showFreeDiskSpace</propertyName>
434                   <propertyName>showRequiredDiskSpace</propertyName>
435                   <propertyName>standardValidation</propertyName>
436                   <propertyName>suggestAppDir</propertyName>
437                   <propertyName>validateApplicationId</propertyName>
438                   <propertyName>validationScript</propertyName>
439                 </externalParametrizationPropertyNames>
440               </formComponent>
441             </formComponents>
442           </screen>
443           <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
444             <formComponents>
445               <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
446                 <serializedBean>
447                   <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
448                 </serializedBean>
449                 <visibilityScript>!context.isConsole()</visibilityScript>
450               </formComponent>
451               <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
452                 <serializedBean>
453                   <property name="fillVertical" type="boolean" value="true" />
454                 </serializedBean>
455                 <externalParametrizationPropertyNames>
456                   <propertyName>selectionChangedScript</propertyName>
457                 </externalParametrizationPropertyNames>
458               </formComponent>
459             </formComponents>
460           </screen>
461           <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
462             <formComponents>
463               <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
464                 <serializedBean>
465                   <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
466                 </serializedBean>
467               </formComponent>
468               <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
469                 <serializedBean>
470                   <property name="fillVertical" type="boolean" value="true" />
471                   <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
472                   <property name="showSelectionButtons" type="boolean" value="true" />
473                 </serializedBean>
474                 <externalParametrizationPropertyNames>
475                   <propertyName>showSelectionButtons</propertyName>
476                   <propertyName>selectionButtonPosition</propertyName>
477                 </externalParametrizationPropertyNames>
478               </formComponent>
479             </formComponents>
480           </screen>
481           <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true" rollbackBarrierExitCode="0">
482             <actions>
483               <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
484               <action name="Create program group (RELEASE)" id="18" customizedId="PROGRAM_GROUP_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
485                 <serializedBean>
486                   <property name="allUsers" type="boolean" value="false" />
487                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
488                   <property name="programGroupEntryConfigs">
489                     <add>
490                       <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
491                         <property name="name" type="string">Examples</property>
492                         <property name="target">
493                           <object class="java.io.File">
494                             <string>examples</string>
495                           </object>
496                         </property>
497                       </object>
498                     </add>
499                   </property>
500                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
501                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
502                 </serializedBean>
503                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
504               </action>
505               <action name="Create program group (NON-RELEASE)" id="2730" customizedId="PROGRAM_GROUP_NON_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
506                 <serializedBean>
507                   <property name="allUsers" type="boolean" value="false" />
508                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
509                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
510                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
511                 </serializedBean>
512                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
513               </action>
514               <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
515                 <serializedBean>
516                   <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
517                 </serializedBean>
518               </action>
519               <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
520                 <serializedBean>
521                   <property name="script">
522                     <object class="com.install4j.api.beans.ScriptProperty">
523                       <property name="value" type="string" />
524                     </object>
525                   </property>
526                   <property name="variableName" type="string" />
527                 </serializedBean>
528                 <condition>true</condition>
529               </action>
530               <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
531                 <serializedBean>
532                   <property name="launcherId" type="string">121</property>
533                   <property name="vmOptions" type="array" elementType="string" length="0" />
534                 </serializedBean>
535               </action>
536               <group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
537                 <beans>
538                   <action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
539                     <serializedBean>
540                       <property name="statusMessage" type="string">Creating file associations...</property>
541                       <property name="useDetail" type="boolean" value="true" />
542                       <property name="useStatus" type="boolean" value="true" />
543                     </serializedBean>
544                   </action>
545                   <action id="2254" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
546                     <serializedBean>
547                       <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
548                     </serializedBean>
549                   </action>
550                   <group name="File Associations Replacement Group" id="2753" customizedId="EXTENSIONS_REPLACED_BY_GRADLE_PARENT_GROUP" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
551                     <beans>
552                       <action name="EXTENSIONS_REPLACED_BY_GRADLE" id="1691" customizedId="EXTENSIONS" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
553                         <serializedBean>
554                           <property name="description" type="string">This action, identified by its name "EXTENSIONS_REPLACED_BY_GRADLE", will be replaced by gradle with the contents of file 'file_associations_auto_install4j.xml'.</property>
555                           <property name="extension" type="string">extensions_to_be_replaced_by_gradle</property>
556                           <property name="launcherId" type="string">JALVIEW</property>
557                         </serializedBean>
558                       </action>
559                     </beans>
560                   </group>
561                   <action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
562                     <serializedBean>
563                       <property name="statusMessage" type="string">Finished creating file associations</property>
564                       <property name="useDetail" type="boolean" value="true" />
565                       <property name="useStatus" type="boolean" value="true" />
566                     </serializedBean>
567                   </action>
568                   <action id="2541" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
569                     <serializedBean>
570                       <property name="percentValue" type="int" value="100" />
571                     </serializedBean>
572                   </action>
573                 </beans>
574               </group>
575               <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
576                 <serializedBean>
577                   <property name="launcherId" type="string">737</property>
578                   <property name="scheme" type="string">jalview</property>
579                 </serializedBean>
580               </action>
581               <action id="2822" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
582                 <serializedBean>
583                   <property name="launcherId" type="string">737</property>
584                   <property name="scheme" type="string">jalviews</property>
585                 </serializedBean>
586               </action>
587               <action id="2819" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
588                 <serializedBean>
589                   <property name="launcherId" type="string">737</property>
590                   <property name="scheme" type="string">jalviewhttp</property>
591                 </serializedBean>
592               </action>
593               <action id="2820" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
594                 <serializedBean>
595                   <property name="launcherId" type="string">737</property>
596                   <property name="scheme" type="string">jalviewhttps</property>
597                 </serializedBean>
598               </action>
599               <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
600                 <serializedBean>
601                   <property name="launcherId" type="string">JALVIEW</property>
602                   <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
603                 </serializedBean>
604               </action>
605             </actions>
606             <formComponents>
607               <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
608                 <serializedBean>
609                   <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
610                 </serializedBean>
611               </formComponent>
612             </formComponents>
613           </screen>
614           <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
615             <actions>
616               <action name="Linux Jalview Appname-&gt;java symlink" id="2813" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
617                 <serializedBean>
618                   <property name="file">
619                     <object class="java.io.File">
620                       <string>${compiler:JRE_DIR}/bin/java</string>
621                     </object>
622                   </property>
623                   <property name="linkFile">
624                     <object class="java.io.File">
625                       <string>${compiler:JRE_DIR}/bin/${compiler:JALVIEW_APPLICATION_NAME}</string>
626                     </object>
627                   </property>
628                   <property name="removeOnUninstall" type="boolean" value="false" />
629                 </serializedBean>
630                 <condition>Util.isLinux()</condition>
631               </action>
632               <action name="Linux Jalview-&gt;java symlink" id="2814" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
633                 <serializedBean>
634                   <property name="file">
635                     <object class="java.io.File">
636                       <string>${compiler:JRE_DIR}/bin/java</string>
637                     </object>
638                   </property>
639                   <property name="linkFile">
640                     <object class="java.io.File">
641                       <string>${compiler:JRE_DIR}/bin/${compiler:JALVIEW_NAME}</string>
642                     </object>
643                   </property>
644                   <property name="removeOnUninstall" type="boolean" value="false" />
645                 </serializedBean>
646                 <condition>Util.isLinux()</condition>
647               </action>
648               <action id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
649                 <serializedBean>
650                   <property name="allUsers" type="boolean" value="false" />
651                   <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
652                   <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
653                   <property name="file">
654                     <object class="java.io.File">
655                       <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
656                     </object>
657                   </property>
658                   <property name="icon">
659                     <object class="com.install4j.api.beans.ExternalFile">
660                       <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
661                     </object>
662                   </property>
663                   <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
664                   <property name="unixIconFile">
665                     <object class="com.install4j.api.beans.ExternalFile">
666                       <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
667                     </object>
668                   </property>
669                 </serializedBean>
670                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
671               </action>
672               <action id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
673                 <serializedBean>
674                   <property name="allUsers" type="boolean" value="false" />
675                   <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
676                   <property name="file">
677                     <object class="java.io.File">
678                       <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
679                     </object>
680                   </property>
681                   <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
682                   <property name="unixIconFile">
683                     <object class="com.install4j.api.beans.ExternalFile">
684                       <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
685                     </object>
686                   </property>
687                   <property name="winIconFile">
688                     <object class="com.install4j.api.beans.ExternalFile">
689                       <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
690                     </object>
691                   </property>
692                 </serializedBean>
693                 <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
694               </action>
695               <action id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
696                 <serializedBean>
697                   <property name="executable">
698                     <object class="java.io.File">
699                       <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
700                     </object>
701                   </property>
702                 </serializedBean>
703                 <condition>context.getBooleanVariable("addToDockAction")</condition>
704               </action>
705               <action name="Linux/Unix symlink" id="2733" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
706                 <serializedBean>
707                   <property name="file">
708                     <object class="java.io.File">
709                       <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
710                     </object>
711                   </property>
712                   <property name="linkFile">
713                     <object class="java.io.File">
714                       <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
715                     </object>
716                   </property>
717                 </serializedBean>
718                 <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
719               </action>
720               <action name="Add Jalview bin to the user's path (Windows)" id="2740" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add &quot;${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}&quot; to the Path environment variable">
721                 <serializedBean>
722                   <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
723                   <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
724                   <property name="variableName" type="string">Path</property>
725                 </serializedBean>
726                 <condition>context.getBooleanVariable("appendToPathAction")</condition>
727               </action>
728               <action name="Create Linux/Unix symbolic link to jalview.sh in user's local bin" id="2739" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
729                 <serializedBean>
730                   <property name="file">
731                     <object class="java.io.File">
732                       <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
733                     </object>
734                   </property>
735                   <property name="linkFile">
736                     <object class="java.io.File">
737                       <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
738                     </object>
739                   </property>
740                 </serializedBean>
741                 <condition>context.getBooleanVariable("makeSymbolicLinkAction") &amp;&amp; ( Util.isLinux() || Util.isUnixInstaller() ) &amp;&amp; ( context.getVariable("unixUserBinDir") != null )</condition>
742               </action>
743               <action name="Create macOS symbolic link to jalview in user's local bin" id="2743" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
744                 <serializedBean>
745                   <property name="file">
746                     <object class="java.io.File">
747                       <string>${installer:macWrapperLinkLocation}</string>
748                     </object>
749                   </property>
750                   <property name="linkFile">
751                     <object class="java.io.File">
752                       <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
753                     </object>
754                   </property>
755                 </serializedBean>
756                 <condition>context.getBooleanVariable("makeSymbolicLinkAction") &amp;&amp; Util.isMacOS() &amp;&amp; ( context.getVariable("unixUserBinDir") != null ) &amp;&amp; ( context.getVariable("macWrapperLinkLocation") != null )</condition>
757               </action>
758               <action name="Windows copy BAT file" id="2817" beanClass="com.install4j.runtime.beans.actions.files.CopyFileAction" rollbackBarrierExitCode="0">
759                 <serializedBean>
760                   <property name="destinationFile">
761                     <object class="java.io.File">
762                       <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}.bat</string>
763                     </object>
764                   </property>
765                   <property name="files" type="array" class="java.io.File" length="1">
766                     <element index="0">
767                       <object class="java.io.File">
768                         <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BATCH_WRAPPER_SCRIPT}</string>
769                       </object>
770                     </element>
771                   </property>
772                 </serializedBean>
773                 <condition>Util.isWindows() &amp;&amp; !(((String)context.getCompilerVariable("WRAPPER_LINK")+".bat").equals((String)context.getCompilerVariable("BATCH_WRAPPER_SCRIPT")))</condition>
774               </action>
775               <action name="Windows copy PS1 file" id="2818" beanClass="com.install4j.runtime.beans.actions.files.CopyFileAction" rollbackBarrierExitCode="0">
776                 <serializedBean>
777                   <property name="destinationFile">
778                     <object class="java.io.File">
779                       <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}.ps1</string>
780                     </object>
781                   </property>
782                   <property name="files" type="array" class="java.io.File" length="1">
783                     <element index="0">
784                       <object class="java.io.File">
785                         <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:POWERSHELL_WRAPPER_SCRIPT}</string>
786                       </object>
787                     </element>
788                   </property>
789                 </serializedBean>
790                 <condition>Util.isWindows() &amp;&amp; !(((String)context.getCompilerVariable("WRAPPER_LINK")+".ps1").equals((String)context.getCompilerVariable("POWERSHELL_WRAPPER_SCRIPT")))</condition>
791               </action>
792             </actions>
793             <formComponents>
794               <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
795                 <serializedBean>
796                   <property name="labelText" type="string">${form:finishedMessage}</property>
797                 </serializedBean>
798               </formComponent>
799               <formComponent name="Add a desktop link" id="574" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
800                 <serializedBean>
801                   <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
802                   <property name="initiallySelected" type="boolean" value="true" />
803                   <property name="variableName" type="string">createDesktopLinkAction</property>
804                 </serializedBean>
805                 <visibilityScript>!Util.isMacOS()</visibilityScript>
806               </formComponent>
807               <formComponent name="Add an executable to the dock" id="577" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
808                 <serializedBean>
809                   <property name="checkboxText" type="string">${i18n:AddToDock}</property>
810                   <property name="initiallySelected" type="boolean" value="true" />
811                   <property name="variableName" type="string">addToDockAction</property>
812                 </serializedBean>
813                 <visibilityScript>Util.isMacOS()</visibilityScript>
814               </formComponent>
815               <formComponent name="Add jalview bin to the user's Path environment variable (Windows)" id="2734" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
816                 <serializedBean>
817                   <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to the Path environment variable</property>
818                   <property name="initiallySelected" type="boolean" value="true" />
819                   <property name="variableName" type="string">appendToPathAction</property>
820                 </serializedBean>
821                 <visibilityScript>Util.isWindows()</visibilityScript>
822               </formComponent>
823               <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2736" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
824                 <serializedBean>
825                   <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
826                   <property name="initiallySelected" type="boolean" value="true" />
827                   <property name="variableName" type="string">makeSymbolicLinkAction</property>
828                 </serializedBean>
829                 <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() &amp;&amp; ( context.getVariable("macWrapperLinkLocation") != null ) ) ) &amp;&amp; ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
830               </formComponent>
831             </formComponents>
832           </screen>
833         </screens>
834       </application>
835       <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
836         <serializedBean>
837           <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
838           <property name="useCustomMacosExecutableName" type="boolean" value="true" />
839         </serializedBean>
840         <styleOverrides>
841           <styleOverride name="Customize banner image" enabled="true">
842             <group id="147" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
843               <serializedBean>
844                 <property name="backgroundColor">
845                   <object class="com.install4j.runtime.beans.LightOrDarkColor">
846                     <object class="java.awt.Color">
847                       <int>255</int>
848                       <int>255</int>
849                       <int>255</int>
850                       <int>255</int>
851                     </object>
852                     <object class="java.awt.Color">
853                       <int>49</int>
854                       <int>52</int>
855                       <int>53</int>
856                       <int>255</int>
857                     </object>
858                   </object>
859                 </property>
860                 <property name="borderSides">
861                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
862                     <property name="bottom" type="boolean" value="true" />
863                   </object>
864                 </property>
865                 <property name="imageEdgeBackgroundColor">
866                   <object class="java.awt.Color">
867                     <int>192</int>
868                     <int>192</int>
869                     <int>192</int>
870                     <int>255</int>
871                   </object>
872                 </property>
873                 <property name="imageEdgeBorder" type="boolean" value="true" />
874                 <property name="imageFile">
875                   <object class="com.install4j.api.beans.ExternalFile">
876                     <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
877                   </object>
878                 </property>
879                 <property name="insets">
880                   <object class="java.awt.Insets">
881                     <int>5</int>
882                     <int>10</int>
883                     <int>10</int>
884                     <int>10</int>
885                   </object>
886                 </property>
887               </serializedBean>
888               <externalParametrizationPropertyNames>
889                 <propertyName>imageAnchor</propertyName>
890                 <propertyName>imageEdgeBackgroundColor</propertyName>
891                 <propertyName>imageFile</propertyName>
892               </externalParametrizationPropertyNames>
893             </group>
894           </styleOverride>
895         </styleOverrides>
896         <startup>
897           <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
898             <actions>
899               <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" />
900               <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
901             </actions>
902           </screen>
903         </startup>
904         <screens>
905           <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" rollbackBarrierExitCode="0">
906             <formComponents>
907               <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
908                 <serializedBean>
909                   <property name="labelText" type="string">${form:welcomeMessage}</property>
910                 </serializedBean>
911                 <visibilityScript>!context.isConsole()</visibilityScript>
912               </formComponent>
913               <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
914                 <serializedBean>
915                   <property name="consoleScript">
916                     <object class="com.install4j.api.beans.ScriptProperty">
917                       <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
918 return console.askYesNo(message, true);
919 </property>
920                     </object>
921                   </property>
922                 </serializedBean>
923               </formComponent>
924             </formComponents>
925           </screen>
926           <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
927             <actions>
928               <action id="659" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
929                 <serializedBean>
930                   <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
931                 </serializedBean>
932               </action>
933               <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" rollbackBarrierExitCode="0" />
934               <action id="660" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="false" actionElevationType="none" rollbackBarrierExitCode="0">
935                 <serializedBean>
936                   <property name="percentValue" type="int" value="95" />
937                 </serializedBean>
938               </action>
939               <action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" rollbackBarrierExitCode="0">
940                 <serializedBean>
941                   <property name="files" type="array" class="java.io.File" length="40">
942                     <element index="0">
943                       <object class="java.io.File">
944                         <string>jre</string>
945                       </object>
946                     </element>
947                     <element index="1">
948                       <object class="java.io.File">
949                         <string>jre.jar</string>
950                       </object>
951                     </element>
952                     <element index="2">
953                       <object class="java.io.File">
954                         <string>.install4j</string>
955                       </object>
956                     </element>
957                     <element index="3">
958                       <object class="java.io.File">
959                         <string>getdown-launcher.jar</string>
960                       </object>
961                     </element>
962                     <element index="4">
963                       <object class="java.io.File">
964                         <string>getdown-launcher-old.jar</string>
965                       </object>
966                     </element>
967                     <element index="5">
968                       <object class="java.io.File">
969                         <string>getdown-launcher-new.jar</string>
970                       </object>
971                     </element>
972                     <element index="6">
973                       <object class="java.io.File">
974                         <string>gettingdown.lock</string>
975                       </object>
976                     </element>
977                     <element index="7">
978                       <object class="java.io.File">
979                         <string>jre.zip</string>
980                       </object>
981                     </element>
982                     <element index="8">
983                       <object class="java.io.File">
984                         <string>digest.txt</string>
985                       </object>
986                     </element>
987                     <element index="9">
988                       <object class="java.io.File">
989                         <string>digest2.txt</string>
990                       </object>
991                     </element>
992                     <element index="10">
993                       <object class="java.io.File">
994                         <string>getdown-launcher.jarv</string>
995                       </object>
996                     </element>
997                     <element index="11">
998                       <object class="java.io.File">
999                         <string>getdown-launcher-new.jarv</string>
1000                       </object>
1001                     </element>
1002                     <element index="12">
1003                       <object class="java.io.File">
1004                         <string>launcher.log</string>
1005                       </object>
1006                     </element>
1007                     <element index="13">
1008                       <object class="java.io.File">
1009                         <string>proxy.txt</string>
1010                       </object>
1011                     </element>
1012                     <element index="14">
1013                       <object class="java.io.File">
1014                         <string>build_properties</string>
1015                       </object>
1016                     </element>
1017                     <element index="15">
1018                       <object class="java.io.File">
1019                         <string>channel_launch*.jvl</string>
1020                       </object>
1021                     </element>
1022                     <element index="16">
1023                       <object class="java.io.File">
1024                         <string>jalview*.jvl</string>
1025                       </object>
1026                     </element>
1027                     <element index="17">
1028                       <object class="java.io.File">
1029                         <string>*.jarv</string>
1030                       </object>
1031                     </element>
1032                     <element index="18">
1033                       <object class="java.io.File">
1034                         <string>*.log</string>
1035                       </object>
1036                     </element>
1037                     <element index="19">
1038                       <object class="java.io.File">
1039                         <string>*.txt</string>
1040                       </object>
1041                     </element>
1042                     <element index="20">
1043                       <object class="java.io.File">
1044                         <string>*_new</string>
1045                       </object>
1046                     </element>
1047                     <element index="21">
1048                       <object class="java.io.File">
1049                         <string>hs_err_*.*</string>
1050                       </object>
1051                     </element>
1052                     <element index="22">
1053                       <object class="java.io.File">
1054                         <string>${compiler:GETDOWN_DIST_DIR}</string>
1055                       </object>
1056                     </element>
1057                     <element index="23">
1058                       <object class="java.io.File">
1059                         <string>${compiler:GETDOWN_ALT_DIR}</string>
1060                       </object>
1061                     </element>
1062                     <element index="24">
1063                       <object class="java.io.File">
1064                         <string>${compiler:GETDOWN_RESOURCE_DIR}</string>
1065                       </object>
1066                     </element>
1067                     <element index="25">
1068                       <object class="java.io.File">
1069                         <string>META-INF</string>
1070                       </object>
1071                     </element>
1072                     <element index="26">
1073                       <object class="java.io.File">
1074                         <string>install</string>
1075                       </object>
1076                     </element>
1077                     <element index="27">
1078                       <object class="java.io.File">
1079                         <string>resource</string>
1080                       </object>
1081                     </element>
1082                     <element index="28">
1083                       <object class="java.io.File">
1084                         <string>dist</string>
1085                       </object>
1086                     </element>
1087                     <element index="29">
1088                       <object class="java.io.File">
1089                         <string>release</string>
1090                       </object>
1091                     </element>
1092                     <element index="30">
1093                       <object class="java.io.File">
1094                         <string>alt</string>
1095                       </object>
1096                     </element>
1097                     <element index="31">
1098                       <object class="java.io.File">
1099                         <string>dev</string>
1100                       </object>
1101                     </element>
1102                     <element index="32">
1103                       <object class="java.io.File">
1104                         <string>build</string>
1105                       </object>
1106                     </element>
1107                     <element index="33">
1108                       <object class="java.io.File">
1109                         <string>alt_*</string>
1110                       </object>
1111                     </element>
1112                     <element index="34">
1113                       <object class="java.io.File">
1114                         <string>dev_*</string>
1115                       </object>
1116                     </element>
1117                     <element index="35">
1118                       <object class="java.io.File">
1119                         <string>build_*</string>
1120                       </object>
1121                     </element>
1122                     <element index="36">
1123                       <object class="java.io.File">
1124                         <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}</string>
1125                       </object>
1126                     </element>
1127                     <element index="37">
1128                       <object class="java.io.File">
1129                         <string>bin</string>
1130                       </object>
1131                     </element>
1132                     <element index="38">
1133                       <object class="java.io.File">
1134                         <string>channel.props</string>
1135                       </object>
1136                     </element>
1137                     <element index="39">
1138                       <object class="java.io.File">
1139                         <string>channel.propsv</string>
1140                       </object>
1141                     </element>
1142                   </property>
1143                   <property name="recursive" type="boolean" value="true" />
1144                 </serializedBean>
1145               </action>
1146               <action id="1791" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
1147                 <serializedBean>
1148                   <property name="percentValue" type="int" value="100" />
1149                 </serializedBean>
1150               </action>
1151             </actions>
1152             <formComponents>
1153               <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
1154                 <serializedBean>
1155                   <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
1156                 </serializedBean>
1157               </formComponent>
1158             </formComponents>
1159           </screen>
1160           <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
1161           <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="41" rollbackBarrierExitCode="0" finishScreen="true">
1162             <formComponents>
1163               <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
1164                 <serializedBean>
1165                   <property name="labelText" type="string">${form:successMessage}</property>
1166                 </serializedBean>
1167               </formComponent>
1168             </formComponents>
1169           </screen>
1170         </screens>
1171       </application>
1172       <application name="MacOS Setup" id="2746" beanClass="com.install4j.runtime.beans.applications.CustomApplication" fileset="734" macEntitlementsFile="${compiler:JALVIEW_DIR}/utils/osx_signing/entitlements.txt">
1173         <serializedBean>
1174           <property name="executableDirectory">
1175             <object class="java.io.File">
1176               <string>.</string>
1177             </object>
1178           </property>
1179           <property name="executableName" type="string">${compiler:WRAPPER_LINK}_setup</property>
1180           <property name="windowTitle" type="string">${compiler:sys.fullName}</property>
1181         </serializedBean>
1182         <startup>
1183           <screen id="2747" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
1184             <actions>
1185               <link id="2749" targetId="22" />
1186               <link id="2750" targetId="2738" />
1187               <link id="2751" targetId="2745" />
1188             </actions>
1189           </screen>
1190         </startup>
1191         <screens>
1192           <screen id="2772" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0" backButton="hidden" finishScreen="true">
1193             <serializedBean>
1194               <property name="title" type="string">Running ${i18n:SetupAppTitle}</property>
1195             </serializedBean>
1196             <actions>
1197               <link id="2778" targetId="576" />
1198               <link id="2779" targetId="2743" />
1199             </actions>
1200             <formComponents>
1201               <formComponent id="2773" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
1202                 <serializedBean>
1203                   <property name="labelText" type="string">${i18n:FinishedLabel(${compiler:JALVIEW_APPLICATION_NAME})}</property>
1204                 </serializedBean>
1205               </formComponent>
1206               <formComponent name="Add an executable to the dock" id="2775" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
1207                 <serializedBean>
1208                   <property name="checkboxText" type="string">${i18n:AddToDock}</property>
1209                   <property name="initiallySelected" type="boolean" value="true" />
1210                   <property name="variableName" type="string">addToDockAction</property>
1211                 </serializedBean>
1212                 <visibilityScript>Util.isMacOS()</visibilityScript>
1213               </formComponent>
1214               <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2777" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
1215                 <serializedBean>
1216                   <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
1217                   <property name="initiallySelected" type="boolean" value="true" />
1218                   <property name="variableName" type="string">makeSymbolicLinkAction</property>
1219                 </serializedBean>
1220                 <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() &amp;&amp; ( context.getVariable("macWrapperLinkLocation") != null ) ) ) &amp;&amp; ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
1221               </formComponent>
1222               <formComponent id="2780" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
1223                 <serializedBean>
1224                   <property name="labelText" type="string">
1225 ${i18n:ClickFinish}
1226
1227 ${compiler:JALVIEW_APPLICATION_NAME} will now launch.</property>
1228                 </serializedBean>
1229               </formComponent>
1230             </formComponents>
1231           </screen>
1232         </screens>
1233       </application>
1234     </applications>
1235     <styles defaultStyleId="35">
1236       <style name="Standard" id="35" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1237         <formComponents>
1238           <formComponent name="Header" id="36" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
1239             <serializedBean>
1240               <property name="styleId" type="string">48</property>
1241             </serializedBean>
1242           </formComponent>
1243           <group name="Main" id="37" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
1244             <serializedBean>
1245               <property name="imageEdgeAxisType" type="enum" class="com.install4j.runtime.beans.formcomponents.AxisType" value="HORIZONTAL" />
1246               <property name="imageEdgeBackgroundColor">
1247                 <object class="java.awt.Color">
1248                   <int>255</int>
1249                   <int>255</int>
1250                   <int>255</int>
1251                   <int>255</int>
1252                 </object>
1253               </property>
1254               <property name="imageFile">
1255                 <object class="com.install4j.api.beans.ExternalFile">
1256                   <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
1257                 </object>
1258               </property>
1259               <property name="imageOverlap" type="boolean" value="true" />
1260             </serializedBean>
1261             <beans>
1262               <formComponent id="38" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
1263               <formComponent name="Watermark" id="39" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="${compiler:JALVIEW_APPLICATION_NAME}" externalParametrizationMode="include">
1264                 <serializedBean>
1265                   <property name="enabledTitleText" type="boolean" value="false" />
1266                 </serializedBean>
1267                 <externalParametrizationPropertyNames>
1268                   <propertyName>labelText</propertyName>
1269                 </externalParametrizationPropertyNames>
1270               </formComponent>
1271               <formComponent name="Footer" id="40" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
1272                 <serializedBean>
1273                   <property name="styleId" type="string">52</property>
1274                 </serializedBean>
1275               </formComponent>
1276             </beans>
1277           </group>
1278         </formComponents>
1279       </style>
1280       <style name="Banner" id="41" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1281         <formComponents>
1282           <group id="42" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
1283             <serializedBean>
1284               <property name="backgroundColor">
1285                 <object class="com.install4j.runtime.beans.LightOrDarkColor">
1286                   <object class="java.awt.Color">
1287                     <int>255</int>
1288                     <int>255</int>
1289                     <int>255</int>
1290                     <int>255</int>
1291                   </object>
1292                   <object class="java.awt.Color">
1293                     <int>49</int>
1294                     <int>52</int>
1295                     <int>53</int>
1296                     <int>255</int>
1297                   </object>
1298                 </object>
1299               </property>
1300               <property name="borderSides">
1301                 <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
1302                   <property name="bottom" type="boolean" value="true" />
1303                 </object>
1304               </property>
1305               <property name="imageEdgeBackgroundColor">
1306                 <object class="com.install4j.runtime.beans.LightOrDarkColor">
1307                   <object class="java.awt.Color">
1308                     <int>25</int>
1309                     <int>143</int>
1310                     <int>220</int>
1311                     <int>255</int>
1312                   </object>
1313                   <object class="java.awt.Color">
1314                     <int>0</int>
1315                     <int>74</int>
1316                     <int>151</int>
1317                     <int>255</int>
1318                   </object>
1319                 </object>
1320               </property>
1321               <property name="imageEdgeBorder" type="boolean" value="true" />
1322               <property name="imageFile">
1323                 <object class="com.install4j.api.beans.ExternalFile">
1324                   <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
1325                 </object>
1326               </property>
1327               <property name="insets">
1328                 <object class="java.awt.Insets">
1329                   <int>5</int>
1330                   <int>10</int>
1331                   <int>10</int>
1332                   <int>10</int>
1333                 </object>
1334               </property>
1335             </serializedBean>
1336             <beans>
1337               <formComponent id="43" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
1338                 <serializedBean>
1339                   <property name="labelFontSizePercent" type="int" value="130" />
1340                   <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1341                   <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1342                 </serializedBean>
1343               </formComponent>
1344               <formComponent id="44" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
1345               <formComponent id="45" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
1346             </beans>
1347             <externalParametrizationPropertyNames>
1348               <propertyName>imageAnchor</propertyName>
1349               <propertyName>imageEdgeBackgroundColor</propertyName>
1350               <propertyName>imageFile</propertyName>
1351             </externalParametrizationPropertyNames>
1352           </group>
1353           <formComponent id="46" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
1354             <serializedBean>
1355               <property name="styleId" type="string">52</property>
1356             </serializedBean>
1357           </formComponent>
1358         </formComponents>
1359       </style>
1360       <group name="Style components" id="47" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
1361         <beans>
1362           <style name="Standard header" id="48" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1363             <serializedBean>
1364               <property name="fillVertical" type="boolean" value="false" />
1365               <property name="standalone" type="boolean" value="false" />
1366               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
1367             </serializedBean>
1368             <formComponents>
1369               <group id="49" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
1370                 <serializedBean>
1371                   <property name="backgroundColor">
1372                     <object class="com.install4j.runtime.beans.LightOrDarkColor">
1373                       <object class="java.awt.Color">
1374                         <int>255</int>
1375                         <int>255</int>
1376                         <int>255</int>
1377                         <int>255</int>
1378                       </object>
1379                       <object class="java.awt.Color">
1380                         <int>49</int>
1381                         <int>52</int>
1382                         <int>53</int>
1383                         <int>255</int>
1384                       </object>
1385                     </object>
1386                   </property>
1387                   <property name="borderSides">
1388                     <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
1389                       <property name="bottom" type="boolean" value="true" />
1390                     </object>
1391                   </property>
1392                   <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
1393                   <property name="imageEdgeBorderWidth" type="int" value="2" />
1394                   <property name="imageFile">
1395                     <object class="com.install4j.api.beans.ExternalFile">
1396                       <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
1397                     </object>
1398                   </property>
1399                   <property name="imageInsets">
1400                     <object class="java.awt.Insets">
1401                       <int>0</int>
1402                       <int>5</int>
1403                       <int>1</int>
1404                       <int>1</int>
1405                     </object>
1406                   </property>
1407                   <property name="insets">
1408                     <object class="java.awt.Insets">
1409                       <int>0</int>
1410                       <int>20</int>
1411                       <int>0</int>
1412                       <int>10</int>
1413                     </object>
1414                   </property>
1415                 </serializedBean>
1416                 <beans>
1417                   <formComponent name="Title" id="50" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
1418                     <serializedBean>
1419                       <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1420                       <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1421                     </serializedBean>
1422                   </formComponent>
1423                   <formComponent name="Subtitle" id="51" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
1424                     <serializedBean>
1425                       <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
1426                     </serializedBean>
1427                   </formComponent>
1428                 </beans>
1429                 <externalParametrizationPropertyNames>
1430                   <propertyName>backgroundColor</propertyName>
1431                   <propertyName>foregroundColor</propertyName>
1432                   <propertyName>imageAnchor</propertyName>
1433                   <propertyName>imageFile</propertyName>
1434                   <propertyName>imageOverlap</propertyName>
1435                 </externalParametrizationPropertyNames>
1436               </group>
1437             </formComponents>
1438           </style>
1439           <style name="Standard footer" id="52" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1440             <serializedBean>
1441               <property name="fillVertical" type="boolean" value="false" />
1442               <property name="standalone" type="boolean" value="false" />
1443               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
1444             </serializedBean>
1445             <formComponents>
1446               <group id="53" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
1447                 <serializedBean>
1448                   <property name="alignFirstLabel" type="boolean" value="false" />
1449                   <property name="insets">
1450                     <object class="java.awt.Insets">
1451                       <int>3</int>
1452                       <int>5</int>
1453                       <int>8</int>
1454                       <int>5</int>
1455                     </object>
1456                   </property>
1457                 </serializedBean>
1458                 <beans>
1459                   <formComponent id="54" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
1460                   <formComponent name="Back button" id="55" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1461                     <serializedBean>
1462                       <property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
1463                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
1464                     </serializedBean>
1465                   </formComponent>
1466                   <formComponent name="Next button" id="56" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1467                     <serializedBean>
1468                       <property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
1469                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
1470                     </serializedBean>
1471                   </formComponent>
1472                   <formComponent name="Cancel button" id="57" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
1473                     <serializedBean>
1474                       <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
1475                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
1476                     </serializedBean>
1477                   </formComponent>
1478                 </beans>
1479               </group>
1480             </formComponents>
1481           </style>
1482         </beans>
1483       </group>
1484     </styles>
1485   </installerGui>
1486   <mediaSets>
1487     <windows name="Windows x64 EXE Installer" id="743" customizedId="WINDOWS-X64-EXE" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:APPLICATION_FOLDER}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local" architecture="64">
1488       <excludedBeans>
1489         <bean refId="2746" />
1490       </excludedBeans>
1491       <exclude>
1492         <entry defaultFileset="true" />
1493         <entry filesetId="2801" />
1494         <entry filesetId="2803" />
1495       </exclude>
1496       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1497     </windows>
1498     <macosArchive name="macOS x64 (intel) Disk Image" id="878" customizedId="MACOS-X64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-x64-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737" setupAppId="2746">
1499       <exclude>
1500         <entry defaultFileset="true" />
1501         <entry filesetId="2803" />
1502       </exclude>
1503       <jreBundle jreBundleSource="none" includedJre="${compiler:MACOS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1504       <topLevelFiles>
1505         <symlink name="&quot; &quot;" target="/Applications" />
1506         <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
1507         <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
1508         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
1509         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
1510         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
1511         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/app/jre/Contents/Home/bin/${compiler:JALVIEW_APPLICATION_NAME}" target="java" />
1512         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/app/jre/Contents/Home/bin/${compiler:JALVIEW_NAME}" target="java" />
1513       </topLevelFiles>
1514     </macosArchive>
1515     <macosArchive name="macOS aarch64 (Apple Silicon) Disk Image" id="2796" customizedId="MACOS-AARCH64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-aarch64-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" architecture="aarch64" launcherId="737" setupAppId="2746">
1516       <exclude>
1517         <entry defaultFileset="true" />
1518         <entry filesetId="2801" />
1519       </exclude>
1520       <jreBundle jreBundleSource="none" />
1521       <topLevelFiles>
1522         <symlink name="&quot; &quot;" target="/Applications" />
1523         <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
1524         <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
1525         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
1526         <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
1527         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
1528         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/app/jre/Contents/Home/bin/${compiler:JALVIEW_APPLICATION_NAME}" target="java" />
1529         <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/app/jre/Contents/Home/bin/${compiler:JALVIEW_NAME}" target="java" />
1530       </topLevelFiles>
1531     </macosArchive>
1532     <unixInstaller name="Linux x64 Shell Installer" id="1595" customizedId="LINUX-X64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux-x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1533       <excludedBeans>
1534         <bean refId="2746" />
1535       </excludedBeans>
1536       <exclude>
1537         <entry defaultFileset="true" />
1538         <entry filesetId="2801" />
1539         <entry filesetId="2803" />
1540       </exclude>
1541       <variables>
1542         <variable name="variable" value="720" />
1543         <variable name="WIZARD_HEIGHT" value="540" />
1544       </variables>
1545       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1546     </unixInstaller>
1547     <unixInstaller name="Linux aarch64 Shell Installer" id="2782" customizedId="LINUX-AARCH64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux-aarch64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1548       <excludedBeans>
1549         <bean refId="2746" />
1550       </excludedBeans>
1551       <exclude>
1552         <entry defaultFileset="true" />
1553         <entry filesetId="2801" />
1554         <entry filesetId="2803" />
1555       </exclude>
1556       <variables>
1557         <variable name="variable" value="720" />
1558         <variable name="WIZARD_HEIGHT" value="540" />
1559       </variables>
1560       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_AARCH64_JAVA_VM_TGZ}" manualJreEntry="true" />
1561     </unixInstaller>
1562     <unixArchive name="Unix .tar.gz Archive" id="1596" customizedId="UNIX--TGZ" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}">
1563       <excludedBeans>
1564         <bean refId="2746" />
1565       </excludedBeans>
1566       <exclude>
1567         <entry defaultFileset="true" />
1568         <entry filesetId="2801" />
1569         <entry filesetId="2803" />
1570       </exclude>
1571       <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1572     </unixArchive>
1573     <unixInstaller name="Unix Shell Installer" id="2639" customizedId="UNIX--SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
1574       <excludedBeans>
1575         <bean refId="2746" />
1576       </excludedBeans>
1577       <exclude>
1578         <entry defaultFileset="true" />
1579         <entry filesetId="2801" />
1580         <entry filesetId="2803" />
1581       </exclude>
1582       <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
1583     </unixInstaller>
1584   </mediaSets>
1585   <buildIds>
1586     <mediaSet refId="743" />
1587     <mediaSet refId="878" />
1588     <mediaSet refId="2796" />
1589     <mediaSet refId="1595" />
1590     <mediaSet refId="2782" />
1591     <mediaSet refId="1596" />
1592     <mediaSet refId="2639" />
1593   </buildIds>
1594 </install4j>