using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using OnDoc.Klassen; using Syncfusion.Windows.Forms.Grid; using Syncfusion.Windows.Forms.Tools; using Syncfusion.WinForms.Controls; using System.Xml; using System.IO; using System.Configuration; using System.Xml.Linq; using Syncfusion.Compression.Zip; using static System.Net.Mime.MediaTypeNames; using System.Diagnostics; using Microsoft.Office.Interop.Word; using Syncfusion.Windows.Forms.HTMLUI; namespace OnDoc.Diverses { public partial class NativVorlagen : SfForm { private int TotalKlassifizierung = 0; public NativVorlagen() { InitializeComponent(); this.Style.TitleBar.BackColor = Theaming.Titelbar(); this.Style.TitleBar.ForeColor = Theaming.TitelFontColor(); this.Style.ShadowOpacity = Theaming.ShadowOpacity; this.Style.InactiveShadowOpacity = Theaming.InactivShadowOpacity; } private void treeView_DrawNode(object sender, DrawTreeNodeEventArgs e) { if (e.Node == null) return; // if treeview's HideSelection property is "True", // this will always returns "False" on unfocused treeview var selected = (e.State & TreeNodeStates.Selected) == TreeNodeStates.Selected; var unfocused = !e.Node.TreeView.Focused; // we need to do owner drawing only on a selected node // and when the treeview is unfocused, else let the OS do it for us if (selected && unfocused) { var font = e.Node.NodeFont ?? e.Node.TreeView.Font; e.Graphics.FillRectangle(SystemBrushes.Highlight, e.Bounds); TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, SystemColors.HighlightText, TextFormatFlags.GlyphOverhangPadding); } else { e.DrawDefault = true; } } public void PopulateTree(string dir, TreeNode node) { DirectoryInfo directory = new DirectoryInfo(dir); foreach (DirectoryInfo d in directory.GetDirectories()) { TreeNode t = new TreeNode(d.Name); t.ImageIndex = 3; PopulateTree(d.FullName, t); node.Nodes.Add(t); } foreach (FileInfo f in directory.GetFiles()) { TreeNode t = new TreeNode(f.Name); string ext = System.IO.Path.GetExtension(f.Name); ext = ext.Substring(0, 3).ToUpper(); t.ImageIndex = 4; t.SelectedImageIndex = 4; if (ext == ".DO") { t.ImageIndex = 0; t.SelectedImageIndex = 0; }; if (ext == ".XL") { t.ImageIndex = 1; t.SelectedImageIndex = 1; }; if (ext == ".PP") { t.ImageIndex = 2; t.SelectedImageIndex = 2; }; if (ext == ".PD") { t.ImageIndex = 5; t.SelectedImageIndex = 5; }; t.Tag = f.FullName; node.Nodes.Add(t); } } private void NativVorlagen_Load(object sender, EventArgs e) { TreeNode root = new TreeNode(); root.Text = "Vorlagen"; root.ImageIndex = 3; root.SelectedImageIndex = 3; treeView.Nodes.Add(root); PopulateTree(AppParams.pathNativVorlagen, root); treeView.Nodes[0].Expand(); return; string line = ""; int i = 1; //StreamReader sr = new StreamReader(AppParams.pathNativVorlagen+@"\klassifizierung.txt"); //line = sr.ReadLine(); //while (line != null) //{ // RadioButton rb = new RadioButton(); // rb.Name = "rb"+i.ToString(); // rb.Text = line; // rb.Left = label1.Left; // rb.Top = label1.Top + (i*25); // rb.Width = 180; // i++; // this.Controls.Add(rb); // line = sr.ReadLine(); //} //sr.Close(); //TotalKlassifizierung = i - 1; //try //{ // RadioButton rb = this.Controls.Find("rb1", true).FirstOrDefault() as RadioButton; // rb.Checked = true; //} //catch { } string ext = ""; DirectoryInfo directoryInfo = new DirectoryInfo(AppParams.pathNativVorlagen); if (directoryInfo.Exists) { try { TreeNode root1 = new TreeNode(); root.Text = "Vorlagen"; root.ImageIndex = 3; root.SelectedImageIndex = 3; treeView.Nodes.Add(root); DirectoryInfo[] directories = directoryInfo.GetDirectories(); foreach (FileInfo file in directoryInfo.GetFiles()) { if (file.Exists && file.Name!="Klassifizierung.txt") { ext = System.IO.Path.GetExtension(file.Name); TreeNode tnnew = new TreeNode(); tnnew.Text = file.Name; tnnew.Tag = file.FullName; Logging.Logging.Debug("Load Nativ: " + file.FullName,"OnDoc",""); tnnew.ImageIndex = 4; if (ext.Length > 2) { ext = ext.Substring(0, 3).ToUpper(); tnnew.ImageIndex = 4; tnnew.SelectedImageIndex = 4; if (ext == ".DO") { tnnew.ImageIndex = 0; tnnew.SelectedImageIndex = 0; }; if (ext == ".XL") { tnnew.ImageIndex = 1; tnnew.SelectedImageIndex = 1; }; if (ext == ".PP") { tnnew.ImageIndex = 2; tnnew.SelectedImageIndex = 2; }; if (ext == ".PD") { tnnew.ImageIndex = 5; tnnew.SelectedImageIndex = 5; }; } else { tnnew.ImageIndex = 3; tnnew.SelectedImageIndex = 3; } TreeNode treeNode = treeView.Nodes[0]; treeNode.Nodes.Add(tnnew); //TreeNode nodes = treeView.Nodes[0].Nodes.Add(file.Name); } } if (directories.Length > 0) { foreach (DirectoryInfo directory in directories) { TreeNode node = treeView.Nodes[0].Nodes.Add(directory.Name); node.ImageIndex = node.SelectedImageIndex = 3; foreach (FileInfo file in directory.GetFiles()) { if (file.Exists && file.Name!="klassifizierung.txt") { TreeNode tnnew = new TreeNode(); tnnew.Text = file.Name; tnnew.Tag = file.FullName; tnnew.ImageIndex = 4; ext = System.IO.Path.GetExtension(tnnew.Text); if (ext.Length > 2) { ext = ext.Substring(0, 2).ToUpper(); tnnew.ImageIndex = 4; tnnew.SelectedImageIndex = 4; if (ext == ".D") { tnnew.ImageIndex = 0; tnnew.SelectedImageIndex = 0; }; if (ext == ".X") { tnnew.ImageIndex = 1; tnnew.SelectedImageIndex = 1; }; if (ext == ".P") { tnnew.ImageIndex = 2; tnnew.SelectedImageIndex = 2; }; } else { tnnew.ImageIndex = 3; tnnew.SelectedImageIndex = 3; tnnew.Tag = ""; } TreeNode tnnew2 = treeView.Nodes[0].Nodes[node.Index]; tnnew2.Nodes.Add(tnnew); } } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } treeView.ExpandAll(); } } private static void ListDirectory(TreeViewAdv treeView, string path) { treeView.Nodes.Clear(); var stack = new Stack(); var rootDirectory = new DirectoryInfo(path); var node = new TreeNodeAdv(rootDirectory.Name) { Tag = rootDirectory }; string ext = System.IO.Path.GetExtension(node.Text); { node.RightImageIndices = new int[] { 3 }; } stack.Push(node); while (stack.Count > 0) { var currentNode = stack.Pop(); var directoryInfo = (DirectoryInfo)currentNode.Tag; foreach (var directory in directoryInfo.GetDirectories()) { var childDirectoryNode = new TreeNodeAdv(directory.Name) { Tag = directory }; currentNode.Nodes.Add(childDirectoryNode); { childDirectoryNode.RightImageIndices = new int[] { 3 }; } stack.Push(childDirectoryNode); foreach (var file in directoryInfo.GetFiles()) { if (file.Name != "klassifizierung.txt") { TreeNodeAdv tnnew = new TreeNodeAdv(file.Name); ext = System.IO.Path.GetExtension(tnnew.Text); if (ext.Length > 2) { ext = ext.Substring(0, 2).ToUpper(); if (ext == ".D") { tnnew.LeftImageIndices = new int[] { 0 }; }; if (ext == ".X") { tnnew.LeftImageIndices = new int[] { 1 }; }; if (ext == ".P") { tnnew.LeftImageIndices = new int[] { 2 }; }; } else { tnnew.RightImageIndices = new int[] { 3 }; } currentNode.Nodes.Add(tnnew); } } } } treeView.Nodes.Add(node); } private void treeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { Execute(e.Node); } private void toolStripButton1_Click(object sender, EventArgs e) { this.Close(); } private void toolStripButton2_Click(object sender, EventArgs e) { Execute(treeView.SelectedNode); } private void Execute(TreeNode treeNode) { string klassifizierung = ""; try { for (int i = 1; i < TotalKlassifizierung + 1; i++) { RadioButton rb = this.Controls.Find("rb" + i.ToString(), true).FirstOrDefault() as RadioButton; if (rb != null) { if (rb.Checked) { klassifizierung = rb.Text; } } } } catch { } try { string tempfilename = treeNode.Tag.ToString(); Logging.Logging.Debug("Nativ-Vorlage: " + tempfilename, "OnDoc", ""); if (tempfilename == "") { return; } //string tempdir = AppParams.tempdir + "\nativdoks"; string ext = System.IO.Path.GetExtension(tempfilename); string tempfilename1 = ""; ext = ext.Substring(0, 3).ToUpper(); switch (ext) { case ".DO": System.Diagnostics.Process.Start("winword.exe", "/t" + tempfilename); //MessageBox.Show(tempfilename); break; case ".XL": System.Diagnostics.Process.Start("excel.exe", " /t " + tempfilename); break; case ".PP": System.Diagnostics.Process.Start("POWERPNT.EXE", " /N " + tempfilename); break; default: tempfilename1 = System.IO.Path.GetFileName(tempfilename); tempfilename1 = AppParams.tempdir + "" + DateTime.Now.ToString("yyyyMMddhhmmss") + tempfilename1; System.IO.File.Copy(tempfilename, tempfilename1, true); Process.Start(tempfilename1); break; } } catch { } } // Logging.Logging.Debug("Native-Vorlage erstellen", "OnDoc", tempfilename); // string tempfilename1 = ""; // tempfilename1 = System.IO.Path.GetFileName(tempfilename); // tempfilename1 = AppParams.tempdir + "" + DateTime.Now.ToString("yyyyMMddhhmmss") + tempfilename1; // System.IO.File.Copy(tempfilename, tempfilename1, true); // Process.Start(tempfilename1); // if (ext.Length > 2) // { // ext = ext.Substring(0, 2).ToUpper(); // string tempfilename1 = ""; // switch (ext) // { // case ".D": //// DOCGEN.Klassen.SyncFWord sf = new DOCGEN.Klassen.SyncFWord("",""); // tempfilename1 = System.IO.Path.GetFileName(tempfilename); // tempfilename1 = AppParams.tempdir + "" + DateTime.Now.ToString("yyyyMMddhhmmss") + tempfilename1; // System.IO.File.Copy(tempfilename,tempfilename1,true); // // Logging.Logging.Debug("sfcreate.native", "OnDoc", tempfilename1); // // sf.create_nativ("Klassifizierung", klassifizierung, "", tempfilename, tempfilename1); // System.Diagnostics.Process.Start("winword.exe", " /t" + tempfilename1); // //System.Diagnostics.Process.Start("winword.exe", " /t" + tempfilename); // break; // case ".X": // //DOCGEN.Klassen.SyncFExcel ef = new DOCGEN.Klassen.SyncFExcel(); // tempfilename1 = System.IO.Path.GetFileName(tempfilename); // tempfilename1 = AppParams.tempdir + "" + DateTime.Now.ToString("yyyyMMddhhmmss") + tempfilename1; // System.IO.File.Copy(tempfilename,tempfilename1,true); // //ef.create_nativ("Klassifizierung", klassifizierung, "", tempfilename, tempfilename1); // System.Diagnostics.Process.Start("excel.exe", " /t " + tempfilename1); // break; // case ".P": // //DOCGEN.Klassen.SyncFPowerPoint pf = new DOCGEN.Klassen.SyncFPowerPoint(); // tempfilename1 = System.IO.Path.GetFileName(tempfilename); // tempfilename1 = AppParams.tempdir + "" + DateTime.Now.ToString("yyyyMMddhhmmss") + tempfilename1; // System.IO.File.Copy(tempfilename, tempfilename1,true); // //pf.create_nativ("Klassifizierung", klassifizierung,"",tempfilename,tempfilename1); // System.Diagnostics.Process.Start("POWERPNT.EXE", " /N " + tempfilename1); // break; // default: // tempfilename1 = System.IO.Path.GetFileName(tempfilename); // tempfilename1 = AppParams.tempdir+ "" + DateTime.Now.ToString("yyyyMMddhhmmss") +tempfilename1; // System.IO.File.Copy(tempfilename,tempfilename1, true); // Process.Start(tempfilename1); // break; // } // } // } // catch (Exception e) { // Logging.Logging.Debug("Start Nativ: " + e.Message, "OnDoc", ""); // } //} private void button1_Click(object sender, EventArgs e) { Execute(this.treeView.SelectedNode); } } }