public NavigateInterceptor( IHandler handler, NavigationStyle style) : base(typeof(C)) { _handler = handler; _style = style; }
public void CssClassWellFormattedForStyle(NavigationStyle style, string expected) { new Navigation { Style = style } .CssClasses.Should().Be(expected); }
public NavigationRequest(Type controllerType, MethodInfo action, object[] args, NavigationStyle style) { ControllerType = controllerType; Action = action; Args = args; Style = style; }
public static C Navigate <C>(this IHandler handler, NavigationStyle style) where C : class, IController { if (handler == null) { throw new ArgumentNullException(nameof(handler)); } return((C) new NavigateInterceptor <C>(handler, style) .GetTransparentProxy()); }
public void Register(ActionBase action) { NavigationStyle navigationStyle = NavigationStyle.NavBar; if (action.Application != null) { navigationStyle = NavigationHelper.GetControlStyle(action.Application.Model); } Register(action, navigationStyle); }
protected virtual IWebNavigationControl CreateNavigationControl(NavigationStyle controlStyle){ switch (controlStyle){ case NavigationStyle.TreeList: return new TreeViewNavigationControl(); case NavigationStyle.NavBar:{ var navControl = new ASPxMenuNavigationControl(); ((ASPxMenu) navControl.Control).Width = Width; return navControl; } default: return null; } }
protected virtual IWebNavigationControl CreateNavigationControl(NavigationStyle controlStyle) { switch (controlStyle) { case NavigationStyle.TreeList: return(new TreeViewNavigationControl()); case NavigationStyle.NavBar: { ASPxMenuNavigationControl navControl = new ASPxMenuNavigationControl(); ((ASPxMenu)navControl.Control).Width = Width; return(navControl); } default: return(null); } }
public void Register(ActionBase action, NavigationStyle navigationStyle){ UnsubscribeFromCallbackStartupScriptRegistering(); var disposable = _mainNavControl as IDisposable; if (disposable != null){ disposable.Dispose(); } Controls.Clear(); if (navigationStyle == NavigationStyle.NavBar){ CssClass += " NavBarLiteAC"; } _mainNavControl = CreateNavigationControl(navigationStyle); _mainNavControl.Control.Unload += Control_Unload; SubscribeToCallbackStartupScriptRegistering(); _mainNavControl.SetNavigationActionItems(((ChoiceActionBase) action).Items, (SingleChoiceAction) action); Controls.Add(_mainNavControl.Control); _singleChoiceAction = action as SingleChoiceAction; }
public void Register(ActionBase action, NavigationStyle navigationStyle) { UnsubscribeFromCallbackStartupScriptRegistering(); var disposable = _mainNavControl as IDisposable; if (disposable != null) { disposable.Dispose(); } Controls.Clear(); if (navigationStyle == NavigationStyle.NavBar) { CssClass += " NavBarLiteAC"; } _mainNavControl = CreateNavigationControl(navigationStyle); _mainNavControl.Control.Unload += Control_Unload; SubscribeToCallbackStartupScriptRegistering(); _mainNavControl.SetNavigationActionItems(((ChoiceActionBase)action).Items, (SingleChoiceAction)action); Controls.Add(_mainNavControl.Control); _singleChoiceAction = action as SingleChoiceAction; }
private static object Navigate <C>(Func <C, object> action, NavigationStyle style) where C : class, IController { if (action == null) { throw new ArgumentNullException(nameof(action)); } var composer = Composer; var context = composer?.Resolve <IContext>(); if (context == null) { throw new InvalidOperationException( "A context is required for controller navigation"); } var initiator = composer.Resolve <IController>(); var ctx = style != NavigationStyle.Next ? context.CreateChild() : context; C controller; try { controller = (C)ResolveController(ctx, typeof(C)); if (initiator != null && initiator != controller && initiator.Context != ctx) { initiator.DependsOn(controller); } } catch { if (style != NavigationStyle.Next) { ctx.End(); } throw; } var ctrl = controller as Controller; try { if (style == NavigationStyle.Push) { composer = composer.PushLayer(); } else { var init = initiator as Controller; if (ctrl != null && init != null) { ctrl._lastAction = h => P <INavigate>(h).Next(action); ctrl._retryAction = init._lastAction; } } var oldIo = ctrl?._io; if (ctrl != null) { // Propogate composer options var io = ReferenceEquals(context, ctx) ? composer : ctx.Self().Chain(composer); var prepare = Controller.GlobalPrepare; if (prepare != null) { io = prepare.GetInvocationList().Cast <FilterBuilder>() .Aggregate(io, (current, builder) => builder(current) ?? current); } ctrl._io = io; } try { return(action(controller)); } finally { if (ctrl != null) { ctrl._io = oldIo; } if (initiator != null && initiator.Context == ctx && initiator != controller) { initiator.Release(); initiator.Context = null; } } } catch { if (style != NavigationStyle.Next) { ctx.End(); } else if (initiator != null && initiator.Context == ctx) { controller.DependsOn(initiator); } throw; } }
object INavigate.Navigate <C>(Func <C, object> action, NavigationStyle style) { return(Navigate(action, style)); }
protected C Navigate <C>(IHandler handler, NavigationStyle style) where C : class, IController { return(handler.Navigate <C>(style)); }
protected C Navigate <C>(NavigationStyle style) where C : class, IController { return(Push <C>(IO)); }