private IEnumerable <Control> getIdListRegionBlocks() { var rs = new UpdateRegionSet(); yield return (new ControlLine( new PostBackButton( PostBack.CreateIntermediate( rs.ToSingleElementArray(), DataUpdate, id: "idAdd", firstModificationMethod: () => parametersModification.ItemIds = (parametersModification.ItemIds.Any() ? parametersModification.ItemIds.Min() - 1 : 0).ToSingleElementArray().Concat(parametersModification.ItemIds)), new ButtonActionControlStyle("Add Item"), usesSubmitBehavior: false))); var stack = ControlStack.Create( true, itemInsertionUpdateRegions: new ItemInsertionUpdateRegion(rs, () => parametersModification.ItemIds.First().ToString().ToSingleElementArray()).ToSingleElementArray()); foreach (var i in info.ItemIds) { stack.AddItem(getIdItem(i)); } yield return(new Box("Control List With ID Items", stack.ToSingleElementArray())); }
private IEnumerable <Control> getNonIdListRegionBlocks() { var addRs = new UpdateRegionSet(); var removeRs = new UpdateRegionSet(); yield return (new ControlLine( new PostBackButton( PostBack.CreateIntermediate( addRs.ToSingleElementArray(), DataUpdate, id: "nonIdAdd", firstModificationMethod: () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Concat(new[] { 0, 0 })), new ButtonActionControlStyle("Add Two Items"), usesSubmitBehavior: false), new PostBackButton( PostBack.CreateIntermediate( removeRs.ToSingleElementArray(), DataUpdate, id: "nonIdRemove", firstModificationMethod: () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Take(parametersModification.NonIdItemStates.Count() - 2)), new ButtonActionControlStyle("Remove Two Items"), usesSubmitBehavior: false))); var stack = ControlStack.Create(true, tailUpdateRegions: new[] { new TailUpdateRegion(addRs, 0), new TailUpdateRegion(removeRs, 2) }); for (var i = 0; i < info.NonIdItemStates.Count(); i += 1) { stack.AddItem(getNonIdItem(i)); } yield return(new Box("Control List With Non-ID Items", stack.ToSingleElementArray())); }
protected override async Task AddAdditionalControls() { await base.AddAdditionalControls(); StorageHelper = ScreenManager.Game.Services.GetService <IExternalStorageHelper>(); if (null == StorageHelper) { throw new Exception("You need to add the IExternalStorageHelper to Game.Services"); } Listener = ScreenManager.Game.Services.GetService <IClutchPlayListener>(); if (null == Listener) { throw new Exception("You need to add the IClutchPlayListener to Game.Services"); } //add a shim between the text and the buttons ControlStack.AddItem(new Shim() { Size = new Vector2(0, 56f) }); //add the gif image var pp = ScreenManager.Game.GraphicsDevice.PresentationParameters; ControlStack.AddItem(new AnimatedGifImage(Listener.CurrentClutchPlay, ScreenManager.Game.GraphicsDevice) { Size = new Vector2(pp.BackBufferWidth / 3, pp.BackBufferHeight / 3), Horizontal = HorizontalAlignment.Center, Vertical = VerticalAlignment.Center, }); }
private Control getAppLogoAndUserInfoBlock() { var table = EwfTable.Create(style: EwfTableStyle.StandardLayoutOnly, classes: CssElementCreator.AppLogoAndUserInfoBlockCssClass.ToCollection()); var appLogo = new GenericFlowContainer( (!ConfigurationStatics.IsIntermediateInstallation || AppRequestState.Instance.IntermediateUserExists ? EwfUiStatics.AppProvider.GetLogoComponent() : null) ?? (EwfApp.Instance.AppDisplayName.Length > 0 ? EwfApp.Instance.AppDisplayName : ConfigurationStatics.SystemName).ToComponents(), classes: CssElementCreator.AppLogoClass); ControlStack userInfoList = null; if (AppRequestState.Instance.UserAccessible) { var changePasswordPage = UserManagement.ChangePassword.Page.GetInfo(EwfPage.Instance.InfoAsBaseType.GetUrl()); if (changePasswordPage.UserCanAccessResource && AppTools.User != null) { var userInfo = new UserInfo(); userInfo.LoadData(changePasswordPage); userInfoList = ControlStack.CreateWithControls(true, userInfo); userInfoList.CssClass = CssElementCreator.UserInfoListCssClass; } } table.AddItem(() => new EwfTableItem(new PlaceHolder().AddControlsReturnThis(appLogo.ToCollection().GetControls()), userInfoList)); return(table); }
private Control getAppLogoAndUserInfoBlock() { var table = EwfTable.Create(style: EwfTableStyle.StandardLayoutOnly, classes: CssElementCreator.AppLogoAndUserInfoBlockCssClass.ToSingleElementArray()); var appLogoBlock = EwfUiStatics.AppProvider.GetLogoControl() ?? new Panel().AddControlsReturnThis( (EwfApp.Instance.AppDisplayName.Length > 0 ? EwfApp.Instance.AppDisplayName : AppTools.SystemName).GetLiteralControl()); appLogoBlock.CssClass = CssElementCreator.AppLogoBlockCssClass; ControlStack userInfoList = null; if (AppRequestState.Instance.UserAccessible) { var changePasswordPage = UserManagement.ChangePassword.Page.GetInfo(EwfPage.Instance.InfoAsBaseType.GetUrl()); if (changePasswordPage.UserCanAccessResource && AppTools.User != null) { var userInfo = new UserInfo(); userInfo.LoadData(changePasswordPage); userInfoList = ControlStack.CreateWithControls(true, userInfo); userInfoList.CssClass = CssElementCreator.UserInfoListCssClass; } } table.AddItem(() => new EwfTableItem(appLogoBlock, userInfoList)); return(table); }
private IEnumerable <Control> getStatusMessageDialog() { if (!EwfPage.Instance.StatusMessages.Any()) { yield break; } var list = ControlStack.Create(true); list.AddControls( EwfPage.Instance.StatusMessages.Select( i => new Label { CssClass = i.Item1 == StatusMessageType.Info ? CssElementCreator.StatusMessageDialogControlListInfoItemCssClass : CssElementCreator.StatusMessageDialogControlListWarningItemCssClass, Text = i.Item2 } as Control).ToArray()); if (EwfPage.Instance.StatusMessages.Any(i => i.Item1 == StatusMessageType.Warning)) { list.AddControls(new CustomButton(() => "fadeOutStatusMessageDialog( 0 )") { ActionControlStyle = new ButtonActionControlStyle("OK") }); } yield return(new Block(list) { CssClass = CssElementCreator.StatusMessageDialogBlockCssClass }); }
private WebControl getTableForFormItemTable() { var columnWidthSpecified = firstColumnWidth != null || secondColumnWidth != null; var table = EwfTable.Create( caption: heading, fields: new[] { new EwfTableField(size: columnWidthSpecified?firstColumnWidth: Unit.Percentage(1)), new EwfTableField(size: columnWidthSpecified ? secondColumnWidth : Unit.Percentage(2)) }); table.AddData( formItems, i => { var stack = ControlStack.Create(true); if (i.Validation != null) { stack.AddModificationErrorItem(i.Validation, new ListErrorDisplayStyle()); } stack.AddControls(i.Control); return(new EwfTableItem(i.Label, stack.ToCell(new TableCellSetup(textAlignment: i.TextAlignment)))); }); return(table); }
protected override void loadData() { ph.AddControlsReturnThis( ControlStack.CreateWithControls( true, new EwfCheckBox(false, label: "Inline Check Box"), new BlockCheckBox(false, (postBackValue, validator) => { }, label: "Block Check Box"))); }
/// <summary> /// Standard Library use only. /// </summary> public static Block CreateErrorMessageListBlock(IEnumerable <string> errors) { // Client code that uses NetTools.BuildBasicLink depends on us not HTML encoding error messages here. If raw or stored user input is ever used in error // messages, we are exposed to injection attacks. return(new Block(ControlStack.CreateWithControls(true, errors.Select(i => new Literal { Text = i }).ToArray())) { CssClass = CssElementCreator.CssClass }); }
protected override void loadData() { ph.AddControlsReturnThis( ControlStack.CreateWithControls( true, new PostBackButton( PostBack.CreateFull(id: "sendHealthCheck", firstModificationMethod: () => EwfApp.Instance.SendHealthCheck()), new ButtonActionControlStyle("Send Health Check"), usesSubmitBehavior: false), new PostBackButton( PostBack.CreateFull(id: "throwException", firstModificationMethod: throwException), new ButtonActionControlStyle("Throw Unhandled Exception"), usesSubmitBehavior: false))); }
private void ItemDictTypes_SelectionChangedEvent(int oldSelection, int newSelection) { ControlStack.SuspendLayout(); ControlStack.Items.Clear(); EnumFormulaView efv = new EnumFormulaView(); foreach (var item in _vm.ItemDict) { efv = new EnumFormulaView(); efv.SetDatacontext(item); ControlStack.Items.Add(efv); } ControlStack.ResumeLayout(); }
private IEnumerable <Control> getStatusMessageControlList() { return (ControlStack.CreateWithControls( true, EwfPage.Instance.StatusMessages.Select( i => new Block( new FontAwesomeIcon(i.Item1 == StatusMessageType.Info ? "fa-info-circle" : "fa-exclamation-triangle", "fa-lg", "fa-fw").ToCollection <PhrasingComponent> ().Concat(new GenericPhrasingContainer(i.Item2.ToComponents(), classes: statusMessageTextClass)).GetControls().ToArray()) { CssClass = i.Item1 == StatusMessageType.Info ? infoMessageContainerClass : warningMessageContainerClass } as Control).ToArray()).ToCollection()); }
private ControlListItem getIdItem(int id) { var rs = new UpdateRegionSet(); var pb = PostBack.CreateIntermediate(rs.ToSingleElementArray(), DataUpdate, id: PostBack.GetCompositeId("id", id.ToString())); var itemStack = ControlStack.Create(true); itemStack.AddControls(new EwfTextBox("ID {0}".FormatWith(id))); itemStack.AddControls( new PostBackButton(pb, new ButtonActionControlStyle("Remove", buttonSize: ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false)); pb.AddModificationMethod(() => parametersModification.ItemIds = parametersModification.ItemIds.Where(i => i != id).ToArray()); return(new ControlListItem(itemStack.ToSingleElementArray(), id.ToString(), removalUpdateRegionSet: rs)); }
public MainViewContainer(ControlStack controlStack, ClimateStack climateStack) : base(ViewContainers.Main.ToString(), null) { Children = new List <IStack>() { controlStack, climateStack }; var tabbedPage = new Xamarin.Forms.TabbedPage(); var tabbed = new TabbedView(tabbedPage); NativeView = tabbed.View; foreach (var child in Children) { tabbed.Children.Add(child.Proxy.NativeView); } }
private IEnumerable <Control> getStatusMessageControlList() { return (ControlStack.CreateWithControls( true, EwfPage.Instance.StatusMessages.Select( i => new Block( new FontAwesomeIcon(i.Item1 == StatusMessageType.Info ? "fa-info-circle" : "fa-exclamation-triangle", "fa-lg", "fa-fw"), new EwfLabel { CssClass = statusMessageTextClass, Text = i.Item2 }) { CssClass = i.Item1 == StatusMessageType.Info ? infoMessageContainerClass : warningMessageContainerClass } as Control).ToArray()) .ToSingleElementArray()); }
internal static Control GetErrorMessageListBlock(IEnumerable <string> additionalClasses, IEnumerable <string> errors) { // Client code that uses NetTools.BuildBasicLink depends on us not HTML encoding error messages here. If raw or stored user input is ever used in error // messages, we are exposed to injection attacks. return (new Block( ControlStack.CreateWithControls( true, errors.Select( i => (Control) new PlaceHolder().AddControlsReturnThis(new FontAwesomeIcon("fa-times-circle", "fa-lg"), " ".GetLiteralControl(), new Literal { Text = i })) .ToArray())) { CssClass = StringTools.ConcatenateWithDelimiter(" ", CssElementCreator.CssClass.ToSingleElementArray().Concat(additionalClasses).ToArray()) }); }
private ControlListItem getNonIdItem(int i) { var rs = new UpdateRegionSet(); var pb = PostBack.CreateIntermediate(rs.ToSingleElementArray(), DataUpdate, id: PostBack.GetCompositeId("nonId", i.ToString())); var itemStack = ControlStack.Create(true); if (info.NonIdItemStates.ElementAt(i) == 1) { itemStack.AddControls(new EwfTextBox("Item {0}".FormatWith(i))); } else { itemStack.AddText("Item {0}".FormatWith(i)); } itemStack.AddControls( new PostBackButton(pb, new ButtonActionControlStyle("Toggle", buttonSize: ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false)); pb.AddModificationMethod( () => parametersModification.NonIdItemStates = parametersModification.NonIdItemStates.Select((state, index) => index == i ? (state + 1) % 2 : state)); return(new ControlListItem(itemStack.ToSingleElementArray(), updateRegionSet: rs)); }
//**************************************************************************************************** // //**************************************************************************************************** public bool Parse(string json) { if (string.IsNullOrEmpty(json)) { return(false); } ControlStack ctrl = new ControlStack(); JSonEntry cur = null; string name = null; m_root = null; for (int c = 0; c < json.Length; ++c) { //-------------------------------------------------------------------------------------------- // register expression //-------------------------------------------------------------------------------------------- if (char.IsWhiteSpace(json[c]) == false) { if (Semantics.hasProps(json[c], Semantics.PROP.ALL) == false) { if (ctrl.expr.start == -1) { ctrl.expr.end = ctrl.expr.start = c; } else { ctrl.expr.end = c; } if (json[c] == QUOTE) { ++ctrl.expr.quotes; continue; } } } else { continue; } //-------------------------------------------------------------------------------------------- // register name or value //-------------------------------------------------------------------------------------------- if (Semantics.hasProps(json[c], Semantics.PROP.CTRL) == true) { if ((ctrl.expr.quotes & 1) == 0) { bool isName = (json[c] == COLON); bool isValue = (isName == false); bool valid = ctrl.expr.valid; if ((isName) && (valid == false)) { return(false); } if ((isName) && (cur is JSonObject) == false) { return(false); } if (valid) { string expr = json.Substring(ctrl.expr.start, ctrl.expr.end - ctrl.expr.start + 1).TrimEnd(' ', QUOTE, ' ').TrimStart(' ', QUOTE, ' '); if (isName) { name = expr; } else if (isValue) { new JSonValue(name, cur).value = expr; name = null; } } ctrl.expr.Reset(); if (Semantics.hasProps(json[c], Semantics.PROP.GRP) == false) { continue; } } } //-------------------------------------------------------------------------------------------- // register object or array //-------------------------------------------------------------------------------------------- if (ctrl.expr.quotes == 0) { if (json[c] == BGN_OBJ) { if ((cur == null) || ctrl.push(cur)) { cur = new JSonObject(name, cur); if (m_root == null) { m_root = cur; } name = null; ctrl.expr.Reset(); continue; } else { return(false); } } if (json[c] == BGN_ARR) { if ((cur == null) || ctrl.push(cur)) { cur = new JSonArray(name, cur); if (m_root == null) { m_root = cur; } name = null; ctrl.expr.Reset(); continue; } else { return(false); } } if (json[c] == END_OBJ) { if (cur == m_root) { break; } if ((cur is JSonObject) && ctrl.pop(ref cur)) { ctrl.expr.Reset(); continue; } else { return(false); } } if (json[c] == END_ARR) { if (cur == m_root) { break; } if ((cur is JSonArray) && ctrl.pop(ref cur)) { ctrl.expr.Reset(); continue; } else { return(false); } } } } return((m_root != null) && (ctrl.empty)); }
void ControlTreeDataLoader.LoadData() { basicBody.Attributes.Add("onpagehide", "deactivateProcessingDialog();"); form.Action = EwfPage.Instance.InfoAsBaseType.GetUrl(); ph.AddControlsReturnThis( new NamingPlaceholder( EwfPage.Instance.StatusMessages.Any() && statusMessagesDisplayAsNotification() ? new Block { CssClass = notificationSpacerClass }.ToSingleElementArray() : new Control[0])); var warningControls = new List <Control>(); if (!ConfigurationStatics.IsLiveInstallation) { var children = new List <Control>(); children.Add(new FontAwesomeIcon("fa-exclamation-triangle", "fa-lg")); children.Add(" This is not the live system. Changes made here will be lost and are not recoverable. ".GetLiteralControl()); if (ConfigurationStatics.IsIntermediateInstallation && AppRequestState.Instance.IntermediateUserExists) { children.Add( new PostBackButton( PostBack.CreateFull( id: "ewfIntermediateLogOut", firstModificationMethod: IntermediateAuthenticationMethods.ClearCookie, actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))), new ButtonActionControlStyle("Log Out", ButtonActionControlStyle.ButtonSize.ShrinkWrap), false)); } warningControls.Add(new PlaceHolder().AddControlsReturnThis(children.ToArray())); } else if (ConfigurationStatics.MachineIsStandbyServer) { warningControls.Add( new PlaceHolder().AddControlsReturnThis( new FontAwesomeIcon("fa-exclamation-triangle", "fa-lg"), " This is a standby system. It operates with a read-only database, and any attempt to make a modification will result in an error.".GetLiteralControl())); } if (AppRequestState.Instance.UserAccessible && AppRequestState.Instance.ImpersonatorExists && (!ConfigurationStatics.IsIntermediateInstallation || AppRequestState.Instance.IntermediateUserExists)) { warningControls.Add( new PlaceHolder().AddControlsReturnThis( "User impersonation is in effect. ".GetLiteralControl(), EwfLink.Create( SelectUser.GetInfo(AppRequestState.Instance.Url), new ButtonActionControlStyle("Change User", ButtonActionControlStyle.ButtonSize.ShrinkWrap)), " ".GetLiteralControl(), new PostBackButton( PostBack.CreateFull( id: "ewfEndImpersonation", firstModificationMethod: UserImpersonationStatics.EndImpersonation, actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))), new ButtonActionControlStyle("End Impersonation", ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false))); } if (warningControls.Any()) { var warningControl = warningControls.Count() > 1 ? ControlStack.CreateWithControls(true, warningControls.ToArray()) : warningControls.Single(); ph.AddControlsReturnThis(new Block(warningControl) { CssClass = topWarningBlockCssClass }); } // This is used by the EWF JavaScript file. const string clickBlockerId = "ewfClickBlocker"; ph2.AddControlsReturnThis( new Block { ClientIDMode = ClientIDMode.Static, ID = clickBlockerId, CssClass = clickBlockerInactiveClass }, getProcessingDialog(), new NamingPlaceholder(getStatusMessageControl())); EwfPage.Instance.ClientScript.RegisterOnSubmitStatement(GetType(), "formSubmitEventHandler", "postBackRequestStarted()"); }
void ControlTreeDataLoader.LoadData() { basicBody.Attributes.Add("onpagehide", "hideProcessingDialog();"); form.Action = EwfPage.Instance.InfoAsBaseType.GetUrl(); var warningControls = new List <Control>(); if (!AppTools.IsLiveInstallation) { var children = new List <Control>(); children.Add("This is not the live system. Changes made here will be lost and are not recoverable. ".GetLiteralControl()); if (AppTools.IsIntermediateInstallation && AppRequestState.Instance.IntermediateUserExists) { children.Add( new PostBackButton( PostBack.CreateFull( id: "ewfIntermediateLogOut", firstModificationMethod: IntermediateAuthenticationMethods.ClearCookie, actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))), new ButtonActionControlStyle("Log Out", ButtonActionControlStyle.ButtonSize.ShrinkWrap), false)); } warningControls.Add(new PlaceHolder().AddControlsReturnThis(children.ToArray())); } else if (ConfigurationStatics.MachineIsStandbyServer) { warningControls.Add( "This is a standby system. It operates with a read-only database, and any attempt to make a modification will result in an error.".GetLiteralControl()); } if (AppRequestState.Instance.UserAccessible && AppRequestState.Instance.ImpersonatorExists && (!AppTools.IsIntermediateInstallation || AppRequestState.Instance.IntermediateUserExists)) { warningControls.Add( new PlaceHolder().AddControlsReturnThis( "User impersonation is in effect. ".GetLiteralControl(), EwfLink.Create( SelectUser.GetInfo(EwfPage.Instance.InfoAsBaseType.GetUrl()), new ButtonActionControlStyle("Change User", ButtonActionControlStyle.ButtonSize.ShrinkWrap)), " ".GetLiteralControl(), new PostBackButton( PostBack.CreateFull( id: "ewfEndImpersonation", firstModificationMethod: UserImpersonationStatics.EndImpersonation, actionGetter: () => new PostBackAction(new ExternalResourceInfo(NetTools.HomeUrl))), new ButtonActionControlStyle("End Impersonation", ButtonActionControlStyle.ButtonSize.ShrinkWrap), usesSubmitBehavior: false))); } if (warningControls.Any()) { var warningControl = warningControls.Count() > 1 ? ControlStack.CreateWithControls(true, warningControls.ToArray()) : warningControls.Single(); ph.AddControlsReturnThis(new Block(warningControl) { CssClass = CssElementCreator.TopWarningBlockCssClass }); } ph2.AddControlsReturnThis(new Block { CssClass = CssElementCreator.ClickBlockingBlockCssClass }, getProcessingDialog()); ph2.AddControlsReturnThis(new NamingPlaceholder(getStatusMessageDialog())); var ajaxLoadingImage = new EwfImage("Images/ajax-loader.gif") { CssClass = "ajaxloaderImage" }; ajaxLoadingImage.Style.Add("display", "none"); ph2.AddControlsReturnThis(ajaxLoadingImage); EwfPage.Instance.ClientScript.RegisterOnSubmitStatement(GetType(), "formSubmitEventHandler", "postBackRequestStarted()"); }