Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 6
0
        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);
        }