Esempio n. 1
0
        /// <summary>
        /// Updates the RadioButtonGroup xml elements.
        /// </summary>
        void UpdateRadioButtonGroupElement(Point parentLocation, RadioButtonGroupBox control)
        {
            XmlElement controlElement          = UpdateControlElement(parentLocation, control);
            string     property                = controlElement.GetAttribute("Property");
            string     xpath                   = String.Concat("//w:RadioButtonGroup[@Property='", XmlEncode(property), "']");
            XmlElement radioButtonGroupElement = (XmlElement)controlElement.SelectSingleNode(xpath, namespaceManager);

            if (radioButtonGroupElement == null)
            {
                radioButtonGroupElement = AppendChildElement(controlElement, "RadioButtonGroup", control.PropertyName);
            }

            int radioButtonControlIndex = 0;
            int radioButtonElementIndex = 0;

            XmlNodeList radioButtonElements = radioButtonGroupElement.SelectNodes("w:RadioButton", namespaceManager);

            for (; radioButtonElementIndex < radioButtonElements.Count; ++radioButtonElementIndex)
            {
                RadioButton radioButton = GetNextRadioButton(control.Controls, ref radioButtonControlIndex);
                if (radioButton == null)
                {
                    break;
                }
                XmlElement radioButtonElement = (XmlElement)radioButtonElements[radioButtonElementIndex];
                UpdateRadioButton(radioButtonElement, radioButton);
                ++radioButtonControlIndex;
            }

            // Remove radio buttons.
            if (radioButtonElementIndex < radioButtonElements.Count)
            {
                for (; radioButtonElementIndex < radioButtonElements.Count; ++radioButtonElementIndex)
                {
                    radioButtonGroupElement.RemoveChild(radioButtonElements[radioButtonElementIndex]);
                }
            }

            // Add new radio buttons.
            if (radioButtonControlIndex < control.Controls.Count)
            {
                for (; radioButtonControlIndex < control.Controls.Count; ++radioButtonControlIndex)
                {
                    RadioButton radioButton = control.Controls[radioButtonControlIndex] as RadioButton;
                    if (radioButton != null)
                    {
                        XmlElement newRadioButtonElement = AppendChildElement(radioButtonGroupElement, "RadioButton");
                        UpdateRadioButton(newRadioButtonElement, radioButton);
                    }
                }
            }
        }
		public void SetUpFixture()
		{
			WixDocument doc = new WixDocument();
			doc.LoadXml(GetWixXml());

			WixDialog wixDialog = doc.CreateWixDialog("WelcomeDialog", new MockTextFileReader());
			using (Form dialog = wixDialog.CreateDialog()) {
				GroupBox groupBox = new GroupBox();
				groupBox.Name = "NewGroupBox";
				groupBox.Top = 10;
				groupBox.Left = 20;
				dialog.Controls.Add(groupBox);
				
				TextBox textBox = new TextBox();
				textBox.Name = "NewTextBox";
				groupBox.Controls.Add(textBox);
				
				Button button = new Button();
				button.Name = "NewButton";
				groupBox.Controls.Add(button);
				
				GroupBox childGroupBox = new GroupBox();
				childGroupBox.Top = 10;
				childGroupBox.Left = 20;
				childGroupBox.Name = "NewChildGroupBox";
				groupBox.Controls.Add(childGroupBox);
				
				RadioButtonGroupBox radioButtonGroupBox = new RadioButtonGroupBox();
				radioButtonGroupBox.Name = "NewRadioButtonGroupBox";
				groupBox.Controls.Add(radioButtonGroupBox);
				
				Button childButton = new Button();
				childButton.Name = "NewChildButton";
				childGroupBox.Controls.Add(childButton);
				
				dialogElement = wixDialog.UpdateDialogElement(dialog);
				groupBoxElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='NewGroupBox']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));				
				textBoxElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='NewTextBox']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
				childGroupBoxElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='NewChildGroupBox']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));				
				buttonElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='NewButton']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
				radioButtonGroupElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='NewRadioButtonGroupBox']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
				childButtonElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='NewChildButton']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
			}
		}
Esempio n. 3
0
        /// <summary>
        /// Creates a radio button group.
        /// </summary>
        RadioButtonGroupBox CreateRadioButtonGroup(XmlElement controlElement, IComponentCreator componentCreator)
        {
            // Create radio button group box.
            RadioButtonGroupBox radioButtonGroup = (RadioButtonGroupBox)CreateControl(typeof(RadioButtonGroupBox), controlElement, componentCreator);
            string property = controlElement.GetAttribute("Property");

            radioButtonGroup.PropertyName = property;

            // Add radio buttons.
            int radioButtonCount = 0;

            foreach (XmlElement radioButtonElement in GetRadioButtonElements(property))
            {
                ++radioButtonCount;
                string radioButtonName = String.Concat(property, "RadioButton", radioButtonCount.ToString());
                radioButtonGroup.Controls.Add(CreateRadioButton(radioButtonElement, componentCreator, radioButtonName));
            }
            return(radioButtonGroup);
        }
		public void SetUpFixture()
		{
			WixDocument doc = new WixDocument();
			doc.LoadXml(GetWixXml());
			CreatedComponents.Clear();
			WixDialog wixDialog = doc.CreateWixDialog("AcceptLicenseDialog", new MockTextFileReader());
			using (Form dialog = wixDialog.CreateDialog(this)) {

				RadioButtonGroupBox radioButtonGroup = new RadioButtonGroupBox();
				radioButtonGroup.Left = 30;
				radioButtonGroup.Top = 100;
				radioButtonGroup.Name = "AcceptLicenseRadioButtonGroup";
				radioButtonGroup.PropertyName = "AcceptLicense";
				dialog.Controls.Add(radioButtonGroup);
				
				RadioButton acceptRadioButton = new RadioButton();
				acceptRadioButton.Left = 0;
				acceptRadioButton.Top = 5;
				acceptRadioButton.Width = 100;
				acceptRadioButton.Height = 50;
				acceptRadioButton.Text = "Accept";
				acceptRadioButton.Name = "AcceptLicenseRadioButton1";
				radioButtonGroup.Controls.Add(acceptRadioButton);

				RadioButton declineRadioButton = new RadioButton();
				declineRadioButton.Left = 10;
				declineRadioButton.Top = 20;
				declineRadioButton.Width = 200;
				declineRadioButton.Height = 30;
				declineRadioButton.Text = "Decline";
				declineRadioButton.Name = "AcceptLicenseRadioButton2";
				radioButtonGroup.Controls.Add(declineRadioButton);
				
				XmlElement dialogElement = wixDialog.UpdateDialogElement(dialog);
				controlElement = (XmlElement)dialogElement.SelectSingleNode("w:Control[@Id='AcceptLicenseRadioButtonGroup']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
				radioButtonGroupElement = (XmlElement)dialogElement.SelectSingleNode("//w:RadioButtonGroup[@Property='AcceptLicense']", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
				XmlNodeList radioButtonElements = radioButtonGroupElement.SelectNodes("//w:RadioButtonGroup/w:RadioButton", new WixNamespaceManager(dialogElement.OwnerDocument.NameTable));
				acceptRadioButtonElement = (XmlElement)radioButtonElements[0];
				declineRadioButtonElement = (XmlElement)radioButtonElements[1];
			}
		}
Esempio n. 5
0
		/// <summary>
		/// Updates the RadioButtonGroup xml elements.
		/// </summary>
		void UpdateRadioButtonGroupElement(Point parentLocation, RadioButtonGroupBox control)
		{
			XmlElement controlElement = UpdateControlElement(parentLocation, control);
			string property = controlElement.GetAttribute("Property");
			string xpath = String.Concat("//w:RadioButtonGroup[@Property='", XmlEncode(property), "']");
			XmlElement radioButtonGroupElement = (XmlElement)controlElement.SelectSingleNode(xpath, namespaceManager);
			if (radioButtonGroupElement == null) {
				radioButtonGroupElement = AppendChildElement(controlElement, "RadioButtonGroup", control.PropertyName);
			}
			
			int radioButtonControlIndex = 0;
			int radioButtonElementIndex = 0;
			
			XmlNodeList radioButtonElements = radioButtonGroupElement.SelectNodes("w:RadioButton", namespaceManager);
			for (; radioButtonElementIndex < radioButtonElements.Count; ++radioButtonElementIndex) {
				RadioButton radioButton = GetNextRadioButton(control.Controls, ref radioButtonControlIndex);
				if (radioButton == null) {
					break;
				}
				XmlElement radioButtonElement = (XmlElement)radioButtonElements[radioButtonElementIndex];
				UpdateRadioButton(radioButtonElement, radioButton);
				++radioButtonControlIndex;
			}
			
			// Remove radio buttons.
			if (radioButtonElementIndex < radioButtonElements.Count) {
				for (; radioButtonElementIndex < radioButtonElements.Count; ++radioButtonElementIndex) {
					radioButtonGroupElement.RemoveChild(radioButtonElements[radioButtonElementIndex]);
				}
			}
			
			// Add new radio buttons.
			if (radioButtonControlIndex < control.Controls.Count) {
				for (; radioButtonControlIndex < control.Controls.Count; ++radioButtonControlIndex) {	
					RadioButton radioButton = control.Controls[radioButtonControlIndex] as RadioButton;
					if (radioButton != null) {
						XmlElement newRadioButtonElement = AppendChildElement(radioButtonGroupElement, "RadioButton");
						UpdateRadioButton(newRadioButtonElement, radioButton);
					}
				}
			}
		}