Adding some new events around tree rendering to make manipulation easier

[TFS Changeset #65921]
This commit is contained in:
slace
2010-05-03 03:08:51 +00:00
parent 1e800e7cfb
commit 4e8c72187f
6 changed files with 63 additions and 49 deletions

View File

@@ -1239,6 +1239,7 @@
</Compile>
<Compile Include="umbraco\Trees\MediaRecycleBin.cs" />
<Compile Include="umbraco\Trees\NodeActionsEventArgs.cs" />
<Compile Include="umbraco\Trees\TreeEventArgs.cs" />
<Compile Include="umbraco\Trees\TreeRequestParams.cs" />
<Compile Include="umbraco\webservices\MacroContainerService.asmx.cs">
<DependentUpon>MacroContainerService.asmx</DependentUpon>

View File

@@ -159,6 +159,9 @@ function openContent(id) {
//get documents to render
Document[] docs = Document.GetChildrenForTree(m_id);
var args = new TreeEventArgs(Tree);
OnBeforeTreeRender(docs, args);
foreach (Document dd in docs)
{
List<IAction> allowedUserOptions = GetUserActionsForNode(dd);
@@ -175,9 +178,10 @@ function openContent(id) {
Tree.Add(node);
OnAfterNodeRender(ref Tree, ref node, EventArgs.Empty);
}
}
}
//args = new TreeEventArgs(Tree);
OnAfterTreeRender(docs, args);
}
#region Tree Attribute Setter Methods

View File

@@ -1,36 +1,17 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
using System.Web;
using System.Xml;
using System.Configuration;
using umbraco.BasePages;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic;
using umbraco.cms.businesslogic.cache;
using umbraco.cms.businesslogic.contentitem;
using umbraco.cms.businesslogic.datatype;
using umbraco.cms.businesslogic.language;
using umbraco.cms.businesslogic.media;
using umbraco.cms.businesslogic.member;
using umbraco.cms.businesslogic.property;
using umbraco.cms.businesslogic.web;
using umbraco.interfaces;
using umbraco.DataLayer;
using umbraco.BusinessLogic.Actions;
using umbraco.BusinessLogic.Utils;
using umbraco.cms.presentation.Trees;
using umbraco.IO;
using umbraco.cms.businesslogic.media;
using umbraco.cms.businesslogic.property;
using umbraco.interfaces;
namespace umbraco.cms.presentation.Trees
{
public abstract class BaseMediaTree : BaseTree
{
public BaseMediaTree(string application)
: base(application)
{
@@ -74,7 +55,10 @@ function openMedia(id) {
public override void Render(ref XmlTree tree)
{
Media[] docs = new Media(m_id).Children;
var args = new TreeEventArgs(tree);
OnBeforeTreeRender(docs, args);
foreach (Media dd in docs)
{
XmlTreeNode xNode = XmlTreeNode.Create(this);
@@ -131,8 +115,8 @@ function openMedia(id) {
tree.Add(xNode);
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
}
}
OnAfterTreeRender(docs, args);
}
/// <summary>

View File

@@ -1,27 +1,11 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Xml;
using System.Configuration;
using umbraco.BasePages;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic;
using umbraco.cms.businesslogic.cache;
using umbraco.cms.businesslogic.contentitem;
using umbraco.cms.businesslogic.datatype;
using umbraco.cms.businesslogic.language;
using umbraco.cms.businesslogic.media;
using umbraco.cms.businesslogic.member;
using umbraco.cms.businesslogic.property;
using umbraco.cms.businesslogic.web;
using umbraco.interfaces;
using umbraco.DataLayer;
using umbraco.BusinessLogic.Utils;
using umbraco.BusinessLogic.Actions;
using umbraco.interfaces;
namespace umbraco.cms.presentation.Trees
{
@@ -490,7 +474,9 @@ namespace umbraco.cms.presentation.Trees
public delegate void AfterNodeRenderEventHandler(ref XmlTree sender, ref XmlTreeNode node, EventArgs e);
public static event BeforeNodeRenderEventHandler BeforeNodeRender;
public static event AfterNodeRenderEventHandler AfterNodeRender;
public static event EventHandler<TreeEventArgs> BeforeTreeRender;
public static event EventHandler<TreeEventArgs> AfterTreeRender;
/// <summary>
/// Raises the <see cref="E:BeforeNodeRender"/> event.
@@ -502,7 +488,6 @@ namespace umbraco.cms.presentation.Trees
BeforeNodeRender(ref sender, ref node, e);
}
/// <summary>
/// Raises the <see cref="E:AfterNodeRender"/> event.
/// </summary>
@@ -513,6 +498,18 @@ namespace umbraco.cms.presentation.Trees
AfterNodeRender(ref sender, ref node, e);
}
protected virtual void OnBeforeTreeRender(object sender, TreeEventArgs e)
{
if (BeforeTreeRender != null)
BeforeTreeRender(sender, e);
}
protected virtual void OnAfterTreeRender(object sender, TreeEventArgs e)
{
if (AfterTreeRender != null)
AfterTreeRender(sender, e);
}
/// <summary>
/// Event that is raised once actions are assigned to nodes
/// </summary>

View File

@@ -52,6 +52,10 @@ namespace umbraco.cms.presentation.Trees
DirectoryInfo dirInfo = new DirectoryInfo(path);
DirectoryInfo[] dirInfos = dirInfo.GetDirectories();
var args = new TreeEventArgs(tree);
OnBeforeTreeRender(dirInfo, args);
foreach (DirectoryInfo dir in dirInfos)
{
if ((dir.Attributes & FileAttributes.Hidden) == 0)
@@ -103,9 +107,7 @@ namespace umbraco.cms.presentation.Trees
}
}
}
OnAfterTreeRender(dirInfo, args);
}
}
}

View File

@@ -0,0 +1,26 @@
using System;
using umbraco.cms.businesslogic.web;
namespace umbraco.cms.presentation.Trees
{
/// <summary>
///
/// </summary>
public class TreeEventArgs : EventArgs
{
/// <summary>
/// Gets the tree.
/// </summary>
/// <value>The tree.</value>
public XmlTree Tree { get; private set; }
/// <summary>
/// Initializes a new instance of the <see cref="TreeEventArgs"/> class.
/// </summary>
/// <param name="tree">The tree which the event is for.</param>
public TreeEventArgs(XmlTree tree)
{
this.Tree = tree;
}
}
}