⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xslpanel.cs

📁 C#实现DHTML编辑器功能!
💻 CS
📖 第 1 页 / 共 2 页
字号:
				this.labelInput.Text = "[none]";
				this.ReleaseLockedTabPage();
				this.ActualTextAreaControlChanged(null, null);
			} 
			else 
			{
				if (Object.ReferenceEquals(this.lockedTextAreaTabPage, tab) == true) 
				{
					this.ReleaseLockedTabPage();
					this.ActualTextAreaControlChanged(null, null);
				}
			}

			if (this.externalOutputFileName == null) 
			{
				this.comboOutput.Items.Clear();
				this.comboOutputFileNames.Clear();
				this.labelOutput.Text = "[internal]";
			}

			if (this.externalXSLFileName == null) 
			{
				this.comboXSLT.Items.Clear();
				this.comboXSLTFileNames.Clear();
				this.labelXSLT.Text = "[internal]";
			}
		}

		// -------------------------------------------------------------------------
		/// <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.groupBox.Enabled = false;
				this.labelInput.Text = "[none]";
				this.ReleaseLockedTabPage();
			} 
			else 
			{
				this.groupBox.Enabled = true;
				if (this.inputLocked != true) 
				{
					this.labelInput.Text = this.MainForm.SelectedTabPage.TitleToShow;
				}
//				this.CheckedChanged_radioButtons(null, null);
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// 'Rozbalenie' combo-boxu na vyber XSLT stylu
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void DropDown_comboXSLT(object sender, System.EventArgs e)
		{
			this.externalXSLFileName = null;
			this.comboXSLT.Items.Clear();
			this.comboXSLTFileNames.Clear();
			this.labelXSLT.Text = "[internal]";
			FileInfo fileInfo;
			foreach (TextAreaTabPage txtArea in this.MainForm.TabPages) 
			{
				if (txtArea.IsNewFile == true) 
				{
					continue;
				}

				fileInfo = new FileInfo(txtArea.TitleToShow);
			
				if ((fileInfo.Extension.ToLower() == ".xsl") ||
					  (fileInfo.Extension.ToLower() == ".xslt")) 
				{
					this.comboXSLT.Items.Insert(0, txtArea.TitleToShow);
					this.comboXSLTFileNames.Insert(0, txtArea.TextAreaControl.FileName);
				} 
				else 
				{
					this.comboXSLT.Items.Add(txtArea.TitleToShow);
					this.comboXSLTFileNames.Add(txtArea.TextAreaControl.FileName);
				}
				
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// 'Rozbalenie' combo-boxu na vyber vystupu stylu
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void DropDown_comboOutput(object sender, System.EventArgs e)
		{
			this.comboOutput.Items.Clear();
			this.comboOutputFileNames.Clear();
			this.labelOutput.Text = "[internal]";
			FileInfo fileInfo;
			foreach (TextAreaTabPage txtArea in this.MainForm.TabPages) 
			{
				if (txtArea.IsNewFile == true) 
				{
					continue;
				}

				fileInfo = new FileInfo(txtArea.TitleToShow);
			
				this.comboOutput.Items.Add(txtArea.TitleToShow);
				this.comboOutputFileNames.Add(txtArea.TextAreaControl.FileName);
			}
		}

		
		// -------------------------------------------------------------------------
		/// <summary>
		/// Kliknutie na tlacidlo OUTPUT -> ...
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Clicked_buttonOutputLoad(object sender, System.EventArgs e)
		{
			SaveFileDialog dialog = new SaveFileDialog();
			dialog.Filter = IconProvider.FileOpenFilter;
			dialog.Title = "Select new output file";
			dialog.RestoreDirectory = true ;
			
			if (dialog.ShowDialog() == DialogResult.OK) 
			{
				System.IO.FileInfo fileInfo = new System.IO.FileInfo(dialog.FileName);
				this.labelOutput.Text = fileInfo.Name;
				this.externalOutputFileName = fileInfo.FullName;
				this.comboOutput.Items.Clear();
				this.comboOutputFileNames.Clear();
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Kliknutie na tlacidlo XSLT -> ...
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Clicked_buttonXSLTLoad(object sender, System.EventArgs e)
		{
			OpenFileDialog dialog = new OpenFileDialog();
			dialog.Filter = IconProvider.FileOpenFilter;
			dialog.Title = "Select XSL stylesheet file";
			dialog.FilterIndex = 2;
			
			if (dialog.ShowDialog() == DialogResult.OK) 
			{
				System.IO.FileInfo fileInfo = new System.IO.FileInfo(dialog.FileName);
				if (fileInfo.Exists == true) 
				{
					this.externalXSLFileName = fileInfo.FullName;
					this.labelXSLT.Text = fileInfo.Name;
					this.comboXSLT.Items.Clear();
					this.comboXSLTFileNames.Clear();
				} 
				else 
				{
					this.externalXSLFileName = null;
					this.labelXSLT.Text = "[none]";
				}
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Kliknutie na picture lock
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void pictureLock_Click(object sender, System.EventArgs e)
		{
			this.inputLocked = !this.inputLocked;
			if (this.inputLocked == true) 
			{
				this.pictureLock.Image = IconProvider.LoadBitmap(this, "XML_editor.Icons.lock_locked.png");
				this.lockedTextAreaTabPage = this.MainForm.SelectedTabPage;
			} 
			else 
			{
				this.pictureLock.Image = IconProvider.LoadBitmap(this, "XML_editor.Icons.lock_unlocked.png");
				this.lockedTextAreaTabPage = null;
				this.ActualTextAreaControlChanged(null, null);
			}
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Uvolni zamknuty editor. Toto volat pri zatvoreni lubovolneho suboru.
		/// </summary>
		public void ReleaseLockedTabPage() 
		{
			this.inputLocked = false;
			this.lockedTextAreaTabPage = null;
			this.pictureLock.Image = IconProvider.LoadBitmap(this, "XML_editor.Icons.lock_unlocked.png");
		}

		// -------------------------------------------------------------------------
		/// <summary>
		/// Kliknutie na tlacidlo TRANSFORM
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Clicked_buttonTransform(object sender, System.EventArgs e)
		{
			this.MainForm.OutputPanel.Clear();
			this.MainForm.TaskListPanel.Clear();
			StringBuilder head = new StringBuilder();

			head.Append("------ XSLT Transformations: File: ");
			head.Append(this.MainForm.ActualTextAreaControl.FileName);
			head.Append(" ------\r\n\r\n");

			if (this.XSLFullFileName == null) 
			{
				head.Append("You must choose XSLT Stylesheet file !!!\r\n");
				head.Append("\r\n---------------------- Done ----------------------\r\n");
				this.MainForm.OutputPanel.AppendTextLine(head.ToString());
				return;
			} 

			if (this.OutputFullFileName == null) 
			{
				head.Append("You must choose output file !!!\r\n");
				head.Append("\r\n---------------------- Done ----------------------\r\n");
				this.MainForm.OutputPanel.AppendTextLine(head.ToString());
				return;
			} 

			string inputFileName = null;
			if (this.inputLocked == true) 
			{
				if (this.MainForm.FileSave(this.lockedTextAreaTabPage) == false) 
				{
					head.Append("Warning: File must be saved before performing XSLT stylesheet transformation.");
					head.Append("\r\n---------------------- Done ----------------------\r\n");
					this.MainForm.OutputPanel.AppendTextLine(head.ToString());
					return;
				}
				inputFileName = this.lockedTextAreaTabPage.TextAreaControl.FileName;
			} 
			else 
			{
				if (this.MainForm.FileSave(this.MainForm.SelectedTabPage) == false) 
				{
				
					head.Append("Warning: File must be saved before performing XSLT stylesheet transformation.");
					head.Append("\r\n---------------------- Done ----------------------\r\n");
					this.MainForm.OutputPanel.AppendTextLine(head.ToString());
					return;
				} 
				inputFileName = this.MainForm.SelectedTabPage.TextAreaControl.FileName;
			}

			this.MainForm.OutputPanel.AppendTextLine(head.ToString());
			string output = this.OutputFullFileName;
			this.XSLTTransform(this.XSLFullFileName, inputFileName, output);

			this.MainForm.FileOpen(output);

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


		// -------------------------------------------------------------------------
		/// <summary>
		/// Validuje dokument.
		/// </summary>
		/// <returns>true = ak je dokument validny</returns>
		private bool XSLTTransform(string xslFullFileName, string xmlFullFileName, string outputFullFileName) 
		{
			try 
			{
				XslTransform xslt = new XslTransform();

				xslt.Load(xslFullFileName, null);

				xslt.Transform(xmlFullFileName, outputFullFileName);
			} 
			catch 
			{
#if DEBUG
				System.Diagnostics.Debug.WriteLine("CHYBA !!!");
#endif
				return false;
			}
			return true;
		}

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -