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