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