This has been discussed in this list many times before. You need to set your
property to the new value of the property when the action returns before
using it in the dialog.

<Control Type="PushButton" Id="Validate" Width="56" Height="17" X="234"
Y="243">
          <Text>Validate</Text>
          <Condition Action="disable">
            <![CDATA[VALIDATED = "1" ]]>
          </Condition>
          <Publish Event="DoAction"
Value="ConfirmationCustomAction">1</Publish>
          <Publish Property="VALIDATED" Value="[VALIDATED]">1</Publish>
          <Publish Event="SpawnDialog"
Value="InvalidConfigDlg"><![CDATA[VALIDATED <> "1" ]]></Publish>          
        </Control>

-----Original Message-----
From: Stelios Kyprou [mailto:stelios.kyp...@formicary.net] 
Sent: Thursday, July 08, 2010 7:03 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] Changing a Global property in a custom action is not
immediately affecting the installer

Hello!

I have a custom action setting a Global property in the following way:
session[VALIDATED] = "1";

This CA is called when a user clicks a "Validate" button in a dialog.
The control is as follows:

<Control Type="PushButton" Id="Validate" Width="56" Height="17" X="234"
Y="243">
          <Text>Validate</Text>
          <Condition Action="disable">
            <![CDATA[VALIDATED = "1" ]]>
          </Condition>
          <Publish Event="DoAction"
Value="ConfirmationCustomAction">1</Publish>
          <Publish Event="SpawnDialog"
Value="InvalidConfigDlg"><![CDATA[VALIDATED <> "1" ]]></Publish>          
        </Control>

Now i have a "Next" button in the same dialog, which is initially Disabled,
and gets enabled when the VALIDATED
property get's set to 1:

<Control Type="PushButton" Id="Next" Width="56" Height="17" X="308" Y="243"
Default="no">
          <Text>Next</Text>
          <Condition Action="disable">
            <![CDATA[VALIDATED <> "1" ]]>
          </Condition>
          <Condition Action="enable">
            <![CDATA[VALIDATED = "1" ]]>
          </Condition>
          <Publish Event="EndDialog" Value="Return"/>
        </Control>

Initially the Property VALIDATE is set to "0".

Now when i run the installer, and i click "Validate", i can see in the log
files that the Property VALIDATE is set to 1
(PROPERTY CHANGE: Modifying VALIDATED property. Its current value is '0'.
Its new value: '1'.
Action ended 14:38:57: ConfirmationCustomAction. Return value 1.),
but when the custom action returns ActionResult.Success,
the Next button is still Disabled. 

I have a bunch of edit boxes in my dialog, each one representing a Property.

A senario that i realised that i can enable the "Next" button is:

1) I fill in all the edit boxes
2) I click Validate
3) The CA returns ActionResult.Success (Next button STILL disabled)
4) I re-edit an edit box
5) When i re-edit, the next button get's enabled. (and Validate get's
disabled)

Any ideas why this is happening?
Under normal circumstances, when the CA ends and is successfull, the Next
button should get enabled.

Thanks in advance, 
Stelios

-- 
Stelios Kyprou
Systems Engineer
Formicary - delivering quality financial technology solutions(TM)
www.formicary.net



----------------------------------------------------------------------------
This message is confidential and may be privileged. It is intended solely
for
the named addressee. If you are not the intended recipient, please inform
us.
Any unauthorised dissemination, distribution or copying hereof is
prohibited.

Formicary Limited registered office in England and Wales, address 1 Taillar
Road, Hedon, East Yorkshire HU12 8GU, registration number 3894343, VAT
number
747644304, does not guarantee that the integrity of this communication has
been
maintained nor that this communication is free of viruses, interceptions or
interference.
----------------------------------------------------------------------------
----------------------------------------------------------------------------
--
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to