Add a sample chooser
This commit is contained in:
parent
4131c6ba2c
commit
bfb9713484
|
@ -193,7 +193,7 @@ namespace Ooui
|
|||
public static string GetUrl (string path)
|
||||
{
|
||||
var localhost = host == "*" ? "localhost" : host;
|
||||
var url = $"http://{localhost}:{port}{path}";
|
||||
var url = Path.Combine($"http://{localhost}:{port}{path}");
|
||||
return url;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
using System;
|
||||
using Ooui;
|
||||
using Xamarin.Forms;
|
||||
using Color = Xamarin.Forms.Color;
|
||||
|
||||
namespace Samples
|
||||
{
|
||||
public class BoxViewClockSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms BoxViewClock";
|
||||
public string Path => "/box-view-clock";
|
||||
|
||||
BoxViewClockPage page;
|
||||
|
||||
|
@ -20,6 +23,11 @@ namespace Samples
|
|||
return page.GetOouiElement ();
|
||||
}
|
||||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
|
||||
class BoxViewClockPage : ContentPage
|
||||
{
|
||||
// Structure for storing information about the three hands.
|
||||
|
|
|
@ -6,11 +6,17 @@ namespace Samples
|
|||
public class BugSweeperSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms BugSweeper";
|
||||
public string Path => "/bugsweeper";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
var page = new BugSweeper.BugSweeperPage ();
|
||||
return page.GetOouiElement ();
|
||||
}
|
||||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class ButtonSample : ISample
|
||||
{
|
||||
public string Title => "Button Counter";
|
||||
public string Path => "/shared-button";
|
||||
|
||||
Button MakeButton ()
|
||||
{
|
||||
|
@ -25,7 +26,7 @@ namespace Samples
|
|||
{
|
||||
var b = MakeButton ();
|
||||
|
||||
UI.Publish ("/shared-button", b);
|
||||
UI.Publish (Path, b);
|
||||
UI.Publish ("/button", MakeButton);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,22 @@
|
|||
using Ooui;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Samples
|
||||
{
|
||||
public class ButtonXamlSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Button XAML";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Samples
|
||||
{
|
||||
public class ButtonXamlSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Button XAML";
|
||||
public string Path => "buttons";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
var page = new ButtonXaml.ButtonXamlPage ();
|
||||
return page.GetOouiElement ();
|
||||
}
|
||||
}
|
||||
}
|
||||
return page.GetOouiElement ();
|
||||
}
|
||||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ namespace Samples
|
|||
public class DisplayAlertSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms DisplayAlert";
|
||||
public string Path => "/display-alert";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
|
@ -16,7 +17,7 @@ namespace Samples
|
|||
|
||||
public void Publish ()
|
||||
{
|
||||
UI.Publish ("/display-alert", CreateElement);
|
||||
UI.Publish (Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class DotMatrixClockSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms DoMatrixClock";
|
||||
public string Path => "/dotmatrixclock";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -15,7 +16,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/dotmatrixclock", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,10 +8,11 @@ namespace Samples
|
|||
public class DrawSample : ISample
|
||||
{
|
||||
public string Title => "Drawing";
|
||||
public string Path => "/draw";
|
||||
|
||||
public void Publish ()
|
||||
{
|
||||
UI.Publish ("/draw", CreateElement ());
|
||||
UI.Publish (Path, CreateElement ());
|
||||
}
|
||||
|
||||
public Element CreateElement ()
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class EditorSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Editor Sample";
|
||||
public string Path => "/editor";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -40,7 +41,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/editor", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,15 +6,16 @@ using Ooui;
|
|||
|
||||
namespace Samples
|
||||
{
|
||||
public class FilesSample //: ISample
|
||||
public class FilesSample : ISample
|
||||
{
|
||||
public string Title => "Upload files";
|
||||
public string Path => "/files";
|
||||
|
||||
public void Publish ()
|
||||
public void Publish ()
|
||||
{
|
||||
var app = CreateElement ();
|
||||
|
||||
UI.Publish ("/files", app);
|
||||
UI.Publish (Path, app);
|
||||
|
||||
UI.PublishCustomResponse ("/files/upload", HandleUpload);
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ namespace Samples
|
|||
public interface ISample
|
||||
{
|
||||
string Title { get; }
|
||||
string Path { get; }
|
||||
Element CreateElement ();
|
||||
void Publish();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ namespace Samples
|
|||
class EntryListViewSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Basic Entry ListView Sample";
|
||||
public string Path => "/entry-listview";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -91,13 +92,14 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/entry-listview", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
|
||||
class SwitchListViewSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Basic Switch ListView Sample";
|
||||
public string Path => "/switch-listview";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -130,7 +132,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/switch-listview", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ namespace Samples
|
|||
public class MonkeysSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Monkeys";
|
||||
public string Path => "/monkeys";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -18,7 +19,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/monkeys", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ namespace Samples.Navigation
|
|||
public class NavigationSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Navigation XAML";
|
||||
public string Path => "navigation-sample";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -14,5 +15,10 @@ namespace Samples.Navigation
|
|||
var root = new NavigationPage(page);
|
||||
return root.GetOouiElement();
|
||||
}
|
||||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,8 +11,9 @@ namespace Samples
|
|||
private Xamarin.Forms.Picker _picker;
|
||||
|
||||
public string Title => "Xamarin.Forms Picker Sample";
|
||||
public string Path => "/picker";
|
||||
|
||||
List<string> myItems = new List<string>
|
||||
List<string> myItems = new List<string>
|
||||
{
|
||||
"red",
|
||||
"green",
|
||||
|
@ -69,7 +70,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/picker", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Ooui;
|
||||
|
||||
namespace Samples
|
||||
|
@ -25,27 +26,39 @@ namespace Samples
|
|||
}
|
||||
}
|
||||
|
||||
new EntryListViewSample().Publish();
|
||||
new ButtonSample ().Publish ();
|
||||
new TodoSample ().Publish ();
|
||||
new DrawSample ().Publish ();
|
||||
new FilesSample ().Publish ();
|
||||
new DisplayAlertSample ().Publish ();
|
||||
new DotMatrixClockSample().Publish();
|
||||
new EditorSample().Publish();
|
||||
new MonkeysSample().Publish();
|
||||
new RefreshListViewSample ().Publish ();
|
||||
new SearchBarSample().Publish();
|
||||
new SliderSample().Publish();
|
||||
new SwitchListViewSample().Publish();
|
||||
new TimePickerSample().Publish();
|
||||
new TipCalcSample().Publish();
|
||||
new WeatherAppSample().Publish();
|
||||
new XuzzleSample().Publish();
|
||||
new WebViewSample().Publish();
|
||||
new PickerSample().Publish();
|
||||
var samples = new List<ISample>
|
||||
{
|
||||
new EntryListViewSample(),
|
||||
new ButtonSample (),
|
||||
new TodoSample (),
|
||||
new DrawSample (),
|
||||
new FilesSample(),
|
||||
new DisplayAlertSample (),
|
||||
new DotMatrixClockSample(),
|
||||
new EditorSample(),
|
||||
new MonkeysSample(),
|
||||
new BugSweeperSample(),
|
||||
new RefreshListViewSample (),
|
||||
new SearchBarSample(),
|
||||
new SliderSample(),
|
||||
new SwitchListViewSample(),
|
||||
new TimePickerSample(),
|
||||
new TipCalcSample(),
|
||||
new WeatherAppSample(),
|
||||
new XuzzleSample(),
|
||||
new WebViewSample(),
|
||||
new PickerSample(),
|
||||
};
|
||||
|
||||
UI.Present ("/display-alert");
|
||||
foreach (var sample in samples)
|
||||
{
|
||||
sample.Publish();
|
||||
}
|
||||
|
||||
var samplePage = new SamplePickerSample(samples);
|
||||
samplePage.Publish();
|
||||
|
||||
UI.Present (samplePage.Path);
|
||||
|
||||
Console.ReadLine ();
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class RefreshListViewSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms RefreshListView";
|
||||
public string Path => "/refreshlistview";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
|
@ -15,7 +16,7 @@ namespace Samples
|
|||
|
||||
public void Publish ()
|
||||
{
|
||||
UI.Publish ("/refreshlistview", CreateElement);
|
||||
UI.Publish (Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Ooui;
|
||||
using Ooui.Forms;
|
||||
using Xamarin.Forms;
|
||||
using Element = Ooui.Element;
|
||||
|
||||
namespace Samples
|
||||
{
|
||||
public class SamplePickerSample : ISample
|
||||
{
|
||||
private readonly IEnumerable<ISample> _samplePages;
|
||||
|
||||
public SamplePickerSample(IEnumerable<ISample> samplePages)
|
||||
{
|
||||
_samplePages = samplePages.OrderBy(s => s.Title);
|
||||
}
|
||||
|
||||
public string Title => "Ooui samples - choose your demo";
|
||||
public string Path => "/sample-picker";
|
||||
public Element CreateElement()
|
||||
{
|
||||
var panel = new StackLayout();
|
||||
|
||||
var titleLabel = new Xamarin.Forms.Label
|
||||
{
|
||||
Text = "Choose a sample",
|
||||
FontSize = 24,
|
||||
FontAttributes = FontAttributes.Bold,
|
||||
};
|
||||
panel.Children.Add(titleLabel);
|
||||
|
||||
foreach (var samplePage in _samplePages)
|
||||
{
|
||||
panel.Children.Add(new LinkLabel {Text = samplePage.Title.Replace("Xamarin.Forms ", ""), HRef = samplePage.Path});
|
||||
}
|
||||
|
||||
var page = new ContentPage
|
||||
{
|
||||
Title = Title,
|
||||
Padding = new Thickness(16),
|
||||
Content = panel
|
||||
};
|
||||
|
||||
return page.GetOouiElement();
|
||||
}
|
||||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,6 +12,7 @@ namespace Samples
|
|||
private Xamarin.Forms.Label _resultsLabel;
|
||||
|
||||
public string Title => "Xamarin.Forms SearchBar";
|
||||
public string Path => "/searchbar";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -108,7 +109,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/searchbar", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ namespace Samples
|
|||
private Xamarin.Forms.Label _label;
|
||||
|
||||
public string Title => "Xamarin.Forms Slider Sample";
|
||||
public string Path => "/slider";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -53,7 +54,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/slider", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ namespace Samples
|
|||
public class SwitchErrorSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Switch Error";
|
||||
public string Path => "/switch";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
|
@ -34,7 +35,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish ("/switch", CreateElement);
|
||||
UI.Publish (Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class TimePickerSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms TimePicker Sample";
|
||||
public string Path => "/timepicker";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -33,7 +34,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/timepicker", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class TipCalcSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms TipCalc";
|
||||
public string Path => "/tipcalc";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -15,7 +16,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/tipcalc", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ namespace Samples
|
|||
public class TodoSample : ISample
|
||||
{
|
||||
public string Title => "Todo List";
|
||||
public string Path => "/todo";
|
||||
|
||||
class Item : ListItem
|
||||
{
|
||||
|
@ -112,7 +113,7 @@ namespace Samples
|
|||
{
|
||||
var b = MakeTodo ();
|
||||
|
||||
UI.Publish ("/todo", MakeTodo);
|
||||
UI.Publish (Path, MakeTodo);
|
||||
}
|
||||
|
||||
public Element CreateElement ()
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class WeatherAppSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms WeatherApp";
|
||||
public string Path => "/weatherapp";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -15,7 +16,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/weatherapp", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class WebViewSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms WebView Sample";
|
||||
public string Path => "/webview";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -35,7 +36,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/webview", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class WrappingTextSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Wrapping Text";
|
||||
public string Path => "/wrapping";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -82,7 +83,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
Ooui.UI.Publish("/wrapping", CreateElement);
|
||||
Ooui.UI.Publish(Path, CreateElement);
|
||||
}
|
||||
|
||||
const string shortText = "Lorem ipsum dolor sit amet.";
|
||||
|
|
|
@ -1,19 +1,28 @@
|
|||
using System;
|
||||
using Ooui;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using Color = Xamarin.Forms.Color;
|
||||
using Label = Xamarin.Forms.Label;
|
||||
|
||||
namespace Samples
|
||||
{
|
||||
public class XamlPreviewPageSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms XAML Editor";
|
||||
public string Path => "/xaml-editor";
|
||||
|
||||
public Ooui.Element CreateElement ()
|
||||
{
|
||||
var page = new XamlEditorPage ();
|
||||
return page.GetOouiElement ();
|
||||
}
|
||||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class XamlEditorPage : ContentPage
|
||||
|
@ -107,7 +116,8 @@ namespace Samples
|
|||
catch (OperationCanceledException) {
|
||||
}
|
||||
catch (Exception ex) {
|
||||
results.Content = new Label {
|
||||
results.Content = new Label
|
||||
{
|
||||
TextColor = Color.DarkRed,
|
||||
FontSize = 12,
|
||||
Text = ex.ToString (),
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Samples
|
|||
public class XuzzleSample : ISample
|
||||
{
|
||||
public string Title => "Xamarin.Forms Xuzzle";
|
||||
public string Path => "/xuzzle";
|
||||
|
||||
public Ooui.Element CreateElement()
|
||||
{
|
||||
|
@ -15,7 +16,7 @@ namespace Samples
|
|||
|
||||
public void Publish()
|
||||
{
|
||||
UI.Publish("/xuzzle", CreateElement);
|
||||
UI.Publish(Path, CreateElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue