DO NOT DOWNLOAD - GET THE STABLE SOURCE FROM THE DOWNLOADS TAB

Fixes 21623 (adds tree rendering events to all trees that can support it)

[TFS Changeset #64434]
This commit is contained in:
Shandem
2010-03-04 12:02:07 +00:00
parent 8d06c53044
commit 0bdf7f472e
22 changed files with 171 additions and 42 deletions

View File

@@ -187,8 +187,9 @@ function openContent(id) {
if (node != null)
{
Tree.Add(node);
OnAfterNodeRender(ref Tree, ref node, EventArgs.Empty);
}
OnAfterNodeRender(ref Tree, ref node, EventArgs.Empty);
}
}
}

View File

@@ -142,8 +142,9 @@ function openMedia(id) {
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}

View File

@@ -380,7 +380,9 @@ namespace umbraco.cms.presentation.Trees
this.id = id;
else
this.NodeKey = nodeId;
this.Render(ref xTree);
this.Render(ref xTree);
return xTree.ToString();
}
@@ -460,18 +462,18 @@ namespace umbraco.cms.presentation.Trees
return treeCaption;
}
//EVENTS
/// <summary>
/// The before node render event handler
/// </summary>
#region Events
//These events are poorly designed because they cannot be implemented in the tree inheritance structure,
//it would be up to the individual trees to ensure they launch the events which is poor design.
//they are also named in appropriately in regards to standards and because everything is by ref, there is no need to
//have 2 events, makes no difference if you want to modify the contents of the data.
public delegate void BeforeNodeRenderEventHandler(ref XmlTree sender, ref XmlTreeNode node, EventArgs e);
/// <summary>
/// The after node render event handler
/// </summary>
public delegate void AfterNodeRenderEventHandler(ref XmlTree sender, ref XmlTreeNode node, EventArgs e);
public static event BeforeNodeRenderEventHandler BeforeNodeRender;
public static event AfterNodeRenderEventHandler AfterNodeRender;
/// <summary>
/// Raises the <see cref="E:BeforeNodeRender"/> event.
/// </summary>
@@ -482,7 +484,7 @@ namespace umbraco.cms.presentation.Trees
BeforeNodeRender(ref sender, ref node, e);
}
public static event AfterNodeRenderEventHandler AfterNodeRender;
/// <summary>
/// Raises the <see cref="E:AfterNodeRender"/> event.
/// </summary>
@@ -493,6 +495,10 @@ namespace umbraco.cms.presentation.Trees
AfterNodeRender(ref sender, ref node, e);
}
#endregion
}
}
}

View File

@@ -65,9 +65,16 @@ namespace umbraco.cms.presentation.Trees
xDirNode.Icon = FolderIcon;
xDirNode.OpenIcon = FolderIconOpen;
xDirNode.HasChildren = dir.GetFiles().Length > 0 || dir.GetDirectories().Length > 0;
OnRenderFolderNode(ref xDirNode);
tree.Add(xDirNode);
OnBeforeNodeRender(ref tree, ref xDirNode, EventArgs.Empty);
if (xDirNode != null)
{
tree.Add(xDirNode);
OnAfterNodeRender(ref tree, ref xDirNode, EventArgs.Empty);
}
}
}
FileInfo[] fileInfo = dirInfo.GetFiles(FileSearchPattern);
@@ -86,8 +93,14 @@ namespace umbraco.cms.presentation.Trees
xFileNode.OpenIcon = "doc.gif";
OnRenderFileNode(ref xFileNode);
OnBeforeNodeRender(ref tree, ref xFileNode, EventArgs.Empty);
if (xFileNode != null)
{
tree.Add(xFileNode);
OnAfterNodeRender(ref tree, ref xFileNode, EventArgs.Empty);
}
tree.Add(xFileNode);
}
}
}

View File

@@ -6,6 +6,7 @@ using System.IO;
using System.Text;
using System.Web;
using System.Xml;
using System.Linq;
using System.Configuration;
using umbraco.BasePages;
using umbraco.BusinessLogic;

View File

@@ -35,7 +35,14 @@ namespace umbraco.cms.presentation.Trees
XmlTreeNode xNode = XmlTreeNode.Create(this);
xNode.Text = "Error";
xNode.Menu = null;
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
protected override void CreateRootNode(ref XmlTreeNode rootNode)

View File

@@ -52,8 +52,14 @@ namespace umbraco.cms.presentation.Trees
node.Text = user.Name;
node.Action = "javascript:openUserPermissions('" + user.Id.ToString() + "');";
node.Icon = "user.gif";
OnBeforeNodeRender(ref tree, ref node, EventArgs.Empty);
if (node != null)
{
tree.Add(node);
OnAfterNodeRender(ref tree, ref node, EventArgs.Empty);
}
tree.Add(node);
}
}
}

View File

@@ -39,8 +39,13 @@ function openUserTypes(id) {
node.Action = string.Format("javascript:openUserTypes({0})", userType.Id.ToString());
node.Icon = "user.gif";
node.Text = userType.Alias;
tree.Add(node);
OnBeforeNodeRender(ref tree, ref node, EventArgs.Empty);
if (node != null)
{
tree.Add(node);
OnAfterNodeRender(ref tree, ref node, EventArgs.Empty);
}
}
}
}

View File

@@ -101,12 +101,6 @@ namespace umbraco.cms.presentation.Trees
return "";
}
[System.Runtime.InteropServices.DispIdAttribute(-4)]
public IEnumerator GetEnumerator()
{
return treeCollection.GetEnumerator();
}
public void Add(XmlTreeNode obj)
{
treeCollection.Add(obj);
@@ -155,7 +149,13 @@ namespace umbraco.cms.presentation.Trees
set { __treeCollection = value; }
}
}
[System.Runtime.InteropServices.DispIdAttribute(-4)]
public IEnumerator GetEnumerator()
{
return (treeCollection as IEnumerable).GetEnumerator();
}
}
/// <summary>
/// Used for serializing data to XML as the data structure for the JavaScript tree

View File

@@ -72,7 +72,14 @@ namespace umbraco
xNode.Icon = "developerCacheTypes.gif";
xNode.OpenIcon = "developerCacheTypes.gif";
xNode.HasChildren = itemCount > 0;
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -80,8 +80,14 @@ function openCacheItem(id) {
xNode.Action = "javascript:openCacheItem('" + a[i] + "');";
xNode.Icon = "developerCacheItem.gif";
xNode.OpenIcon = "developerCacheItem.gif";
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
tree.Add(xNode);
}
}

View File

@@ -64,8 +64,14 @@ function openDataType(id) {
xNode.Action = "javascript:openDataType(" + dt.Id + ");";
xNode.Icon = "developerDatatype.gif";
xNode.OpenIcon = "developerDatatype.gif";
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
tree.Add(xNode);
}
}

View File

@@ -77,7 +77,14 @@ namespace umbraco
xNode.NodeType = "DictionaryItem"; //this shouldn't be like this, it should be this.TreeAlias but the ui.config file points to this name.
xNode.Source = this.GetTreeServiceUrl(di.id);
xNode.HasChildren = di.hasChildren;
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -60,8 +60,14 @@ function openDictionary() {
xNode.Action = "javascript:openLanguage(" + l.id + ");";
xNode.Icon = "settingLanguage.gif";
xNode.OpenIcon = "settingLanguage.gif";
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
tree.Add(xNode);
}
}

View File

@@ -56,7 +56,13 @@ function openMediaType(id) {
xNode.Icon = "settingDataType.gif";
xNode.OpenIcon = "settingDataType.gif";
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -75,7 +75,13 @@ function openMemberGroup(id) {
{
xNode.Menu = null;
}
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
}
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}

View File

@@ -91,7 +91,14 @@ function openNodeType(id) {
xNode.Icon = "settingMasterDataType.gif";
xNode.OpenIcon = "settingMasterDataType.gif";
}
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -59,7 +59,13 @@ namespace umbraco
xNode.Icon = "settingCssItem.gif";
xNode.OpenIcon = "settingCssItem.gif";
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -69,7 +69,14 @@ namespace umbraco
xNode.Icon = "settingCss.gif";
xNode.OpenIcon = "settingCss.gif";
xNode.NodeType = "stylesheet"; //this shouldn't be like this, it should be this.TreeAlias but the ui.config file points to this name.
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -69,7 +69,14 @@ function openTemplate(id) {
xNode.Icon = "settingMasterTemplate.gif";
xNode.OpenIcon = "settingMasterTemplate.gif";
}
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -69,7 +69,13 @@ namespace umbraco {
xNode.Icon = ".sprTreeSettingLanguage";
xNode.OpenIcon = ".sprTreeSettingLanguage";
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}
@@ -114,7 +120,13 @@ namespace umbraco {
xNode.Icon = ".sprTreeSettingLanguage";
xNode.OpenIcon = ".sprTreeSettingLanguage";
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}

View File

@@ -98,7 +98,13 @@ function openUser(id) {
xNode.Icon = "user.gif";
xNode.OpenIcon = "user.gif";
tree.Add(xNode);
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
if (xNode != null)
{
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
}