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