/// <summary>show the form for the multi line text</summary> /// <param name="value">the value prior to editing</param> /// <returns>the string after editing</returns> public string EditValue(string value) { EnterStringForm dialog = new EnterStringForm(); dialog.MultiLine = true; dialog.SelectedString = value; dialog.ShowDialog(); return dialog.SelectedString; }
private void NewControlElement_Click(object sender, EventArgs e) { if (dialogTreeView.SelectedNode == null) { return; } XmlNode node = dialogTreeView.SelectedNode.Tag as XmlNode; if (node == null) { return; } // Get new name, and add control EnterStringForm frm = new EnterStringForm(); frm.Text = "Enter new Control name"; if (DialogResult.OK == frm.ShowDialog()) { WixFiles.UndoManager.BeginNewCommandRange(); MenuItem item = sender as MenuItem; XmlElement newControl = null; XmlNode parentNode = node; if (node.Name == "Dialog") { newControl = node.OwnerDocument.CreateElement("Control", WixFiles.WixNamespaceUri); if (item != otherMenuItem) { XmlAttribute newAttr = node.OwnerDocument.CreateAttribute("Type"); newAttr.Value = item.Text; newControl.Attributes.Append(newAttr); ArrayList newElementStrings = WixFiles.GetXsdSubElements(item.Text); if (newElementStrings.Count > 0) { newElementStrings.Sort(); newAttr = WixFiles.WxsDocument.CreateAttribute("Property"); newAttr.Value = frm.SelectedString + "_Prop"; newControl.Attributes.Append(newAttr); } } XmlAttribute idAttr = node.OwnerDocument.CreateAttribute("Id"); idAttr.Value = frm.SelectedString; newControl.Attributes.Append(idAttr); } else { // Find or create the type node (array) string strType = node.Attributes["Type"].Value; ArrayList newElementStrings = WixFiles.GetXsdSubElements(strType); if (newElementStrings.Count <= 0) // Shouldn't happen! return; parentNode = null; foreach (XmlNode child in node.ChildNodes) { if (child.Name == strType) { // Already have a node named as the control type parentNode = child; break; } } if (parentNode == null) { parentNode = node.OwnerDocument.CreateElement(strType, WixFiles.WixNamespaceUri); XmlAttribute newAttr = node.OwnerDocument.CreateAttribute("Property"); newAttr.Value = node.Attributes["Property"].Value; parentNode.Attributes.Append(newAttr); InsertNewXmlNode(node, parentNode); } newControl = node.OwnerDocument.CreateElement(item.Text, WixFiles.WixNamespaceUri); XmlAttribute idAttr = node.OwnerDocument.CreateAttribute("Text"); idAttr.Value = frm.SelectedString; newControl.Attributes.Append(idAttr); } SetDefaultValues(newControl, parentNode); InsertNewXmlNode(parentNode, newControl); TreeNode control = new TreeNode(frm.SelectedString); control.Tag = newControl; control.ImageIndex = GetImageIndex(newControl); control.SelectedImageIndex = control.ImageIndex; dialogTreeView.SelectedNode.Nodes.Add(control); dialogTreeView.SelectedNode = control; ShowWixProperties(newControl); ShowWixDialog(GetDialogNode(node)); } }
public void CopyDialogItem(XmlNode dialogToCopy) { EnterStringForm frm = new EnterStringForm(); frm.Text = "Enter new Dialog name"; if (DialogResult.OK == frm.ShowDialog()) { WixFiles.UndoManager.BeginNewCommandRange(); XmlNode ui = ElementLocator.GetUIElement(WixFiles); if (ui == null) { MessageBox.Show("No location found to add UI element, need element like module or product!"); return; } XmlNode dialog = GetDialogNode(frm.SelectedString); if (dialog != null) { MessageBox.Show(String.Format("Dialog with the ID '{0}' already exists.", frm.SelectedString)); return; } if (dialogToCopy == null) { dialog = WixFiles.WxsDocument.CreateElement("Dialog", WixFiles.WixNamespaceUri); XmlAttribute att = WixFiles.WxsDocument.CreateAttribute("Id"); att.Value = frm.SelectedString; dialog.Attributes.Append(att); att = WixFiles.WxsDocument.CreateAttribute("Width"); att.Value = "370"; dialog.Attributes.Append(att); att = WixFiles.WxsDocument.CreateAttribute("Height"); att.Value = "270"; dialog.Attributes.Append(att); } else { dialog = WixFiles.WxsDocument.ImportNode(dialogToCopy, true); dialog.Attributes["Id"].Value = frm.SelectedString; } InsertNewXmlNode(ui, dialog); ListViewItem item = new ListViewItem(frm.SelectedString); item.Tag = dialog; wxsDialogs.Items.Add(item); item.Selected = true; item.Focused = true; item.EnsureVisible(); wxsDialogs.Focus(); } }
void EditDialog_NewControl(XmlNode item, Point position, string controlType) { // Get new name, and add control EnterStringForm frm = new EnterStringForm(); frm.Text = "Enter new Control name"; if (DialogResult.OK == frm.ShowDialog(this)) { WixFiles.UndoManager.BeginNewCommandRange(); XmlElement newControl = null; XmlNode parentNode = item; newControl = item.OwnerDocument.CreateElement("Control", WixFiles.WixNamespaceUri); XmlAttribute newAttr = item.OwnerDocument.CreateAttribute("Type"); newAttr.Value = controlType; newControl.Attributes.Append(newAttr); ArrayList newElementStrings = WixFiles.GetXsdSubElements(controlType); if (newElementStrings.Count > 0) { newElementStrings.Sort(); newAttr = WixFiles.WxsDocument.CreateAttribute("Property"); newAttr.Value = frm.SelectedString + "_Prop"; newControl.Attributes.Append(newAttr); } XmlAttribute idAttr = item.OwnerDocument.CreateAttribute("Id"); idAttr.Value = frm.SelectedString; newControl.Attributes.Append(idAttr); SetDefaultValues(newControl, parentNode); newControl.SetAttribute("X", DialogGenerator.PixelsToDialogUnitsWidth(position.X).ToString()); newControl.SetAttribute("Y", DialogGenerator.PixelsToDialogUnitsHeight(position.Y).ToString()); InsertNewXmlNode(parentNode, newControl); TreeNode control = new TreeNode(frm.SelectedString); control.Tag = newControl; control.ImageIndex = GetImageIndex(controlType); control.SelectedImageIndex = control.ImageIndex; dialogTreeView.Nodes[0].Nodes.Add(control); dialogTreeView.SelectedNode = control; ShowWixProperties(newControl); ShowWixDialog(GetDialogNode(item)); } }
private void editFind_Click(object sender, System.EventArgs e) { EnterStringForm frm = new EnterStringForm(); frm.Text = "Find what text:"; if (DialogResult.OK == frm.ShowDialog()) { string search = frm.SelectedString; ShowSearchPanel(); searchPanel.Search(wixFiles, search); } }
public virtual void OnRenamePropertyGridItem(object sender, EventArgs e) { XmlNode element = GetSelectedGridObject(); if (element != null) { XmlAttribute att = element.Attributes[CurrentKeyName]; EnterStringForm frm = new EnterStringForm(att.Value); frm.Text = "Enter Name"; if (DialogResult.OK == frm.ShowDialog()) { WixFiles.UndoManager.BeginNewCommandRange(); att.Value = frm.SelectedString; RefreshGrid(); ShowNode(att); } } }
public virtual void OnNewPropertyGridItem(object sender, EventArgs e) { if (CurrentParent == null) { MessageBox.Show(String.Format("No location found to add \"{0}\" element, need element like module or product!", CurrentElementName)); return; } EnterStringForm frm = new EnterStringForm(); frm.Text = "Enter Resource Name"; if (DialogResult.OK == frm.ShowDialog()) { WixFiles.UndoManager.BeginNewCommandRange(); XmlElement newProp = WixFiles.WxsDocument.CreateElement(CurrentElementName, WixFiles.WixNamespaceUri); XmlAttribute newAttr = WixFiles.WxsDocument.CreateAttribute(CurrentKeyName); newAttr.Value = frm.SelectedString; newProp.Attributes.Append(newAttr); if (currentValueName != null) { newAttr = WixFiles.WxsDocument.CreateAttribute(currentValueName); newProp.Attributes.Append(newAttr); } InsertNewXmlNode(CurrentParent, newProp); RefreshGrid(frm.SelectedString); } }
private void NewFolder() { EnterStringForm frm = new EnterStringForm(); frm.Text = "Enter Directory Name"; if (DialogResult.OK == frm.ShowDialog()) { XmlNode node = tree.SelectedNode.Tag as XmlNode; XmlElement newDirectory = node.OwnerDocument.CreateElement("Directory", WixFiles.WixNamespaceUri); newDirectory.SetAttribute("Name", frm.SelectedString); newDirectory.SetAttribute("Id", FileImport.GenerateValidIdentifier(frm.SelectedString, newDirectory, Wizard.WixFiles)); node.AppendChild(newDirectory); TreeNode treeNode = new TreeNode(); treeNode.Text = frm.SelectedString; treeNode.ImageIndex = ImageListFactory.GetImageIndex("Directory"); treeNode.SelectedImageIndex = treeNode.ImageIndex; treeNode.SelectedImageIndex = treeNode.ImageIndex; treeNode.Tag = newDirectory; tree.SelectedNode.Nodes.Add(treeNode); tree.SelectedNode.Expand(); treeNode.EnsureVisible(); } }
private void newComponentMenuItem_Click(object sender, EventArgs e) { XmlElement selectedNode = tree.SelectedNode.Tag as XmlElement; if (selectedNode == null) { return; } EnterStringForm frm = new EnterStringForm(); frm.Text = "Enter component id"; if (DialogResult.OK == frm.ShowDialog()) { XmlElement newProp = Wizard.WixFiles.WxsDocument.CreateElement("Component", WixFiles.WixNamespaceUri); newProp.SetAttribute("Id", frm.SelectedString); newProp.SetAttribute("DiskId", "1"); newProp.SetAttribute("KeyPath", "yes"); newProp.SetAttribute("Guid", Guid.NewGuid().ToString("D")); selectedNode.AppendChild(newProp); TreeNode newNode = new TreeNode(); newNode.Text = frm.SelectedString; newNode.ImageIndex = ImageListFactory.GetImageIndex("Component"); newNode.SelectedImageIndex = newNode.ImageIndex; newNode.Tag = newProp; newNode.EnsureVisible(); tree.SelectedNode.Nodes.Add(newNode); tree.SelectedNode.Expand(); } }