Fixed some bugs and added some features

This commit is contained in:
Michael Becker 2014-06-03 15:59:50 -04:00
parent 3684bab39c
commit a2e739bf86
8 changed files with 463 additions and 273 deletions

View File

@ -62,6 +62,7 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
this.mnuContextProperties = new System.Windows.Forms.ToolStripMenuItem();
this.imlSmallIcons = new System.Windows.Forms.ImageList(this.components);
this.mnuContextAddSep2 = new System.Windows.Forms.ToolStripSeparator();
this.cbToolBar1.SuspendLayout();
this.mnuContext.SuspendLayout();
this.SuspendLayout();
@ -272,7 +273,8 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
this.toolStripMenuItem3,
this.mnuContextProperties});
this.mnuContext.Name = "cbContextMenu1";
this.mnuContext.Size = new System.Drawing.Size(194, 148);
this.mnuContext.Size = new System.Drawing.Size(194, 170);
this.mnuContext.Opening += new System.ComponentModel.CancelEventHandler(this.mnuContext_Opening);
//
// mnuContextAdd
//
@ -280,6 +282,7 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
this.mnuContextAddNewItem,
this.mnuContextAddExistingItem,
this.mnuContextAddSep1,
this.mnuContextAddSep2,
this.mnuContextAddNewFolder});
this.mnuContextAdd.Name = "mnuContextAdd";
this.mnuContextAdd.Size = new System.Drawing.Size(193, 22);
@ -288,24 +291,24 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
// mnuContextAddNewItem
//
this.mnuContextAddNewItem.Name = "mnuContextAddNewItem";
this.mnuContextAddNewItem.Size = new System.Drawing.Size(150, 22);
this.mnuContextAddNewItem.Size = new System.Drawing.Size(152, 22);
this.mnuContextAddNewItem.Text = "Ne&w Item...";
//
// mnuContextAddExistingItem
//
this.mnuContextAddExistingItem.Name = "mnuContextAddExistingItem";
this.mnuContextAddExistingItem.Size = new System.Drawing.Size(150, 22);
this.mnuContextAddExistingItem.Size = new System.Drawing.Size(152, 22);
this.mnuContextAddExistingItem.Text = "Existin&g Item...";
//
// mnuContextAddSep1
//
this.mnuContextAddSep1.Name = "mnuContextAddSep1";
this.mnuContextAddSep1.Size = new System.Drawing.Size(147, 6);
this.mnuContextAddSep1.Size = new System.Drawing.Size(149, 6);
//
// mnuContextAddNewFolder
//
this.mnuContextAddNewFolder.Name = "mnuContextAddNewFolder";
this.mnuContextAddNewFolder.Size = new System.Drawing.Size(150, 22);
this.mnuContextAddNewFolder.Size = new System.Drawing.Size(152, 22);
this.mnuContextAddNewFolder.Text = "New Fol&der";
//
// mnuContextSep1
@ -359,6 +362,11 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
this.imlSmallIcons.ImageSize = new System.Drawing.Size(16, 16);
this.imlSmallIcons.TransparentColor = System.Drawing.Color.Transparent;
//
// mnuContextAddSep2
//
this.mnuContextAddSep2.Name = "mnuContextAddSep2";
this.mnuContextAddSep2.Size = new System.Drawing.Size(149, 6);
//
// SolutionExplorer
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -409,5 +417,6 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;
private System.Windows.Forms.ToolStripMenuItem mnuContextProperties;
private System.Windows.Forms.ImageList imlSmallIcons;
private System.Windows.Forms.ToolStripSeparator mnuContextAddSep2;
}
}

View File

@ -177,23 +177,25 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
private void tv_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
if (e.Label == null) return;
string label = e.Label;
if (label == null) label = e.Node.Text;
if (e.Node.Tag is SolutionObjectModel)
{
SolutionObjectModel sol = (e.Node.Tag as SolutionObjectModel);
sol.Title = e.Label;
sol.Title = label;
e.CancelEdit = true;
e.Node.Text = "Solution '" + e.Label + "' (" + sol.Projects.Count.ToString() + " project" + (sol.Projects.Count == 1 ? "" : "s") + ")";
e.Node.Text = "Solution '" + label + "' (" + sol.Projects.Count.ToString() + " project" + (sol.Projects.Count == 1 ? "" : "s") + ")";
}
else if (e.Node.Tag is Project)
{
Project proj = (e.Node.Tag as Project);
proj.Title = e.Label;
e.Node.Text = e.Label;
proj.Title = label;
e.Node.Text = label;
}
else if (e.Node.Tag is ProjectFile)
{
if (IsFileNameInvalid(e.Label))
if (IsFileNameInvalid(label))
{
MessageBox.Show("Item and file names cannot:\r\n- contain any of the following characters: / ? : & \\ * \" < > | # %\r\n- contain Unicode control characters\r\n- contain surrogate characters\r\n- be system reserved names, including 'CON', 'AUX', 'PRN', 'COM1' or 'LPT2'\r\n- be '.' or '..'\r\n\r\nPlease enter a valid name.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
e.CancelEdit = true;
@ -201,7 +203,7 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
}
ProjectFile file = (e.Node.Tag as ProjectFile);
file.DestinationFileName = e.Label;
file.DestinationFileName = label;
}
}
@ -213,5 +215,51 @@ namespace UniversalEditor.UserInterface.WindowsForms.Controls
if (tvhti.Node != null) tv.SelectedNode = tvhti.Node;
}
}
private void mnuContext_Opening(object sender, CancelEventArgs e)
{
mnuContextAdd.DropDownItems.Clear();
mnuContextAdd.DropDownItems.Add(mnuContextAddNewItem);
mnuContextAdd.DropDownItems.Add(mnuContextAddExistingItem);
mnuContextAdd.DropDownItems.Add(mnuContextAddSep1);
mnuContextAdd.DropDownItems.Add(mnuContextAddNewFolder);
if (tv.SelectedNode.Tag is SolutionObjectModel)
{
mnuContextAddNewItem.Text = "Ne&w Project...";
mnuContextAddExistingItem.Text = "Existin&g Project...";
}
else
{
mnuContextAddNewItem.Text = "Ne&w Item...";
mnuContextAddExistingItem.Text = "Existin&g Item...";
}
if (tv.SelectedNode.Tag is Project)
{
Project proj = (tv.SelectedNode.Tag as Project);
if (proj.ProjectType != null)
{
if (proj.ProjectType.ItemShortcuts.Count > 0)
{
mnuContextAdd.DropDownItems.Add(mnuContextAddSep2);
foreach (ProjectTypeItemShortcut its in proj.ProjectType.ItemShortcuts)
{
ToolStripMenuItem tsmi = new ToolStripMenuItem();
tsmi.Text = its.Title;
tsmi.Click += tsmiItemShortcut_Click;
tsmi.Tag = its;
mnuContextAdd.DropDownItems.Add(tsmi);
}
}
}
}
}
private void tsmiItemShortcut_Click(object sender, EventArgs e)
{
ToolStripMenuItem tsmi = (sender as ToolStripMenuItem);
ProjectTypeItemShortcut its = (tsmi.Tag as ProjectTypeItemShortcut);
Program.LastWindow.NewFile();
}
}
}

View File

@ -124,151 +124,151 @@
<data name="tsbBack.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbForward.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbHome.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbFilter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbRefresh.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbCollapseAll.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbShowAllFiles.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbViewCode.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbProperties.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<data name="tsbPreviewSelectedItems.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="mnuContext.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -127,7 +127,10 @@ namespace UniversalEditor.UserInterface.WindowsForms.Dialogs
foreach (DocumentTemplate dt in templates)
{
AwesomeControls.ListView.ListViewItem lvi = new AwesomeControls.ListView.ListViewItem();
lvi.Image = Image.FromFile(dt.LargeIconImageFileName);
if (System.IO.File.Exists(dt.LargeIconImageFileName))
{
lvi.Image = Image.FromFile(dt.LargeIconImageFileName);
}
lvi.Text = dt.Title;
lvi.Details.Add(dt.Description);
lvi.Data = dt;
@ -187,7 +190,14 @@ namespace UniversalEditor.UserInterface.WindowsForms.Dialogs
if (tn == tvProject.SelectedNode)
{
AwesomeControls.ListView.ListViewItem lvi = new AwesomeControls.ListView.ListViewItem();
lvi.Image = Image.FromFile(dt.LargeIconImageFileName);
if (!String.IsNullOrEmpty(dt.LargeIconImageFileName))
{
lvi.Image = Image.FromFile(dt.LargeIconImageFileName);
}
else
{
Console.Error.WriteLine("Large icon image not specified for template \"" + dt.Title + "\"");
}
lvi.Text = dt.Title;
lvi.Details.Add(dt.Description);
lvi.Data = dt;
@ -197,7 +207,14 @@ namespace UniversalEditor.UserInterface.WindowsForms.Dialogs
else
{
AwesomeControls.ListView.ListViewItem lvi = new AwesomeControls.ListView.ListViewItem();
lvi.Image = Image.FromFile(dt.LargeIconImageFileName);
if (!String.IsNullOrEmpty(dt.LargeIconImageFileName))
{
lvi.Image = Image.FromFile(dt.LargeIconImageFileName);
}
else
{
Console.Error.WriteLine("Large icon image not specified for template \"" + dt.Title + "\"");
}
lvi.Text = dt.Title;
lvi.Details.Add(dt.Description);
lvi.Data = dt;

View File

@ -214,7 +214,11 @@ namespace UniversalEditor
{
mvarObjectModelType = Type.GetType(mvarObjectModelTypeName);
}
return (mvarObjectModelType.Assembly.CreateInstance(mvarObjectModelType.FullName) as ObjectModel);
if (mvarObjectModelType != null)
{
return (mvarObjectModelType.Assembly.CreateInstance(mvarObjectModelType.FullName) as ObjectModel);
}
return null;
}
private string mvarDescription = String.Empty;

View File

@ -7,6 +7,8 @@ using UniversalEditor.ObjectModels.Markup;
using UniversalEditor.DataFormats.Markup.XML;
using UniversalEditor.ObjectModels.Solution;
using UniversalEditor.Accessors;
using UniversalEditor.ObjectModels.PropertyList;
using UniversalEditor.DataFormats.PropertyList.XML;
namespace UniversalEditor.Common
{
@ -117,16 +119,16 @@ namespace UniversalEditor.Common
listDataFormats.Sort(new Comparison<DataFormatReference>(_DataFormatReferenceComparer));
#endregion
InitializeFromXML(ref listObjectModels, ref listDataFormats, ref listProjectTypes);
InitializeFromXML(ref listObjectModels, ref listDataFormats);
mvarInitialized = true;
if (mvarAvailableObjectModels == null) mvarAvailableObjectModels = listObjectModels.ToArray();
if (mvarAvailableDataFormats == null) mvarAvailableDataFormats = listDataFormats.ToArray();
if (mvarAvailableProjectTypes == null) mvarAvailableProjectTypes = listProjectTypes.ToArray();
if (mvarAvailableConverters == null) mvarAvailableConverters = listConverters.ToArray();
InitializeTemplatesFromXML(ref listDocumentTemplates, ref listProjectTemplates);
InitializeProjectTypesFromXML(ref listProjectTypes);
InitializeTemplatesFromXML(ref listDocumentTemplates, ref listProjectTemplates, ref listProjectTypes);
if (mvarAvailableDocumentTemplates == null) mvarAvailableDocumentTemplates = listDocumentTemplates.ToArray();
if (mvarAvailableProjectTemplates == null) mvarAvailableProjectTemplates = listProjectTemplates.ToArray();
@ -145,7 +147,7 @@ namespace UniversalEditor.Common
return dfr2.Priority.CompareTo(dfr1.Priority);
}
private static void InitializeFromXML(ref List<ObjectModelReference> listObjectModels, ref List<DataFormatReference> listDataFormats, ref List<ProjectType> listProjectTypes)
private static void InitializeFromXML(ref List<ObjectModelReference> listObjectModels, ref List<DataFormatReference> listDataFormats)
{
System.Collections.Specialized.StringCollection paths = new System.Collections.Specialized.StringCollection();
paths.Add(System.Environment.CurrentDirectory);
@ -432,58 +434,6 @@ namespace UniversalEditor.Common
}
}
#endregion
#region Project Types
{
MarkupTagElement tagProjectTypes = (tagUniversalEditor.Elements["ProjectTypes"] as MarkupTagElement);
if (tagProjectTypes != null)
{
foreach (MarkupElement elProjectType in tagProjectTypes.Elements)
{
MarkupTagElement tagProjectType = (elProjectType as MarkupTagElement);
if (tagProjectType == null) continue;
if (tagProjectType.FullName != "ProjectType") continue;
MarkupAttribute attID = tagProjectType.Attributes["ID"];
if (attID == null) continue;
ProjectType projtype = new ProjectType();
projtype.ID = new Guid(attID.Value);
MarkupTagElement tagInformation = (tagProjectType.Elements["Information"] as MarkupTagElement);
if (tagInformation != null)
{
MarkupTagElement tagTitle = (tagInformation.Elements["Title"] as MarkupTagElement);
if (tagTitle != null) projtype.Title = tagTitle.Value;
MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement);
if (tagIconPath != null)
{
MarkupAttribute attFileName = tagIconPath.Attributes["FileName"];
if (attFileName != null)
{
string FileName = attFileName.Value;
if (System.IO.File.Exists(FileName)) projtype.LargeIconImageFileName = FileName;
if (System.IO.File.Exists(FileName)) projtype.SmallIconImageFileName = FileName;
}
MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"];
if (attLargeFileName != null)
{
string FileName = attLargeFileName.Value;
if (System.IO.File.Exists(FileName)) projtype.LargeIconImageFileName = FileName;
}
MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"];
if (attSmallFileName != null)
{
string FileName = attSmallFileName.Value;
if (System.IO.File.Exists(FileName)) projtype.SmallIconImageFileName = FileName;
}
}
}
listProjectTypes.Add(projtype);
}
}
}
#endregion
}
}
catch
@ -491,8 +441,123 @@ namespace UniversalEditor.Common
}
}
}
#region Template Initialization
private static void InitializeTemplatesFromXML(ref List<DocumentTemplate> listDocumentTemplates, ref List<ProjectTemplate> listProjectTemplates)
#region Project Type Initialization
private static void InitializeProjectTypesFromXML(ref List<ProjectType> listProjectTypes)
{
System.Collections.Specialized.StringCollection paths = new System.Collections.Specialized.StringCollection();
paths.Add(System.Environment.CurrentDirectory);
foreach (string path in paths)
{
string[] XMLFileNames = null;
try
{
XMLFileNames = System.IO.Directory.GetFiles(path, "*.xml", System.IO.SearchOption.AllDirectories);
foreach (string fileName in XMLFileNames)
{
string basePath = System.IO.Path.GetDirectoryName(fileName);
MarkupObjectModel mom = new MarkupObjectModel();
XMLDataFormat xdf = new XMLDataFormat();
ObjectModel om = mom;
Document.Load(om, xdf, new FileAccessor(fileName, false, false, false), true);
MarkupTagElement tagUniversalEditor = (mom.Elements["UniversalEditor"] as MarkupTagElement);
if (tagUniversalEditor == null) continue;
#region Templates
{
#region Project Types
{
MarkupTagElement tagProjectTypes = (tagUniversalEditor.Elements["ProjectTypes"] as MarkupTagElement);
if (tagProjectTypes != null)
{
foreach (MarkupElement elProjectType in tagProjectTypes.Elements)
{
MarkupTagElement tagProjectType = (elProjectType as MarkupTagElement);
if (tagProjectType == null) continue;
if (tagProjectType.FullName != "ProjectType") continue;
MarkupAttribute attID = tagProjectType.Attributes["ID"];
if (attID == null) continue;
ProjectType projtype = new ProjectType();
projtype.ID = new Guid(attID.Value);
MarkupTagElement tagInformation = (tagProjectType.Elements["Information"] as MarkupTagElement);
if (tagInformation != null)
{
MarkupTagElement tagTitle = (tagInformation.Elements["Title"] as MarkupTagElement);
if (tagTitle != null) projtype.Title = tagTitle.Value;
MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement);
if (tagIconPath != null)
{
MarkupAttribute attFileName = tagIconPath.Attributes["FileName"];
if (attFileName != null)
{
string FileName = attFileName.Value;
if (System.IO.File.Exists(FileName)) projtype.LargeIconImageFileName = FileName;
if (System.IO.File.Exists(FileName)) projtype.SmallIconImageFileName = FileName;
}
MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"];
if (attLargeFileName != null)
{
string FileName = attLargeFileName.Value;
if (System.IO.File.Exists(FileName)) projtype.LargeIconImageFileName = FileName;
}
MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"];
if (attSmallFileName != null)
{
string FileName = attSmallFileName.Value;
if (System.IO.File.Exists(FileName)) projtype.SmallIconImageFileName = FileName;
}
}
}
#region ItemShortcuts
{
MarkupTagElement tagItemShortcuts = (tagProjectType.Elements["ItemShortcuts"] as MarkupTagElement);
if (tagItemShortcuts != null)
{
foreach (MarkupElement el in tagItemShortcuts.Elements)
{
MarkupTagElement tag = (el as MarkupTagElement);
if (tag == null) continue;
if (tag.FullName != "ItemShortcut") continue;
ProjectTypeItemShortcut z = new ProjectTypeItemShortcut();
z.Title = tag.Attributes["Title"].Value;
string objectModelTypeName = tag.Attributes["ObjectModelTypeName"].Value;
z.ObjectModelReference = GetObjectModelByTypeName(objectModelTypeName);
projtype.ItemShortcuts.Add(z);
}
}
}
#endregion
listProjectTypes.Add(projtype);
}
}
#endregion
}
#endregion
}
}
}
catch
{
}
}
mvarAvailableProjectTypes = listProjectTypes.ToArray();
}
#endregion
#region Template Initialization
private static void InitializeTemplatesFromXML(ref List<DocumentTemplate> listDocumentTemplates, ref List<ProjectTemplate> listProjectTemplates, ref List<ProjectType> listProjectTypes)
{
System.Collections.Specialized.StringCollection paths = new System.Collections.Specialized.StringCollection();
paths.Add(System.Environment.CurrentDirectory);
@ -517,7 +582,7 @@ namespace UniversalEditor.Common
if (tagUniversalEditor == null) continue;
#region Templates
{
{
#region Document Templates
{
MarkupTagElement tagTemplates = (tagUniversalEditor.Elements["DocumentTemplates"] as MarkupTagElement);
@ -678,116 +743,129 @@ namespace UniversalEditor.Common
if (tagTemplates != null)
{
foreach (MarkupElement elTemplate in tagTemplates.Elements)
{
MarkupTagElement tagTemplate = (elTemplate as MarkupTagElement);
if (tagTemplate == null) continue;
{
MarkupTagElement tagTemplate = (elTemplate as MarkupTagElement);
if (tagTemplate == null) continue;
if (tagTemplate.FullName != "ProjectTemplate") continue;
if (tagTemplate.FullName != "ProjectTemplate") continue;
ProjectTemplate template = new ProjectTemplate();
ProjectTemplate template = new ProjectTemplate();
MarkupAttribute attTypeID = tagTemplate.Attributes["TypeID"];
if (attTypeID != null)
{
try
{
template.ProjectType = GetProjectTypeByTypeID(new Guid(attTypeID.Value));
}
catch
{
}
}
MarkupAttribute attTypeID = tagTemplate.Attributes["TypeID"];
if (attTypeID != null)
{
try
{
template.ProjectType = GetProjectTypeByTypeID(new Guid(attTypeID.Value));
}
catch
{
}
}
#region Information
MarkupTagElement tagInformation = (tagTemplate.Elements["Information"] as MarkupTagElement);
if (tagInformation != null)
{
MarkupTagElement tagTitle = (tagInformation.Elements["Title"] as MarkupTagElement);
if (tagTitle != null) template.Title = tagTitle.Value;
#region Information
MarkupTagElement tagInformation = (tagTemplate.Elements["Information"] as MarkupTagElement);
if (tagInformation != null)
{
MarkupTagElement tagTitle = (tagInformation.Elements["Title"] as MarkupTagElement);
if (tagTitle != null) template.Title = tagTitle.Value;
MarkupTagElement tagDescription = (tagInformation.Elements["Description"] as MarkupTagElement);
if (tagDescription != null) template.Description = tagDescription.Value;
MarkupTagElement tagDescription = (tagInformation.Elements["Description"] as MarkupTagElement);
if (tagDescription != null) template.Description = tagDescription.Value;
if (tagInformation.Elements["ProjectNamePrefix"] != null)
{
template.ProjectNamePrefix = tagInformation.Elements["ProjectNamePrefix"].Value;
}
if (tagInformation.Elements["ProjectNamePrefix"] != null)
{
template.ProjectNamePrefix = tagInformation.Elements["ProjectNamePrefix"].Value;
}
MarkupTagElement tagPath = (tagInformation.Elements["Path"] as MarkupTagElement);
if (tagPath != null)
{
List<string> pathParts = new List<string>();
foreach (MarkupElement elPart in tagPath.Elements)
{
MarkupTagElement tagPart = (elPart as MarkupTagElement);
if (tagPart == null) continue;
if (tagPart.FullName != "Part") continue;
pathParts.Add(tagPart.Value);
}
template.Path = pathParts.ToArray();
}
MarkupTagElement tagPath = (tagInformation.Elements["Path"] as MarkupTagElement);
if (tagPath != null)
{
List<string> pathParts = new List<string>();
foreach (MarkupElement elPart in tagPath.Elements)
{
MarkupTagElement tagPart = (elPart as MarkupTagElement);
if (tagPart == null) continue;
if (tagPart.FullName != "Part") continue;
pathParts.Add(tagPart.Value);
}
template.Path = pathParts.ToArray();
}
MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement);
if (tagIconPath != null)
{
#region All Icons
{
MarkupAttribute attFileName = tagIconPath.Attributes["FileName"];
if (attFileName != null)
{
string FileName = attFileName.Value;
if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName;
if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName;
}
}
#endregion
#region Large Icon
{
MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"];
if (attLargeFileName != null)
{
string FileName = attLargeFileName.Value;
if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName;
}
}
#endregion
#region Small Icon
{
MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"];
if (attSmallFileName != null)
{
string FileName = attSmallFileName.Value;
if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName;
}
}
#endregion
}
}
#endregion
#region FileSystem
MarkupTagElement tagFileSystem = (tagTemplate.Elements["FileSystem"] as MarkupTagElement);
if (tagFileSystem != null)
{
MarkupTagElement tagFiles = (tagFileSystem.Elements["Files"] as MarkupTagElement);
if (tagFiles != null)
{
foreach (MarkupElement elFile in tagFiles.Elements)
{
MarkupTagElement tagFile = (elFile as MarkupTagElement);
if (tagFile == null) continue;
if (tagFile.FullName != "File") continue;
MarkupTagElement tagIconPath = (tagInformation.Elements["IconPath"] as MarkupTagElement);
if (tagIconPath != null)
{
#region All Icons
{
MarkupAttribute attFileName = tagIconPath.Attributes["FileName"];
if (attFileName != null)
{
string FileName = attFileName.Value;
if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName;
if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName;
}
}
#endregion
#region Large Icon
{
MarkupAttribute attLargeFileName = tagIconPath.Attributes["LargeFileName"];
if (attLargeFileName != null)
{
string FileName = attLargeFileName.Value;
if (System.IO.File.Exists(FileName)) template.LargeIconImageFileName = FileName;
}
}
#endregion
#region Small Icon
{
MarkupAttribute attSmallFileName = tagIconPath.Attributes["SmallFileName"];
if (attSmallFileName != null)
{
string FileName = attSmallFileName.Value;
if (System.IO.File.Exists(FileName)) template.SmallIconImageFileName = FileName;
}
}
#endregion
}
}
#endregion
#region FileSystem
{
MarkupTagElement tagFileSystem = (tagTemplate.Elements["FileSystem"] as MarkupTagElement);
if (tagFileSystem != null)
{
MarkupTagElement tagFiles = (tagFileSystem.Elements["Files"] as MarkupTagElement);
if (tagFiles != null)
{
foreach (MarkupElement elFile in tagFiles.Elements)
{
MarkupTagElement tagFile = (elFile as MarkupTagElement);
if (tagFile == null) continue;
if (tagFile.FullName != "File") continue;
LoadProjectFile(tagFile, template.FileSystem.Files);
}
}
}
#endregion
LoadProjectFile(tagFile, template.FileSystem.Files);
}
}
}
}
#endregion
#region Configuration
{
MarkupTagElement tagConfiguration = (tagTemplate.Elements["Configuration"] as MarkupTagElement);
if (tagConfiguration != null)
{
PropertyListObjectModel plom = template.Configuration;
XMLPropertyListDataFormat xmlplist = new XMLPropertyListDataFormat();
XMLPropertyListDataFormat.LoadMarkup(tagConfiguration, ref plom);
}
}
#endregion
listProjectTemplates.Add(template);
}
listProjectTemplates.Add(template);
}
}
}
#endregion
#endregion
}
#endregion
}

View File

@ -18,5 +18,36 @@ namespace UniversalEditor
private string mvarSmallIconImageFileName = null;
public string SmallIconImageFileName { get { return mvarSmallIconImageFileName; } set { mvarSmallIconImageFileName = value; } }
private ProjectTypeItemShortcut.ProjectTypeItemShortcutCollection mvarItemShortcuts = new ProjectTypeItemShortcut.ProjectTypeItemShortcutCollection();
public ProjectTypeItemShortcut.ProjectTypeItemShortcutCollection ItemShortcuts { get { return mvarItemShortcuts; } }
}
/// <summary>
/// A shortcut placed in the "Add New Item" menu when the project is selected. When
/// activated, these shortcuts create a new Document with the ObjectModel specified in the
/// ObjectModelReference and add the resulting Document to the selected project. The
/// Document may optionally be preloaded with content from the DocumentTemplate, if
/// specified.
/// </summary>
public class ProjectTypeItemShortcut
{
public class ProjectTypeItemShortcutCollection
: System.Collections.ObjectModel.Collection<ProjectTypeItemShortcut>
{
}
private string mvarTitle = String.Empty;
public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
private ObjectModelReference mvarObjectModelReference = null;
public ObjectModelReference ObjectModelReference { get { return mvarObjectModelReference; } set { mvarObjectModelReference = value; } }
private DocumentTemplate mvarDocumentTemplate = null;
/// <summary>
/// The <see cref="DocumentTemplate" /> from which to load the document content for the
/// shortcut.
/// </summary>
public DocumentTemplate DocumentTemplate { get { return mvarDocumentTemplate; } set { mvarDocumentTemplate = value; } }
}
}

View File

@ -10,6 +10,9 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.ConsoleApplication", "Applications\UniversalEditor.ConsoleApplication\UniversalEditor.ConsoleApplication.csproj", "{BAC9FDFD-C39E-4A90-B9F8-CF75B551BE10}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{71CFF024-26F7-4626-A526-B435FDF8D64E}"
ProjectSection(SolutionItems) = preProject
TextFile1.txt = TextFile1.txt
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalEditor.Essential", "Plugins\UniversalEditor.Essential\UniversalEditor.Essential.csproj", "{30467E5C-05BC-4856-AADC-13906EF4CADD}"
EndProject