📄 xslpanel.cs
字号:
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 + -