</launchers>
<installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
<applications>
- <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" styleId="35" customIcnsFile="${compiler:JALVIEW_DIR}/${compiler:INSTALLER_MAC_ICON}" customIcoFile="${compiler:JALVIEW_DIR}/${compiler:INSTALLER_WINDOWS_ICON}">
+ <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" actionElevationType="elevated" styleId="35" customIcnsFile="${compiler:JALVIEW_DIR}/${compiler:INSTALLER_MAC_ICON}" customIcoFile="${compiler:JALVIEW_DIR}/${compiler:INSTALLER_WINDOWS_ICON}">
<serializedBean>
<property name="frameHeight" type="int" value="600" />
<property name="frameWidth" type="int" value="800" />
</formComponent>
</formComponents>
</screen>
- <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
+ <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
<formComponents>
- <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
<serializedBean>
- <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
+ <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
</serializedBean>
- <visibilityScript>!context.isConsole()</visibilityScript>
</formComponent>
- <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
+ <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
<serializedBean>
<property name="fillVertical" type="boolean" value="true" />
+ <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
+ <property name="showSelectionButtons" type="boolean" value="true" />
</serializedBean>
<externalParametrizationPropertyNames>
- <propertyName>selectionChangedScript</propertyName>
+ <propertyName>showSelectionButtons</propertyName>
+ <propertyName>selectionButtonPosition</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
</formComponents>
</screen>
- <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
+ <screen name="USERSPACE: Additional checkboxes" id="2893" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="subTitle" type="string">User account</property>
+ <property name="title" type="string">${i18n:WizardSelectTasks}</property>
+ </serializedBean>
+ <condition>!Util.hasFullAdminRights()</condition>
<formComponents>
- <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <formComponent id="2894" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
<serializedBean>
- <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
+ <property name="labelText" type="string">${i18n:SelectTasksLabel2(${compiler:JALVIEW_APPLICATION_NAME})}</property>
</serializedBean>
</formComponent>
- <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
+ <formComponent name="USERSPACE: Add a desktop link (not macOS)" id="2895" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent" resetInitOnPrevious="true">
<serializedBean>
- <property name="fillVertical" type="boolean" value="true" />
- <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
- <property name="showSelectionButtons" type="boolean" value="true" />
+ <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
+ <property name="variableName" type="string">createDesktopLinkAction</property>
</serializedBean>
- <externalParametrizationPropertyNames>
- <propertyName>showSelectionButtons</propertyName>
- <propertyName>selectionButtonPosition</propertyName>
- </externalParametrizationPropertyNames>
+ <visibilityScript>!Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="USERSPACE: Add an executable to the dock (macOS)" id="2896" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:AddToDock}</property>
+ <property name="variableName" type="string">addToDockAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="USERSPACE: Add jalview bin to the user's Path environment variable (Windows)" id="2897" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to your Path environment variable</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">appendToPathAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isWindows()</visibilityScript>
+ </formComponent>
+ <formComponent name="BOTHSPACE: Make a symbolic link to jalview.sh bash script in the user's/system local bin (Linux or Unix)" id="2898" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLinkAction</property>
+ </serializedBean>
+ <visibilityScript>context.getBooleanVariable("makeSymbolicLink")
+&& context.getVariable("unixBinDir") != null
+&& (
+ Util.isLinux()
+ || Util.isUnixInstaller()
+ || (
+ ( Util.isMacOS() && !Util.hasFullAdminRights() ) // Admin on macOS will add path to /etc/paths.d
+ && context.getVariable("macWrapperLinkLocation") != null
+ )
+ )
+</visibilityScript>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen name="SYSTEMSPACE: Additional checkboxes" id="2903" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="subTitle" type="string">System</property>
+ <property name="title" type="string">${i18n:WizardSelectTasks}</property>
+ </serializedBean>
+ <condition>Util.hasFullAdminRights()</condition>
+ <formComponents>
+ <formComponent id="2904" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectTasksLabel2(${compiler:JALVIEW_APPLICATION_NAME})}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent name="SYSTEMSPACE: Add jalview bin to all users' Path environment variable (Windows)" id="2909" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to the system Path environment variable</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">appendToPathAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isWindows()</visibilityScript>
+ </formComponent>
+ <formComponent name="BOTHSPACE: Make a symbolic link to jalview.sh bash script in the user's/system local bin (Linux or Unix)" id="2908" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLinkAction</property>
+ </serializedBean>
+ <visibilityScript>context.getBooleanVariable("makeSymbolicLink")
+&& context.getVariable("unixBinDir") != null
+&& (
+ Util.isLinux()
+ || Util.isUnixInstaller()
+ || (
+ ( Util.isMacOS() && !Util.hasFullAdminRights() ) // Admin on macOS will add path to /etc/paths.d
+ && context.getVariable("macWrapperLinkLocation") != null
+ )
+ )
+</visibilityScript>
</formComponent>
</formComponents>
</screen>
<property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
</serializedBean>
</action>
- <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="script">
- <object class="com.install4j.api.beans.ScriptProperty">
- <property name="value" type="string" />
- </object>
- </property>
- <property name="variableName" type="string" />
- </serializedBean>
- <condition>true</condition>
- </action>
- <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="launcherId" type="string">121</property>
- <property name="vmOptions" type="array" elementType="string" length="0" />
- </serializedBean>
- </action>
<group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
<beans>
<action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
</action>
</beans>
</group>
- <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="launcherId" type="string">2823</property>
- <property name="scheme" type="string">jalview</property>
- </serializedBean>
- </action>
- <action id="2822" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="launcherId" type="string">2823</property>
- <property name="scheme" type="string">jalviews</property>
- </serializedBean>
- </action>
- <action id="2819" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="launcherId" type="string">2823</property>
- <property name="scheme" type="string">jalviewhttp</property>
- </serializedBean>
- </action>
- <action id="2820" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="launcherId" type="string">2823</property>
- <property name="scheme" type="string">jalviewhttps</property>
- </serializedBean>
- </action>
- <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="launcherId" type="string">2823</property>
- <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
- </serializedBean>
- </action>
- </actions>
- <formComponents>
- <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
- <serializedBean>
- <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
- </serializedBean>
- </formComponent>
- </formComponents>
- </screen>
- <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
- <actions>
- <action name="macOS/Linux Jalview->java symlink" id="2814" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
- <serializedBean>
- <property name="file">
- <object class="java.io.File">
- <string>${compiler:JRE_DIR}/bin/java</string>
- </object>
- </property>
- <property name="linkFile">
- <object class="java.io.File">
- <string>${compiler:JRE_DIR}/bin/${compiler:JALVIEW_NAME}</string>
- </object>
- </property>
- <property name="removeOnUninstall" type="boolean" value="false" />
- </serializedBean>
- <condition>Util.isLinux() || Util.isMacOS()</condition>
- </action>
- <action name="macOS/Linux Jalview Appname->java symlink" id="2813" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
- <serializedBean>
- <property name="file">
- <object class="java.io.File">
- <string>${compiler:JRE_DIR}/bin/java</string>
- </object>
- </property>
- <property name="linkFile">
- <object class="java.io.File">
- <string>${compiler:JRE_DIR}/bin/${compiler:JALVIEW_APPLICATION_NAME}</string>
- </object>
- </property>
- <property name="removeOnUninstall" type="boolean" value="false" />
- </serializedBean>
- <condition>(Util.isLinux() || Util.isMacOS())
-&& !((String)context.getCompilerVariable("JALVIEW_APPLICATION_NAME")).equals((String)context.getCompilerVariable("JALVIEW_NAME"))</condition>
- </action>
- <action name="USERSPACE: Create start menu item" id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="allUsers" type="boolean" value="false" />
- <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
- <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
- <property name="file">
- <object class="java.io.File">
- <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
- </object>
- </property>
- <property name="icon">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
- </object>
- </property>
- <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
- <property name="unixIconFile">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
- </object>
- </property>
- </serializedBean>
- <condition>!Util.hasFullAdminRights() && !context.getBooleanVariable("sys.programGroupDisabled")</condition>
- </action>
- <action name="USERSPACE: Add a desktop link" id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
- <serializedBean>
- <property name="allUsers" type="boolean" value="false" />
- <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
- <property name="file">
- <object class="java.io.File">
- <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
- </object>
- </property>
- <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
- <property name="unixIconFile">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
- </object>
- </property>
- <property name="winIconFile">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
- </object>
- </property>
- </serializedBean>
- <condition>!Util.hasFullAdminRights() && context.getBooleanVariable("createDesktopLinkAction")</condition>
- </action>
- <action name="USERSPACE: Add an executable to the dock (macOS)" id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <group name="Register URL Handlers" id="2957" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">2823</property>
+ <property name="scheme" type="string">jalview</property>
+ </serializedBean>
+ </action>
+ <action id="2822" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">2823</property>
+ <property name="scheme" type="string">jalviews</property>
+ </serializedBean>
+ </action>
+ <action id="2819" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">2823</property>
+ <property name="scheme" type="string">jalviewhttp</property>
+ </serializedBean>
+ </action>
+ <action id="2820" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">2823</property>
+ <property name="scheme" type="string">jalviewhttps</property>
+ </serializedBean>
+ </action>
+ <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">2823</property>
+ <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
+ </serializedBean>
+ </action>
+ </beans>
+ </group>
+ <group name="USERSPACE: Actions" id="2921" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
<serializedBean>
- <property name="executable">
- <object class="java.io.File">
- <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
+ <property name="conditionExpression">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">!Util.hasFullAdminRights()</property>
</object>
</property>
</serializedBean>
- <condition>!Util.hasFullAdminRights()
+ <beans>
+ <action name="USERSPACE: Create start menu item" id="2916" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="icon">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!Util.hasFullAdminRights() && !context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action name="USERSPACE: Add a desktop link" id="2917" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ <property name="winIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!Util.hasFullAdminRights() && context.getBooleanVariable("createDesktopLinkAction")</condition>
+ </action>
+ <action name="USERSPACE: Add an executable to the dock (macOS)" id="2918" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="executable">
+ <object class="java.io.File">
+ <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!Util.hasFullAdminRights()
&&
context.getBooleanVariable("addToDockAction")</condition>
- </action>
- <action name="USERSPACE: 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 "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
- <serializedBean>
- <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
- <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
- <property name="variableName" type="string">Path</property>
- </serializedBean>
- <condition>!Util.hasFullAdminRights() && context.getBooleanVariable("appendToPathAction")</condition>
- </action>
- <action name="USERSPACE: Create macOS symbolic link to jalview in user's local bin" id="2743" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixBinDir}">
- <serializedBean>
- <property name="file">
- <object class="java.io.File">
- <string>${installer:macWrapperLinkLocation}</string>
- </object>
- </property>
- <property name="linkFile">
- <object class="java.io.File">
- <string>${installer:unixBinDir}/${compiler:WRAPPER_LINK}</string>
- </object>
- </property>
- </serializedBean>
- <condition>Util.isMacOS() && !Util.hasFullAdminRights() // Admin on macOS will add path to /etc/paths.d
+ </action>
+ <action name="USERSPACE: Add Jalview bin to the user's path (Windows)" id="2919" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
+ <serializedBean>
+ <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
+ <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
+ <property name="variableName" type="string">Path</property>
+ </serializedBean>
+ <condition>!Util.hasFullAdminRights() && context.getBooleanVariable("appendToPathAction")</condition>
+ </action>
+ <action name="USERSPACE: Create macOS symbolic link to jalview in user's local bin" id="2920" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:macWrapperLinkLocation}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:unixBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>Util.isMacOS() && !Util.hasFullAdminRights() // Admin on macOS will add path to /etc/paths.d
&&
(
context.getBooleanVariable("makeSymbolicLinkAction")
&& context.getVariable("unixBinDir") != null
&& context.getVariable("macWrapperLinkLocation") != null
)</condition>
- </action>
- <action name="Linux/Unix Jalview bin dir symlink" id="2733" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
- <serializedBean>
- <property name="file">
- <object class="java.io.File">
- <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
- </object>
- </property>
- <property name="linkFile">
- <object class="java.io.File">
- <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
- </object>
- </property>
- </serializedBean>
- <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
- </action>
- <action name="Windows copy BAT file" id="2817" beanClass="com.install4j.runtime.beans.actions.files.CopyFileAction" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="destinationFile">
- <object class="java.io.File">
- <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}.bat</string>
- </object>
- </property>
- <property name="files" type="array" class="java.io.File" length="1">
- <element index="0">
- <object class="java.io.File">
- <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BATCH_WRAPPER_SCRIPT}</string>
- </object>
- </element>
- </property>
- </serializedBean>
- <condition>Util.isWindows() && !(((String)context.getCompilerVariable("WRAPPER_LINK")+".bat").equals((String)context.getCompilerVariable("BATCH_WRAPPER_SCRIPT")))</condition>
- </action>
- <action name="Windows copy PS1 file" id="2818" beanClass="com.install4j.runtime.beans.actions.files.CopyFileAction" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="destinationFile">
- <object class="java.io.File">
- <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}.ps1</string>
- </object>
- </property>
- <property name="files" type="array" class="java.io.File" length="1">
- <element index="0">
- <object class="java.io.File">
- <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:POWERSHELL_WRAPPER_SCRIPT}</string>
- </object>
- </element>
- </property>
- </serializedBean>
- <condition>Util.isWindows() && !(((String)context.getCompilerVariable("WRAPPER_LINK")+".ps1").equals((String)context.getCompilerVariable("POWERSHELL_WRAPPER_SCRIPT")))</condition>
- </action>
- <action name="SYSTEMSPACE: Create start menu item" id="2846" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
- <serializedBean>
- <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
- <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
- <property name="file">
- <object class="java.io.File">
- <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
- </object>
- </property>
- <property name="icon">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
- </object>
- </property>
- <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
- <property name="runAsAdministrator" type="boolean" value="true" />
- <property name="unixIconFile">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
- </object>
- </property>
- </serializedBean>
- <condition>Util.hasFullAdminRights() && !context.getBooleanVariable("sys.programGroupDisabled")</condition>
- </action>
- <action name="SYSTEMSPACE: Add a desktop link" id="2847" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
- <serializedBean>
- <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
- <property name="file">
- <object class="java.io.File">
- <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
- </object>
- </property>
- <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
- <property name="runAsAdministrator" type="boolean" value="true" />
- <property name="unixIconFile">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
- </object>
- </property>
- <property name="winIconFile">
- <object class="com.install4j.api.beans.ExternalFile">
- <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
- </object>
- </property>
- </serializedBean>
- <condition>Util.hasFullAdminRights() && context.getBooleanVariable("createDesktopLinkAction")</condition>
- </action>
- <action name="SYSTEMSPACE: Add Jalview bin to the user's path (Windows)" id="2849" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
- <serializedBean>
- <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
- <property name="userSpecific" type="boolean" value="false" />
- <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
- <property name="variableName" type="string">Path</property>
- </serializedBean>
- <condition>Util.hasFullAdminRights() && context.getBooleanVariable("appendToPathAction")</condition>
- </action>
- <action name="SYSTEMSPACE: macOS /etc/paths.d entry" id="2852" beanClass="com.install4j.runtime.beans.actions.text.WriteTextFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ </action>
+ </beans>
+ </group>
+ <group name="SYSTEMSPACE: Actions" id="2954" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
<serializedBean>
- <property name="file">
- <object class="java.io.File">
- <string>/etc/paths.d/${compiler:APPLICATION_FOLDER}</string>
+ <property name="conditionExpression">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">Util.hasFullAdminRights()</property>
</object>
</property>
- <property name="text" type="string">/Applications/${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS</property>
</serializedBean>
- <condition>Util.hasFullAdminRights() && Util.isMacOS()</condition>
- </action>
- <action name="BOTHSPACE: Create Linux/Unix user symbolic link to jalview.sh in system bin" id="2850" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixBinDir}">
+ <beans>
+ <action name="SYSTEMSPACE: Create start menu item" id="2950" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="icon">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="runAsAdministrator" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action name="SYSTEMSPACE: Add a desktop link" id="2951" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
+ <serializedBean>
+ <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="runAsAdministrator" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ <property name="winIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:ICONS_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
+ </action>
+ <action name="SYSTEMSPACE: Add Jalview bin to the user's path (Windows)" id="2952" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
+ <serializedBean>
+ <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
+ <property name="userSpecific" type="boolean" value="false" />
+ <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
+ <property name="variableName" type="string">Path</property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("appendToPathAction")</condition>
+ </action>
+ <action name="SYSTEMSPACE: macOS /etc/paths.d entry" id="2953" beanClass="com.install4j.runtime.beans.actions.text.WriteTextFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>/etc/paths.d/${compiler:APPLICATION_FOLDER}</string>
+ </object>
+ </property>
+ <property name="text" type="string">/Applications/${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS</property>
+ </serializedBean>
+ <condition>Util.isMacOS()</condition>
+ </action>
+ </beans>
+ </group>
+ <group name="BOTHSPACE: Actions" id="2956" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action name="BOTHSPACE: Create Linux/Unix user symbolic link to jalview.sh in system bin" id="2955" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:unixBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("makeSymbolicLink")
+&& context.getBooleanVariable("makeSymbolicLinkAction")
+&& context.getVariable("unixBinDir") != null</condition>
+ </action>
+ </beans>
+ </group>
+ <group name="Java bin symlinks" id="2944" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action name="macOS/Linux Jalview->java symlink" id="2942" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${compiler:JRE_DIR}/bin/java</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${compiler:JRE_DIR}/bin/${compiler:JALVIEW_NAME}</string>
+ </object>
+ </property>
+ <property name="removeOnUninstall" type="boolean" value="false" />
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isMacOS()</condition>
+ </action>
+ <action name="macOS/Linux Jalview Appname->java symlink" id="2943" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${compiler:JRE_DIR}/bin/java</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${compiler:JRE_DIR}/bin/${compiler:JALVIEW_APPLICATION_NAME}</string>
+ </object>
+ </property>
+ <property name="removeOnUninstall" type="boolean" value="false" />
+ </serializedBean>
+ <condition>(Util.isLinux() || Util.isMacOS())
+&& !((String)context.getCompilerVariable("JALVIEW_APPLICATION_NAME")).equals((String)context.getCompilerVariable("JALVIEW_NAME"))</condition>
+ </action>
+ </beans>
+ </group>
+ <group name="Jalview bin symlink" id="2946" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action name="Linux/Unix Jalview bin dir symlink" id="2945" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
+ </action>
+ </beans>
+ </group>
+ <group name="Windows scripts" id="2949" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action name="Windows copy BAT file" id="2947" beanClass="com.install4j.runtime.beans.actions.files.CopyFileAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="destinationFile">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}.bat</string>
+ </object>
+ </property>
+ <property name="files" type="array" class="java.io.File" length="1">
+ <element index="0">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BATCH_WRAPPER_SCRIPT}</string>
+ </object>
+ </element>
+ </property>
+ </serializedBean>
+ <condition>Util.isWindows() && !(((String)context.getCompilerVariable("WRAPPER_LINK")+".bat").equals((String)context.getCompilerVariable("BATCH_WRAPPER_SCRIPT")))</condition>
+ </action>
+ <action name="Windows copy PS1 file" id="2948" beanClass="com.install4j.runtime.beans.actions.files.CopyFileAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="destinationFile">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}.ps1</string>
+ </object>
+ </property>
+ <property name="files" type="array" class="java.io.File" length="1">
+ <element index="0">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:POWERSHELL_WRAPPER_SCRIPT}</string>
+ </object>
+ </element>
+ </property>
+ </serializedBean>
+ <condition>Util.isWindows() && !(((String)context.getCompilerVariable("WRAPPER_LINK")+".ps1").equals((String)context.getCompilerVariable("POWERSHELL_WRAPPER_SCRIPT")))</condition>
+ </action>
+ </beans>
+ </group>
+ </actions>
+ <formComponents>
+ <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
<serializedBean>
- <property name="file">
- <object class="java.io.File">
- <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
- </object>
- </property>
- <property name="linkFile">
- <object class="java.io.File">
- <string>${installer:unixBinDir}/${compiler:WRAPPER_LINK}</string>
- </object>
- </property>
+ <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
</serializedBean>
- <condition>context.getBooleanVariable("makeSymbolicLinkAction")
-&& context.getVariable("unixBinDir") != null
-&& context.getBooleanVariable("makeSymbolicLink")</condition>
- </action>
- </actions>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" actionElevationType="elevated" rollbackBarrierExitCode="0" finishScreen="true">
<formComponents>
<formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
<serializedBean>
</screen>
</screens>
</application>
- <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
+ <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" actionElevationType="elevated" styleId="35">
<serializedBean>
<property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
<property name="frameHeight" type="int" value="480" />
<serializedBean>
<property name="title" type="string">Running ${i18n:SetupAppTitle}</property>
</serializedBean>
- <actions>
- <link id="2778" targetId="576" />
- <link id="2779" targetId="2743" />
- </actions>
<formComponents>
<formComponent id="2773" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
<serializedBean>