/// <summary> /// Creates a display setup object for display that depends on this page-modification-value condition. /// </summary> public static DisplaySetup ToDisplaySetup(this PageModificationValueCondition pageModificationValueCondition) => new DisplaySetup( Tuple.Create <Action <string>, Action <string> >( statements => pageModificationValueCondition.AddJsModificationStatement( expression => "if( {0} )".FormatWith(expression) + " { " + statements + " }"), statements => pageModificationValueCondition.AddJsModificationStatement( expression => "if( !( {0} ) )".FormatWith(expression) + " { " + statements + " }")), () => pageModificationValueCondition.IsTrue);
/// <summary> /// Creates an element-class set that depends on this page-modification-value condition. /// </summary> public static ElementClassSet ToElementClassSet(this PageModificationValueCondition pageModificationValueCondition, ElementClassSet staticClassSet) { if (staticClassSet.ConditionsByClassName.Values.Any(i => i != null)) { throw new ApplicationException("At least one class already has dynamic behavior."); } return(new ElementClassSet(staticClassSet.ConditionsByClassName.Keys.ToImmutableDictionary(i => i, i => pageModificationValueCondition))); }
// Web Forms compatibility. Remove when EnduraCode goal 790 is complete. public static void AddDisplayLink(this PageModificationValueCondition pageModificationValueCondition, IEnumerable <WebControl> controls) { controls = controls.ToImmutableArray(); foreach (var control in controls) { pageModificationValueCondition.AddJsModificationStatement(expression => "setElementDisplay( '{0}', {1} );".FormatWith(control.ClientID, expression)); } EwfPage.Instance.AddDisplayLink(new DisplayLinkAdapter(controls, () => pageModificationValueCondition.IsTrue)); }
/// <summary> /// Creates a condition that will be true if this is a post-back request and the current focus key matches the specified value. /// </summary> /// <param name="focusKey">Do not pass null or the empty string.</param> /// <param name="pageCondition"></param> public static AutofocusCondition PostBack(string focusKey, PageModificationValueCondition pageCondition = null) { return(new AutofocusCondition((focusKey, pageCondition).ToCollection())); }
/// <summary> /// Creates a condition that will be true if this is an initial request for the page. /// </summary> /// <param name="pageCondition"></param> public static AutofocusCondition InitialRequest(PageModificationValueCondition pageCondition = null) { return(new AutofocusCondition(("", pageCondition).ToCollection())); }