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