I have a custom page that I created using <infoparameter>. I am showing this page in lieu of the 'Ready to Install' page because I wanted to be able to show the user the installation directory and installation type as a final confirmation. I was able to change the next button text on this page with the following Pre Show Page Action:

<preShowPageActionList>
    <setInstallerVariable>
        <name>ui.button(next).text</name>
        <value>Install</value>
    </setInstallerVariable>
</preShowPageActionList>

However, what happens is that if the user clicks 'Back' the previous page also bears the 'Install' text in the button when it should really read 'Next >'. Is this a bug?

My installer has the following "custom pages":

  1. an installdir page where the user can enter an installation directory, the 'Next' button text is Next >
  2. an installation_type page where the user can select an installation type from two available radio buttons: 'Full Installation' and 'Minimal Installation'. The 'Next' button text is Next >
  3. an install_confirmation page where the user is shown the install directory and installation type, I changed the button text to 'Install' here.

I enabled 'Allow Component' selection so that between pages 2 and 3, the component selection page appears showing the components that are being installed according to the selected installation type.

The problem still occurs after applying the suggested solution. Mainly what happens is that, if I click back from page 3, the component selection page displays 'Install' as the text for the next button instead of Next. However, if I continue to click back again from the component selection page, page 2 displays 'Next' correctly. And, if I click Next from page 2, the component selection page displays 'Next' correctly.

asked 22 Jun '12, 20:22

jalexrod's gravatar image

jalexrod
38121215
accept rate: 0%


The button manipulation works in such a way that InstallBuilder modifies it only for certain pages - i.e. modifying to Install or Finish. In other cases the text is left as is.

In your case, you can simply change the ui.button(next).text by doing the following in page before the final page you are showing:

<preShowPageActionList> <setInstallerVariable> <name>ui.button(next).text</name> <value>${msg(Installer.Button.Next)}</value> </setInstallerVariable> </preShowPageActionList>

link

answered 25 Jun '12, 09:03

wojciechka's gravatar image

wojciechka ♦♦
7.8k61122
accept rate: 26%

Hi wojciechka, I tried your suggested solution with no success. Please see my updated post for the behavior that I am seeing.

(25 Jun '12, 14:44) jalexrod

Unfortunately it is not possible to change the label when the previous page is the component selection page.

What you can do is in your last page set back_page to installdir and set next button's text appropriately in installdir. This will take the user 2 steps back, though. However, clicking on back/next from installdir will work fine.

(26 Jun '12, 11:05) wojciechka ♦♦

Hi wojciechka, thanks for confirming this. I decided to forgo the showing of the component selection page and instead show the components being installed in the install_confirmation page. I also used your suggested solution with success in this case. Thanks!

(27 Jun '12, 12:54) jalexrod
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×22

Asked: 22 Jun '12, 20:22

Seen: 1,260 times

Last updated: 27 Jun '12, 12:54