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