Esempio n. 1
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <TElement> e)
        {
            var args = new VisualElementChangedEventArgs(e.OldElement, e.NewElement);

            for (var i = 0; i < _elementChangedHandlers.Count; i++)
            {
                _elementChangedHandlers[i](this, args);
            }

            ElementChanged?.Invoke(this, e);
        }
        async void OnElementChanged(ElementChangedEventArgs <Image> e)
        {
            await TryUpdateBitmap(e.OldElement);

            UpdateAspect();
            this.EnsureId();

            ElevationHelper.SetElevation(this, e.NewElement);

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 3
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <TElement> e)
        {
            var args = new VisualElementChangedEventArgs(e.OldElement, e.NewElement);

            foreach (EventHandler <VisualElementChangedEventArgs> handler in _elementChangedHandlers)
            {
                handler(this, args);
            }

            ElementChanged?.Invoke(this, e);
        }
Esempio n. 4
0
        public void SetElement(VisualElement element)
        {
            if (Element != null)
            {
                throw new NotSupportedException("Reuse of the Shell Renderer is not supported");
            }
            Element = element;
            OnElementSet((Shell)Element);

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(null, Element));
        }
Esempio n. 5
0
        void OnElementChanged(ItemsView oldElement, ItemsView newElement)
        {
            TearDownOldElement(oldElement);
            SetUpNewElement(newElement);

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(oldElement, newElement));

            EffectUtilities.RegisterEffectControlProvider(this, oldElement, newElement);

            UpdateBackgroundColor();
            UpdateFlowDirection();
        }
Esempio n. 6
0
        void OnElementChanged(ElementChangedEventArgs <CheckBox> e)
        {
            if (e.NewElement != null && !_disposed)
            {
                this.EnsureId();

                UpdateOnColor();
                UpdateIsChecked();
                UpdateBackgroundColor();
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 7
0
        /// <summary>
        /// Notification that the associated element has changed.
        /// </summary>
        /// <param name="e">Event parameters.</param>
        protected virtual void OnElementChanged(ElementChangedEventArgs <TElement> e)
        {
            if (null != e.OldElement)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
                e.OldElement.BatchCommitted  -= OnBatchCommitted;

                e.OldElement.ChildAdded        -= OnChildAdded;
                e.OldElement.ChildRemoved      -= OnChildRemoved;
                e.OldElement.ChildrenReordered -= OnChildrenReordered;

                e.OldElement.FocusChangeRequested -= OnFocusChangeRequested;

                var controller = e.OldElement as IElementController;
                if (controller != null && controller.EffectControlProvider == this)
                {
                    controller.EffectControlProvider = null;
                }
            }

            var args = new VisualElementChangedEventArgs(e.OldElement, e.NewElement);

            for (var i = 0; i < _elementChangedHandlers.Count; i++)
            {
                _elementChangedHandlers[i](this, args);
            }

            ElementChanged?.Invoke(this, e);

            if (null != e.NewElement)
            {
                e.NewElement.PropertyChanged += OnElementPropertyChanged;
                e.NewElement.BatchCommitted  += OnBatchCommitted;

                e.NewElement.ChildAdded        += OnChildAdded;
                e.NewElement.ChildRemoved      += OnChildRemoved;
                e.NewElement.ChildrenReordered += OnChildrenReordered;

                e.NewElement.FocusChangeRequested += OnFocusChangeRequested;

                (NativeView as IBatchable)?.BatchBegin();
                UpdateAllProperties(true);
                (NativeView as IBatchable)?.BatchCommit();

                var controller = e.NewElement as IElementController;
                if (controller != null)
                {
                    controller.EffectControlProvider = this;
                }
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Indexer for matrix.
 /// </summary>
 /// <param name="row">The row index.</param>
 /// <param name="column">The column index.</param>
 /// <returns>The value of given matrix cell.</returns>
 public virtual T this[int row, int column]
 {
     get
     {
         CheckIndexes(row, column);
         return(GetValue(row, column));
     }
     set
     {
         CheckIndexes(row, column);
         SetValue(row, column, value);
         ElementChanged?.Invoke(this, new MatrixEventArgs(row, column));
     }
 }
        protected virtual void OnElementChanged(VisualElementChangedEventArgs e)
        {
            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= HandlePropertyChanged;
            }

            if (e.NewElement != null)
            {
                e.NewElement.PropertyChanged += HandlePropertyChanged;
            }

            ElementChanged?.Invoke(this, e);
        }
Esempio n. 10
0
        void RaiseElementChanged(VisualElementChangedEventArgs e)
        {
            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
            }

            if (e.NewElement != null)
            {
                e.NewElement.PropertyChanged += OnElementPropertyChanged;
            }

            OnElementChanged(e);
            ElementChanged?.Invoke(this, e);
        }
Esempio n. 11
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <Button> e)
        {
            if (e.NewElement != null)
            {
                UpdateFont();
                UpdateText();
                UpdateBitmap();
                UpdateTextColor();
                UpdateIsEnabled();
                UpdateInputTransparent();
                UpdateBackgroundColor();
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 12
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <BasePopup?> e)
        {
            if (e.NewElement != null && !isDisposed && Element is BasePopup basePopup)
            {
                SetEvents(basePopup);
                SetColor(basePopup);
                SetSize(basePopup);
                SetAnchor(basePopup);
                SetLightDismiss(basePopup);

                Show();
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 13
0
        /// <summary>
        /// Provides access to the matrix fields.
        /// </summary>
        /// <param name="row"> Row number.</param>
        /// <param name="column">Column number.</param>
        /// <returns>
        /// A field with given indices.
        /// </returns>
        public T this[int row, int column]
        {
            get
            {
                VerifyPosition(row, column);
                return(GetValue(row, column));
            }

            set
            {
                VerifyPosition(row, column);
                var eventArgs = new ElementChangesEventArgs <T>(GetValue(row, column), value, row, column);
                SetValue(value, row, column);
                ElementChanged?.Invoke(this, eventArgs);
            }
        }
        protected virtual void OnElementChanged(ElementChangedEventArgs <MediaElement> e)
        {
            if (e.NewElement != null)
            {
                this.EnsureId();

                UpdateKeepScreenOn();
                UpdateLayoutParameters();
                UpdateShowPlaybackControls();
                UpdateSource();
                UpdateBackgroundColor();

                ElevationHelper.SetElevation(this, e.NewElement);
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 15
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <TElement> e)
        {
            var args = new VisualElementChangedEventArgs(e.OldElement, e.NewElement);

            for (var i = 0; i < _elementChangedHandlers.Count; i++)
            {
                _elementChangedHandlers[i](this, args);
            }

            ElementChanged?.Invoke(this, e);
#if __MOBILE__
            if (e.NewElement != null)
            {
                SetBlur((BlurEffectStyle)e.NewElement.GetValue(PlatformConfiguration.iOSSpecific.VisualElement.BlurEffectProperty));
            }
#endif
        }
Esempio n. 16
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <TElement> e)
        {
            var args = new VisualElementChangedEventArgs(e.OldElement, e.NewElement);

            // The list of event handlers can be changed inside the handlers. (ex.: are used CompressedLayout)
            // To avoid an exception, a copy of the handlers is called.
            var handlers = _elementChangedHandlers.ToArray();

            foreach (var handler in handlers)
            {
                handler(this, args);
            }

            ElementChanged?.Invoke(this, e);

            ElevationHelper.SetElevation(this, e.NewElement);
        }
Esempio n. 17
0
        public void SetElement(VisualElement element)
        {
            var oldElement = Element;

            if (oldElement != null)
            {
                oldElement.PropertyChanged -= OnElementPropertyChanged;
            }

            if (Element != null)
            {
                Element.PropertyChanged += OnElementPropertyChanged;
            }

            Element = element;
            ViewHandler.SetVirtualView((IView)element);
            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(oldElement, Element));
        }
Esempio n. 18
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <Label> e)
        {
            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));

            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
                this.MaybeRequestLayout();
            }

            if (e.NewElement != null)
            {
                this.EnsureId();

                if (_visualElementTracker == null)
                {
                    _visualElementTracker = new VisualElementTracker(this);
                }

                e.NewElement.PropertyChanged += OnElementPropertyChanged;

                SkipNextInvalidate();
                UpdateText();
                UpdateLineHeight();
                UpdateCharacterSpacing();
                UpdateTextDecorations();
                if (e.OldElement?.LineBreakMode != e.NewElement.LineBreakMode)
                {
                    UpdateLineBreakMode();
                }
                if (e.OldElement?.HorizontalTextAlignment != e.NewElement.HorizontalTextAlignment || e.OldElement?.VerticalTextAlignment != e.NewElement.VerticalTextAlignment)
                {
                    UpdateGravity();
                }
                if (e.OldElement?.MaxLines != e.NewElement.MaxLines)
                {
                    UpdateMaxLines();
                }

                UpdatePadding();

                ElevationHelper.SetElevation(this, e.NewElement);
            }
        }
Esempio n. 19
0
        void OnElementChanged(ElementChangedEventArgs <Button> e)
        {
            if (e.NewElement != null && !_isDisposed)
            {
                this.EnsureId();

                UpdateFont();
                UpdateText();
                UpdateBitmap();
                UpdateTextColor();
                UpdateIsEnabled();
                UpdateInputTransparent();
                UpdateBackgroundColor();

                ElevationHelper.SetElevation(this, e.NewElement);
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
        protected virtual void OnElementChanged(ElementChangedEventArgs <BasePopup?> e)
        {
            if (e.NewElement != null && !isDisposed)
            {
                ModalInPopover         = true;
                ModalPresentationStyle = UIModalPresentationStyle.Popover;

                SetViewController();
                SetPresentationController();
                SetEvents();
                SetSize();
                SetLayout();
                SetBackgroundColor();
                SetView();
                AddToCurrentPageViewController();
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 21
0
        public void HandleBpmnElementEvent(BpmnElementEvent e)
        {
            TranslateProcessId(e);
            switch (e.Type)
            {
            case BpmnConstants.BPMN_EVENT_CLICK:
                ElementClick?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_ELEMENT_CHANGED:
                ElementChanged?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_SHAPE_ADDED:
                ShapeAdded?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_SHAPE_REMOVED:
                ShapeRemoved?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_UPDATE_ID:
                ElementIdUpdated?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_CONNECTION_REMOVED:
                ConnectionRemoved?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_CONNECTION_ADDED:
                ConnectionAdded?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_ROOT_ADDED:
                RootAdded?.Invoke(this, e);
                break;

            case BpmnConstants.BPMN_EVENT_ROOT_REMOVED:
                RootRemoved?.Invoke(this, e);
                break;
            }
        }
Esempio n. 22
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <RadioButton> e)
        {
            if (e.NewElement != null && !_isDisposed)
            {
                this.EnsureId();

                _textColorSwitcher = new Lazy <TextColorSwitcher>(
                    () => new TextColorSwitcher(TextColors, e.NewElement.UseLegacyColorManagement()));

                UpdateFont();
                UpdateTextColor();
                UpdateInputTransparent();
                UpdateBackgroundColor();
                UpdateIsChecked();
                UpdateContent();
                ElevationHelper.SetElevation(this, e.NewElement);
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 23
0
        private void OnElementChanged(ElementChangedEventArgs <TestLabelControl> e)
        {
            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));

            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
            }

            if (e.NewElement != null)
            {
                this.EnsureId();
                if (visualElementTracker == null)
                {
                    visualElementTracker = new VisualElementTracker(this);
                }
                CreateNative();
                e.NewElement.PropertyChanged += OnElementPropertyChanged;
            }
        }
Esempio n. 24
0
        public void HandleBpmnElementEvent(BpmnElementEvent e)
        {
            switch (e.Type)
            {
            case "element.click":
                ElementClick?.Invoke(this, e);
                break;

            case "element.changed":
                ElementChanged?.Invoke(this, e);
                break;

            case "shape.added":
                ShapeAdded?.Invoke(this, e);
                break;

            case "shape.removed":
                ShapeRemoved?.Invoke(this, e);
                break;

            case "element.updateId":
                ElementIdUpdated?.Invoke(this, e);
                break;

            case "connection.removed":
                ConnectionRemoved?.Invoke(this, e);
                break;

            case "connection.added":
                ConnectionAdded?.Invoke(this, e);
                break;

            case "root.added":
                RootAdded?.Invoke(this, e);
                break;

            case "root.removed":
                RootRemoved?.Invoke(this, e);
                break;
            }
        }
Esempio n. 25
0
        protected virtual void OnElementChanged(VisualElementChangedEventArgs e)
        {
            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
            }

            if (e.NewElement != null)
            {
                if (Control == null)
                {
                    Control = new Controls.Page();
                    Add(Control);
                }

                e.NewElement.PropertyChanged += OnElementPropertyChanged;
            }

            UpdateBackgroundImage();

            ElementChanged?.Invoke(this, e);
        }
Esempio n. 26
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <Button> e)
        {
            if (e.OldElement != null)
            {
                _backgroundTracker?.Reset();
            }
            if (e.NewElement != null && !_isDisposed)
            {
                this.EnsureId();

                UpdateFont();
                UpdateText();
                UpdateBitmap();
                UpdateTextColor();
                UpdateIsEnabled();
                UpdateInputTransparent();
                UpdateBackgroundColor();
                UpdateDrawable();
            }

            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));
        }
Esempio n. 27
0
        protected override void UpdateElement(Input oldElement, Context oldContext)
        {
            var childContext = child.Context;

            if (oldContext != Context)
            {
                if (Context.Layer != oldContext.Layer)
                {
                    layer.Dispose();
                    layer = Context.Layer.AddChild(this);
                }


                childContext = new Context(Context, Layer);
            }

            child = child.UpdateElement(Element.Child, childContext);

            if (oldElement != Element)
            {
                ElementChanged?.Invoke(this, EventArgs.Empty);
            }
        }
Esempio n. 28
0
        public void SetElement(VisualElement element)
        {
            CarouselScrollView oldElement = _view;

            _view = (CarouselScrollView)element;

            if (oldElement != null)
            {
                ((IScrollViewController)oldElement).ScrollToRequested -= OnScrollToRequested;
            }
            if (element != null)
            {
                ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(oldElement, element));

                if (_container == null)
                {
                    Tracker    = new VisualElementTracker(this);
                    _container = new CustomScrollViewContainer(_view, Context);
                }

                Controller.ScrollToRequested += OnScrollToRequested;

                LoadContent();
                UpdateBackgroundColor();
                UpdateOrientation();
                UpdateIsEnabled();
                UpdateHorizontalScrollBarVisibility();
                UpdateVerticalScrollBarVisibility();
                UpdateFlowDirection();

                if (!string.IsNullOrEmpty(element.AutomationId))
                {
                    ContentDescription = element.AutomationId;
                }
            }
        }
Esempio n. 29
0
        void OnElementChanged(ElementChangedEventArgs <Label> e)
        {
            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));

            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
            }

            if (e.NewElement != null)
            {
                this.EnsureId();

                if (_visualElementTracker == null)
                {
                    _visualElementTracker = new VisualElementTracker(this);
                }

                e.NewElement.PropertyChanged += OnElementPropertyChanged;

                SkipNextInvalidate();
                UpdateText();
                UpdateLineHeight();
                if (e.OldElement?.LineBreakMode != e.NewElement.LineBreakMode)
                {
                    UpdateLineBreakMode();
                }
                if (e.OldElement?.HorizontalTextAlignment != e.NewElement.HorizontalTextAlignment ||
                    e.OldElement?.VerticalTextAlignment != e.NewElement.VerticalTextAlignment)
                {
                    UpdateGravity();
                }

                ElevationHelper.SetElevation(this, e.NewElement);
            }
        }
Esempio n. 30
0
        protected virtual void OnElementChanged(ElementChangedEventArgs <Frame> e)
        {
            ElementChanged?.Invoke(this, new VisualElementChangedEventArgs(e.OldElement, e.NewElement));

            if (e.OldElement != null)
            {
                e.OldElement.PropertyChanged -= OnElementPropertyChanged;
            }

            if (e.NewElement != null)
            {
                if (_visualElementTracker == null)
                {
                    _visualElementTracker  = new VisualElementTracker(this);
                    _visualElementPackager = new VisualElementPackager(this);
                    _visualElementPackager.Load();
                }

                e.NewElement.PropertyChanged += OnElementPropertyChanged;
                UpdateShadow();
                UpdateBackgroundColor();
                UpdateCornerRadius();
            }
        }