diff --git a/ICSharpCode.NRefactory.Demo/ICSharpCode.NRefactory.Demo.csproj b/ICSharpCode.NRefactory.Demo/ICSharpCode.NRefactory.Demo.csproj
index 7c19b9bca4..f86c3cfb88 100644
--- a/ICSharpCode.NRefactory.Demo/ICSharpCode.NRefactory.Demo.csproj
+++ b/ICSharpCode.NRefactory.Demo/ICSharpCode.NRefactory.Demo.csproj
@@ -40,6 +40,10 @@
+
+
+ CSDemo.cs
+
Form
@@ -60,6 +64,9 @@
+
+ CSDemo.cs
+
MainForm.cs
diff --git a/ICSharpCode.NRefactory.Demo/MainForm.Designer.cs b/ICSharpCode.NRefactory.Demo/MainForm.Designer.cs
index d51df63467..e99509be85 100644
--- a/ICSharpCode.NRefactory.Demo/MainForm.Designer.cs
+++ b/ICSharpCode.NRefactory.Demo/MainForm.Designer.cs
@@ -30,26 +30,29 @@ namespace ICSharpCode.NRefactory.Demo
///
private void InitializeComponent()
{
+ this.miniToolStrip = new System.Windows.Forms.ToolStrip();
this.tabPage1 = new System.Windows.Forms.TabPage();
- this.splitContainer1 = new System.Windows.Forms.SplitContainer();
- this.csharpCodeTextBox = new System.Windows.Forms.TextBox();
- this.resolveButton = new System.Windows.Forms.Button();
- this.csharpTreeView = new System.Windows.Forms.TreeView();
- this.csharpGenerateCodeButton = new System.Windows.Forms.Button();
- this.csharpParseButton = new System.Windows.Forms.Button();
this.tabControl1 = new System.Windows.Forms.TabControl();
- this.miniToolStrip = new System.Windows.Forms.ToolStrip();
+ this.csDemo1 = new ICSharpCode.NRefactory.Demo.CSDemo();
this.tabPage1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
- this.splitContainer1.Panel1.SuspendLayout();
- this.splitContainer1.Panel2.SuspendLayout();
- this.splitContainer1.SuspendLayout();
this.tabControl1.SuspendLayout();
this.SuspendLayout();
//
+ // miniToolStrip
+ //
+ this.miniToolStrip.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.miniToolStrip.AutoSize = false;
+ this.miniToolStrip.CanOverflow = false;
+ this.miniToolStrip.Dock = System.Windows.Forms.DockStyle.None;
+ this.miniToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+ this.miniToolStrip.Location = new System.Drawing.Point(13, 3);
+ this.miniToolStrip.Name = "miniToolStrip";
+ this.miniToolStrip.Size = new System.Drawing.Size(16, 25);
+ this.miniToolStrip.TabIndex = 3;
+ //
// tabPage1
//
- this.tabPage1.Controls.Add(this.splitContainer1);
+ this.tabPage1.Controls.Add(this.csDemo1);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
@@ -58,91 +61,6 @@ namespace ICSharpCode.NRefactory.Demo
this.tabPage1.Text = "C#";
this.tabPage1.UseVisualStyleBackColor = true;
//
- // splitContainer1
- //
- this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainer1.Location = new System.Drawing.Point(3, 3);
- this.splitContainer1.Name = "splitContainer1";
- this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
- //
- // splitContainer1.Panel1
- //
- this.splitContainer1.Panel1.Controls.Add(this.csharpCodeTextBox);
- //
- // splitContainer1.Panel2
- //
- this.splitContainer1.Panel2.Controls.Add(this.resolveButton);
- this.splitContainer1.Panel2.Controls.Add(this.csharpTreeView);
- this.splitContainer1.Panel2.Controls.Add(this.csharpGenerateCodeButton);
- this.splitContainer1.Panel2.Controls.Add(this.csharpParseButton);
- this.splitContainer1.Size = new System.Drawing.Size(501, 452);
- this.splitContainer1.SplitterDistance = 201;
- this.splitContainer1.TabIndex = 0;
- //
- // csharpCodeTextBox
- //
- this.csharpCodeTextBox.AcceptsReturn = true;
- this.csharpCodeTextBox.AcceptsTab = true;
- this.csharpCodeTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
- this.csharpCodeTextBox.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.csharpCodeTextBox.HideSelection = false;
- this.csharpCodeTextBox.Location = new System.Drawing.Point(0, 0);
- this.csharpCodeTextBox.Multiline = true;
- this.csharpCodeTextBox.Name = "csharpCodeTextBox";
- this.csharpCodeTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both;
- this.csharpCodeTextBox.Size = new System.Drawing.Size(501, 201);
- this.csharpCodeTextBox.TabIndex = 0;
- this.csharpCodeTextBox.Text = "using System;\r\nclass Test\r\n{\r\n public void Main(string[] args)\r\n {\r\n " +
- " Console.WriteLine(\"Hello, World\");\r\n }\r\n}";
- this.csharpCodeTextBox.WordWrap = false;
- this.csharpCodeTextBox.TextChanged += new System.EventHandler(this.CsharpCodeTextBoxTextChanged);
- this.csharpCodeTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CSharpCodeTextBoxKeyDown);
- //
- // resolveButton
- //
- this.resolveButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
- this.resolveButton.Location = new System.Drawing.Point(200, 3);
- this.resolveButton.Name = "resolveButton";
- this.resolveButton.Size = new System.Drawing.Size(100, 23);
- this.resolveButton.TabIndex = 3;
- this.resolveButton.Text = "Resolve";
- this.resolveButton.UseVisualStyleBackColor = true;
- this.resolveButton.Click += new System.EventHandler(this.ResolveButtonClick);
- //
- // csharpTreeView
- //
- this.csharpTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.csharpTreeView.HideSelection = false;
- this.csharpTreeView.Location = new System.Drawing.Point(3, 32);
- this.csharpTreeView.Name = "csharpTreeView";
- this.csharpTreeView.Size = new System.Drawing.Size(493, 212);
- this.csharpTreeView.TabIndex = 2;
- this.csharpTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.CSharpTreeViewAfterSelect);
- //
- // csharpGenerateCodeButton
- //
- this.csharpGenerateCodeButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
- this.csharpGenerateCodeButton.Location = new System.Drawing.Point(306, 2);
- this.csharpGenerateCodeButton.Name = "csharpGenerateCodeButton";
- this.csharpGenerateCodeButton.Size = new System.Drawing.Size(100, 23);
- this.csharpGenerateCodeButton.TabIndex = 1;
- this.csharpGenerateCodeButton.Text = "Generate";
- this.csharpGenerateCodeButton.UseVisualStyleBackColor = true;
- this.csharpGenerateCodeButton.Click += new System.EventHandler(this.CSharpGenerateCodeButtonClick);
- //
- // csharpParseButton
- //
- this.csharpParseButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
- this.csharpParseButton.Location = new System.Drawing.Point(94, 3);
- this.csharpParseButton.Name = "csharpParseButton";
- this.csharpParseButton.Size = new System.Drawing.Size(100, 23);
- this.csharpParseButton.TabIndex = 0;
- this.csharpParseButton.Text = "Parse";
- this.csharpParseButton.UseVisualStyleBackColor = true;
- this.csharpParseButton.Click += new System.EventHandler(this.CSharpParseButtonClick);
- //
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage1);
@@ -153,17 +71,13 @@ namespace ICSharpCode.NRefactory.Demo
this.tabControl1.Size = new System.Drawing.Size(515, 484);
this.tabControl1.TabIndex = 0;
//
- // miniToolStrip
+ // csDemo1
//
- this.miniToolStrip.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.miniToolStrip.AutoSize = false;
- this.miniToolStrip.CanOverflow = false;
- this.miniToolStrip.Dock = System.Windows.Forms.DockStyle.None;
- this.miniToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
- this.miniToolStrip.Location = new System.Drawing.Point(13, 3);
- this.miniToolStrip.Name = "miniToolStrip";
- this.miniToolStrip.Size = new System.Drawing.Size(16, 25);
- this.miniToolStrip.TabIndex = 3;
+ this.csDemo1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.csDemo1.Location = new System.Drawing.Point(3, 3);
+ this.csDemo1.Name = "csDemo1";
+ this.csDemo1.Size = new System.Drawing.Size(501, 452);
+ this.csDemo1.TabIndex = 0;
//
// MainForm
//
@@ -174,21 +88,11 @@ namespace ICSharpCode.NRefactory.Demo
this.Name = "MainForm";
this.Text = "NRefactory Demo";
this.tabPage1.ResumeLayout(false);
- this.splitContainer1.Panel1.ResumeLayout(false);
- this.splitContainer1.Panel1.PerformLayout();
- this.splitContainer1.Panel2.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
- this.splitContainer1.ResumeLayout(false);
this.tabControl1.ResumeLayout(false);
this.ResumeLayout(false);
}
- private System.Windows.Forms.Button resolveButton;
+ private ICSharpCode.NRefactory.Demo.CSDemo csDemo1;
private System.Windows.Forms.ToolStrip miniToolStrip;
- private System.Windows.Forms.TreeView csharpTreeView;
- private System.Windows.Forms.Button csharpParseButton;
- private System.Windows.Forms.Button csharpGenerateCodeButton;
- private System.Windows.Forms.TextBox csharpCodeTextBox;
- private System.Windows.Forms.SplitContainer splitContainer1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabControl tabControl1;
}
diff --git a/ICSharpCode.NRefactory.Demo/MainForm.cs b/ICSharpCode.NRefactory.Demo/MainForm.cs
index 285428d8ff..9633a00f12 100644
--- a/ICSharpCode.NRefactory.Demo/MainForm.cs
+++ b/ICSharpCode.NRefactory.Demo/MainForm.cs
@@ -29,200 +29,6 @@ namespace ICSharpCode.NRefactory.Demo
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
-
- csharpCodeTextBox.SelectAll();
- CSharpParseButtonClick(null, null);
- resolveButton.UseWaitCursor = true;
- ThreadPool.QueueUserWorkItem(
- delegate {
- builtInLibs.Value.ToString();
- BeginInvoke(new Action(delegate { resolveButton.UseWaitCursor = false; }));
- });
- }
-
- CompilationUnit compilationUnit;
-
- void CSharpParseButtonClick(object sender, EventArgs e)
- {
- CSharpParser parser = new CSharpParser();
- compilationUnit = parser.Parse(new StringReader(csharpCodeTextBox.Text));
- csharpTreeView.Nodes.Clear();
- foreach (var element in compilationUnit.Children) {
- csharpTreeView.Nodes.Add(MakeTreeNode(element));
- }
- SelectCurrentNode(csharpTreeView.Nodes);
- resolveButton.Enabled = true;
- }
-
- TreeNode MakeTreeNode(AstNode node)
- {
- TreeNode t = new TreeNode(GetNodeTitle(node));
- t.Tag = node;
- foreach (AstNode child in node.Children) {
- t.Nodes.Add(MakeTreeNode(child));
- }
- return t;
- }
-
- string GetNodeTitle(AstNode node)
- {
- StringBuilder b = new StringBuilder();
- b.Append(node.Role.ToString());
- b.Append(": ");
- b.Append(node.GetType().Name);
- bool hasProperties = false;
- foreach (PropertyInfo p in node.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance)) {
- if (p.Name == "NodeType" || p.Name == "IsNull")
- continue;
- if (p.PropertyType == typeof(string) || p.PropertyType.IsEnum || p.PropertyType == typeof(bool)) {
- if (!hasProperties) {
- hasProperties = true;
- b.Append(" (");
- } else {
- b.Append(", ");
- }
- b.Append(p.Name);
- b.Append(" = ");
- try {
- object val = p.GetValue(node, null);
- b.Append(val != null ? val.ToString() : "**null**");
- } catch (TargetInvocationException ex) {
- b.Append("**" + ex.InnerException.GetType().Name + "**");
- }
- }
- }
- if (hasProperties)
- b.Append(")");
- return b.ToString();
- }
-
- bool SelectCurrentNode(TreeNodeCollection c)
- {
- int selectionStart = csharpCodeTextBox.SelectionStart;
- int selectionEnd = selectionStart + csharpCodeTextBox.SelectionLength;
- foreach (TreeNode t in c) {
- AstNode node = t.Tag as AstNode;
- if (node != null
- && selectionStart >= GetOffset(csharpCodeTextBox, node.StartLocation)
- && selectionEnd <= GetOffset(csharpCodeTextBox, node.EndLocation))
- {
- if (selectionStart == selectionEnd
- && (selectionStart == GetOffset(csharpCodeTextBox, node.StartLocation)
- || selectionStart == GetOffset(csharpCodeTextBox, node.EndLocation)))
- {
- // caret is on border of this node; don't expand
- csharpTreeView.SelectedNode = t;
- } else {
- t.Expand();
- if (!SelectCurrentNode(t.Nodes))
- csharpTreeView.SelectedNode = t;
- }
- return true;
- }
- }
- return false;
- }
-
- void CSharpGenerateCodeButtonClick(object sender, EventArgs e)
- {
- StringWriter w = new StringWriter();
- OutputVisitor output = new OutputVisitor(w, new CSharpFormattingOptions());
- compilationUnit.AcceptVisitor(output, null);
- csharpCodeTextBox.Text = w.ToString();
- }
-
- int GetOffset(TextBox textBox, AstLocation location)
- {
- return textBox.GetFirstCharIndexFromLine(location.Line - 1) + location.Column - 1;
- }
-
- void CSharpTreeViewAfterSelect(object sender, TreeViewEventArgs e)
- {
- AstNode node = e.Node.Tag as AstNode;
- if (node != null) {
- int startOffset = GetOffset(csharpCodeTextBox, node.StartLocation);
- int endOffset = GetOffset(csharpCodeTextBox, node.EndLocation);
- csharpCodeTextBox.Select(startOffset, endOffset - startOffset);
- }
- }
-
- Lazy> builtInLibs = new Lazy>(
- delegate {
- Assembly[] assemblies = {
- typeof(object).Assembly, // mscorlib
- typeof(Uri).Assembly, // System.dll
- typeof(System.Linq.Enumerable).Assembly, // System.Core.dll
-// typeof(System.Xml.XmlDocument).Assembly, // System.Xml.dll
-// typeof(System.Drawing.Bitmap).Assembly, // System.Drawing.dll
-// typeof(Form).Assembly, // System.Windows.Forms.dll
- typeof(ICSharpCode.NRefactory.TypeSystem.IProjectContent).Assembly,
- };
- IProjectContent[] projectContents = new IProjectContent[assemblies.Length];
- Stopwatch total = Stopwatch.StartNew();
- Parallel.For(
- 0, assemblies.Length,
- delegate (int i) {
- Stopwatch w = Stopwatch.StartNew();
- CecilLoader loader = new CecilLoader();
- projectContents[i] = loader.LoadAssemblyFile(assemblies[i].Location);
- Debug.WriteLine(Path.GetFileName(assemblies[i].Location) + ": " + w.Elapsed);
- });
- Debug.WriteLine("Total: " + total.Elapsed);
- return projectContents;
- });
-
- void ResolveButtonClick(object sender, EventArgs e)
- {
- SimpleProjectContent project = new SimpleProjectContent();
- TypeSystemConvertVisitor convertVisitor = new TypeSystemConvertVisitor(project, "dummy.cs");
- compilationUnit.AcceptVisitor(convertVisitor, null);
- project.UpdateProjectContent(null, convertVisitor.ParsedFile.TopLevelTypeDefinitions, null, null);
-
- List projects = new List();
- projects.Add(project);
- projects.AddRange(builtInLibs.Value);
-
- using (var context = new CompositeTypeResolveContext(projects).Synchronize()) {
- CSharpResolver resolver = new CSharpResolver(context);
-
- IResolveVisitorNavigator navigator = null;
- if (csharpTreeView.SelectedNode != null) {
- navigator = new NodeListResolveVisitorNavigator(new[] { (AstNode)csharpTreeView.SelectedNode.Tag });
- }
- ResolveVisitor visitor = new ResolveVisitor(resolver, convertVisitor.ParsedFile, navigator);
- visitor.Scan(compilationUnit);
- csharpTreeView.BeginUpdate();
- ShowResolveResultsInTree(csharpTreeView.Nodes, visitor);
- csharpTreeView.EndUpdate();
- }
- }
-
- void ShowResolveResultsInTree(TreeNodeCollection c, ResolveVisitor v)
- {
- foreach (TreeNode t in c) {
- AstNode node = t.Tag as AstNode;
- if (node != null) {
- ResolveResult rr = v.GetResolveResult(node);
- if (rr != null)
- t.Text = GetNodeTitle(node) + " " + rr.ToString();
- else
- t.Text = GetNodeTitle(node);
- }
- ShowResolveResultsInTree(t.Nodes, v);
- }
- }
-
- void CSharpCodeTextBoxKeyDown(object sender, KeyEventArgs e)
- {
- if (e.Control && e.KeyCode == Keys.A) {
- e.Handled = true;
- csharpCodeTextBox.SelectAll();
- }
- }
-
- void CsharpCodeTextBoxTextChanged(object sender, EventArgs e)
- {
- resolveButton.Enabled = false;
}
}
}
diff --git a/ICSharpCode.NRefactory.Demo/VBAstView.cs b/ICSharpCode.NRefactory.Demo/VBAstView.cs
index 42be32e73b..a6e6f58aa5 100644
--- a/ICSharpCode.NRefactory.Demo/VBAstView.cs
+++ b/ICSharpCode.NRefactory.Demo/VBAstView.cs
@@ -39,89 +39,89 @@ namespace ICSharpCode.NRefactory.Demo
InitializeComponent();
}
- public void DeleteSelectedNode()
- {
- if (tree.SelectedNode is ElementNode) {
- INode element = (tree.SelectedNode as ElementNode).element;
- if (tree.SelectedNode.Parent is CollectionNode) {
- if (MessageBox.Show("Remove selected node from parent collection?", "Remove node", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
- == DialogResult.Yes)
- {
- IList col = (tree.SelectedNode.Parent as CollectionNode).collection;
- col.Remove(element);
- (tree.SelectedNode.Parent as CollectionNode).Update();
- }
- } else if (tree.SelectedNode.Parent is ElementNode) {
- if (MessageBox.Show("Set selected property to null?", "Remove node", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
- == DialogResult.Yes)
- {
- // get parent element
- element = (tree.SelectedNode.Parent as ElementNode).element;
- string propertyName = (string)tree.SelectedNode.Tag;
- element.GetType().GetProperty(propertyName).SetValue(element, null, null);
- (tree.SelectedNode.Parent as ElementNode).Update();
- }
- }
- } else if (tree.SelectedNode is CollectionNode) {
- if (MessageBox.Show("Remove all elements from selected collection?", "Clear collection", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
- == DialogResult.Yes)
- {
- IList col = (tree.SelectedNode as CollectionNode).collection;
- col.Clear();
- (tree.SelectedNode as CollectionNode).Update();
- }
- }
- }
-
- public void EditSelectedNode()
- {
- TreeNode node = tree.SelectedNode;
- while (!(node is ElementNode)) {
- if (node == null) {
- return;
- }
- node = node.Parent;
- }
- INode element = ((ElementNode)node).element;
- using (VBEditDialog dlg = new VBEditDialog(element)) {
- dlg.ShowDialog();
- }
- ((ElementNode)node).Update();
- }
-
- public void ApplyTransformation(IAstVisitor visitor)
- {
- if (tree.SelectedNode == tree.Nodes[0]) {
- unit.AcceptVisitor(visitor, null);
- UpdateTree();
- } else {
- string name = visitor.GetType().Name;
- ElementNode elementNode = tree.SelectedNode as ElementNode;
- CollectionNode collectionNode = tree.SelectedNode as CollectionNode;
- if (elementNode != null) {
- if (MessageBox.Show(("Apply " + name + " to selected element '" + elementNode.Text + "'?"),
- "Apply transformation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
- == DialogResult.Yes)
- {
- elementNode.element.AcceptVisitor(visitor, null);
- elementNode.Update();
- }
- } else if (collectionNode != null) {
- if (MessageBox.Show(("Apply " + name + " to all elements in selected collection '" + collectionNode.Text + "'?"),
- "Apply transformation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
- == DialogResult.Yes)
- {
- foreach (TreeNode subNode in collectionNode.Nodes) {
- if (subNode is ElementNode) {
- (subNode as ElementNode).element.AcceptVisitor(visitor, null);
- }
- }
- collectionNode.Update();
- }
- }
- }
- }
-
+// public void DeleteSelectedNode()
+// {
+// if (tree.SelectedNode is ElementNode) {
+// INode element = (tree.SelectedNode as ElementNode).element;
+// if (tree.SelectedNode.Parent is CollectionNode) {
+// if (MessageBox.Show("Remove selected node from parent collection?", "Remove node", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
+// == DialogResult.Yes)
+// {
+// IList col = (tree.SelectedNode.Parent as CollectionNode).collection;
+// col.Remove(element);
+// (tree.SelectedNode.Parent as CollectionNode).Update();
+// }
+// } else if (tree.SelectedNode.Parent is ElementNode) {
+// if (MessageBox.Show("Set selected property to null?", "Remove node", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
+// == DialogResult.Yes)
+// {
+// // get parent element
+// element = (tree.SelectedNode.Parent as ElementNode).element;
+// string propertyName = (string)tree.SelectedNode.Tag;
+// element.GetType().GetProperty(propertyName).SetValue(element, null, null);
+// (tree.SelectedNode.Parent as ElementNode).Update();
+// }
+// }
+// } else if (tree.SelectedNode is CollectionNode) {
+// if (MessageBox.Show("Remove all elements from selected collection?", "Clear collection", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
+// == DialogResult.Yes)
+// {
+// IList col = (tree.SelectedNode as CollectionNode).collection;
+// col.Clear();
+// (tree.SelectedNode as CollectionNode).Update();
+// }
+// }
+// }
+//
+// public void EditSelectedNode()
+// {
+// TreeNode node = tree.SelectedNode;
+// while (!(node is ElementNode)) {
+// if (node == null) {
+// return;
+// }
+// node = node.Parent;
+// }
+// INode element = ((ElementNode)node).element;
+// using (VBEditDialog dlg = new VBEditDialog(element)) {
+// dlg.ShowDialog();
+// }
+// ((ElementNode)node).Update();
+// }
+//
+// public void ApplyTransformation(IAstVisitor visitor)
+// {
+// if (tree.SelectedNode == tree.Nodes[0]) {
+// unit.AcceptVisitor(visitor, null);
+// UpdateTree();
+// } else {
+// string name = visitor.GetType().Name;
+// ElementNode elementNode = tree.SelectedNode as ElementNode;
+// CollectionNode collectionNode = tree.SelectedNode as CollectionNode;
+// if (elementNode != null) {
+// if (MessageBox.Show(("Apply " + name + " to selected element '" + elementNode.Text + "'?"),
+// "Apply transformation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
+// == DialogResult.Yes)
+// {
+// elementNode.element.AcceptVisitor(visitor, null);
+// elementNode.Update();
+// }
+// } else if (collectionNode != null) {
+// if (MessageBox.Show(("Apply " + name + " to all elements in selected collection '" + collectionNode.Text + "'?"),
+// "Apply transformation", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
+// == DialogResult.Yes)
+// {
+// foreach (TreeNode subNode in collectionNode.Nodes) {
+// if (subNode is ElementNode) {
+// (subNode as ElementNode).element.AcceptVisitor(visitor, null);
+// }
+// }
+// collectionNode.Update();
+// }
+// }
+// }
+// }
+//
static TreeNode CreateNode(object child)
{
if (child == null) {
@@ -164,9 +164,9 @@ namespace ICSharpCode.NRefactory.Demo
class ElementNode : TreeNode
{
- internal INode element;
+ internal AstNode element;
- public ElementNode(INode node)
+ public ElementNode(AstNode node)
{
this.element = node;
Update();
@@ -188,7 +188,7 @@ namespace ICSharpCode.NRefactory.Demo
}
}
- void AddProperties(Type type, INode node)
+ void AddProperties(Type type, AstNode node)
{
if (type == typeof(AbstractNode))
return;
diff --git a/ICSharpCode.NRefactory.Demo/VBDemo.cs b/ICSharpCode.NRefactory.Demo/VBDemo.cs
index d03a968376..46e989d391 100644
--- a/ICSharpCode.NRefactory.Demo/VBDemo.cs
+++ b/ICSharpCode.NRefactory.Demo/VBDemo.cs
@@ -25,7 +25,7 @@ namespace ICSharpCode.NRefactory.Demo
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
- ParseButtonClick(null, null);
+ //ParseButtonClick(null, null);
}
void ParseButtonClick(object sender, EventArgs e)
@@ -51,24 +51,5 @@ namespace ICSharpCode.NRefactory.Demo
codeView.Text = visitor.Text.Replace("\t", " ");
}
}
-
- void ClearSpecialsButtonClick(object sender, EventArgs e)
- {
- SetSpecials(new ISpecial[0]);
- }
-
- void EditNodeButtonClick(object sender, EventArgs e)
- {
- syntaxTree.EditSelectedNode();
- }
-
- void SetSpecials(IList specials)
- {
- savedSpecials = specials;
- if (specials.Count == 1)
- clearSpecialsButton.Text = "Clear 1 special";
- else
- clearSpecialsButton.Text = "Clear " + specials.Count + " specials";
- }
}
}