public BuildIpAddressStatus(UIComponent componnent) { _ReleaseHelper = new ReleaseHelper(); _Root = componnent.Page.RootElement; _Connection = componnent.Page.RootElement.FindName("Connection") as global::Stride.UI.Controls.Button; _Address = componnent.Page.RootElement.FindName("Address") as global::Stride.UI.Controls.EditText; _Port = componnent.Page.RootElement.FindName("Port") as global::Stride.UI.Controls.EditText; _Address.Text = "114.34.92.204"; _Port.Text = "53772"; }
public MessageStatus(UIComponent component, string message) { component.Page.RootElement.Visibility = global::Stride.UI.Visibility.Visible; var text = component.Page.RootElement.FindName("Text") as global::Stride.UI.Controls.TextBlock; text.Text = message; var submit = component.Page.RootElement.FindName("Submit") as global::Stride.UI.Controls.Button; submit.TouchUp += _Submit; _ReleaseHelper = new ReleaseHelper(); _ReleaseHelper.Actions.Add(() => { component.Page.RootElement.Visibility = global::Stride.UI.Visibility.Hidden; submit.TouchUp -= _Submit; }); }
public ChatRoomLoginStatus(Remote.INotifierQueryable queryer, UIComponent component) { _ReleaseHelper = new ReleaseHelper(); component.Page.RootElement.Visibility = Visibility.Visible; var name = component.Page.RootElement.FindName("Name") as global::Stride.UI.Controls.EditText; var enter = component.Page.RootElement.FindName("Enter") as global::Stride.UI.Controls.Button; var loginObs = from _ in System.Reactive.Linq.Observable.FromEventPattern <TouchEventArgs>((h) => enter.TouchUp += h, (h) => enter.TouchUp -= h).Take(1) from login in queryer.QueryNotifier <Regulus.Samples.Chat1.Common.ILogin>().SupplyEvent() from result in login.Login(name.Text).RemoteValue() select result; var loginObsDispose = loginObs.Subscribe(_LoginResult); _ReleaseHelper.Actions.Add(() => { component.Page.RootElement.Visibility = Visibility.Hidden; loginObsDispose.Dispose(); }); }
public ChatRoomPlayStatus(INotifierQueryable queryer, UIComponent room, UILibrary library) { _ReleaseHelper = new ReleaseHelper(); room.Page.RootElement.Visibility = Visibility.Visible; _ReleaseHelper.Actions.Add(() => { room.Page.RootElement.Visibility = Visibility.Hidden; }); var messageContol = room.Page.RootElement.FindName("Message") as global::Stride.UI.Controls.EditText; var targetContol = room.Page.RootElement.FindName("Target") as global::Stride.UI.Controls.EditText; var sendControl = room.Page.RootElement.FindName("Send") as global::Stride.UI.Controls.Button; var quitControl = room.Page.RootElement.FindName("Quit") as global::Stride.UI.Controls.Button; var listPanel = room.Page.RootElement.FindName("List") as global::Stride.UI.Panels.Grid; var sendObs = from handler in sendControl.TouchUpObs() where messageContol.Text.Length > 0 && string.IsNullOrWhiteSpace(targetContol.Text) from player in queryer.QueryNotifier <Regulus.Samples.Chat1.Common.IPlayer>().SupplyEvent() from unit in new System.Action(() => player.Send(messageContol.Text)).ReturnVoid() select unit; var sendObsDispose = sendObs.Subscribe(_ => messageContol.Text = ""); _ReleaseHelper.Actions.Add(() => { sendObsDispose.Dispose(); }); var privateSendObs = from handler in sendControl.TouchUpObs() where messageContol.Text.Length > 0 && !string.IsNullOrWhiteSpace(targetContol.Text) from player in queryer.QueryNotifier <Regulus.Samples.Chat1.Common.IPlayer>().SupplyEvent() from target in player.Chatters.SupplyEvent() where target.Name.Value == targetContol.Text from unit in new System.Action(() => target.Whisper(messageContol.Text)).ReturnVoid() select unit; var privateSendObsDispose = privateSendObs.Subscribe(_ => messageContol.Text = ""); _ReleaseHelper.Actions.Add(() => { privateSendObsDispose.Dispose(); }); var quitObs = from handler in quitControl.TouchUpObs().Take(1) from player in queryer.QueryNotifier <Regulus.Samples.Chat1.Common.IPlayer>().SupplyEvent() from unit in new System.Action(() => player.Quit()).ReturnVoid() select unit; var quitObsDispose = quitObs.Subscribe(unit => DoneEvent()); _ReleaseHelper.Actions.Add(() => { quitObsDispose.Dispose(); }); var publicMessageObs = from player in queryer.QueryNotifier <Regulus.Samples.Chat1.Common.IPlayer>().SupplyEvent() from message in Regulus.Remote.Reactive.Extensions.EventObservable <Common.Message>(h => player.PublicMessageEvent += h, h => player.PublicMessageEvent -= h) select message; var publicMessageObsDispose = publicMessageObs.Subscribe(msg => _ReceiveMessage(listPanel, $"{msg.Name}:{msg.Context}")); _ReleaseHelper.Actions.Add(() => { publicMessageObsDispose.Dispose(); }); var privateMessageObs = from player in queryer.QueryNotifier <Regulus.Samples.Chat1.Common.IPlayer>().SupplyEvent() from message in Regulus.Remote.Reactive.Extensions.EventObservable <Common.Message>(h => player.PrivateMessageEvent += h, h => player.PrivateMessageEvent -= h) select message; var privateMessageObsDispose = privateMessageObs.Subscribe(msg => _ReceiveMessage(listPanel, $"<private>{msg.Name}:{msg.Context}")); _ReleaseHelper.Actions.Add(() => { privateMessageObsDispose.Dispose(); }); this.library = library; }