public QrScannerForm( QrScannerFormView view, string title, string label, Func <string, Task <T> > getItemByCode, int scannerPopupMmFromTop = 15, int scannerPopupHeightMm = 40) { _view = view; _view.Label = label; _view.PadMmFromTop = scannerPopupMmFromTop; _scannerPopupMmFromTop = scannerPopupMmFromTop; _view.HeightMm = scannerPopupHeightMm; _scannerPopupHeightMm = scannerPopupHeightMm; _title = title; _getItemByCode = getItemByCode; LocalActionBuilder.Build(_view.Unpause, async() => { _view.Unpause.Widget.Style.Display = Display.None; await _errorLbl.DoChange("", false, this, false); _hndl?.ResumeScanning(); }); LocalActionBuilder.Build(_view.Cancel, () => _hndl?.CancelScanning()); _errorLbl = LocalValueFieldBuilder.Build(_view.Error); }
public EnumChoiceForm( string title, bool isCancelable, T defaultValue, Func <T, string> getLabel, Action <EnumChoiceFormView <T> > postInitialization = null) { Title = title; _isCancelable = isCancelable; _view = new EnumChoiceFormView <T>(defaultValue, getLabel, postInitialization); _chosen = LocalValueFieldBuilder.BuildEnumBasedChoice(defaultValue, _view.Choice); LocalActionBuilder.Build(_view.Confirm, () => Ended?.Invoke(this, CompletedOrCanceled.Completed)); }
public SingleRadioBasedChoiceForm( string title, bool isCancelable, T defaultValue, Func <T, string> getLabel, Func <int, T> intToItem, Func <T, int> itemToInt, Action <SingleRadioBasedChoiceFormView <T> > postInitialization = null) { Title = title; _isCancelable = isCancelable; _getLabel = getLabel; _itemToInt = itemToInt; _view = new SingleRadioBasedChoiceFormView <T>( defaultValue, getLabel, intToItem, itemToInt, postInitialization); _chosen = LocalValueFieldBuilder.BuildGeneralChoice( defaultValue, intToItem, itemToInt, _view.Choice); LocalActionBuilder.Build(_view.Confirm, () => Ended?.Invoke(this, CompletedOrCanceled.Completed)); }
public TextInputForm( TextInputFormView view, string label, string titleOrNull = null, string defaultValue = null, params Validate <string>[] validators) { Title = titleOrNull ?? I18n.Translate("Input"); _view = view; _msg = new LocalValue <string>(label ?? ""); view.Label.BindReadOnlyAndInitialize(_msg); _input = LocalValueFieldBuilder.Build(defaultValue, view.Input, validators); var isFormValid = new AggregatedErrorsValue <bool>(false, x => !x.Errors.Any(), x => x.Observes(_input)); var confirmInput = LocalActionBuilder.Build(view.Confirm, () => Ended?.Invoke(this, CompletedOrCanceled.Completed)); confirmInput.BindEnableAndInitialize(isFormValid); }
public RemoteValueChangeByChoiceForm( Func <string> titleProv, Func <T, Task <T> > saveChange, RemoteValueChangeByChoiceFormView <T> view, params Validate <T>[] validators) { _titleProv = titleProv; _view = view; _localValue = LocalValueFieldBuilder.Build(default(T), view.Choosen, validators); var remoteActionModel = RemoteActionBuilder.Build(view.Confirm, () => saveChange(_localValue.Value), x => { SavedValue = x; Ended?.Invoke(this, CompletedOrCanceled.Completed); }); var isFormValid = new AggregatedErrorsValue <bool>(false, self => !self.Errors.Any(), x => { x.Observes(_localValue); }); remoteActionModel.BindEnableAndInitialize(isFormValid); }
public RemoteValueChangeByEntryForm( Func <DomainT, Task <RemoteT> > remoteChanger, IReadWriteValueView <HTMLElement, ViewT> input, Action <string> inputLabelChanger, Func <DomainT, ViewT> domainToViewConverter, Func <ViewT, DomainT> viewToDomainConverter, string label, string titleOrNull = null, DomainT defaultValue = default(DomainT), TextType labelTextType = TextType.TreatAsText, params Validate <DomainT>[] validators) { _inputLabelChanger = inputLabelChanger; Title = titleOrNull ?? I18n.Translate("Input"); _view = new RemoteValueChangeByEntryFormView <ViewT>(input, labelTextType); _inputLabelChanger(label); _msg = new LocalValue <string>(""); _view.Message.BindReadOnlyAndInitialize(_msg); _input = LocalValueFieldBuilder.Build( defaultValue, _view.Input, domainToViewConverter, viewToDomainConverter, validators); var isFormValid = new AggregatedErrorsValue <bool>( false, x => !x.Errors.Any(), x => x.Observes(_input)); var confirmInput = RemoteActionBuilder.Build( _view.Confirm, () => remoteChanger(_input.Value), x => { SavedValue = x; Ended?.Invoke(this, CompletedOrCanceled.Completed); }); confirmInput.BindEnableAndInitialize(isFormValid); }