public void InitFixture() { mockXmlTreeView = new MockXmlTreeView(); XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(SchemaDataItems, DefaultSchemaCompletionData, DefaultNamespacePrefix); editor = new XmlTreeEditor(mockXmlTreeView, completionDataProvider); editor.LoadXml(GetXml()); }
public void SetUpFixture() { using (XmlTreeViewContainerControl treeViewContainer = new XmlTreeViewContainerControl()) { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(new XmlSchemaCompletionDataCollection(), null, String.Empty); treeViewContainer.LoadXml("<test/>", completionDataProvider); doc = treeViewContainer.Document; XmlTreeViewControl treeView = treeViewContainer.TreeView; treeViewContainer.Document = doc; initialElementSelected = treeView.SelectedElement; initialIsElementSelected = treeView.IsElementSelected; // Set the document element again to make sure the existing node // is removed. doc.LoadXml("<root/>"); treeViewContainer.Document = null; treeViewContainer.Document = doc; documentElement = treeViewContainer.Document.DocumentElement; rootNode = (XmlElementTreeNode)treeView.Nodes[0]; nodeCount = treeView.Nodes.Count; } }
public void Init() { treeViewContainer = new XmlTreeViewContainerControl(); XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); XmlSchemaCompletionData xhtmlSchema = new XmlSchemaCompletionData(reader); XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, xhtmlSchema, String.Empty); treeViewContainer.LoadXml("<!-- comment --><html><body class='a'><p>Text</p></body></html>", provider); doc = treeViewContainer.Document; treeView = treeViewContainer.TreeView; commentTreeNode = (XmlCommentTreeNode)treeView.Nodes[0]; htmlTreeNode = (XmlElementTreeNode)treeView.Nodes[1]; htmlTreeNode.Expanding(); bodyTreeNode = (XmlElementTreeNode)htmlTreeNode.Nodes[0]; bodyTreeNode.Expanding(); paraTreeNode = (XmlElementTreeNode)bodyTreeNode.Nodes[0]; paraTreeNode.Expanding(); textTreeNode = (XmlTextTreeNode)paraTreeNode.Nodes[0]; }
public void SetUp() { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(new XmlSchemaCompletionDataCollection(), null, String.Empty); treeViewContainerControl = new XmlTreeViewContainerControl(); treeView = treeViewContainerControl.TreeView; treeViewContainerControl.LoadXml(GetXml(), completionDataProvider); doc = treeViewContainerControl.Document; clipboardHandler = treeViewContainerControl as IClipboardHandler; htmlElement = doc.DocumentElement; bodyElement = htmlElement.FirstChild as XmlElement; paragraphElement = bodyElement.SelectSingleNode("p") as XmlElement; paragraphText = paragraphElement.SelectSingleNode("text()") as XmlText; bodyComment = bodyElement.SelectSingleNode("comment()") as XmlComment; htmlTreeNode = treeView.Nodes[0] as XmlElementTreeNode; htmlTreeNode.PerformInitialization(); bodyTreeNode = htmlTreeNode.FirstNode as XmlElementTreeNode; bodyTreeNode.PerformInitialization(); bodyCommentTreeNode = bodyTreeNode.FirstNode as XmlCommentTreeNode; paragraphTreeNode = bodyTreeNode.LastNode as XmlElementTreeNode; paragraphTreeNode.PerformInitialization(); paragraphTextTreeNode = paragraphTreeNode.FirstNode as XmlTextTreeNode; }
public void SetUp() { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(new XmlSchemaCompletionDataCollection(), null, String.Empty); treeViewContainerControl = new XmlTreeViewContainerControl(); treeView = treeViewContainerControl.TreeView; treeViewContainerControl.LoadXml("<root><child></child></root>", completionDataProvider); doc = treeViewContainerControl.Document; }
public override void FixtureInit() { XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); schemas.Add(SchemaCompletionData); XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, SchemaCompletionData, String.Empty); string xml = "<note xmlns='http://www.w3schools.com' name=''></note>"; schemaAttribute = (XmlSchemaAttribute)XmlView.GetSchemaObjectSelected(xml, xml.IndexOf("name"), provider); }
protected override void LoadFromPrimary() { LoggingService.Debug("XmlTreeView.LoadFromPrimary"); XmlEditorControl xmlEditor = xmlView.XmlEditor; XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(xmlEditor.SchemaCompletionDataItems, xmlEditor.DefaultSchemaCompletionData, xmlEditor.DefaultNamespacePrefix); treeViewContainer.LoadXml(xmlView.Text, completionDataProvider); xmlView.CheckIsWellFormed(); }
public void SetUpFixture() { schemas = new XmlSchemaCompletionDataCollection(); XmlSchemaCompletionData completionData = new XmlSchemaCompletionData(ResourceManager.GetXsdSchema()); expectedNamespace = completionData.NamespaceUri; completionData.FileName = @"C:\Schemas\MySchema.xsd"; schemas.Add(completionData); provider = new XmlCompletionDataProvider(schemas, completionData, String.Empty); }
public override void FixtureInit() { XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); schemas.Add(SchemaCompletionData); XmlSchemaCompletionData xsdSchemaCompletionData = new XmlSchemaCompletionData(ResourceManager.GetXsdSchema()); schemas.Add(xsdSchemaCompletionData); XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, xsdSchemaCompletionData, String.Empty); string xml = GetSchema(); int index = xml.IndexOf("ref=\"coreattrs\""); index = xml.IndexOf("coreattrs", index); schemaAttributeGroup = (XmlSchemaAttributeGroup)XmlView.GetSchemaObjectSelected(xml, index, provider, SchemaCompletionData); }
public override void FixtureInit() { XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); schemas.Add(SchemaCompletionData); XmlSchemaCompletionData xsdSchemaCompletionData = new XmlSchemaCompletionData(ResourceManager.GetXsdSchema()); schemas.Add(xsdSchemaCompletionData); XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, xsdSchemaCompletionData, String.Empty); string xml = GetSchema(); int index = xml.IndexOf("type=\"dir\"/>"); index = xml.IndexOf("dir", index); schemaSimpleType = (XmlSchemaSimpleType)XmlView.GetSchemaObjectSelected(xml, index, provider, SchemaCompletionData); }
public override void FixtureInit() { XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); schemas.Add(SchemaCompletionData); XmlSchemaCompletionData xsdSchemaCompletionData = new XmlSchemaCompletionData(ResourceManager.GetXsdSchema()); schemas.Add(xsdSchemaCompletionData); XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, xsdSchemaCompletionData, String.Empty); string xml = GetSchema(); int index = xml.IndexOf("ref=\"xs:list"); index = xml.IndexOf("xs", index); referencedSchemaElement = (XmlSchemaElement)XmlView.GetSchemaObjectSelected(xml, index, provider, SchemaCompletionData); }
/// <summary> /// Displays the specified xml as a tree. /// </summary> public void LoadXml(string xml, XmlCompletionDataProvider completionDataProvider) { textBox.Clear(); IsAttributesGridVisible = true; ClearAttributes(); editor = new XmlTreeEditor(this, completionDataProvider); editor.LoadXml(xml); // Expand document element node. if (xmlElementTreeView.Nodes.Count > 0) { xmlElementTreeView.Nodes[0].Expand(); } }
public void SetUpFixture() { Form parentForm = new Form(); parentForm.CreateControl(); XmlSchemaCompletionData schema = new XmlSchemaCompletionData(ResourceManager.GetXhtmlStrictSchema()); XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); schemas.Add(schema); provider = new XmlCompletionDataProvider(schemas, schema, String.Empty); TextEditorControl textEditor = new TextEditorControl(); completionDataItems = provider.GenerateCompletionData(@"C:\Test.xml", textEditor.ActiveTextAreaControl.TextArea, '<'); using (CodeCompletionWindow completionWindow = CodeCompletionWindow.ShowCompletionWindow(parentForm, textEditor, @"C:\Test.xml", provider, '<')) { CodeCompletionListView listView = (CodeCompletionListView)completionWindow.Controls[0]; selectedCompletionData = listView.SelectedCompletionData; completionWindow.Close(); } }
void ShowCompletionWindow(char ch) { if (IsCodeCompletionWindowOpen) { codeCompletionWindow.Close(); } if (IsCodeCompletionEnabled) { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(schemaCompletionDataItems, defaultSchemaCompletionData, defaultNamespacePrefix); codeCompletionWindow = CodeCompletionWindow.ShowCompletionWindow(ParentForm, this, FileName, completionDataProvider, ch, XmlEditorAddInOptions.ShowSchemaAnnotation, false); if (codeCompletionWindow != null) { codeCompletionWindow.Closed += new EventHandler(CodeCompletionWindowClosed); } } }
public void Init() { treeViewContainer = new DerivedXmlTreeViewContainerControl(); XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); XmlSchemaCompletionData xhtmlSchema = new XmlSchemaCompletionData(reader); XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); XmlCompletionDataProvider provider = new XmlCompletionDataProvider(schemas, xhtmlSchema, String.Empty); treeViewContainer.LoadXml("<html><body></body></html>", provider); doc = treeViewContainer.Document; treeView = treeViewContainer.TreeView; htmlTreeNode = (XmlElementTreeNode)treeView.Nodes[0]; htmlTreeNode.Expanding(); bodyTreeNode = (XmlElementTreeNode)htmlTreeNode.Nodes[0]; bodyElement = (XmlElement)doc.SelectSingleNode("/html/body"); }
public void SetUpFixture() { using (XmlTreeViewContainerControl treeViewContainer = new XmlTreeViewContainerControl()) { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(new XmlSchemaCompletionDataCollection(), null, String.Empty); treeViewContainer.LoadXml("<root/>", completionDataProvider); doc = treeViewContainer.Document; XmlTreeViewControl treeView = treeViewContainer.TreeView; //treeView.DocumentElement = doc.DocumentElement; rootNode = (XmlElementTreeNode)treeView.Nodes[0]; // No node selected in treeview - adding a child // node should do nothing. treeView.SelectedNode = null; XmlElement testElement = doc.CreateElement("test"); treeViewContainer.AppendChildElement(testElement); treeView.SelectedNode = rootNode; XmlElement childElement = doc.CreateElement("child"); treeViewContainer.AppendChildElement(childElement); // No node selected in treeview - inserting a node // node should do nothing. treeView.SelectedNode = null; treeViewContainer.AppendChildElement(testElement); XmlElementTreeNode childNode = (XmlElementTreeNode)rootNode.Nodes[0]; treeView.SelectedNode = childNode; XmlElement beforeElement = doc.CreateElement("before"); treeViewContainer.InsertElementBefore(beforeElement); // No node selected in treeview - inserting a node // node should do nothing. treeView.SelectedNode = null; treeViewContainer.AppendChildElement(testElement); treeView.SelectedNode = childNode; XmlElement afterElement = doc.CreateElement("after"); treeViewContainer.InsertElementAfter(afterElement); } }
public void SetUp() { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(new XmlSchemaCompletionDataCollection(), null, String.Empty); treeViewContainerControl = new XmlTreeViewContainerControl(); treeView = treeViewContainerControl.TreeView; treeViewContainerControl.LoadXml("<root><top>text</top><bottom><child>text</child></bottom></root>", completionDataProvider); doc = treeViewContainerControl.Document; ExtTreeNode rootNode = (ExtTreeNode)treeView.Nodes[0]; rootNode.Expanding(); topElementTreeNode = (XmlElementTreeNode)rootNode.Nodes[0]; topElementTreeNode.Expanding(); topTextTreeNode = (XmlTextTreeNode)topElementTreeNode.Nodes[0]; ExtTreeNode bottomNode = (ExtTreeNode)rootNode.Nodes[1]; bottomNode.Expanding(); childElementTreeNode = (XmlElementTreeNode)bottomNode.Nodes[0]; childElementTreeNode.Expanding(); }
public void Init() { treeViewContainer = new DerivedXmlTreeViewContainerControl(); treeViewContainer.DirtyChanged += TreeViewContainerDirtyChanged; XmlTextReader reader = ResourceManager.GetXhtmlStrictSchema(); XmlSchemaCompletionData xhtmlSchema = new XmlSchemaCompletionData(reader); XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); provider = new XmlCompletionDataProvider(schemas, xhtmlSchema, String.Empty); treeViewContainer.LoadXml("<html id='a'>text<body></body></html>", provider); doc = treeViewContainer.Document; treeView = treeViewContainer.TreeView; htmlTreeNode = (XmlElementTreeNode)treeView.Nodes[0]; htmlTreeNode.Expanding(); textTreeNode = (XmlTextTreeNode)htmlTreeNode.Nodes[0]; splitContainer = (SplitContainer)treeViewContainer.Controls["splitContainer"]; textBox = (RichTextBox)splitContainer.Panel2.Controls["textBox"]; errorMessageTextBox = (RichTextBox)splitContainer.Panel2.Controls["errorMessageTextBox"]; attributesGrid = (PropertyGrid)splitContainer.Panel2.Controls["attributesGrid"]; }
public void SetUp() { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(new XmlSchemaCompletionDataCollection(), null, String.Empty); treeViewContainer = new DerivedXmlTreeViewContainerControl(); treeViewContainer.LoadXml("<!-- Root comment --><root><!-- Child comment --><child></child></root>", completionDataProvider); doc = treeViewContainer.Document; treeView = treeViewContainer.TreeView; // Get the root comment node in the tree. rootCommentNode = (XmlComment)doc.FirstChild; rootCommentTreeNode = treeView.Nodes[0] as XmlCommentTreeNode; // Get the child comment node in the tree. rootElementTreeNode = (XmlElementTreeNode)treeView.Nodes[1]; rootElementTreeNode.Expanding(); rootElement = rootElementTreeNode.XmlElement; childCommentTreeNode = rootElementTreeNode.Nodes[0] as XmlCommentTreeNode; childCommentNode = (XmlComment)rootElementTreeNode.XmlElement.FirstChild; childElementTreeNode = rootElementTreeNode.Nodes[1] as XmlElementTreeNode; childElement = childElementTreeNode.XmlElement; }
void ShowCompletionWindow(char ch) { if (IsCodeCompletionWindowOpen) { codeCompletionWindow.Close(); } if (IsCodeCompletionEnabled) { XmlCompletionDataProvider completionDataProvider = new XmlCompletionDataProvider(schemaCompletionDataItems, defaultSchemaCompletionData, defaultNamespacePrefix); // codeCompletionWindow = CodeCompletionWindow.ShowCompletionWindow(ParentForm, this, FileName, completionDataProvider, ch, XmlEditorAddInOptions.ShowSchemaAnnotation, false); codeCompletionWindow = CodeCompletionWindow.ShowCompletionWindow(ParentForm, this, FileName, completionDataProvider, ch, true, false); if (codeCompletionWindow != null) { codeCompletionWindow.Closed += new EventHandler(CodeCompletionWindowClosed); } } }
/// <summary> /// If the attribute value found references another item in the schema /// return this instead of the attribute schema object. For example, if the /// user can select the attribute value and the code will work out the schema object pointed to by the ref /// or type attribute: /// /// xs:element ref="ref-name" /// xs:attribute type="type-name" /// </summary> /// <returns> /// The <paramref name="attribute"/> if no schema object was referenced. /// </returns> static XmlSchemaObject GetSchemaObjectReferenced(string xml, int index, XmlCompletionDataProvider provider, XmlSchemaCompletionData currentSchemaCompletionData, XmlSchemaElement element, XmlSchemaAttribute attribute) { XmlSchemaObject schemaObject = null; if (IsXmlSchemaNamespace(element)) { // Find attribute value. string attributeValue = XmlParser.GetAttributeValueAtIndex(xml, index); if (attributeValue.Length == 0) { return attribute; } if (attribute.Name == "ref") { schemaObject = FindSchemaObjectReference(attributeValue, provider, currentSchemaCompletionData, element.Name); } else if (attribute.Name == "type") { schemaObject = FindSchemaObjectType(attributeValue, provider, currentSchemaCompletionData, element.Name); } } if (schemaObject != null) { return schemaObject; } return attribute; }
/// <summary> /// Attempts to locate the type name in the specified schema. /// </summary> /// <param name="name">The type to look up.</param> /// <param name="schemaCompletionData">The schema completion data to use to /// find the type.</param> /// <param name="elementName">The element to determine what sort of type it is /// (e.g. group, attribute, element).</param> /// <returns><see langword="null"/> if no match can be found.</returns> static XmlSchemaObject FindSchemaObjectType(string name, XmlCompletionDataProvider provider, XmlSchemaCompletionData schemaCompletionData, string elementName) { QualifiedName qualifiedName = schemaCompletionData.CreateQualifiedName(name); XmlSchemaCompletionData qualifiedNameSchema = provider.FindSchema(qualifiedName.Namespace); if (qualifiedNameSchema != null) { schemaCompletionData = qualifiedNameSchema; } switch (elementName) { case "element": return schemaCompletionData.FindComplexType(qualifiedName); case "attribute": return schemaCompletionData.FindSimpleType(qualifiedName.Name); } return null; }
/// <summary> /// Finds the definition of the xml element or attribute under the cursor /// in the corresponding schema and then displays that schema and the definition /// found. /// </summary> public void GoToSchemaDefinition() { // Find schema object for selected xml element or attribute. XmlCompletionDataProvider provider = new XmlCompletionDataProvider(xmlEditor.SchemaCompletionDataItems, xmlEditor.DefaultSchemaCompletionData, xmlEditor.DefaultNamespacePrefix); XmlSchemaCompletionData currentSchemaCompletionData = provider.FindSchemaFromFileName(PrimaryFileName); XmlSchemaObject schemaObject = GetSchemaObjectSelected(Text, xmlEditor.ActiveTextAreaControl.Caret.Offset, provider, currentSchemaCompletionData); // Open schema. if (schemaObject != null && schemaObject.SourceUri != null && schemaObject.SourceUri.Length > 0) { string fileName = schemaObject.SourceUri.Replace("file:///", String.Empty); FileService.JumpToFilePosition(fileName, schemaObject.LineNumber - 1, schemaObject.LinePosition - 1); } }
/// <summary> /// Gets the XmlSchemaObject that defines the currently selected xml element or /// attribute. /// </summary> /// <param name="text">The complete xml text.</param> /// <param name="index">The current cursor index.</param> /// <param name="provider">The completion data provider</param> /// <param name="currentSchemaCompletionData">This is the schema completion data for the /// schema currently being displayed. This can be null if the document is /// not a schema.</param> public static XmlSchemaObject GetSchemaObjectSelected(string xml, int index, XmlCompletionDataProvider provider, XmlSchemaCompletionData currentSchemaCompletionData) { // Find element under cursor. XmlElementPath path = XmlParser.GetActiveElementStartPathAtIndex(xml, index); string attributeName = XmlParser.GetAttributeNameAtIndex(xml, index); // Find schema definition object. XmlSchemaCompletionData schemaCompletionData = provider.FindSchema(path); XmlSchemaObject schemaObject = null; if (schemaCompletionData != null) { XmlSchemaElement element = schemaCompletionData.FindElement(path); schemaObject = element; if (element != null) { if (attributeName.Length > 0) { XmlSchemaAttribute attribute = schemaCompletionData.FindAttribute(element, attributeName); if (attribute != null) { if (currentSchemaCompletionData != null) { schemaObject = GetSchemaObjectReferenced(xml, index, provider, currentSchemaCompletionData, element, attribute); } else { schemaObject = attribute; } } } return schemaObject; } } return null; }
/// <summary> /// Gets the XmlSchemaObject that defines the currently selected xml element or /// attribute. /// </summary> /// <param name="text">The complete xml text.</param> /// <param name="index">The current cursor index.</param> /// <param name="provider">The completion data provider</param> public static XmlSchemaObject GetSchemaObjectSelected(string xml, int index, XmlCompletionDataProvider provider) { return GetSchemaObjectSelected(xml, index, provider, null); }
public XmlTreeEditor(IXmlTreeView view, XmlCompletionDataProvider completionDataProvider) { this.view = view; this.completionDataProvider = completionDataProvider; }
public void Init() { XmlSchemaCompletionDataCollection schemas = new XmlSchemaCompletionDataCollection(); provider = new XmlCompletionDataProvider(schemas, null, null); }