Mine is similar but is more relaxed, letting me define any kind of
selector not just ids. So I write this in my .brailjs:
page.ReplaceHtml("#myTarget",[EMAIL PROTECTED]:"mypartial"}) or
page.ReplaceHtml(".myTarget",[EMAIL PROTECTED]:"mypartial"})

On Sep 26, 2:21 am, "Ayende Rahien" <[EMAIL PROTECTED]> wrote:
> This is something that I did for my private use. It works on my machine,
> etc...
>
> On Fri, Sep 26, 2008 at 12:16 PM, Ernst Naezer <[EMAIL PROTECTED]>wrote:
>
> > Hi guys,
>
> > did anybody ever get to writing this and some test cases under the same
> > license as the rest of the code so we can add it to the Monorail base and
> > fill that empty directory :)
>
> > cheers,
> > Ernst
>
>
>
> [JQueryGenerator.cs3K ]using System;
> using System.Collections.Generic;
> using Castle.MonoRail.Framework.JSGeneration;
>
> namespace HibernatingRhinos
> {
>         public class JQueryGenerator : AbstractJSGenerator
>         {
>                 static IDictionary<string, string> positions = new 
> Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase)
>                 {
>                         {"before", "before"},
>             {"after", "after"},
>                         {"top", "prepend"},
>                         {"bottom", "append"},
>                         {"prepend", "prepend"},
>                         {"append", "append"}
>                 };
>
>                 public JQueryGenerator(IJSCodeGenerator codeGenerator)
>                         : base(codeGenerator)
>                 {
>                 }
>
>                 public override IJSElementGenerator 
> CreateElementGenerator(string root)
>                 {
>                         return new JQueryElementGenerator(this, root);
>                 }
>
>                 public override void Hide(string[] ids)
>                 {
>                         SelectRelevantElements(ids);
>                         CodeGenerator.Write(".hide();");
>                 }
>
>                 private void SelectRelevantElements(params string[] ids)
>                 {
>                         if (ids.Length == 0)
>                                 throw new InvalidOperationException("Must 
> pass at least one id");
>
>                         CodeGenerator.Write("jQuery(");
>                         foreach (string id in ids)
>                         {
>                                 CodeGenerator.Write("#" + id + ",");
>                         }
>                         CodeGenerator.RemoveTail();
>                         CodeGenerator.Write(")");
>                 }
>
>                 public override void InsertHtml(string position, string id, 
> object renderOptions)
>                 {
>                         string realPosition;
>                         if (positions.TryGetValue(position, out realPosition) 
> == false)
>                                 throw new InvalidOperationException("Position 
> " + position + " is invalid");
>                         SelectRelevantElements(id);
>                         CodeGenerator.Write(".");
>                         CodeGenerator.Write(realPosition);
>                         CodeGenerator.Write(");");
>                 }
>
>                 public override void Remove(string[] ids)
>                 {
>                         SelectRelevantElements(ids);
>                         CodeGenerator.Write(".remove();");
>                 }
>
>                 public override void Replace(string id, object renderOptions)
>                 {
>                         SelectRelevantElements(id);
>                         CodeGenerator.Write(".replaceWith(");
>                         CodeGenerator.Write(Render(renderOptions).ToString());
>                         CodeGenerator.Write(");");
>
>                 }
>
>                 public override void ReplaceHtml(string id, object 
> renderOptions)
>                 {
>                         SelectRelevantElements(id);
>                         CodeGenerator.Write(".empty();");
>                         SelectRelevantElements(id);
>                         CodeGenerator.Write(".append(");
>                         CodeGenerator.Write(Render(renderOptions).ToString());
>                         CodeGenerator.Write(");");
>                 }
>
>                 public override void Show(string[] ids)
>                 {
>                         SelectRelevantElements(ids);
>                         CodeGenerator.Write(".show();");
>                 }
>
>                 public override void Toggle(string[] ids)
>                 {
>                         SelectRelevantElements(ids);
>                         CodeGenerator.Write(".toggle();");
>                 }
>         }
>
> }
>
>
>
> [JQueryElementGenerator.cs< 1K ]using Castle.MonoRail.Framework.JSGeneration;
>
> namespace HibernatingRhinos
> {
>         public class JQueryElementGenerator : IJSElementGenerator
>         {
>                 private readonly JQueryGenerator parent;
>                 private readonly string root;
>
>                 public JQueryElementGenerator(JQueryGenerator parent, string 
> root)
>                 {
>                         this.parent = parent;
>                         this.root = root;
>                 }
>
>                 public void ReplaceHtml(object renderOptions)
>                 {
>                         parent.ReplaceHtml(root, renderOptions);
>                 }
>
>                 public void Replace(object renderOptions)
>                 {
>                         parent.Replace(root, renderOptions);
>                 }
>
>                 public IJSGenerator ParentGenerator
>                 {
>                         get { return parent; }
>                 }
>         }
>
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to