Beispiel #1
0
        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)));
 }
Beispiel #3
0
        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);
Beispiel #5
0
        /// <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));
        }