加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
OpenPnP.install4j 56.53 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968
<?xml version="1.0" encoding="UTF-8"?>
<install4j version="8.0.6" transformSequenceNumber="8">
<directoryPresets config="./OPENPNP_2_0.md" />
<application name="OpenPnP" applicationId="9204-4030-0867-1434" mediaDir="./installers" mediaFilePattern="${compiler:sys.fullName}-${compiler:sys.platform}-${compiler:mediaFileVersion}" shortName="openpnp" publisher="OpenPnP" publisherWeb="http://openpnp.org" version="develop" allPathsRelative="true" macVolumeId="2f75d25b539292d5" javaMinVersion="1.7">
<variables>
<variable name="native_path" />
<variable name="mediaFileVersion" value="${compiler:sys.version}" />
</variables>
</application>
<files>
<roots>
<root id="294" location="${installer:sys.docsDir}${installer:sys.fileSeparator}OpenPnP" />
</roots>
<mountPoints>
<mountPoint id="22" />
<mountPoint id="295" root="294" />
</mountPoints>
<entries>
<dirEntry mountPoint="22" file="target" subDirectory="target">
<exclude>
<entry location="test-classes" />
<entry location="generated-sources" />
<entry location="classes" />
<entry location="checkstyle-cachefile" />
<entry location="checkstyle-result.xml" />
<entry location="checkstyle-rules.xml" />
<entry location="maven-status" />
<entry location="maven-archiver" />
<entry location="generated-test-sources" />
<entry location="surefire-reports" />
<entry location="checkstyle-header.txt" />
<entry location="checkstyle-checker.xml" />
</exclude>
</dirEntry>
<fileEntry mountPoint="22" file="CHANGES.md" />
<fileEntry mountPoint="22" file="SPONSORS.md" />
<fileEntry mountPoint="22" file="LICENSE.txt" />
<fileEntry mountPoint="22" file="OPENPNP_2_0.md" />
<dirEntry mountPoint="22" file="samples" entryMode="subdir" subDirectory="samples" excludeSuffixes=".DS_Store">
<exclude>
<entry location=".DS_Store" />
<entry location="Demo Board/.DS_Store" />
<entry location="MF2015/.DS_Store" />
<entry location="pnp-test/.DS_Store" />
</exclude>
</dirEntry>
<dirEntry mountPoint="295" file="samples" entryMode="subdir" subDirectory="samples" excludeSuffixes=".DS_Store">
<exclude>
<entry location=".DS_Store" />
<entry location="Demo Board/.DS_Store" />
<entry location="MF2015/.DS_Store" />
<entry location="pnp-test/.DS_Store" />
</exclude>
</dirEntry>
</entries>
</files>
<launchers>
<launcher name="OpenPnP" id="23" icnsFile="./src/main/resources/icons/OpenPnP-logo.icns">
<executable name="OpenPnP" iconSet="true" executableMode="gui" singleInstance="true" dpiAware="false" />
<splashScreen bitmapFile="./logo/OpenPnP-logo.iconset/icon_128x128.png" />
<java mainClass="org.openpnp.Main">
<classPath>
<archive location="openpnp-gui-0.0.1-alpha-SNAPSHOT.jar" failOnError="false" />
<scanDirectory location="lib" failOnError="false" />
</classPath>
<nativeLibraryDirectories>
<directory name="native/${compiler:native_path}" />
</nativeLibraryDirectories>
</java>
<macStaticAssociationActions mode="selected" />
<iconImageFiles>
<file path="./src/main/resources/icons/OpenPnP-logo.iconset/icon_32x32.png" />
<file path="./src/main/resources/icons/OpenPnP-logo.iconset/icon_128x128.png" />
</iconImageFiles>
</launcher>
</launchers>
<installerGui autoUpdateDescriptorUrl="https://s3-us-west-2.amazonaws.com/openpnp/updates-${compiler:mediaFileVersion}.xml">
<autoUpdate>
<commentFiles>
<file location="CHANGES.md" languageId="en" />
</commentFiles>
</autoUpdate>
<applications>
<application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" launchInNewProcess="false">
<startup>
<screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
<actions>
<action id="13" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" />
</actions>
</screen>
</startup>
<screens>
<screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" styleId="270">
<actions>
<action id="3" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" multiExec="true">
<serializedBean>
<property name="excludedVariables" type="array" elementType="string" length="1">
<element index="0">sys.installationDir</element>
</property>
</serializedBean>
<condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
</action>
</actions>
<formComponents>
<formComponent id="30" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
<serializedBean>
<property name="labelText" type="string">${form:welcomeMessage}</property>
</serializedBean>
<visibilityScript>!context.isConsole()</visibilityScript>
</formComponent>
<formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
<serializedBean>
<property name="consoleScript">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
return console.askOkCancel(message, true);
</property>
</object>
</property>
</serializedBean>
</formComponent>
<formComponent id="32" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
<externalParametrizationPropertyNames>
<propertyName>updateCheck</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
<formComponent id="33" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
<serializedBean>
<property name="labelText" type="string">${i18n:ClickNext}</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen id="4" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen">
<condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
<actions>
<action id="5" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" multiExec="true">
<serializedBean>
<property name="excludedVariables" type="array" elementType="string" length="1">
<element index="0">sys.installationDir</element>
</property>
</serializedBean>
<condition>context.getVariable("sys.responseFile") == null</condition>
</action>
</actions>
<formComponents>
<formComponent id="37" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
<serializedBean>
<property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
</serializedBean>
</formComponent>
<formComponent id="38" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
<serializedBean>
<property name="requestFocus" type="boolean" value="true" />
</serializedBean>
<externalParametrizationPropertyNames>
<propertyName>suggestAppDir</propertyName>
<propertyName>validateApplicationId</propertyName>
<propertyName>existingDirWarning</propertyName>
<propertyName>checkWritable</propertyName>
<propertyName>manualEntryAllowed</propertyName>
<propertyName>checkFreeSpace</propertyName>
<propertyName>showRequiredDiskSpace</propertyName>
<propertyName>showFreeDiskSpace</propertyName>
<propertyName>allowSpacesOnUnix</propertyName>
<propertyName>validationScript</propertyName>
<propertyName>standardValidation</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
</formComponents>
</screen>
<screen id="6" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen">
<formComponents>
<formComponent id="41" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
<serializedBean>
<property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
</serializedBean>
<visibilityScript>!context.isConsole()</visibilityScript>
</formComponent>
<formComponent id="42" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
<serializedBean>
<property name="fillVertical" type="boolean" value="true" />
</serializedBean>
<externalParametrizationPropertyNames>
<propertyName>selectionChangedScript</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
</formComponents>
</screen>
<screen id="7" beanClass="com.install4j.runtime.beans.screens.StandardProgramGroupScreen">
<serializedBean>
<property name="programGroupName" type="string">${compiler:sys.fullName}</property>
</serializedBean>
<condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
</screen>
<screen id="161" beanClass="com.install4j.runtime.beans.screens.FormScreen">
<serializedBean>
<property name="subTitle" type="string">Enable automatic updates?</property>
<property name="title" type="string">Automatic Updates</property>
</serializedBean>
<formComponents>
<formComponent id="162" beanClass="com.install4j.runtime.beans.formcomponents.UpdateScheduleSelectorComponent">
<serializedBean>
<property name="initialUpdateSchedule" type="enum" class="com.install4j.api.update.UpdateSchedule" value="WEEKLY" />
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true">
<actions>
<action id="9" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
<action id="10" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated">
<serializedBean>
<property name="addUninstaller" type="boolean" value="true" />
<property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
</serializedBean>
<condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
</action>
<action id="11" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated">
<serializedBean>
<property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
</serializedBean>
</action>
</actions>
<formComponents>
<formComponent id="168" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
<serializedBean>
<property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen id="12" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" styleId="270" finishScreen="true">
<formComponents>
<formComponent id="170" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
<serializedBean>
<property name="labelText" type="string">${form:finishedMessage}</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
</screens>
</application>
<application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" launchInNewProcess="false">
<serializedBean>
<property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
<property name="useCustomMacosExecutableName" type="boolean" value="true" />
</serializedBean>
<startup>
<screen id="14" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
<actions>
<action id="20" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" />
<action id="21" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" />
</actions>
</screen>
</startup>
<screens>
<screen id="15" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" styleId="270">
<formComponents>
<formComponent id="176" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
<serializedBean>
<property name="labelText" type="string">${form:welcomeMessage}</property>
</serializedBean>
<visibilityScript>!context.isConsole()</visibilityScript>
</formComponent>
<formComponent id="177" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
<serializedBean>
<property name="consoleScript">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
return console.askYesNo(message, true);
</property>
</object>
</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen id="16" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen">
<actions>
<action id="17" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" />
</actions>
<formComponents>
<formComponent id="181" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
<serializedBean>
<property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen id="19" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" finishScreen="true" />
<screen id="18" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="270" finishScreen="true">
<formComponents>
<formComponent id="184" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
<serializedBean>
<property name="labelText" type="string">${form:successMessage}</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
</screens>
</application>
<application name="Updater with silent version check" id="125" beanClass="com.install4j.runtime.beans.applications.CustomApplication" customIcnsFile="${compiler:sys.install4jHome}/resource/macos/updater.icns" customIcoFile="${compiler:sys.install4jHome}/resource/updater.ico" automaticLauncherIntegration="true" launchInNewProcess="false">
<serializedBean>
<property name="customIconImageFiles">
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>${compiler:sys.install4jHome}/resource/updater_16.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>${compiler:sys.install4jHome}/resource/updater_32.png</string>
</object>
</add>
<add>
<object class="com.install4j.api.beans.ExternalFile">
<string>${compiler:sys.install4jHome}/resource/updater_48.png</string>
</object>
</add>
</property>
<property name="executableName" type="string">Auto Updater</property>
<property name="useCustomIcon" type="boolean" value="true" />
<property name="windowTitle" type="string">${i18n:updater.WindowTitle("${compiler:sys.fullName}")}</property>
</serializedBean>
<startup>
<screen id="126" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
<actions>
<action id="152" beanClass="com.install4j.runtime.beans.actions.update.CheckForUpdateAction" actionElevationType="none" failureStrategy="quit">
<serializedBean>
<property name="showError" type="boolean" value="false" />
<property name="url" type="string">${compiler:sys.updatesUrl}</property>
<property name="variable" type="string">updateDescriptor</property>
</serializedBean>
</action>
<action name="Update descriptor entry" id="153" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" failureStrategy="quit">
<serializedBean>
<property name="failIfNull" type="boolean" value="true" />
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">((UpdateDescriptor)context.getVariable("updateDescriptor")).getPossibleUpdateEntry()</property>
</object>
</property>
<property name="variableName" type="string">updateDescriptorEntry</property>
</serializedBean>
</action>
<group name="Update available" id="154" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
<serializedBean>
<property name="conditionExpression">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">context.getVariable("updateDescriptorEntry") != null</property>
</object>
</property>
</serializedBean>
<beans>
<action name="New version" id="155" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getNewVersion()</property>
</object>
</property>
<property name="variableName" type="string">updaterNewVersion</property>
</serializedBean>
</action>
<action name="Download size" id="156" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileSizeVerbose()</property>
</object>
</property>
<property name="variableName" type="string">updaterDownloadSize</property>
</serializedBean>
</action>
<action name="Comment" id="157" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getComment()</property>
</object>
</property>
<property name="variableName" type="string">updaterComment</property>
</serializedBean>
</action>
<action name="Download directory" id="158" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">Util.getUserHome()</property>
</object>
</property>
<property name="variableName" type="string">updaterDownloadDir</property>
</serializedBean>
</action>
<action name="Download URL" id="159" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getURL().toExternalForm()</property>
</object>
</property>
<property name="variableName" type="string">updaterDownloadUrl</property>
</serializedBean>
</action>
<action name="Archive" id="160" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).isArchive() ? Boolean.TRUE : Boolean.FALSE</property>
</object>
</property>
<property name="variableName" type="string">isArchive</property>
</serializedBean>
</action>
</beans>
</group>
</actions>
</screen>
</startup>
<screens>
<group name="Update available" id="127" beanClass="com.install4j.runtime.beans.groups.ScreenGroup">
<serializedBean>
<property name="conditionExpression">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">context.getVariable("updateDescriptorEntry") != null</property>
</object>
</property>
</serializedBean>
<beans>
<screen name="New version available" id="128" beanClass="com.install4j.runtime.beans.screens.FormScreen">
<serializedBean>
<property name="subTitle" type="string">${i18n:updater.NewVersionAvailableSubtitle("${compiler:sys.fullName}")}</property>
<property name="title" type="string">${i18n:updater.NewVersionAvailableTitle}</property>
</serializedBean>
<formComponents>
<formComponent id="129" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
<serializedBean>
<property name="labelText" type="string">${i18n:updater.CurrentVersionLabel}</property>
<property name="valueLabelColor">
<object class="java.awt.Color">
<int>128</int>
<int>0</int>
<int>0</int>
<int>255</int>
</object>
</property>
<property name="valueLabelFont">
<object class="java.awt.Font">
<string>dialog</string>
<int>1</int>
<int>0</int>
</object>
</property>
<property name="valueLabelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="CUSTOM" />
<property name="valueLabelText" type="string">${installer:sys.version}</property>
</serializedBean>
</formComponent>
<group id="130" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
<beans>
<formComponent id="131" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
<serializedBean>
<property name="labelText" type="string">${i18n:updater.NewVersionLabel}</property>
<property name="valueLabelColor">
<object class="java.awt.Color">
<int>0</int>
<int>128</int>
<int>0</int>
<int>255</int>
</object>
</property>
<property name="valueLabelFont">
<object class="java.awt.Font">
<string>dialog</string>
<int>1</int>
<int>0</int>
</object>
</property>
<property name="valueLabelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="CUSTOM" />
<property name="valueLabelText" type="string">${installer:updaterNewVersion}</property>
</serializedBean>
</formComponent>
<formComponent id="132" beanClass="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent" insetLeft="5">
<serializedBean>
<property name="actionScript">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">context.goForward(1, false, false);</property>
</object>
</property>
<property name="hyperlinkText" type="string">${i18n:updater.ShowComments}</property>
</serializedBean>
<visibilityScript> ((String)context.getVariable("updaterComment")).length() &gt; 0</visibilityScript>
</formComponent>
</beans>
</group>
<formComponent id="133" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent" />
<formComponent id="134" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
<serializedBean>
<property name="labelText" type="string">${i18n:updater.DownloadLocationLabel}</property>
</serializedBean>
</formComponent>
<formComponent id="135" beanClass="com.install4j.runtime.beans.formcomponents.DirectoryChooserComponent">
<serializedBean>
<property name="initialFile" type="string">${installer:updaterDownloadDir}</property>
<property name="labelText" type="string">${i18n:updater.DownloadToLabel}</property>
<property name="manualEntryAllowed" type="boolean" value="false" />
<property name="variableName" type="string">updaterDownloadLocation</property>
</serializedBean>
</formComponent>
<formComponent id="136" beanClass="com.install4j.runtime.beans.formcomponents.KeyValuePairComponent">
<serializedBean>
<property name="labelText" type="string">${i18n:updater.DownloadSizeLabel}</property>
<property name="valueLabelText" type="string">${installer:updaterDownloadSize}</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen name="Update message" id="137" beanClass="com.install4j.runtime.beans.screens.FormScreen">
<serializedBean>
<property name="scrollable" type="boolean" value="false" />
<property name="subTitle" type="string">${i18n:updater.CommentsSubTitle}</property>
<property name="title" type="string">${i18n:updater.CommentsTitle}</property>
</serializedBean>
<condition>false // This screen is only shown if the user clicks the "Show comments" hyperlink label in the previous screen.
</condition>
<validation>if (context.isConsole()) {
context.goBackInHistory(1);
}
return true;</validation>
<postActivation>WizardContext wizardContext = context.getWizardContext();
wizardContext.setNextButtonVisible(false);
wizardContext.setCancelButtonVisible(false);</postActivation>
<formComponents>
<formComponent id="209" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
<serializedBean>
<property name="hideIfBlank" type="boolean" value="true" />
<property name="labelText" type="string">${i18n:updater.CommentsLabel}</property>
</serializedBean>
<visibilityScript>!context.isConsole()</visibilityScript>
<externalParametrizationPropertyNames>
<propertyName>labelText</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
<formComponent id="210" beanClass="com.install4j.runtime.beans.formcomponents.HtmlDisplayFormComponent" useExternalParametrization="true" externalParametrizationName="HTML display" externalParametrizationMode="include">
<serializedBean>
<property name="displayedText" type="string">${installer:updaterComment}</property>
<property name="fillVertical" type="boolean" value="true" />
<property name="textSource" type="enum" class="com.install4j.runtime.beans.screens.components.TextSource" value="DIRECT" />
</serializedBean>
<externalParametrizationPropertyNames>
<propertyName>textSource</propertyName>
<propertyName>displayedText</propertyName>
<propertyName>displayedTextFile</propertyName>
<propertyName>variableName</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
<formComponent id="211" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
<serializedBean>
<property name="consoleScript">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">console.waitForEnter();
return true;
</property>
</object>
</property>
</serializedBean>
</formComponent>
</formComponents>
</screen>
<screen name="Download new version" id="138" beanClass="com.install4j.runtime.beans.screens.FormScreen">
<serializedBean>
<property name="subTitle" type="string">${i18n:updater.DownloadSubTitle}</property>
<property name="title" type="string">${i18n:updater.DownloadTitle}</property>
</serializedBean>
<postActivation>context.getWizardContext().setControlButtonVisible(ControlButtonType.NEXT, false);
context.getWizardContext().setControlButtonVisible(ControlButtonType.PREVIOUS, false);
context.goForward(1, true, true);
</postActivation>
<actions>
<action name="Download location" id="139" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">context.getVariable("updaterDownloadLocation") + File.separator + ((UpdateDescriptorEntry)context.getVariable("updateDescriptorEntry")).getFileName()</property>
</object>
</property>
<property name="variableName" type="string">updaterDownloadFile</property>
</serializedBean>
</action>
<action id="140" beanClass="com.install4j.runtime.beans.actions.net.DownloadFileAction" actionElevationType="elevated" failureStrategy="quit">
<serializedBean>
<property name="targetFile">
<object class="java.io.File">
<string>${installer:updaterDownloadFile}</string>
</object>
</property>
<property name="url" type="string">${installer:updaterDownloadUrl}</property>
</serializedBean>
</action>
<action id="141" beanClass="com.install4j.runtime.beans.actions.files.SetModeAction" actionElevationType="elevated">
<serializedBean>
<property name="files" type="array" class="java.io.File" length="1">
<element index="0">
<object class="java.io.File">
<string>${installer:updaterDownloadFile}</string>
</object>
</element>
</property>
<property name="mode" type="string">755</property>
</serializedBean>
</action>
</actions>
<formComponents>
<formComponent id="217" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent" useExternalParametrization="true" externalParametrizationName="Directory" externalParametrizationMode="include">
<externalParametrizationPropertyNames>
<propertyName>statusVisible</propertyName>
<propertyName>initialStatusMessage</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
</formComponents>
</screen>
<screen name="Finish" id="142" beanClass="com.install4j.runtime.beans.screens.FormScreen" styleId="270" finishScreen="true">
<serializedBean>
<property name="title" type="string">${i18n:updater.FinishTitle}</property>
</serializedBean>
<actions>
<group name="Execute installer" id="143" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
<serializedBean>
<property name="conditionExpression">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">!context.getBooleanVariable("isArchive") &amp;&amp; ((Integer)context.getVariable("updaterLaunchSelection")).intValue() == 0</property>
</object>
</property>
</serializedBean>
<beans>
<action name="Set installer arguments" id="144" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction">
<serializedBean>
<property name="script">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">String installationDirectory = context.getInstallationDirectory().getPath();
if (context.isUnattended()) {
return new String[] {"-q", "-wait", "20", "-dir", installationDirectory};
} else if (context.isConsole()) {
return new String[] {"-c", "-dir", installationDirectory};
} else {
return new String[] {"-dir", installationDirectory};
}</property>
</object>
</property>
<property name="variableName" type="string">installerArguments</property>
</serializedBean>
</action>
<action id="145" beanClass="com.install4j.runtime.beans.actions.update.ShutdownCallingLauncherAction" actionElevationType="none" />
<action id="146" beanClass="com.install4j.runtime.beans.actions.misc.RunExecutableAction" actionElevationType="elevated" failureStrategy="quit" errorMessage="${i18n:updater.LaunchError}">
<serializedBean>
<property name="arguments" type="array" elementType="string" length="1">
<element index="0">${installer:installerArguments}</element>
</property>
<property name="executable">
<object class="java.io.File">
<string>${installer:updaterDownloadFile}</string>
</object>
</property>
<property name="workingDirectory">
<object class="java.io.File">
<string>${installer:updaterDownloadLocation}</string>
</object>
</property>
</serializedBean>
</action>
</beans>
</group>
</actions>
<formComponents>
<formComponent id="229" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" useExternalParametrization="true" externalParametrizationName="Header" externalParametrizationMode="include">
<serializedBean>
<property name="hideIfBlank" type="boolean" value="true" />
<property name="labelText" type="string">${i18n:updater.FinishInfoText("${compiler:sys.fullName}")}</property>
</serializedBean>
<visibilityScript>!context.isConsole()</visibilityScript>
<externalParametrizationPropertyNames>
<propertyName>labelText</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
<formComponent id="147" beanClass="com.install4j.runtime.beans.formcomponents.LabelComponent">
<serializedBean>
<property name="labelText" type="string">${i18n:updater.LaunchUpdaterQuestion}</property>
</serializedBean>
</formComponent>
<formComponent id="148" beanClass="com.install4j.runtime.beans.formcomponents.SpacerComponent">
<serializedBean>
<property name="height" type="int" value="5" />
</serializedBean>
</formComponent>
<formComponent id="149" beanClass="com.install4j.runtime.beans.formcomponents.RadiobuttonsComponent">
<serializedBean>
<property name="radioButtonLabels" type="array" elementType="string" length="2">
<element index="0">${i18n:updater.LaunchUpdaterLabel}</element>
<element index="1">${i18n:updater.DoNotLaunchUpdaterLabel}</element>
</property>
<property name="variableName" type="string">updaterLaunchSelection</property>
</serializedBean>
<visibilityScript>!context.getBooleanVariable("isArchive")</visibilityScript>
</formComponent>
<formComponent id="150" beanClass="com.install4j.runtime.beans.formcomponents.HyperlinkActionLabelComponent">
<serializedBean>
<property name="actionScript">
<object class="com.install4j.api.beans.ScriptProperty">
<property name="value" type="string">Util.showPath((String)context.getVariable("updaterDownloadFile"));</property>
</object>
</property>
<property name="hyperlinkText" type="string">${i18n:updater.OpenContainingFolderLabel}</property>
</serializedBean>
<visibilityScript>!context.isConsole()</visibilityScript>
</formComponent>
<formComponent id="151" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
<serializedBean>
<property name="detailVisible" type="boolean" value="false" />
<property name="hideInitially" type="boolean" value="true" />
</serializedBean>
</formComponent>
</formComponents>
</screen>
</beans>
</group>
</screens>
</application>
</applications>
<styles defaultStyleId="264">
<style name="Standard" id="264" beanClass="com.install4j.runtime.beans.styles.FormStyle">
<formComponents>
<formComponent name="Header" id="265" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
<serializedBean>
<property name="styleId" type="string">277</property>
</serializedBean>
</formComponent>
<group name="Main" id="266" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
<beans>
<formComponent id="267" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
<formComponent name="Watermark" id="268" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Custom watermark" externalParametrizationMode="include">
<serializedBean>
<property name="enabledTitleText" type="boolean" value="false" />
<property name="labelText" type="string">install4j</property>
</serializedBean>
<externalParametrizationPropertyNames>
<propertyName>labelText</propertyName>
</externalParametrizationPropertyNames>
</formComponent>
<formComponent name="Footer" id="269" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
<serializedBean>
<property name="styleId" type="string">281</property>
</serializedBean>
</formComponent>
</beans>
</group>
</formComponents>
</style>
<style name="Banner" id="270" beanClass="com.install4j.runtime.beans.styles.FormStyle">
<formComponents>
<group id="271" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
<serializedBean>
<property name="backgroundColor">
<object class="java.awt.Color">
<int>255</int>
<int>255</int>
<int>255</int>
<int>255</int>
</object>
</property>
<property name="borderSides">
<object class="com.install4j.runtime.beans.formcomponents.BorderSides">
<property name="bottom" type="boolean" value="true" />
</object>
</property>
<property name="imageEdgeBackgroundColor">
<object class="java.awt.Color">
<int>25</int>
<int>143</int>
<int>220</int>
<int>255</int>
</object>
</property>
<property name="imageEdgeBorder" type="boolean" value="true" />
<property name="imageFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
</object>
</property>
<property name="insets">
<object class="java.awt.Insets">
<int>5</int>
<int>10</int>
<int>10</int>
<int>10</int>
</object>
</property>
</serializedBean>
<beans>
<formComponent id="272" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
<serializedBean>
<property name="labelFontSizePercent" type="int" value="130" />
<property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
<property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
</serializedBean>
</formComponent>
<formComponent id="273" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
<formComponent id="274" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
</beans>
<externalParametrizationPropertyNames>
<propertyName>imageAnchor</propertyName>
<propertyName>imageEdgeBackgroundColor</propertyName>
<propertyName>imageFile</propertyName>
</externalParametrizationPropertyNames>
</group>
<formComponent id="275" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
<serializedBean>
<property name="styleId" type="string">281</property>
</serializedBean>
</formComponent>
</formComponents>
</style>
<group name="Style components" id="276" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
<beans>
<style name="Standard header" id="277" beanClass="com.install4j.runtime.beans.styles.FormStyle">
<serializedBean>
<property name="fillVertical" type="boolean" value="false" />
<property name="standalone" type="boolean" value="false" />
<property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
</serializedBean>
<formComponents>
<group id="278" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
<serializedBean>
<property name="backgroundColor">
<object class="java.awt.Color">
<int>255</int>
<int>255</int>
<int>255</int>
<int>255</int>
</object>
</property>
<property name="borderSides">
<object class="com.install4j.runtime.beans.formcomponents.BorderSides">
<property name="bottom" type="boolean" value="true" />
</object>
</property>
<property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
<property name="imageEdgeBorderWidth" type="int" value="2" />
<property name="imageFile">
<object class="com.install4j.api.beans.ExternalFile">
<string>icon:${installer:sys.installerApplicationMode}_header.png</string>
</object>
</property>
<property name="imageInsets">
<object class="java.awt.Insets">
<int>0</int>
<int>5</int>
<int>1</int>
<int>1</int>
</object>
</property>
<property name="insets">
<object class="java.awt.Insets">
<int>0</int>
<int>20</int>
<int>0</int>
<int>10</int>
</object>
</property>
</serializedBean>
<beans>
<formComponent name="Title" id="279" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
<serializedBean>
<property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
<property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
</serializedBean>
</formComponent>
<formComponent name="Subtitle" id="280" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
<serializedBean>
<property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
</serializedBean>
</formComponent>
</beans>
<externalParametrizationPropertyNames>
<propertyName>backgroundColor</propertyName>
<propertyName>foregroundColor</propertyName>
<propertyName>imageAnchor</propertyName>
<propertyName>imageFile</propertyName>
<propertyName>imageOverlap</propertyName>
</externalParametrizationPropertyNames>
</group>
</formComponents>
</style>
<style name="Standard footer" id="281" beanClass="com.install4j.runtime.beans.styles.FormStyle">
<serializedBean>
<property name="fillVertical" type="boolean" value="false" />
<property name="standalone" type="boolean" value="false" />
<property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
</serializedBean>
<formComponents>
<group id="282" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
<serializedBean>
<property name="alignFirstLabel" type="boolean" value="false" />
<property name="insets">
<object class="java.awt.Insets">
<int>3</int>
<int>5</int>
<int>8</int>
<int>5</int>
</object>
</property>
</serializedBean>
<beans>
<formComponent id="283" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
<formComponent name="Back button" id="284" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
<serializedBean>
<property name="buttonText" type="string">&lt; ${i18n:ButtonBack}</property>
<property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
</serializedBean>
</formComponent>
<formComponent name="Next button" id="285" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
<serializedBean>
<property name="buttonText" type="string">${i18n:ButtonNext} &gt;</property>
<property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
</serializedBean>
</formComponent>
<formComponent name="Cancel button" id="286" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
<serializedBean>
<property name="buttonText" type="string">${i18n:ButtonCancel}</property>
<property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
</serializedBean>
</formComponent>
</beans>
</group>
</formComponents>
</style>
</beans>
</group>
</styles>
</installerGui>
<mediaSets>
<windows name="Windows_32" id="24" installDir="openpnp" jreBitType="32">
<variables>
<variable name="native_path" value="windows/x86" />
</variables>
<jreBundle jreBundleSource="preCreated" includedJre="windows-x86-1.8.0_131" />
</windows>
<windows name="Windows_64" id="28" installDir="openpnp">
<variables>
<variable name="native_path" value="windows/x64" />
</variables>
<jreBundle jreBundleSource="preCreated" includedJre="windows-amd64-1.8.0_131" />
</windows>
<macosFolder name="Mac OS X Folder" id="119" installDir="OpenPnP">
<variables>
<variable name="native_path" value="mac/universal" />
</variables>
<jreBundle jreBundleSource="preCreated" includedJre="macosx-amd64-1.8.0_131" bundleUrl="http://openpnp.org" />
</macosFolder>
<unixInstaller name="Unix Installer" id="121" installDir="openpnp" />
<unixArchive name="Unix Archive" id="122" installDir="openpnp" />
<linuxRPM name="Linux RPM" id="123" installDir="/opt/openpnp" />
<linuxDeb name="Linux Deb Archive" id="124" installDir="/opt/openpnp" bzip="true" description="Open Source SMT Pick and Place Software" maintainerEmail="jason@vonnieda.org" />
</mediaSets>
<buildIds>
<mediaSet refId="119" />
</buildIds>
<buildOptions disableJreBundling="true" />
</install4j>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化