private static BuiltPanels <T> BuildNonhideable <T>(T panels, IFormRenderer <HTMLElement> renderer) where T : TwoPanelsWithResizer { var leftCanvas = new ElementWrapperFormCanvas( Toolkit.BaseFormCanvasTitleStrategy, panels.FirstPanel, Toolkit.DefaultExitButtonBuilder, Toolkit.DefaultLayoutMode); var leftRenderer = renderer.CreateRendererWithBase(leftCanvas); var rightCanvas = new ElementWrapperFormCanvas( Toolkit.BaseFormCanvasTitleStrategy, panels.SecondPanel, Toolkit.DefaultExitButtonBuilder, Toolkit.DefaultLayoutMode); var rightRenderer = renderer.CreateRendererWithBase(rightCanvas); return(BuiltPanels <T> .BuiltNonHideable(panels, leftRenderer, rightRenderer, leftCanvas, rightCanvas)); }
public IFormRenderer <HTMLElement> CreateRenderer() { return(_baseRenderer.CreateRendererWithBase( new ElementWrapperFormCanvas( Toolkit.BaseFormCanvasTitleStrategy, _mainMenuFormView.BodyPanel.Widget, Toolkit.DefaultExitButtonBuilder, Toolkit.DefaultLayoutMode))); }
public MainMenuFlow(ISomeService someService, ITranslationsService translationsService, IHttpRequester httpRequester) { IFormRenderer <HTMLElement> CreateRenderer() => _baseRenderer.CreateRendererWithBase( new ElementWrapperFormCanvas( Toolkit.BaseFormCanvasTitleStrategy, _mainMenuFormView.BodyPanel.Widget, Toolkit.DefaultExitButtonBuilder, Toolkit.DefaultLayoutMode)); _aboutMsg = new InformationalMessageForm( new InformationalMessageFormView(TextType.TreatAsHtml), "<b>Philadelphia Toolkit Demo</b><br>by TODO IT spółka z o.o.", "About program"); _aboutMsg.Ended += (x, _) => _lastRenderer.Remove(x); _licensesInfoMsg = new InformationalMessageForm( new InformationalMessageFormView(TextType.TreatAsHtml), OpenSourceLicensesText.OpenSourceLicensesHtml, I18n.Translate("Used open source licensed programs and libraries")); _licensesInfoMsg.Ended += (x, _) => _lastRenderer.Remove(x); var menuItems = new List <MenuItemUserModel> { CreateSubTree("Features", CreateLocalLeaf( "Server-sent events", () => new SseDemoFlow(someService).Run(CreateRenderer())), CreateLocalLeaf( "Forms navigation", () => new NavigationProgram().Run(CreateRenderer())), CreateLocalLeaf( "Internationalization", () => new InternationalizationFlow(translationsService).Run(CreateRenderer()))), CreateSubTree("Data validation", CreateLocalLeaf( "Simplest", () => new ValidationProgram().Run(CreateRenderer())), CreateLocalLeaf( "Tabbed view indicator", () => new TabbedViewValidationFlow().Run(CreateRenderer())), CreateLocalLeaf( "File uploads", () => new UploaderDemoFlow(someService, httpRequester).Run(CreateRenderer()))), CreateSubTree("Widgets", CreateLocalLeaf( "Databound datagrid", () => new DataboundDatagridProgram(someService).Run(CreateRenderer())), CreateLocalLeaf( "Datetime pickers", () => new DateTimeDemoProgram().Run(CreateRenderer())), CreateLocalLeaf( "Dropdowns", () => new DropdownsProgram().Run(CreateRenderer())), CreateLocalLeaf( "Master details", () => new MasterDetailsProgram(someService).Run(CreateRenderer())), CreateLocalLeaf( "Flexible layout", () => new FlexibleLayoutFlow().Run(CreateRenderer()))), CreateSubTree("Help", CreateLocalLeaf( "About program", () => { _lastRenderer = CreateRenderer(); _lastRenderer.AddPopup(_aboutMsg); }), CreateLocalLeaf( "Open source licenses", () => { _lastRenderer = CreateRenderer(); _lastRenderer.AddPopup(_licensesInfoMsg); }) ) }; //TODO dropdown with not-legal-anymore/scratched value //TODO add I18n demo _mainMenuFormView = new HorizontalLinksMenuFormView(); _mainMenuForm = new MenuForm(_mainMenuFormView, menuItems); }
public IFormRenderer <HTMLElement> CreateRendererWithBase(IFormCanvas <HTMLElement> masterCanvas) => _adapted.CreateRendererWithBase(masterCanvas);
/// <param name="whichOne">true = first, false=second</param> private static BuiltPanels <T> BuildHideable <T>( T panels, bool whichOne, bool showable, IFormRenderer <HTMLElement> renderer) where T : TwoPanelsWithResizer { var fstIsHideable = whichOne; var toBeHidden = fstIsHideable ? panels.FirstPanel : panels.SecondPanel; var hideAct = new HTMLDivElement { TextContent = FontAwesomeSolid.IconTimes } .With(x => x.AddClasses( Magics.CssClassHideAction, Magics.CssClassEnabled, IconFontType.FontAwesomeSolid.ToCssClassName())); var showAct = showable ? new HTMLDivElement { TextContent = FontAwesomeSolid.IconBars } .With(x => x.AddClasses( Magics.CssClassShowAction, IconFontType.FontAwesomeSolid.ToCssClassName())) : null; panels.FirstPanel.AddClasses(Magics.CssClassPositionRelative); var leftCanvas = new ElementWrapperFormCanvas( Toolkit.BaseFormCanvasTitleStrategy, panels.FirstPanel, Toolkit.DefaultExitButtonBuilder, Toolkit.DefaultLayoutMode, fstIsHideable ? hideAct : showAct); var leftRenderer = renderer.CreateRendererWithBase(leftCanvas); panels.SecondPanel.AddClasses(Magics.CssClassPositionRelative); var rightCanvas = new ElementWrapperFormCanvas( Toolkit.BaseFormCanvasTitleStrategy, panels.SecondPanel, Toolkit.DefaultExitButtonBuilder, Toolkit.DefaultLayoutMode, fstIsHideable ? showAct : hideAct); var rightRenderer = renderer.CreateRendererWithBase(rightCanvas); var lastSize = new MutableHolder <Tuple <double, double> >(); var shown = new MutableHolder <bool>(true); void HideAction() { if (!shown.Value) { Logger.Debug(typeof(TwoPanelsWithResizerBuilder), "already hidden"); return; } hideAct.RemoveClasses(Magics.CssClassEnabled); if (showable) { showAct.AddClasses(Magics.CssClassEnabled); } lastSize.Value = panels.Sizes; toBeHidden.AddClasses(Magics.CssClassNotRendered); panels.Splitter.AddClasses(Magics.CssClassNotRendered); shown.Value = false; panels.ForceSizeCalculation(VisibilityAction.Hiding); } void ShowAction() { if (shown.Value) { Logger.Debug(typeof(TwoPanelsWithResizerBuilder), "already shown"); return; } if (showable) { showAct.RemoveClasses(Magics.CssClassEnabled); } hideAct.AddClasses(Magics.CssClassEnabled); toBeHidden.RemoveClasses(Magics.CssClassNotRendered); panels.Splitter.RemoveClasses(Magics.CssClassNotRendered); shown.Value = true; panels.ForceSizeCalculation(VisibilityAction.Showing, lastSize.Value); } hideAct.OnClick += ev => HideAction(); if (showable) { showAct.OnClick += ev => ShowAction(); } return(BuiltPanels <T> .BuiltHideable(panels, leftRenderer, rightRenderer, leftCanvas, rightCanvas, HideAction, ShowAction)); }