Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

Commit

Permalink
Added PortHandler attributes in StepperRenderers
Browse files Browse the repository at this point in the history
jsuarezruiz committed Oct 20, 2020
1 parent 968aa74 commit b4c9e79
Showing 3 changed files with 18 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
using Android.Content;
using Android.Views;
using Android.Widget;
using Xamarin.Platform;
using AButton = Android.Widget.Button;

namespace Xamarin.Forms.Platform.Android
@@ -24,6 +25,7 @@ public StepperRenderer()
AutoPackage = false;
}

[PortHandler]
protected override LinearLayout CreateNativeControl()
{
return new LinearLayout(Context)
@@ -34,6 +36,7 @@ protected override LinearLayout CreateNativeControl()
};
}

[PortHandler]
protected override void OnElementChanged(ElementChangedEventArgs<Stepper> e)
{
base.OnElementChanged(e);
@@ -61,12 +64,16 @@ protected override void OnElementPropertyChanged(object sender, PropertyChangedE
StepperRendererManager.UpdateButtons(this, _downButton, _upButton, e);
}

[PortHandler]
Stepper IStepperRenderer.Element => Element;

[PortHandler]
AButton IStepperRenderer.UpButton => _upButton;

[PortHandler]
AButton IStepperRenderer.DownButton => _downButton;

[PortHandler]
AButton IStepperRenderer.CreateButton()
{
var button = new AButton(Context);
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System.ComponentModel;
using Android.Views;
using Xamarin.Platform;
using AButton = Android.Widget.Button;
using AView = Android.Views.View;

namespace Xamarin.Forms.Platform.Android
{
[PortHandler]
public static class StepperRendererManager
{
public static void CreateStepperButtons<TButton>(IStepperRenderer renderer, out TButton downButton, out TButton upButton)
@@ -76,4 +78,4 @@ public void OnClick(AView v)
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@
using System.Drawing;
using System.ComponentModel;
using UIKit;
using Xamarin.Platform;

namespace Xamarin.Forms.Platform.iOS
{
@@ -14,6 +15,7 @@ public StepperRenderer()
{
}

[PortHandler]
protected override void Dispose(bool disposing)
{
if (_disposed)
@@ -32,6 +34,7 @@ protected override void Dispose(bool disposing)
base.Dispose(disposing);
}

[PortHandler]
protected override void OnElementChanged(ElementChangedEventArgs<Stepper> e)
{
if (e.NewElement != null)
@@ -65,26 +68,31 @@ protected override void OnElementPropertyChanged(object sender, PropertyChangedE
UpdateIncrement();
}

[PortHandler]
void OnValueChanged(object sender, EventArgs e)
{
((IElementController)Element).SetValueFromRenderer(Stepper.ValueProperty, Control.Value);
}

[PortHandler]
void UpdateIncrement()
{
Control.StepValue = Element.Increment;
}

[PortHandler]
void UpdateMaximum()
{
Control.MaximumValue = Element.Maximum;
}

[PortHandler]
void UpdateMinimum()
{
Control.MinimumValue = Element.Minimum;
}

[PortHandler]
void UpdateValue()
{
if (Control.Value != Element.Value)

0 comments on commit b4c9e79

Please sign in to comment.