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