JAL-3394 A little streamlining and fixing of helper script
[jalview.git] / utils / install4j / install4j8_template.install4j
1 <?xml version="1.0" encoding="UTF-8"?>
2 <install4j version="8.0.4" transformSequenceNumber="8">
3   <directoryPresets config="." />
4   <application name="${compiler:JALVIEW_NAME}" applicationId="6595-2347-1923-0725" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:JALVIEW_NAME}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="9999999999${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_DIR" value="../.." />
13       <variable name="BUILD_DIR" value="${compiler:JALVIEW_DIR}/build/install4j" />
14       <variable name="OSX_KEYSTORE" />
15       <variable name="JSIGN_SH" value="echo" />
16       <variable name="JRE_DIR" value="jre" description="The folder under the app folder that the JRE will be either copied or unpacked into" />
17       <variable name="INSTALLER_TEMPLATE_VERSION" value="DEVELOPMENT_default" />
18       <variable name="JALVIEW_VERSION" value="DEVELOPMENT" />
19       <variable name="JAVA_MIN_VERSION" value="11" />
20       <variable name="JAVA_MAX_VERSION" value="11" />
21       <variable name="JAVA_VERSION" value="11" />
22       <variable name="JAVA_INTEGER_VERSION" value="11" />
23       <variable name="VERSION" value="DEVELOPMENT" />
24       <variable name="MACOS_JAVA_VM_DIR" value="~/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
25       <variable name="WINDOWS_JAVA_VM_DIR" value="~/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
26       <variable name="LINUX_JAVA_VM_DIR" value="~/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
27       <variable name="MACOS_JAVA_VM_TGZ" value="~/buildtools/jre/tgz/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64.tar.gz" />
28       <variable name="WINDOWS_JAVA_VM_TGZ" value="~/buildtools/jre/tgz/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64.tar.gz" />
29       <variable name="LINUX_JAVA_VM_TGZ" value="~/buildtools/jre/tgz/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64.tar.gz" />
30       <variable name="COPYRIGHT_MESSAGE" value="..." />
31       <variable name="MACOS_BUNDLE_ID" value="org.jalview.jalview-desktop" />
32       <variable name="INSTALLER_NAME" value="Jalview Installer" />
33       <variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
34       <variable name="GETDOWN_WEBSITE_DIR" value="getdown/website" />
35       <variable name="GETDOWN_FILES_DIR" value="getdown/files" />
36       <variable name="GETDOWN_RESOURCE_DIR" value="resource" />
37       <variable name="GETDOWN_DIST_DIR" value="dist" />
38       <variable name="GETDOWN_ALT_DIR" value="alt" />
39       <variable name="GETDOWN_INSTALL_DIR" value="install" />
40       <variable name="INFO_PLIST_FILE_ASSOCIATIONS_FILE" value="file_associations_auto-Info_plist.xml" />
41     </variables>
42     <codeSigning macEnabled="true" macPkcs12File="${compiler:OSX_KEYSTORE}" />
43   </application>
44   <files defaultUninstallMode="2">
45     <filesets>
46       <fileset name="Full file set" id="734" />
47       <fileset name="Mac OS X JRE" id="880" />
48       <fileset name="Windows JRE" id="882" />
49       <fileset name="Jalview application" id="1873" />
50       <fileset name="MacOS Old Jalview Uninstaller" id="2105" />
51     </filesets>
52     <roots>
53       <root id="735" fileset="734" />
54       <root id="881" fileset="880" />
55       <root id="883" fileset="882" />
56       <root id="1874" fileset="1873" />
57       <root id="2106" fileset="2105" />
58     </roots>
59     <mountPoints>
60       <mountPoint id="454" />
61       <mountPoint id="736" root="735" />
62       <mountPoint id="884" root="881" />
63       <mountPoint id="885" root="883" />
64       <mountPoint id="1875" root="1874" />
65       <mountPoint id="2107" root="2106" />
66     </mountPoints>
67     <entries>
68       <dirEntry mountPoint="454" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_FILES_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
69       <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
70       <dirEntry mountPoint="884" file="${compiler:MACOS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
71       <dirEntry mountPoint="885" file="${compiler:WINDOWS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
72       <dirEntry mountPoint="1875" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_WEBSITE_DIR}/${compiler:JAVA_VERSION}/${compiler:GETDOWN_DIST_DIR}" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:GETDOWN_DIST_DIR}" overrideDirMode="true" />
73       <dirEntry mountPoint="2107" file="Uninstall Old Jalview.app" fileMode="755" overrideFileMode="true" entryMode="subdir" subDirectory="Uninstall Old Jalview.app" overrideDirMode="true" />
74     </entries>
75     <components>
76       <component name="jalview_getdown" id="1031">
77         <include>
78           <entry filesetId="734" />
79         </include>
80       </component>
81       <component name="macos_java_vm" id="1155">
82         <include>
83           <entry filesetId="880" />
84         </include>
85       </component>
86       <component name="windows_java_vm" id="1156">
87         <include>
88           <entry filesetId="882" />
89         </include>
90       </component>
91       <component name="getdown" id="1276">
92         <include>
93           <entry defaultFileset="true" />
94         </include>
95       </component>
96       <component name="jalview" id="1881">
97         <include>
98           <entry filesetId="1873" />
99         </include>
100       </component>
101       <component name="macos_old_jalview_uninstaller" id="2110">
102         <include>
103           <entry filesetId="2105" />
104         </include>
105       </component>
106     </components>
107   </files>
108   <launchers>
109     <launcher name="Offline Jalview Launcher" id="737" menuName="${compiler:sys.shortName}" icnsFile="${compiler:JALVIEW_DIR}/resources/images/jalview_logos.icns" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:MACOS_BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:sys.shortName}">
110       <executable name="${compiler:sys.shortName}" iconSet="true" iconFile="${compiler:JALVIEW_DIR}/resources/images/jalview_logos.ico" redirectStdout="true" executableMode="gui" changeWorkingDirectory="false" singleInstance="true" checkConsoleParameter="true">
111         <versionInfo include="true" fileDescription="${compiler:sys.shortName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:sys.shortName}" productName="${compiler:sys.shortName}" />
112       </executable>
113       <splashScreen width="640" height="480" bitmapFile="${compiler:JALVIEW_DIR}/resources/images/jalview_logo_background_fade-640x480.png" textOverlay="true">
114         <text>
115           <statusLine x="85" y="81" text="${compiler:sys.shortName}" fontSize="18" />
116           <versionLine x="85" y="109" text="version ${compiler:sys.version}" />
117         </text>
118       </splashScreen>
119       <java mainClass="com.threerings.getdown.launcher.GetdownApp" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION}" arguments="${launcher:sys.launcherDirectory} jalview">
120         <classPath>
121           <archive location="getdown-launcher.jar" />
122           <archive location="${compiler:GETDOWN_INSTALL_DIR}/getdown-launcher.jar" failOnError="false" />
123         </classPath>
124       </java>
125       <macStaticAssociationActions mode="selected">
126         <id>2350</id>
127         <id>2450</id>
128       </macStaticAssociationActions>
129       <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
130       <iconImageFiles>
131         <file path="${compiler:JALVIEW_DIR}/resources/images/JalviewLogo_Huge.png" />
132       </iconImageFiles>
133     </launcher>
134     <launcher name="${compiler:JALVIEW_NAME} package" id="1876" menuName="${compiler:sys.shortName} ${compiler:JALVIEW_VERSION}" fileset="1873">
135       <executable name="${compiler:sys.shortName}" iconSet="true" redirectStderr="false" failOnStderrOutput="false" executableMode="gui" changeWorkingDirectory="false" singleInstance="true" />
136       <java mainClass="jalview.bin.Launcher" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION}">
137         <classPath>
138           <scanDirectory location="${compiler:GETDOWN_DIST_DIR}" failOnError="false" />
139         </classPath>
140       </java>
141       <macStaticAssociationActions mode="selected">
142         <id>2350</id>
143         <id>2450</id>
144       </macStaticAssociationActions>
145       <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
146       <iconImageFiles>
147         <file path="${compiler:JALVIEW_DIR}/resources/images/JalviewLogo_Huge.png" />
148       </iconImageFiles>
149     </launcher>
150   </launchers>
151   <installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
152     <applications>
153       <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" styleId="35" customIcnsFile="${compiler:JALVIEW_DIR}/resources/images/jalview_logos.icns" customIcoFile="${compiler:JALVIEW_DIR}/resources/images/jalview_logos.ico">
154         <serializedBean>
155           <property name="useCustomIcon" type="boolean" value="true" />
156         </serializedBean>
157         <styleOverrides>
158           <styleOverride name="Customize banner image" enabled="true">
159             <group id="146" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
160               <serializedBean>
161                 <property name="backgroundColor">
162                   <object class="java.awt.Color">
163                     <int>255</int>
164                     <int>255</int>
165                     <int>255</int>
166                     <int>255</int>
167                   </object>
168                 </property>
169                 <property name="borderSides">
170                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
171                     <property name="bottom" type="boolean" value="true" />
172                   </object>
173                 </property>
174                 <property name="imageEdgeBackgroundColor">
175                   <object class="java.awt.Color">
176                     <int>255</int>
177                     <int>255</int>
178                     <int>255</int>
179                     <int>255</int>
180                   </object>
181                 </property>
182                 <property name="imageEdgeBorder" type="boolean" value="true" />
183                 <property name="imageFile">
184                   <object class="com.install4j.api.beans.ExternalFile">
185                     <string>${compiler:JALVIEW_DIR}/resources/images/jalview_logo_background_fade-640x480.png</string>
186                   </object>
187                 </property>
188                 <property name="insets">
189                   <object class="java.awt.Insets">
190                     <int>5</int>
191                     <int>10</int>
192                     <int>10</int>
193                     <int>10</int>
194                   </object>
195                 </property>
196               </serializedBean>
197               <externalParametrizationPropertyNames>
198                 <propertyName>imageAnchor</propertyName>
199                 <propertyName>imageEdgeBackgroundColor</propertyName>
200                 <propertyName>imageFile</propertyName>
201               </externalParametrizationPropertyNames>
202             </group>
203           </styleOverride>
204           <styleOverride name="Jalview" enabled="true">
205             <formComponent name="Watermark" id="352" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Jalview" externalParametrizationMode="include">
206               <serializedBean>
207                 <property name="enabledTitleText" type="boolean" value="false" />
208               </serializedBean>
209               <externalParametrizationPropertyNames>
210                 <propertyName>labelText</propertyName>
211               </externalParametrizationPropertyNames>
212             </formComponent>
213           </styleOverride>
214         </styleOverrides>
215         <startup>
216           <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
217             <actions>
218               <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
219                 <serializedBean>
220                   <property name="obtainIfAdminWin" type="boolean" value="false" />
221                 </serializedBean>
222               </action>
223             </actions>
224           </screen>
225         </startup>
226         <screens>
227           <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" rollbackBarrierExitCode="0">
228             <styleOverrides>
229               <styleOverride name="Customize banner image" enabled="true">
230                 <group id="145" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
231                   <serializedBean>
232                     <property name="backgroundColor">
233                       <object class="java.awt.Color">
234                         <int>255</int>
235                         <int>255</int>
236                         <int>255</int>
237                         <int>255</int>
238                       </object>
239                     </property>
240                     <property name="borderSides">
241                       <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
242                         <property name="bottom" type="boolean" value="true" />
243                       </object>
244                     </property>
245                     <property name="imageEdgeBackgroundColor">
246                       <object class="java.awt.Color">
247                         <int>25</int>
248                         <int>143</int>
249                         <int>220</int>
250                         <int>255</int>
251                       </object>
252                     </property>
253                     <property name="imageEdgeBorder" type="boolean" value="true" />
254                     <property name="imageFile">
255                       <object class="com.install4j.api.beans.ExternalFile">
256                         <string>${compiler:JALVIEW_DIR}/resources/images/jalview_logo_background_fade-640x480.png</string>
257                       </object>
258                     </property>
259                     <property name="insets">
260                       <object class="java.awt.Insets">
261                         <int>5</int>
262                         <int>10</int>
263                         <int>10</int>
264                         <int>10</int>
265                       </object>
266                     </property>
267                   </serializedBean>
268                   <externalParametrizationPropertyNames>
269                     <propertyName>imageAnchor</propertyName>
270                     <propertyName>imageEdgeBackgroundColor</propertyName>
271                     <propertyName>imageFile</propertyName>
272                   </externalParametrizationPropertyNames>
273                 </group>
274               </styleOverride>
275             </styleOverrides>
276             <actions>
277               <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
278                 <serializedBean>
279                   <property name="excludedVariables" type="array" elementType="string" length="1">
280                     <element index="0">sys.installationDir</element>
281                   </property>
282                 </serializedBean>
283                 <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
284               </action>
285             </actions>
286             <formComponents>
287               <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
288                 <serializedBean>
289                   <property name="labelText" type="string">${form:welcomeMessage}</property>
290                 </serializedBean>
291                 <visibilityScript>!context.isConsole()</visibilityScript>
292               </formComponent>
293               <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
294                 <serializedBean>
295                   <property name="consoleScript">
296                     <object class="com.install4j.api.beans.ScriptProperty">
297                       <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
298 return console.askOkCancel(message, true);
299 </property>
300                     </object>
301                   </property>
302                 </serializedBean>
303               </formComponent>
304               <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
305                 <externalParametrizationPropertyNames>
306                   <propertyName>updateCheck</propertyName>
307                 </externalParametrizationPropertyNames>
308               </formComponent>
309               <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
310                 <serializedBean>
311                   <property name="labelText" type="string">${i18n:ClickNext}</property>
312                 </serializedBean>
313               </formComponent>
314             </formComponents>
315           </screen>
316           <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" rollbackBarrierExitCode="0">
317             <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
318             <actions>
319               <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
320                 <serializedBean>
321                   <property name="excludedVariables" type="array" elementType="string" length="1">
322                     <element index="0">sys.installationDir</element>
323                   </property>
324                 </serializedBean>
325                 <condition>context.getVariable("sys.responseFile") == null</condition>
326               </action>
327             </actions>
328             <formComponents>
329               <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
330                 <serializedBean>
331                   <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
332                 </serializedBean>
333               </formComponent>
334               <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
335                 <serializedBean>
336                   <property name="requestFocus" type="boolean" value="true" />
337                 </serializedBean>
338                 <externalParametrizationPropertyNames>
339                   <propertyName>allowSpacesOnUnix</propertyName>
340                   <propertyName>checkFreeSpace</propertyName>
341                   <propertyName>checkWritable</propertyName>
342                   <propertyName>existingDirWarning</propertyName>
343                   <propertyName>manualEntryAllowed</propertyName>
344                   <propertyName>showFreeDiskSpace</propertyName>
345                   <propertyName>showRequiredDiskSpace</propertyName>
346                   <propertyName>standardValidation</propertyName>
347                   <propertyName>suggestAppDir</propertyName>
348                   <propertyName>validateApplicationId</propertyName>
349                   <propertyName>validationScript</propertyName>
350                 </externalParametrizationPropertyNames>
351               </formComponent>
352             </formComponents>
353           </screen>
354           <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
355             <formComponents>
356               <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
357                 <serializedBean>
358                   <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
359                 </serializedBean>
360                 <visibilityScript>!context.isConsole()</visibilityScript>
361               </formComponent>
362               <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
363                 <serializedBean>
364                   <property name="fillVertical" type="boolean" value="true" />
365                 </serializedBean>
366                 <externalParametrizationPropertyNames>
367                   <propertyName>selectionChangedScript</propertyName>
368                 </externalParametrizationPropertyNames>
369               </formComponent>
370             </formComponents>
371           </screen>
372           <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
373             <formComponents>
374               <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
375                 <serializedBean>
376                   <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
377                 </serializedBean>
378               </formComponent>
379               <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
380                 <serializedBean>
381                   <property name="fillVertical" type="boolean" value="true" />
382                   <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
383                   <property name="showSelectionButtons" type="boolean" value="true" />
384                 </serializedBean>
385                 <externalParametrizationPropertyNames>
386                   <propertyName>showSelectionButtons</propertyName>
387                   <propertyName>selectionButtonPosition</propertyName>
388                 </externalParametrizationPropertyNames>
389               </formComponent>
390             </formComponents>
391           </screen>
392           <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true" rollbackBarrierExitCode="0">
393             <actions>
394               <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
395               <action id="18" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
396                 <serializedBean>
397                   <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
398                 </serializedBean>
399                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
400               </action>
401               <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
402                 <serializedBean>
403                   <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
404                 </serializedBean>
405               </action>
406               <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
407                 <serializedBean>
408                   <property name="script">
409                     <object class="com.install4j.api.beans.ScriptProperty">
410                       <property name="value" type="string" />
411                     </object>
412                   </property>
413                   <property name="variableName" type="string" />
414                 </serializedBean>
415                 <condition>true</condition>
416               </action>
417               <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
418                 <serializedBean>
419                   <property name="launcherId" type="string">121</property>
420                   <property name="vmOptions" type="array" elementType="string" length="0" />
421                 </serializedBean>
422               </action>
423               <group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
424                 <beans>
425                   <action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
426                     <serializedBean>
427                       <property name="statusMessage" type="string">Creating file associations...</property>
428                       <property name="useDetail" type="boolean" value="true" />
429                       <property name="useStatus" type="boolean" value="true" />
430                     </serializedBean>
431                   </action>
432                   <action id="2254" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
433                     <serializedBean>
434                       <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
435                     </serializedBean>
436                   </action>
437                   <action name="EXTENSIONS_REPLACED_BY_GRADLE" id="1691" customizedId="EXTENSIONS" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
438                     <serializedBean>
439                       <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>
440                       <property name="extension" type="string">extensions_to_be_replaced_by_gradle</property>
441                     </serializedBean>
442                   </action>
443                   <action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
444                     <serializedBean>
445                       <property name="statusMessage" type="string">Creating file associations</property>
446                       <property name="useDetail" type="boolean" value="true" />
447                       <property name="useStatus" type="boolean" value="true" />
448                     </serializedBean>
449                   </action>
450                   <action id="2541" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
451                     <serializedBean>
452                       <property name="percentValue" type="int" value="100" />
453                     </serializedBean>
454                   </action>
455                 </beans>
456               </group>
457               <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
458                 <serializedBean>
459                   <property name="launcherId" type="string">737</property>
460                   <property name="scheme" type="string">jalview</property>
461                 </serializedBean>
462               </action>
463               <action id="2450" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
464                 <serializedBean>
465                   <property name="launcherId" type="string">737</property>
466                   <property name="scheme" type="string">jalviews</property>
467                 </serializedBean>
468               </action>
469             </actions>
470             <formComponents>
471               <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
472                 <serializedBean>
473                   <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
474                 </serializedBean>
475               </formComponent>
476             </formComponents>
477           </screen>
478           <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
479             <actions>
480               <action id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
481                 <serializedBean>
482                   <property name="allUsers" type="boolean" value="false" />
483                   <property name="entryName" type="string">${compiler:sys.shortName}</property>
484                   <property name="file">
485                     <object class="java.io.File">
486                       <string>${compiler:sys.shortName}</string>
487                     </object>
488                   </property>
489                   <property name="icon">
490                     <object class="com.install4j.api.beans.ExternalFile">
491                       <string>${compiler:JALVIEW_DIR}/resources/images/jalview_logos.ico</string>
492                     </object>
493                   </property>
494                   <property name="unixIconFile">
495                     <object class="com.install4j.api.beans.ExternalFile">
496                       <string>${compiler:JALVIEW_DIR}/resources/images/JalviewLogo_Huge.png</string>
497                     </object>
498                   </property>
499                 </serializedBean>
500                 <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
501               </action>
502               <action id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
503                 <serializedBean>
504                   <property name="allUsers" type="boolean" value="false" />
505                   <property name="description" type="string">${compiler:sys.shortName}</property>
506                   <property name="file">
507                     <object class="java.io.File">
508                       <string>${compiler:sys.shortName}</string>
509                     </object>
510                   </property>
511                   <property name="name" type="string">${compiler:sys.fullName}</property>
512                   <property name="unixIconFile">
513                     <object class="com.install4j.api.beans.ExternalFile">
514                       <string>${compiler:JALVIEW_DIR}/resources/images/JalviewLogo_Huge.png</string>
515                     </object>
516                   </property>
517                   <property name="winIconFile">
518                     <object class="com.install4j.api.beans.ExternalFile">
519                       <string>${compiler:JALVIEW_DIR}/resources/images/jalview_logos.ico</string>
520                     </object>
521                   </property>
522                 </serializedBean>
523                 <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
524               </action>
525               <action id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
526                 <serializedBean>
527                   <property name="executable">
528                     <object class="java.io.File">
529                       <string>Jalview.app</string>
530                     </object>
531                   </property>
532                 </serializedBean>
533                 <condition>context.getBooleanVariable("addToDockAction")</condition>
534               </action>
535             </actions>
536             <formComponents>
537               <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
538                 <serializedBean>
539                   <property name="labelText" type="string">${form:finishedMessage}</property>
540                 </serializedBean>
541               </formComponent>
542               <formComponent name="Add a desktop link" id="574" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
543                 <serializedBean>
544                   <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
545                   <property name="initiallySelected" type="boolean" value="true" />
546                   <property name="variableName" type="string">createDesktopLinkAction</property>
547                 </serializedBean>
548               </formComponent>
549               <formComponent name="Add an executable to the dock" id="577" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
550                 <serializedBean>
551                   <property name="checkboxText" type="string">${i18n:AddToDock}</property>
552                   <property name="initiallySelected" type="boolean" value="true" />
553                   <property name="variableName" type="string">addToDockAction</property>
554                 </serializedBean>
555                 <visibilityScript>Util.isMacOS()</visibilityScript>
556               </formComponent>
557             </formComponents>
558           </screen>
559         </screens>
560       </application>
561       <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
562         <serializedBean>
563           <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
564           <property name="useCustomMacosExecutableName" type="boolean" value="true" />
565         </serializedBean>
566         <styleOverrides>
567           <styleOverride name="Customize banner image" enabled="true">
568             <group id="147" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
569               <serializedBean>
570                 <property name="backgroundColor">
571                   <object class="java.awt.Color">
572                     <int>255</int>
573                     <int>255</int>
574                     <int>255</int>
575                     <int>255</int>
576                   </object>
577                 </property>
578                 <property name="borderSides">
579                   <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
580                     <property name="bottom" type="boolean" value="true" />
581                   </object>
582                 </property>
583                 <property name="imageEdgeBackgroundColor">
584                   <object class="java.awt.Color">
585                     <int>192</int>
586                     <int>192</int>
587                     <int>192</int>
588                     <int>255</int>
589                   </object>
590                 </property>
591                 <property name="imageEdgeBorder" type="boolean" value="true" />
592                 <property name="imageFile">
593                   <object class="com.install4j.api.beans.ExternalFile">
594                     <string>${compiler:JALVIEW_DIR}/resources/images/jalview_logo_background_fade-640x480.png</string>
595                   </object>
596                 </property>
597                 <property name="insets">
598                   <object class="java.awt.Insets">
599                     <int>5</int>
600                     <int>10</int>
601                     <int>10</int>
602                     <int>10</int>
603                   </object>
604                 </property>
605               </serializedBean>
606               <externalParametrizationPropertyNames>
607                 <propertyName>imageAnchor</propertyName>
608                 <propertyName>imageEdgeBackgroundColor</propertyName>
609                 <propertyName>imageFile</propertyName>
610               </externalParametrizationPropertyNames>
611             </group>
612           </styleOverride>
613         </styleOverrides>
614         <startup>
615           <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
616             <actions>
617               <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" />
618               <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
619             </actions>
620           </screen>
621         </startup>
622         <screens>
623           <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" rollbackBarrierExitCode="0">
624             <formComponents>
625               <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
626                 <serializedBean>
627                   <property name="labelText" type="string">${form:welcomeMessage}</property>
628                 </serializedBean>
629                 <visibilityScript>!context.isConsole()</visibilityScript>
630               </formComponent>
631               <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
632                 <serializedBean>
633                   <property name="consoleScript">
634                     <object class="com.install4j.api.beans.ScriptProperty">
635                       <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
636 return console.askYesNo(message, true);
637 </property>
638                     </object>
639                   </property>
640                 </serializedBean>
641               </formComponent>
642             </formComponents>
643           </screen>
644           <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
645             <actions>
646               <action id="659" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
647                 <serializedBean>
648                   <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
649                 </serializedBean>
650               </action>
651               <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" />
652               <action id="660" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="false" actionElevationType="none" rollbackBarrierExitCode="0">
653                 <serializedBean>
654                   <property name="percentValue" type="int" value="95" />
655                 </serializedBean>
656               </action>
657               <action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
658                 <serializedBean>
659                   <property name="files" type="array" class="java.io.File" length="32">
660                     <element index="0">
661                       <object class="java.io.File">
662                         <string>jre</string>
663                       </object>
664                     </element>
665                     <element index="1">
666                       <object class="java.io.File">
667                         <string>jre.jar</string>
668                       </object>
669                     </element>
670                     <element index="2">
671                       <object class="java.io.File">
672                         <string>.install4j</string>
673                       </object>
674                     </element>
675                     <element index="3">
676                       <object class="java.io.File">
677                         <string>${compiler:GETDOWN_DIST_DIR}</string>
678                       </object>
679                     </element>
680                     <element index="4">
681                       <object class="java.io.File">
682                         <string>${compiler:GETDOWN_ALT_DIR}</string>
683                       </object>
684                     </element>
685                     <element index="5">
686                       <object class="java.io.File">
687                         <string>${compiler:GETDOWN_RESOURCE_DIR}</string>
688                       </object>
689                     </element>
690                     <element index="6">
691                       <object class="java.io.File">
692                         <string>getdown-launcher.jar</string>
693                       </object>
694                     </element>
695                     <element index="7">
696                       <object class="java.io.File">
697                         <string>getdown-launcher-old.jar</string>
698                       </object>
699                     </element>
700                     <element index="8">
701                       <object class="java.io.File">
702                         <string>getdown-launcher-new.jar</string>
703                       </object>
704                     </element>
705                     <element index="9">
706                       <object class="java.io.File">
707                         <string>*.jarv</string>
708                       </object>
709                     </element>
710                     <element index="10">
711                       <object class="java.io.File">
712                         <string>gettingdown.lock</string>
713                       </object>
714                     </element>
715                     <element index="11">
716                       <object class="java.io.File">
717                         <string>*.log</string>
718                       </object>
719                     </element>
720                     <element index="12">
721                       <object class="java.io.File">
722                         <string>*.txt</string>
723                       </object>
724                     </element>
725                     <element index="13">
726                       <object class="java.io.File">
727                         <string>*_new</string>
728                       </object>
729                     </element>
730                     <element index="14">
731                       <object class="java.io.File">
732                         <string>digest.txt</string>
733                       </object>
734                     </element>
735                     <element index="15">
736                       <object class="java.io.File">
737                         <string>digest2.txt</string>
738                       </object>
739                     </element>
740                     <element index="16">
741                       <object class="java.io.File">
742                         <string>getdown-launcher.jarv</string>
743                       </object>
744                     </element>
745                     <element index="17">
746                       <object class="java.io.File">
747                         <string>getdown-launcher-new.jarv</string>
748                       </object>
749                     </element>
750                     <element index="18">
751                       <object class="java.io.File">
752                         <string>channel_launch.jvl</string>
753                       </object>
754                     </element>
755                     <element index="19">
756                       <object class="java.io.File">
757                         <string>launcher.log</string>
758                       </object>
759                     </element>
760                     <element index="20">
761                       <object class="java.io.File">
762                         <string>proxy.txt</string>
763                       </object>
764                     </element>
765                     <element index="21">
766                       <object class="java.io.File">
767                         <string>META-INF</string>
768                       </object>
769                     </element>
770                     <element index="22">
771                       <object class="java.io.File">
772                         <string>install/getdown-launcher.jar</string>
773                       </object>
774                     </element>
775                     <element index="23">
776                       <object class="java.io.File">
777                         <string>install/getdown.txt</string>
778                       </object>
779                     </element>
780                     <element index="24">
781                       <object class="java.io.File">
782                         <string>install/build_properties</string>
783                       </object>
784                     </element>
785                     <element index="25">
786                       <object class="java.io.File">
787                         <string>build_properties</string>
788                       </object>
789                     </element>
790                     <element index="26">
791                       <object class="java.io.File">
792                         <string>install</string>
793                       </object>
794                     </element>
795                     <element index="27">
796                       <object class="java.io.File">
797                         <string>dist</string>
798                       </object>
799                     </element>
800                     <element index="28">
801                       <object class="java.io.File">
802                         <string>release</string>
803                       </object>
804                     </element>
805                     <element index="29">
806                       <object class="java.io.File">
807                         <string>alt</string>
808                       </object>
809                     </element>
810                     <element index="30">
811                       <object class="java.io.File">
812                         <string>resource</string>
813                       </object>
814                     </element>
815                     <element index="31">
816                       <object class="java.io.File">
817                         <string>hs_err_*.*</string>
818                       </object>
819                     </element>
820                   </property>
821                   <property name="recursive" type="boolean" value="true" />
822                 </serializedBean>
823               </action>
824               <action id="1791" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
825                 <serializedBean>
826                   <property name="percentValue" type="int" value="100" />
827                 </serializedBean>
828               </action>
829             </actions>
830             <formComponents>
831               <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
832                 <serializedBean>
833                   <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
834                 </serializedBean>
835               </formComponent>
836             </formComponents>
837           </screen>
838           <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
839           <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="41" rollbackBarrierExitCode="0" finishScreen="true">
840             <formComponents>
841               <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
842                 <serializedBean>
843                   <property name="labelText" type="string">${form:successMessage}</property>
844                 </serializedBean>
845               </formComponent>
846             </formComponents>
847           </screen>
848         </screens>
849       </application>
850     </applications>
851     <styles defaultStyleId="35">
852       <style name="Standard" id="35" beanClass="com.install4j.runtime.beans.styles.FormStyle">
853         <formComponents>
854           <formComponent name="Header" id="36" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
855             <serializedBean>
856               <property name="styleId" type="string">48</property>
857             </serializedBean>
858           </formComponent>
859           <group name="Main" id="37" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
860             <serializedBean>
861               <property name="imageEdgeAxisType" type="enum" class="com.install4j.runtime.beans.formcomponents.AxisType" value="HORIZONTAL" />
862               <property name="imageEdgeBackgroundColor">
863                 <object class="java.awt.Color">
864                   <int>255</int>
865                   <int>255</int>
866                   <int>255</int>
867                   <int>255</int>
868                 </object>
869               </property>
870               <property name="imageFile">
871                 <object class="com.install4j.api.beans.ExternalFile">
872                   <string>${compiler:JALVIEW_DIR}/resources/images/jalview_logo_background_fade-640x480.png</string>
873                 </object>
874               </property>
875               <property name="imageOverlap" type="boolean" value="true" />
876             </serializedBean>
877             <beans>
878               <formComponent id="38" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
879               <formComponent name="Watermark" id="39" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="${compiler:JALVIEW_NAME}" externalParametrizationMode="include">
880                 <serializedBean>
881                   <property name="enabledTitleText" type="boolean" value="false" />
882                 </serializedBean>
883                 <externalParametrizationPropertyNames>
884                   <propertyName>labelText</propertyName>
885                 </externalParametrizationPropertyNames>
886               </formComponent>
887               <formComponent name="Footer" id="40" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
888                 <serializedBean>
889                   <property name="styleId" type="string">52</property>
890                 </serializedBean>
891               </formComponent>
892             </beans>
893           </group>
894         </formComponents>
895       </style>
896       <style name="Banner" id="41" beanClass="com.install4j.runtime.beans.styles.FormStyle">
897         <formComponents>
898           <group id="42" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
899             <serializedBean>
900               <property name="backgroundColor">
901                 <object class="java.awt.Color">
902                   <int>255</int>
903                   <int>255</int>
904                   <int>255</int>
905                   <int>255</int>
906                 </object>
907               </property>
908               <property name="borderSides">
909                 <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
910                   <property name="bottom" type="boolean" value="true" />
911                 </object>
912               </property>
913               <property name="imageEdgeBackgroundColor">
914                 <object class="java.awt.Color">
915                   <int>25</int>
916                   <int>143</int>
917                   <int>220</int>
918                   <int>255</int>
919                 </object>
920               </property>
921               <property name="imageEdgeBorder" type="boolean" value="true" />
922               <property name="imageFile">
923                 <object class="com.install4j.api.beans.ExternalFile">
924                   <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
925                 </object>
926               </property>
927               <property name="insets">
928                 <object class="java.awt.Insets">
929                   <int>5</int>
930                   <int>10</int>
931                   <int>10</int>
932                   <int>10</int>
933                 </object>
934               </property>
935             </serializedBean>
936             <beans>
937               <formComponent id="43" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
938                 <serializedBean>
939                   <property name="labelFontSizePercent" type="int" value="130" />
940                   <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
941                   <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
942                 </serializedBean>
943               </formComponent>
944               <formComponent id="44" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
945               <formComponent id="45" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
946             </beans>
947             <externalParametrizationPropertyNames>
948               <propertyName>imageAnchor</propertyName>
949               <propertyName>imageEdgeBackgroundColor</propertyName>
950               <propertyName>imageFile</propertyName>
951             </externalParametrizationPropertyNames>
952           </group>
953           <formComponent id="46" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
954             <serializedBean>
955               <property name="styleId" type="string">52</property>
956             </serializedBean>
957           </formComponent>
958         </formComponents>
959       </style>
960       <group name="Style components" id="47" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
961         <beans>
962           <style name="Standard header" id="48" beanClass="com.install4j.runtime.beans.styles.FormStyle">
963             <serializedBean>
964               <property name="fillVertical" type="boolean" value="false" />
965               <property name="standalone" type="boolean" value="false" />
966               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
967             </serializedBean>
968             <formComponents>
969               <group id="49" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
970                 <serializedBean>
971                   <property name="backgroundColor">
972                     <object class="java.awt.Color">
973                       <int>255</int>
974                       <int>255</int>
975                       <int>255</int>
976                       <int>255</int>
977                     </object>
978                   </property>
979                   <property name="borderSides">
980                     <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
981                       <property name="bottom" type="boolean" value="true" />
982                     </object>
983                   </property>
984                   <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
985                   <property name="imageEdgeBorderWidth" type="int" value="2" />
986                   <property name="imageFile">
987                     <object class="com.install4j.api.beans.ExternalFile">
988                       <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
989                     </object>
990                   </property>
991                   <property name="imageInsets">
992                     <object class="java.awt.Insets">
993                       <int>0</int>
994                       <int>5</int>
995                       <int>1</int>
996                       <int>1</int>
997                     </object>
998                   </property>
999                   <property name="insets">
1000                     <object class="java.awt.Insets">
1001                       <int>0</int>
1002                       <int>20</int>
1003                       <int>0</int>
1004                       <int>10</int>
1005                     </object>
1006                   </property>
1007                 </serializedBean>
1008                 <beans>
1009                   <formComponent name="Title" id="50" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
1010                     <serializedBean>
1011                       <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
1012                       <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
1013                     </serializedBean>
1014                   </formComponent>
1015                   <formComponent name="Subtitle" id="51" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
1016                     <serializedBean>
1017                       <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
1018                     </serializedBean>
1019                   </formComponent>
1020                 </beans>
1021                 <externalParametrizationPropertyNames>
1022                   <propertyName>backgroundColor</propertyName>
1023                   <propertyName>foregroundColor</propertyName>
1024                   <propertyName>imageAnchor</propertyName>
1025                   <propertyName>imageFile</propertyName>
1026                   <propertyName>imageOverlap</propertyName>
1027                 </externalParametrizationPropertyNames>
1028               </group>
1029             </formComponents>
1030           </style>
1031           <style name="Standard footer" id="52" beanClass="com.install4j.runtime.beans.styles.FormStyle">
1032             <serializedBean>
1033               <property name="fillVertical" type="boolean" value="false" />
1034               <property name="standalone" type="boolean" value="false" />
1035               <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
1036             </serializedBean>
1037             <formComponents>
1038               <group id="53" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
1039                 <serializedBean>
1040                   <property name="alignFirstLabel" type="boolean" value="false" />
1041                   <property name="insets">
1042                     <object class="java.awt.Insets">
1043                       <int>3</int>
1044                       <int>5</int>
1045                       <int>8</int>
1046                       <int>5</int>
1047                     </object>
1048                   </property>
1049                 </serializedBean>
1050                 <beans>
1051                   <formComponent id="54" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
1052                   <formComponent name="Back button" id="55" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1053                     <serializedBean>
1054                       <property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
1055                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
1056                     </serializedBean>
1057                   </formComponent>
1058                   <formComponent name="Next button" id="56" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
1059                     <serializedBean>
1060                       <property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
1061                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
1062                     </serializedBean>
1063                   </formComponent>
1064                   <formComponent name="Cancel button" id="57" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
1065                     <serializedBean>
1066                       <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
1067                       <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
1068                     </serializedBean>
1069                   </formComponent>
1070                 </beans>
1071               </group>
1072             </formComponents>
1073           </style>
1074         </beans>
1075       </group>
1076     </styles>
1077   </installerGui>
1078   <mediaSets>
1079     <linuxDeb name="Jalview .deb Package" id="153" mediaFileName="jalview-${compiler:JALVIEW_VERSION}" dependencies="openjdk-8-jre" bzip="true" description="Jalview Desktop" maintainerEmail="help@jalview.org">
1080       <excludedComponents>
1081         <component id="1031" />
1082         <component id="1155" />
1083         <component id="1156" />
1084         <component id="1276" />
1085         <component id="2110" />
1086       </excludedComponents>
1087       <excludedLaunchers>
1088         <launcher id="737" />
1089       </excludedLaunchers>
1090       <exclude>
1091         <entry defaultFileset="true" />
1092         <entry filesetId="734" />
1093         <entry filesetId="880" />
1094         <entry filesetId="882" />
1095       </exclude>
1096     </linuxDeb>
1097     <linuxRPM name="Jalview RPM Package" id="570" mediaFileName="jalview-${compiler:JALVIEW_VERSION}" dependencies="java-1.8.0-openjdk" arch="noarch">
1098       <excludedComponents>
1099         <component id="1031" />
1100         <component id="1155" />
1101         <component id="1156" />
1102         <component id="1276" />
1103         <component id="2110" />
1104       </excludedComponents>
1105       <excludedLaunchers>
1106         <launcher id="737" />
1107       </excludedLaunchers>
1108       <exclude>
1109         <entry defaultFileset="true" />
1110         <entry filesetId="734" />
1111         <entry filesetId="880" />
1112         <entry filesetId="882" />
1113       </exclude>
1114     </linuxRPM>
1115     <windows name="Windows x64 EXE Installer" id="743" mediaFileName="${compiler:sys.shortName}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local">
1116       <excludedComponents>
1117         <component id="1155" />
1118         <component id="1156" />
1119         <component id="1276" />
1120         <component id="1881" />
1121         <component id="2110" />
1122       </excludedComponents>
1123       <exclude>
1124         <entry defaultFileset="true" />
1125         <entry filesetId="880" />
1126         <entry filesetId="882" />
1127         <entry filesetId="1873" />
1128         <entry filesetId="2105" />
1129       </exclude>
1130       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_JAVA_VM_TGZ}" manualJreEntry="true" />
1131     </windows>
1132     <windows name="Windows x64 MSI Installer" id="2446" mediaFileName="${compiler:sys.shortName}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local" msi="true" msiScope="perUser">
1133       <excludedComponents>
1134         <component id="1155" />
1135         <component id="1156" />
1136         <component id="1276" />
1137         <component id="1881" />
1138         <component id="2110" />
1139       </excludedComponents>
1140       <exclude>
1141         <entry defaultFileset="true" />
1142         <entry filesetId="880" />
1143         <entry filesetId="882" />
1144         <entry filesetId="1873" />
1145         <entry filesetId="2105" />
1146       </exclude>
1147       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_JAVA_VM_TGZ}" manualJreEntry="true" />
1148     </windows>
1149     <macosArchive name="macOS Disk Image" id="878" mediaFileName="${compiler:sys.shortName}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:sys.shortName} Installer" launcherId="737">
1150       <excludedComponents>
1151         <component id="1156" />
1152         <component id="1276" />
1153         <component id="1881" />
1154       </excludedComponents>
1155       <exclude>
1156         <entry defaultFileset="true" />
1157         <entry filesetId="882" />
1158         <entry filesetId="1873" />
1159       </exclude>
1160       <topLevelFiles>
1161         <symlink name="&quot; &quot;" target="/Applications" />
1162         <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jalview_dmg_background.png" />
1163         <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/DS_Store" />
1164         <file name="Jalview.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
1165         <file name="Jalview.app/Contents/Resources/Jalview-Launch.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-Launch.icns" />
1166         <symlink name="Uninstall Old Jalview (optional).app" target="Jalview.app/Contents/Resources/app/Uninstall Old Jalview.app" />
1167       </topLevelFiles>
1168     </macosArchive>
1169     <unixInstaller name="Unix Shell Installer" id="1595" mediaFileName="${compiler:sys.shortName}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" customInstallBaseDir="~/opt/">
1170       <excludedComponents>
1171         <component id="1155" />
1172         <component id="1156" />
1173         <component id="1276" />
1174         <component id="1881" />
1175         <component id="2110" />
1176       </excludedComponents>
1177       <exclude>
1178         <entry defaultFileset="true" />
1179         <entry filesetId="880" />
1180         <entry filesetId="882" />
1181         <entry filesetId="1873" />
1182         <entry filesetId="2105" />
1183       </exclude>
1184       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
1185     </unixInstaller>
1186     <unixArchive name="Unix .tar.gz Archive" id="1596" mediaFileName="${compiler:sys.shortName}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}">
1187       <excludedComponents>
1188         <component id="1155" />
1189         <component id="1156" />
1190         <component id="1276" />
1191         <component id="1881" />
1192         <component id="2110" />
1193       </excludedComponents>
1194       <exclude>
1195         <entry defaultFileset="true" />
1196         <entry filesetId="880" />
1197         <entry filesetId="882" />
1198         <entry filesetId="1873" />
1199       </exclude>
1200       <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
1201     </unixArchive>
1202   </mediaSets>
1203   <buildIds>
1204     <mediaSet refId="153" />
1205     <mediaSet refId="570" />
1206     <mediaSet refId="743" />
1207     <mediaSet refId="2446" />
1208     <mediaSet refId="878" />
1209     <mediaSet refId="1595" />
1210     <mediaSet refId="1596" />
1211   </buildIds>
1212 </install4j>