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