public AspectNode(IGenericAspect aspect) : base(aspect.Name) { this.aspect = aspect; this.ImageIndex = 4; this.SelectedImageIndex = 4; foreach (AspectTarget target in aspect.Targets) { AspectTargetNode targetNode = new AspectTargetNode(target); this.Nodes.Add(targetNode); } ArrayList mixins = (ArrayList) aspect.Mixins; mixins.Sort(); foreach (PresentationMixin mixin in mixins) { MixinNode mixinNode = new MixinNode(mixin); this.Nodes.Add(mixinNode); } foreach (IPointcut pointcut in aspect.Pointcuts) { PointcutNode pointcutNode = new PointcutNode(pointcut); this.Nodes.Add(pointcutNode); } }
public AspectNode(IGenericAspect aspect) : base(aspect.Name) { this.aspect = aspect; this.ImageIndex = 4; this.SelectedImageIndex = 4; foreach (AspectTarget target in aspect.Targets) { AspectTargetNode targetNode = new AspectTargetNode(target); this.Nodes.Add(targetNode); } ArrayList mixins = (ArrayList)aspect.Mixins; mixins.Sort(); foreach (PresentationMixin mixin in mixins) { MixinNode mixinNode = new MixinNode(mixin); this.Nodes.Add(mixinNode); } foreach (IPointcut pointcut in aspect.Pointcuts) { PointcutNode pointcutNode = new PointcutNode(pointcut); this.Nodes.Add(pointcutNode); } }
public override void Refresh() { this.Text = aspect.Name; int pointcutsStartAt = -1; #region Prune Targets IList prune = new ArrayList(); Hashtable existing = new Hashtable(); foreach (AspectTarget target in aspect.Targets) existing[target] = target; foreach (TreeNode node in this.Nodes) { AspectTargetNode targetNode = node as AspectTargetNode; if (targetNode != null) { if (!existing.Contains(targetNode.Target)) prune.Add(targetNode); } } foreach (TreeNode pruneNode in prune) this.Nodes.Remove(pruneNode); #endregion #region Prune Mixins prune = new ArrayList(); existing = new Hashtable(); foreach (PresentationMixin mixin in aspect.Mixins) existing[mixin] = mixin; foreach (TreeNode node in this.Nodes) { MixinNode mixinNode = node as MixinNode; if (mixinNode != null) { if (!existing.Contains(mixinNode.Mixin)) prune.Add(mixinNode); } } foreach (TreeNode mixinNode in prune) this.Nodes.Remove(mixinNode); #endregion #region Prune Pointcuts prune = new ArrayList(); existing = new Hashtable(); foreach (IPointcut pointcut in aspect.Pointcuts) existing[pointcut] = pointcut; foreach (TreeNode node in this.Nodes) { PointcutNode pointcutNode = node as PointcutNode; if (pointcutNode != null) { if (!existing.Contains(pointcutNode.Pointcut)) prune.Add(pointcutNode); } } foreach (TreeNode pruneNode in prune) this.Nodes.Remove(pruneNode); #endregion #region Add Targets int insertAt = -1; int i = 0; IList insert = new ArrayList(); existing = new Hashtable(); foreach (TreeNode node in this.Nodes) { AspectTargetNode targetNode = node as AspectTargetNode; if (targetNode != null) existing[targetNode.Target] = targetNode.Target; if (insertAt == -1) { MixinNode mixinNode = node as MixinNode; if (mixinNode != null) insertAt = i; } i++; } foreach (AspectTarget target in aspect.Targets) if (!existing.Contains(target)) insert.Add(target); foreach (AspectTarget target in insert) { AspectTargetNode insertNode = new AspectTargetNode(target); this.Nodes.Insert(insertAt, insertNode); } #endregion #region Add Mixins insertAt = -1; i = 0; insert = new ArrayList(); existing = new Hashtable(); foreach (TreeNode node in this.Nodes) { MixinNode mixinNode = node as MixinNode; if (mixinNode != null) existing[mixinNode.Mixin] = mixinNode.Mixin; if (insertAt == -1) { PointcutNode pointcutNode = node as PointcutNode; if (pointcutNode != null) { insertAt = i; pointcutsStartAt = i; } } i++; } foreach (PresentationMixin mixin in aspect.Mixins) if (!existing.Contains(mixin)) insert.Add(mixin); foreach (PresentationMixin mixin in insert) { MixinNode insertNode = new MixinNode(mixin); this.Nodes.Insert(insertAt, insertNode); } #endregion #region Add Pointcuts insert = new ArrayList(); existing = new Hashtable(); foreach (TreeNode node in this.Nodes) { PointcutNode pointcutNode = node as PointcutNode; if (pointcutNode != null) existing[pointcutNode.Pointcut] = pointcutNode.Pointcut; } foreach (IPointcut pointcut in aspect.Pointcuts) if (!existing.Contains(pointcut)) insert.Add(pointcut); foreach (IPointcut pointcut in insert) { PointcutNode insertNode = new PointcutNode(pointcut); this.Nodes.Add(insertNode); } #endregion #region Order Pointcuts i = pointcutsStartAt; foreach (IPointcut pointcut in aspect.Pointcuts) { NodeBase node = TreeViewManager.FindNodeByObject(this.Nodes, pointcut); if (node.Index != i) { this.Nodes.Remove(node); this.Nodes.Insert(i, node); } i++; } #endregion base.Refresh(); }
public override void Refresh() { this.Text = aspect.Name; int pointcutsStartAt = -1; #region Prune Targets IList prune = new ArrayList(); Hashtable existing = new Hashtable(); foreach (AspectTarget target in aspect.Targets) { existing[target] = target; } foreach (TreeNode node in this.Nodes) { AspectTargetNode targetNode = node as AspectTargetNode; if (targetNode != null) { if (!existing.Contains(targetNode.Target)) { prune.Add(targetNode); } } } foreach (TreeNode pruneNode in prune) { this.Nodes.Remove(pruneNode); } #endregion #region Prune Mixins prune = new ArrayList(); existing = new Hashtable(); foreach (PresentationMixin mixin in aspect.Mixins) { existing[mixin] = mixin; } foreach (TreeNode node in this.Nodes) { MixinNode mixinNode = node as MixinNode; if (mixinNode != null) { if (!existing.Contains(mixinNode.Mixin)) { prune.Add(mixinNode); } } } foreach (TreeNode mixinNode in prune) { this.Nodes.Remove(mixinNode); } #endregion #region Prune Pointcuts prune = new ArrayList(); existing = new Hashtable(); foreach (IPointcut pointcut in aspect.Pointcuts) { existing[pointcut] = pointcut; } foreach (TreeNode node in this.Nodes) { PointcutNode pointcutNode = node as PointcutNode; if (pointcutNode != null) { if (!existing.Contains(pointcutNode.Pointcut)) { prune.Add(pointcutNode); } } } foreach (TreeNode pruneNode in prune) { this.Nodes.Remove(pruneNode); } #endregion #region Add Targets int insertAt = -1; int i = 0; IList insert = new ArrayList(); existing = new Hashtable(); foreach (TreeNode node in this.Nodes) { AspectTargetNode targetNode = node as AspectTargetNode; if (targetNode != null) { existing[targetNode.Target] = targetNode.Target; } if (insertAt == -1) { MixinNode mixinNode = node as MixinNode; if (mixinNode != null) { insertAt = i; } } i++; } foreach (AspectTarget target in aspect.Targets) { if (!existing.Contains(target)) { insert.Add(target); } } foreach (AspectTarget target in insert) { AspectTargetNode insertNode = new AspectTargetNode(target); this.Nodes.Insert(insertAt, insertNode); } #endregion #region Add Mixins insertAt = -1; i = 0; insert = new ArrayList(); existing = new Hashtable(); foreach (TreeNode node in this.Nodes) { MixinNode mixinNode = node as MixinNode; if (mixinNode != null) { existing[mixinNode.Mixin] = mixinNode.Mixin; } if (insertAt == -1) { PointcutNode pointcutNode = node as PointcutNode; if (pointcutNode != null) { insertAt = i; pointcutsStartAt = i; } } i++; } foreach (PresentationMixin mixin in aspect.Mixins) { if (!existing.Contains(mixin)) { insert.Add(mixin); } } foreach (PresentationMixin mixin in insert) { MixinNode insertNode = new MixinNode(mixin); this.Nodes.Insert(insertAt, insertNode); } #endregion #region Add Pointcuts insert = new ArrayList(); existing = new Hashtable(); foreach (TreeNode node in this.Nodes) { PointcutNode pointcutNode = node as PointcutNode; if (pointcutNode != null) { existing[pointcutNode.Pointcut] = pointcutNode.Pointcut; } } foreach (IPointcut pointcut in aspect.Pointcuts) { if (!existing.Contains(pointcut)) { insert.Add(pointcut); } } foreach (IPointcut pointcut in insert) { PointcutNode insertNode = new PointcutNode(pointcut); this.Nodes.Add(insertNode); } #endregion #region Order Pointcuts i = pointcutsStartAt; foreach (IPointcut pointcut in aspect.Pointcuts) { NodeBase node = TreeViewManager.FindNodeByObject(this.Nodes, pointcut); if (node.Index != i) { this.Nodes.Remove(node); this.Nodes.Insert(i, node); } i++; } #endregion base.Refresh(); }