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