Added display alert to clean up code for DisplayAlerts from the Platform class
This commit is contained in:
parent
7967bdebf7
commit
404201d876
|
@ -0,0 +1,106 @@
|
||||||
|
using System.Web;
|
||||||
|
using Xamarin.Forms.Internals;
|
||||||
|
|
||||||
|
namespace Ooui.Forms
|
||||||
|
{
|
||||||
|
public class DisplayAlert
|
||||||
|
{
|
||||||
|
private readonly Button _closeButton;
|
||||||
|
private readonly Button _acceptButton;
|
||||||
|
private readonly Button _cancelButton;
|
||||||
|
|
||||||
|
public DisplayAlert(AlertArguments arguments)
|
||||||
|
{
|
||||||
|
Element = new Div
|
||||||
|
{
|
||||||
|
ClassName = "modal-dialog"
|
||||||
|
};
|
||||||
|
|
||||||
|
var content = new Div
|
||||||
|
{
|
||||||
|
ClassName = "modal-content"
|
||||||
|
};
|
||||||
|
|
||||||
|
var header = new Div
|
||||||
|
{
|
||||||
|
ClassName = "modal-header"
|
||||||
|
};
|
||||||
|
|
||||||
|
_closeButton = new Button
|
||||||
|
{
|
||||||
|
ClassName = "close"
|
||||||
|
};
|
||||||
|
|
||||||
|
_closeButton.AppendChild(new Span(HttpUtility.HtmlDecode("×")));
|
||||||
|
|
||||||
|
var h4 = new Heading(4)
|
||||||
|
{
|
||||||
|
Text = arguments.Title
|
||||||
|
};
|
||||||
|
|
||||||
|
header.AppendChild(_closeButton);
|
||||||
|
header.AppendChild(h4);
|
||||||
|
|
||||||
|
content.AppendChild(header);
|
||||||
|
content.AppendChild(new Div()
|
||||||
|
{
|
||||||
|
ClassName = "modal-body",
|
||||||
|
Text = arguments.Message
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(arguments.Cancel))
|
||||||
|
{
|
||||||
|
var footer = new Div()
|
||||||
|
{
|
||||||
|
ClassName = "modal-footer"
|
||||||
|
};
|
||||||
|
|
||||||
|
_cancelButton = new Button(arguments.Cancel)
|
||||||
|
{
|
||||||
|
ClassName = "btn btn-default"
|
||||||
|
};
|
||||||
|
|
||||||
|
footer.AppendChild(_cancelButton);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(arguments.Accept))
|
||||||
|
{
|
||||||
|
_acceptButton = new Button(arguments.Accept)
|
||||||
|
{
|
||||||
|
ClassName = "btn btn-default"
|
||||||
|
};
|
||||||
|
|
||||||
|
footer.AppendChild(_acceptButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
content.AppendChild(footer);
|
||||||
|
}
|
||||||
|
|
||||||
|
Element.AppendChild(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
public event TargetEventHandler Clicked
|
||||||
|
{
|
||||||
|
add
|
||||||
|
{
|
||||||
|
_closeButton.Clicked += value;
|
||||||
|
|
||||||
|
if(_cancelButton != null)
|
||||||
|
_cancelButton.Clicked += value;
|
||||||
|
|
||||||
|
if(_acceptButton != null)
|
||||||
|
_acceptButton.Clicked += value;
|
||||||
|
}
|
||||||
|
remove
|
||||||
|
{
|
||||||
|
_closeButton.Clicked -= value;
|
||||||
|
|
||||||
|
if (_cancelButton != null)
|
||||||
|
_cancelButton.Clicked -= value;
|
||||||
|
|
||||||
|
if (_acceptButton != null)
|
||||||
|
_acceptButton.Clicked -= value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public Element Element { get; private set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,7 +15,6 @@
|
||||||
<PackageReference Include="Xamarin.Forms" Version="2.4.0.38779" />
|
<PackageReference Include="Xamarin.Forms" Version="2.4.0.38779" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Renderers\" />
|
|
||||||
<Folder Include="Extensions\" />
|
<Folder Include="Extensions\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -35,79 +35,14 @@ namespace Ooui.Forms
|
||||||
|
|
||||||
MessagingCenter.Subscribe(this, Page.AlertSignalName, (Page sender, AlertArguments arguments) =>
|
MessagingCenter.Subscribe(this, Page.AlertSignalName, (Page sender, AlertArguments arguments) =>
|
||||||
{
|
{
|
||||||
var alert = new Div
|
var alert = new DisplayAlert(arguments);
|
||||||
{
|
alert.Clicked += CloseAlert;
|
||||||
ClassName = "modal-dialog"
|
|
||||||
};
|
|
||||||
|
|
||||||
var content = new Div
|
_renderer.AppendChild(alert.Element);
|
||||||
{
|
|
||||||
ClassName = "modal-content"
|
|
||||||
};
|
|
||||||
|
|
||||||
var header = new Div
|
|
||||||
{
|
|
||||||
ClassName = "modal-header"
|
|
||||||
};
|
|
||||||
|
|
||||||
var closeButton = new Button
|
|
||||||
{
|
|
||||||
ClassName = "close"
|
|
||||||
};
|
|
||||||
|
|
||||||
closeButton.AppendChild(new Span(HttpUtility.HtmlDecode("×")));
|
|
||||||
closeButton.Clicked += CloseAlert;
|
|
||||||
|
|
||||||
var h4 = new Heading(4)
|
|
||||||
{
|
|
||||||
Text = arguments.Title
|
|
||||||
};
|
|
||||||
|
|
||||||
header.AppendChild(closeButton);
|
|
||||||
header.AppendChild(h4);
|
|
||||||
|
|
||||||
content.AppendChild(header);
|
|
||||||
content.AppendChild(new Div()
|
|
||||||
{
|
|
||||||
ClassName = "modal-body",
|
|
||||||
Text = arguments.Message
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(arguments.Cancel))
|
|
||||||
{
|
|
||||||
var footer = new Div()
|
|
||||||
{
|
|
||||||
ClassName = "modal-footer"
|
|
||||||
};
|
|
||||||
|
|
||||||
var cancel = new Button(arguments.Cancel)
|
|
||||||
{
|
|
||||||
ClassName = "btn btn-default"
|
|
||||||
};
|
|
||||||
cancel.Clicked += CloseAlert;
|
|
||||||
|
|
||||||
footer.AppendChild(cancel);
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(arguments.Accept))
|
|
||||||
{
|
|
||||||
var accept = new Button(arguments.Accept)
|
|
||||||
{
|
|
||||||
ClassName = "btn btn-default"
|
|
||||||
};
|
|
||||||
accept.Clicked += CloseAlert;
|
|
||||||
|
|
||||||
footer.AppendChild(accept);
|
|
||||||
}
|
|
||||||
|
|
||||||
content.AppendChild(footer);
|
|
||||||
}
|
|
||||||
|
|
||||||
alert.AppendChild(content);
|
|
||||||
_renderer.AppendChild(alert);
|
|
||||||
|
|
||||||
void CloseAlert(object s, EventArgs e)
|
void CloseAlert(object s, EventArgs e)
|
||||||
{
|
{
|
||||||
_renderer.RemoveChild(alert);
|
_renderer.RemoveChild(alert.Element);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue