You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

399 lines
17 KiB

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<TreeNodeAdv>();
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);
}
}
}