亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmltreepanel.cs

?? C#實現DHTML編輯器功能!
?? CS
字號:
// DINAMIC XML Editor
//
// Copyright (c) 2002-2003 Dusan Hlavaty
// mailto: duddo@atlas.cz
//
// This software is licensed under the terms of
// GNU General Public license
//
using System;
using System.Windows.Forms;
using System.Xml;

using Crownwood.Magic.Docking;

using XML_editor.MyForms;
using XML_editor.MyComponents;
using XML_editor.Common;
using XML_editor.TabPages;

namespace XML_editor.DockingPanels
{
	/// <summary>
	/// Dokovaci panel do ktoreho sa bude vykreslovat hierarchicka (stromova)
	/// struktura XML dokumentu.
	/// </summary>
	public class XMLTreePanel : Crownwood.Magic.Docking.Content
	{
	
		/// <summary>
		/// Odkaz na hlavny formular aplikacie
		/// </summary>
		private MainForm mainForm = null;

		private TreeView treeView = null;

		private Panel panel = null;

		private System.Windows.Forms.Label labelRefresh = new System.Windows.Forms.Label();

		/// <summary>
		/// <see cref="TextAreaTabPage"/>, ktora je prave zobrazena v strome
		/// </summary>
		private TextAreaTabPage textAreaTabPageInTree = null;

		// -------------------------------------------------------------------------
		/// <summary>
		/// Odkaz na hlavny formular aplikacie
		/// </summary>
		public MainForm MainForm
		{
			get 
			{
				return this.mainForm;
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Inicializuje dokovaci panel obsahujuci XML strom.
		/// </summary>
		/// <param name="mainForm">odkaz na hlavny formular aplikacie - <see cref="MainForm"/></param>
		/// <param name="manager">odkaz na <see cref="DockingManager"/>, ku ktoremu bude tento panel patrit</param>
		public XMLTreePanel(MainForm mainForm, DockingManager manager) : base(manager)
		{
			this.mainForm = mainForm;
			this.FullTitle = this.Title = "XML Tree";


			this.panel = new System.Windows.Forms.Panel();
			ImageList imageList = new System.Windows.Forms.ImageList();
			this.treeView = new TreeView();
			ImageButton buttonRefresh = new ImageButton();
			System.Windows.Forms.Label labelStatus = new System.Windows.Forms.Label();

			// 
			// panel
			// 
			this.panel.Controls.AddRange(new System.Windows.Forms.Control[] { buttonRefresh, labelStatus, this.labelRefresh,
																																	 this.treeView});
			this.panel.Name = "panel";
			this.panel.Size = new System.Drawing.Size(208, 312);

			//			
			//			imageList
			//
			imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
			imageList.ImageSize = new System.Drawing.Size(16, 16);
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.xml_tag1.png"));
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.xml_tag2.png"));
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.xml_tag3.png"));
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.xml_tag4.png"));
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.refresh.png"));
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.xml_tree.png"));
			imageList.Images.Add( IconProvider.LoadBitmap(this, "XML_editor.Icons.Error.png"));
			this.ImageList = imageList;
			this.ImageIndex = 5;

			//
			//			treeView
			//
			this.treeView.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
				| System.Windows.Forms.AnchorStyles.Left) 
				| System.Windows.Forms.AnchorStyles.Right);
			this.treeView.Location = new System.Drawing.Point(0, 40);
			this.treeView.Size = new System.Drawing.Size(208, 272);
			this.treeView.TabIndex = 0;
			this.treeView.ImageList = imageList;
			this.treeView.ImageIndex = this.treeView.SelectedImageIndex = -1;
			this.treeView.CausesValidation = false;
			this.treeView.DoubleClick += new System.EventHandler(this.treeView_DoubleClick);

			//
			//   buttonRefresh
			//
			buttonRefresh.Location = new System.Drawing.Point(10, 10);
			buttonRefresh.ImageList = imageList;
			buttonRefresh.ImageIndex = 4;
			buttonRefresh.Click += new System.EventHandler(this.Clicked_buttonRefresh);

			// 
			// labelStatus
			// 
			labelStatus.AutoSize = true;
			labelStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(238)));
			labelStatus.Location = new System.Drawing.Point(35, 14);
			labelStatus.Text = "Status:";

			// 
			// labelRefresh
			// 
			this.labelRefresh.AutoSize = true;
			this.labelRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(238)));
			this.labelRefresh.Location = new System.Drawing.Point(80, 14);
			this.labelRefresh.Text = String.Empty;

			this.Control = this.panel;

			// Zaradime sa do docking managera
			this.MainForm.DockingManager.Contents.Add(this);
			this.MainForm.DockingManager.AddContentWithState(this, Crownwood.Magic.Docking.State.DockRight);

			this.ActualTextAreaControlChanged(null, null);

			this.MainForm.ActualTextAreaControlChanged += new System.EventHandler(this.ActualTextAreaControlChanged);
			
			this.MainForm.TextAreaControlClosed += new TextAreaControlClosedHandler(this.TextAreaControlClosed);
//			TODO: Toto tam dorobit
			//txt.Document.DocumentChanged += new DLTextEditor.Document.DocumentAggregatorEventHandler(DocumentChanged);


		}
	
		// -------------------------------------------------------------------------
		/// <summary>
		/// Vyvola sa po zatvoreni nejakeho <see cref="XML_editor.TabPages.TextAreaTabPage"/>
		/// </summary>
		/// <param name="tab"><see cref="XML_editor.TabPages.TextAreaTabPage"/>, ktory sa zatvara.
		/// Ak je <c>null</c>, tak sa zatvaraju fsetky</param>
		private void TextAreaControlClosed(XML_editor.TabPages.TextAreaTabPage tab)
		{
			this.treeView.Nodes.Clear();
			this.textAreaTabPageInTree = null;
			this.labelRefresh.Text = String.Empty;
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Vyvola sa, PO zmene aktualneho <see cref="MainForm.ActualTextAreaControl"/>
		/// - teda ked uzivatel prepne na inu zalozku.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void ActualTextAreaControlChanged(object sender, System.EventArgs e)
		{
			if (this.MainForm.ActualTextAreaControl == null) 
			{
				this.panel.Enabled = false;
				this.treeView.Nodes.Clear();
				this.textAreaTabPageInTree = null;
				this.labelRefresh.Text = String.Empty;
			} 
			else 
			{
				this.panel.Enabled = true;
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Kliknutie na tlacidlo 'Refresh'
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Clicked_buttonRefresh(object sender, System.EventArgs e)
		{
			this.MainForm.OutputPanel.Clear();
			this.MainForm.TaskListPanel.Clear();
			if (this.textAreaTabPageInTree != null) 
			{
				this.textAreaTabPageInTree.TextAreaControl.Document.DocumentChanged -= new DLTextEditor.Document.DocumentAggregatorEventHandler(DocumentChanged);
				this.textAreaTabPageInTree = null;
			}
			
			this.textAreaTabPageInTree = null;
			this.MainForm.OutputPanel.AppendText("------ Tree generation started: File: " + this.MainForm.SelectedTabPage.TitleToShow + " ------\r\n");

				this.treeView.Nodes.Clear();
				this.treeView.SuspendLayout();
				string fullFileName = this.MainForm.ActualTextAreaControl.FileName;

				XmlTextReader reader = null;
				TreeNode rootNode	= null;

				try
				{  
					//Load the reader with the data file and ignore all white space nodes.         
					reader = new XmlTextReader(this.MainForm.ActualTextAreaControl.Document.GetStream());  //fullFileName);
					reader.WhitespaceHandling = WhitespaceHandling.None;
					reader.XmlResolver = null;
					reader.Namespaces = false;
					
					TreeNode newNode = null;
					TreeNode actualNode = null;
					rootNode = this.treeView.Nodes.Add(this.MainForm.SelectedTabPage.TitleToShow);
					rootNode.Tag = new Position(this.MainForm, fullFileName, 0, 0);
					actualNode = rootNode;
					actualNode.ImageIndex = actualNode.SelectedImageIndex = 5;
					this.treeView.Font = new System.Drawing.Font(this.treeView.Font, System.Drawing.FontStyle.Bold);
					System.Drawing.Font nodeFont = new System.Drawing.Font(this.treeView.Font, System.Drawing.FontStyle.Regular);

					//Parse the file and display each of the nodes.
					while (reader.Read())
					{
						switch (reader.NodeType)
						{
							case XmlNodeType.Element:
								if (reader.IsEmptyElement == false) 
								{
									newNode = actualNode.Nodes.Add("<"+reader.Name+" >");
									newNode.NodeFont = nodeFont;
									newNode.ImageIndex = newNode.SelectedImageIndex = 0;
									newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
									actualNode = newNode;
								} 
								else 
								{
									newNode = actualNode.Nodes.Add("<"+reader.Name+" />");
									newNode.NodeFont = nodeFont;
									newNode.ImageIndex = newNode.SelectedImageIndex = 3;
									newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
								}
								break;
							case XmlNodeType.Text:
								//Console.Write(reader.Value);
								break;
							case XmlNodeType.CDATA:
								newNode = actualNode.Nodes.Add("<![CDATA[...]>");
								newNode.NodeFont = nodeFont;
								newNode.ImageIndex = newNode.SelectedImageIndex = 1;
								newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
								break;
							case XmlNodeType.ProcessingInstruction:
								newNode = actualNode.Nodes.Add("<?"+reader.Name+" ?>");
								newNode.NodeFont = nodeFont;
								newNode.ImageIndex = newNode.SelectedImageIndex = 2;
								newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
								break;
							case XmlNodeType.Comment:
								newNode = actualNode.Nodes.Add("<!-- -->");
								newNode.NodeFont = nodeFont;
								newNode.ImageIndex = newNode.SelectedImageIndex = 1;
								newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
								break;
							case XmlNodeType.XmlDeclaration:
								newNode = actualNode.Nodes.Add("<?" + reader.Name + " " + reader.Value + "?>");
								newNode.NodeFont = nodeFont;
								newNode.ImageIndex = newNode.SelectedImageIndex = 2;
								newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
								break;
							case XmlNodeType.Document:
								break;
							case XmlNodeType.DocumentType:
								newNode = actualNode.Nodes.Add("<!DOCTYPE>");
								newNode.NodeFont = nodeFont;
								newNode.ImageIndex = newNode.SelectedImageIndex = 1;
								newNode.Tag = new Position(this.MainForm, fullFileName, reader.LineNumber, reader.LinePosition);
								break;
							case XmlNodeType.EntityReference:
//								TODO: Zisti co je toto !!!
//								Console.Write(reader.Name);
								break;
							case XmlNodeType.EndElement:
								actualNode = actualNode.Parent;
								break;
						} // switch
					} // while

					this.MainForm.OutputPanel.AppendTextLine("\r\nAction SUCCESSFUL");

					this.textAreaTabPageInTree = this.MainForm.SelectedTabPage;
					this.textAreaTabPageInTree.TextAreaControl.Document.DocumentChanged += new DLTextEditor.Document.DocumentAggregatorEventHandler(DocumentChanged);
					this.labelRefresh.Text = "OK";
				} 
				catch (UnauthorizedAccessException a)
				{
					rootNode.ImageIndex = rootNode.SelectedImageIndex = 6;
#if DEBUG
					System.Diagnostics.Debug.WriteLine("UnauthorizedAccessException a");
#endif
					this.MainForm.OutputPanel.AppendTextLine(a.Message);
					this.MainForm.TaskListPanel.AddTask(TaskType.Error, a.Message, fullFileName, 0, 0);
					this.labelRefresh.Text = "error";
				}
				catch (XmlException a)
				{
					rootNode.ImageIndex = rootNode.SelectedImageIndex = 6;
#if DEBUG
					System.Diagnostics.Debug.WriteLine("XmlException a");
#endif
					this.MainForm.OutputPanel.AppendTextLine(a.Message);
					this.MainForm.TaskListPanel.AddTask(TaskType.Error, a.Message, fullFileName, a.LineNumber, a.LinePosition);
					this.labelRefresh.Text = "error";
				}
				catch (Exception a)
				{
					rootNode.ImageIndex = rootNode.SelectedImageIndex = 6;
#if DEBUG
					System.Diagnostics.Debug.WriteLine("Exception a");
#endif
					this.MainForm.OutputPanel.AppendTextLine(a.Message);
					this.MainForm.TaskListPanel.AddTask(TaskType.Error, a.Message, fullFileName, 0, 0);
					this.labelRefresh.Text = "error";
				}
				finally
				{
					if (reader!=null) 
					{
						reader.Close();
					}
					this.treeView.ResumeLayout();
				}

			this.MainForm.OutputPanel.AppendTextLine("\r\n---------------------- Done ----------------------\r\n");
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Obsluha udalosti. Vyvola sa po zmene v dokumente
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void DocumentChanged(object sender, DLTextEditor.Document.DocumentAggregatorEventArgs e)
		{
			if (this.textAreaTabPageInTree != null)
			{
				this.labelRefresh.Text = "need refresh";
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Doublekliknutie v TreeView-e
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void treeView_DoubleClick(object sender, System.EventArgs e)
		{
			if (this.treeView.SelectedNode == null) 
			{
				return;
			}
			
#if DEBUG
			System.Diagnostics.Debug.WriteLine("DBLclick");
#endif

			IPosition pos = this.treeView.SelectedNode.Tag as IPosition;
#if DEBUG
			System.Diagnostics.Debug.Assert(pos!=null);
#endif
			if (pos != null) 
			{ 
				pos.JumpToPosition();
			}

		}
	
	} //public class XMLTreePanel : ...
} // namespace XML_editor.DockingPanels

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人一区二区三区| 五月婷婷久久丁香| 亚洲成人中文在线| 国产.精品.日韩.另类.中文.在线.播放| 日本韩国欧美国产| 久久女同性恋中文字幕| 日韩精品乱码免费| 色香色香欲天天天影视综合网| 精品国产乱码久久久久久图片 | 色狠狠综合天天综合综合| 日韩一区二区电影在线| 亚洲国产精品人人做人人爽| 不卡的av网站| 国产亚洲欧洲一区高清在线观看| 三级在线观看一区二区| 日本韩国精品一区二区在线观看| 中文字幕精品一区二区三区精品| 精品中文字幕一区二区| 欧美天堂亚洲电影院在线播放| 亚洲国产成人自拍| 国产盗摄一区二区| www国产成人| 免费成人美女在线观看| 欧美一区二区在线看| 天堂一区二区在线免费观看| 欧美日韩中文国产| 一区二区在线观看av| 99久久免费视频.com| 国产精品丝袜黑色高跟| 成人黄页在线观看| 中文一区一区三区高中清不卡| 韩国在线一区二区| 久久蜜桃av一区二区天堂| 国产精品自在在线| 久久久久九九视频| 高清不卡在线观看| 国产精品卡一卡二卡三| 99精品视频在线观看免费| 国产精品网站在线观看| 99久久er热在这里只有精品15| 中文欧美字幕免费| 91麻豆国产自产在线观看| 亚洲欧美日韩久久精品| 欧美日韩卡一卡二| 午夜精品福利一区二区蜜股av | 亚洲欧美日韩国产一区二区三区 | 精品一区二区三区日韩| 亚洲精品一区二区在线观看| 国产主播一区二区| 18欧美乱大交hd1984| 欧美吻胸吃奶大尺度电影| 日本不卡视频一二三区| 精品国产1区二区| 成人综合婷婷国产精品久久免费| 亚洲天堂中文字幕| 欧美一区二区三区视频免费| 韩国视频一区二区| 日韩美女视频19| 69堂亚洲精品首页| 精品一区二区三区影院在线午夜| 国产女人18毛片水真多成人如厕 | 成人免费的视频| 亚洲精品乱码久久久久久| 91精品国产综合久久久久久| 精品一区二区影视| 亚洲精选视频免费看| 91精品国产乱码| 成人晚上爱看视频| 五月激情综合色| 国产欧美精品区一区二区三区| 欧洲亚洲国产日韩| 国产一区中文字幕| 亚洲一区二区影院| 久久综合九色综合97婷婷女人| 91性感美女视频| 国产一区二区三区精品欧美日韩一区二区三区 | 一区二区激情小说| 久久中文字幕电影| 91电影在线观看| 国产毛片精品一区| 午夜久久久久久久久| 欧美国产日韩在线观看| 在线电影国产精品| 91影院在线免费观看| 久久99精品国产麻豆婷婷洗澡| 一区二区三区在线免费播放 | 一区二区三区av电影| 久久网这里都是精品| 在线观看国产91| 成人动漫一区二区三区| 久久国产精品区| 日韩国产精品91| 亚洲永久精品大片| 亚洲色图一区二区三区| 久久久另类综合| 日韩欧美一级在线播放| 欧美一a一片一级一片| 不卡一区二区三区四区| 国产精品456| 国产综合久久久久久久久久久久| 丝袜美腿高跟呻吟高潮一区| 一区二区高清视频在线观看| 国产精品毛片大码女人| 久久精品一区二区三区不卡| 欧美videos大乳护士334| 欧美精品 国产精品| 欧美吻胸吃奶大尺度电影| 色婷婷综合五月| 91视频免费看| 成av人片一区二区| 成人免费视频播放| 成人小视频在线| 99久久国产综合色|国产精品| 国产夫妻精品视频| 成人黄色免费短视频| 99久久99久久精品免费观看| 成人一区二区三区| 成人app下载| 色欧美乱欧美15图片| 日本高清不卡在线观看| 在线免费观看不卡av| 欧美色网一区二区| 欧美精品乱码久久久久久按摩| 欧美精选在线播放| 日韩精品影音先锋| 久久一日本道色综合| 国产午夜精品福利| 亚洲欧洲综合另类| 无吗不卡中文字幕| 精品无人区卡一卡二卡三乱码免费卡 | 日韩精品乱码免费| 激情综合五月天| 成人国产在线观看| 欧美日韩一区在线| 欧美大白屁股肥臀xxxxxx| 亚洲人成伊人成综合网小说| 一级日本不卡的影视| 午夜精品久久久久久久| 久88久久88久久久| 成人免费观看视频| 欧美在线观看禁18| 精品国精品自拍自在线| 亚洲国产高清不卡| 亚洲成av人片在线| 国产精品中文字幕欧美| 一本久久a久久精品亚洲| 欧美久久一区二区| 久久久久久黄色| 亚洲一区二区三区视频在线播放 | 日韩高清不卡在线| 成人综合日日夜夜| 3atv一区二区三区| 国产精品沙发午睡系列990531| 亚洲欧美日本在线| 久久99精品国产麻豆不卡| 99热在这里有精品免费| 欧美一区二区三区视频免费播放| 国产精品网站在线观看| 首页综合国产亚洲丝袜| 成人精品一区二区三区四区| 欧美日韩精品免费| 亚洲天天做日日做天天谢日日欢| 蜜臀av亚洲一区中文字幕| 91在线观看地址| 欧美tickling挠脚心丨vk| 一区二区在线看| 国产传媒日韩欧美成人| 欧美久久久久久久久中文字幕| 亚洲国产精品ⅴa在线观看| 免费成人你懂的| 欧美亚男人的天堂| 中文字幕亚洲欧美在线不卡| 精品一区二区免费| 6080yy午夜一二三区久久| 亚洲男人都懂的| 国产很黄免费观看久久| 日韩精品最新网址| 午夜av一区二区| 日本精品免费观看高清观看| 欧美激情一区二区三区在线| 蜜桃精品视频在线| 欧美高清视频一二三区| 亚洲国产精品嫩草影院| 色狠狠色狠狠综合| 亚洲欧美国产77777| av动漫一区二区| 国产精品久久久爽爽爽麻豆色哟哟 | 日韩中文字幕一区二区三区| 91美女片黄在线| 国产精品盗摄一区二区三区| 国产毛片精品一区| 久久综合国产精品| 国产一区三区三区| 久久久综合视频| 国产精品一品二品| 国产欧美一区二区在线观看| 国产精品香蕉一区二区三区| 久久婷婷综合激情| 国产精品夜夜嗨| 欧美国产激情二区三区|