Hi,
   Here is an example I wrote to do something on features. There are three 
featrues "VC71" "VC70" "VC90", and when installing user can only choose one of 
them and install the matching feature.
   In a dialog, I created a listbox:
   <Control Id="IDEType" Type="ComboBox" X="25" Y="117" Width="290" Height="25" 
 Property="IDE" Sorted="yes" RightToLeft="no" ComboList="yes"  >
          <ComboBox Property="IDE">
            <ListItem Text="VC71" Value="71"/>
            <ListItem Text="VC80" Value="80"/>
            <ListItem Text="VC90" Value="90"/>
            <ListItem Text="null" Value="0"/>
          </ComboBox>
   </Control>
   Then in the "Next" button event:
    <Publish Event="AddLocal" Value="VC71BinFt">1</Publish>
    <Publish Event="AddLocal" Value="VC80BinFt">1</Publish>
    <Publish Event="AddLocal" Value="VC90BinFt">1</Publish>
    <Publish Event="Remove" Value="VC71BinFt"><![CDATA[IDE <> "71"]]></Publish>
    <Publish Event="Remove" Value="VC80BinFt"><![CDATA[IDE <> "80"]]></Publish>
    <Publish Event="Remove" Value="VC90BinFt"><![CDATA[IDE <> "90"]]></Publish>
   These can finish features adding and removing according to user's selection.
   if you want to select features according to its state, here is another way. 
In a button event:
   <Publish Event="AddLocal" Value="VCBinFt">
    <![CDATA[!VC71BinFt = 3 OR !VC71BinFt = 3 OR !VC80BinFt = 3 OR !VC80BinFt = 
4 OR !VC90BinFt = 3 OR !VC90BinFt = 4]]>
   </Publish>
   Put this in the event before FeatureTree dialog, it can affect the features 
state in the tree.
    Does this meet you?


2009-11-30 



salever.lee 



发件人: akihiro.shib...@jp.yokogawa.com 
发送时间: 2009-11-30  10:37:55 
收件人: wix-users@lists.sourceforge.net 
抄送: 
主题: Re: [WiX-users] Select features on UI 
 
Thanks, 
If I specify a property that   ADDLOCAL, REMOVE are some features from 
command-line, It does work.
If A feature is specfied, it does work.
Some features are specified value of Events that are AddLocal or Remove.
But  the FeatureTree dialog, use WiXUI library, don't  enable these features.
I create CustomAction, and some features' state changed to INSTALLSTATE_LOCAL ( 
using a function MsiSetFeaturesState in C++ ).
and this function is called by DoAction Event.  
 I create sample code:
   CA:
UINT _stdcall PkgSetFeatureChange( MSIHANDLE hInstall ) {
: 
  MsiGetProperty( hInstall, L"PKGTYPE", szPkgType, &dwLen );
if( !wcsstr( "A", szPkgType ) ) {
    MsiSetFeatureState( hInstall, "F0", INSTALLSTATE_LOCAL );
    MsiSetFeatureState( hInstall, "F1", INSTALLSTATE_LOCAL );
}

}
    in WiX:
<CustomAction Id="CA" Binary="XXXX.dll" DllEntry="PkgSetFeatureChange" .... />
:
<Control Id="Next" ..
<Publish Event="DoAction"  Value="CA"   >1</Publish>
:
I don't understand why It dosen't work that value of  Event="AddLocal" or 
Event="Remove"  is specified some features. 
Thanks,
Akihiro Shibuta.
> -----Original Message-----
> From: Blair [mailto:os...@live.com] 
> Sent: Friday, November 27, 2009 4:12 PM
> To: 'General discussion for Windows Installer XML toolset.'
> Subject: Re: [WiX-users] Select features on UI
> 
> As I understand it, a feature can have only one parent.
> 
> If you want to use control events, something like this 
> (borrowed from Arun) should work:
> 
> In the <Control id=Next
>         Add <Publish Event="Addlocal"
> Value="F0,F2"><![CDATA[(PKGTYPE="A")]]></Publish>
>             <Publish Event="Addlocal"
> Value="F0,F1"><![CDATA[(PKGTYPE="B")]]></Publish>
>             <Publish Event="Addlocal"
> Value="F1,F2"><![CDATA[(PKGTYPE="C")]]></Publish>
>             <Publish Event="Remove"
> Value="F1"><![CDATA[(PKGTYPE="A")]]></Publish>
>             <Publish Event="Remove"
> Value="F2"><![CDATA[(PKGTYPE="B")]]></Publish>
>             <Publish Event="Remove"
> Value="F0"><![CDATA[(PKGTYPE="C")]]></Publish>
> 
> Possibly even better (instead of the above), if you want just 
> the PKGTYPE property to always control the features (so you 
> can also set the package type from the command-line and you 
> won't be required to use the UI):
> 
> <Feature Id="F0" Level="32767"/>
> <Feature Id="F1" Level="32767"/>
> <Feature Id="F2" Level="32767"/>
> <Property Id="PKGTYPE" Secure="yes"/>
> 
> <!-- Package A -->
> <SetProperty Id="AddLocalPkgAFeatures" Value="F0,F2" Sequence="both"
> Before="SetRemovePkgAFeatures">PKGTYPE="A" AND NOT REMOVE=ALL 
> AND Preselected!=1</SetProperty> <SetProperty 
> Id="RemovePkgAFeatures" Value="F1" Sequence="both"
> Before="SetAddLocalPkgBFeatures">PKGTYPE="A" AND NOT 
> REMOVE=ALL AND Preselected!=1</SetProperty>
> 
> <!-- Package B -->
> <SetProperty Id="AddLocalPkgBFeatures" Value="F0,F1" Sequence="both"
> Before="SetRemovePkgBFeatures">PKGTYPE="B" AND NOT REMOVE=ALL 
> AND Preselected!=1</SetProperty> <SetProperty 
> Id="RemovePkgBFeatures" Value="F2" Sequence="both"
> Before="SetAddLocalPkgCFeatures">PKGTYPE="B" AND NOT 
> REMOVE=ALL AND Preselected!=1</SetProperty>
> 
> <!-- Package C -->
> <SetProperty Id="AddLocalPkgCFeatures" Value="F1,F2" Sequence="both"
> Before="SetRemovePkgCFeatures">PKGTYPE="C" AND NOT REMOVE=ALL 
> AND Preselected!=1</SetProperty> <SetProperty 
> Id="RemovePkgCFeatures" Value="F0" Sequence="both"
> Before="SetADDLOCAL">PKGTYPE="C" AND NOT REMOVE=ALL AND 
> Preselected!=1</SetProperty>
> 
> <!-- Actually set the features based on the above table --> 
> <SetProperty Id="ADDLOCAL"
> Value="[AddLocalPkgAFeatures][AddLocalPkgBFeatures][AddLocalPk
> gCFeatures]"
> Sequence="both" Before="SetREMOVE">AddLocalPkgAFeatures OR 
> AddLocalPkgBFeatures OR AddLocalPkgCFeatures</SetProperty>
> <SetProperty Id="REMOVE"
> Value="[RemovePkgAFeatures][RemovePkgBFeatures][RemovePkgCFeatures]"
> Sequence="both" Before="CostInitialize">RemovePkgAFeatures OR 
> RemovePkgBFeatures OR RemovePkgCFeatures</SetProperty>
> 
> -----Original Message-----
> From: akihiro.shib...@jp.yokogawa.com
> [mailto:akihiro.shib...@jp.yokogawa.com]
> Sent: Tuesday, November 24, 2009 5:14 PM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Select features on UI
> 
> 
> Is Conditions   changed to  Features ?
> 
>  <Feature Id="A">
>     <FeatureRef Id="F0" />
>     <FeatureRef Id="F2" />
>  </Feature>
>  <Feature Id="B">
>     <FeatureRef Id="F0" />
>     <FeatureRef Id="F1  />
>  </Feature>
>  <Feature Id="C">
>     <FeatureRef Id="F1" />
>     <FeatureRef Id="F2  />
>  </Feature>
>       :
> 
>   "F0", "F1", ... have multiple parents feature. Can I construction?
> I seems a feature/compornent cannot have multiple parents
> features/compornents.
> May I tell me good idea ?
> 
> 
> thanks,
> 
> Akihiro, Shibuta.
> 
> > -----Original Message-----
> > From: Arun Perregatturv [mailto:aperregatt...@napcosecurity.com] 
> > Sent: Tuesday, November 24, 2009 11:40 PM
> > To: General discussion for Windows Installer XML toolset.
> > Subject: Re: [WiX-users] Select features on UI
> > 
> > You are missing the publish event for the value
> > 
> > Something like this
> > 
> > In the <Control id=Next
> >         Add <Publish Event="Addlocal" 
> > Value="A"><![CDATA[(PKGTYPE="A")]]></Publish>
> >             <Publish Event="Remove" 
> > Value="A"><![CDATA[NOT(PKGTYPE="A")]]></Publish>
> > 
> > Add this for each value type.
> > 
> > I do this exactly the same with 4 radiobuttons for the user 
> > selection and based on the selection I set the features.
> > 
> > 
> > Arun Perregattur
> > 
> > 
> > -----Original Message-----
> > From: akihiro.shib...@jp.yokogawa.com 
> > [mailto:akihiro.shib...@jp.yokogawa.com]
> > Sent: Tuesday, November 24, 2009 7:01 AM
> > To: wix-users@lists.sourceforge.net
> > Subject: [WiX-users] Select features on UI
> > 
> > 
> >  Hi,
> > 
> > I want to modify features by radio buttons on dialog.
> > When PKGTYPE is selected "A", features are "F0" and "F2".
> > When PKGTYPE is selected "B", features are "F0" and "F1".
> > When PKGTYPE is selected "C", features are "F1" and "F2".
> > 
> >  The content selected on the UI is not reflected. Where has 
> > made a mistake?
> > 
> >  1) Set Initialize Property "PKGTYPE"
> >  2) Select package type on radio button. and change value of 
> > "PKGTYPE".
> >  3) modify Feature Condition Levels .
> >  4) Show feature tree. but the content selected on the UI is 
> > not reflected
> > 
> > 
> > 
> >    <Property Id="PKGTYPE" Value="A" />
> > 
> > 
> > 
> >    <Feature Id="F0" Level="1001">
> >       <Condition Level="101">PKGTYPE="A"</Condition>
> >       <Condition Level="102">PKGTYPE="B"</Condition>
> >    </Feature>
> >    <Feature Id="F1" Level="1001">
> >       <Condition Level="102">PKGTYPE="B"</Condition>
> >       <Condition Level="103">PKGTYPE="C"</Condition>
> >    </Feature>
> >    <Feature Id="F2" Level="1001">
> >       <Condition Level="101">PKGTYPE="A"</Condition>
> >       <Condition Level="103">PKGTYPE="C"</Condition>
> >    </Feature>
> >       : ( these are many features. )
> > 
> > 
> >       :
> > 
> >   <Fragment>
> >      <UI>
> >        <Dialog Id="PkgTypeDlg" Width="370" Height="270" 
> > Title="[ProductName] Setup">
> >          <Control Id="Control_Select_PackageType" 
> > Type="RadioButtonGroup" X="18" Y="59" Width="329" 
> > Height="119" Property="PKGTYPE">
> >            <RadioButtonGroup Property="PKGTYPE">
> >              <RadioButton Text="PackageA" Value="A" X="6" 
> > Y="10" Width="65" Height="17"/>
> >              <RadioButton Text="PackageB" Value="B" X="6" 
> > Y="30" Width="65" Height="17"/>
> >              <RadioButton Text="PackageC" Value="C" X="6" 
> > Y="50" Width="65" Height="17"/>
> >            </RadioButtonGroup>
> >          </Control>
> >          <Control Id="Next" Type="PushButton" X="236" Y="243" 
> > Width="56" Height="17" Default="yes" Text="!(loc.UIButtonNext)">
> >             <Publish Event="NewDialog" 
> > Value="CustomizeDlg">1</Publish>
> >          </Control>
> >                 :
> >        </Dialog>
> >      </UI>
> >     </Fragment>
> > 
> > Thanks,
> > 
> > Akihiro, Shibuta.
> > 
> > 
> > 
> > --------------------------------------------------------------
> > ----------------
> > Let Crystal Reports handle the reporting - Free Crystal 
> > Reports 2008 30-Day trial. Simplify your report design, 
> > integration and deployment - and focus on what you do best, 
> > core application coding. Discover what's new with Crystal 
> > Reports now.  http://p.sf.net/sfu/bobj-july 
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> > 
> > --------------------------------------------------------------
> > ----------------
> > Let Crystal Reports handle the reporting - Free Crystal 
> > Reports 2008 30-Day trial. Simplify your report design, 
> > integration and deployment - and focus on what you do best, 
> > core application coding. Discover what's new with Crystal 
> > Reports now.  http://p.sf.net/sfu/bobj-july 
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> > 
> --------------------------------------------------------------
> --------------
> --
> Let Crystal Reports handle the reporting - Free Crystal 
> Reports 2008 30-Day 
> trial. Simplify your report design, integration and 
> deployment - and focus
> on 
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> 
> 
> --------------------------------------------------------------
> ----------------
> Let Crystal Reports handle the reporting - Free Crystal 
> Reports 2008 30-Day 
> trial. Simplify your report design, integration and 
> deployment - and focus on 
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> 
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to