public SyncPage() { hud.Show(); hud.Dismiss(); Initialize(); }
public bool NextStep() { try { _hud.Update(_hero); _hud.ShowScenarios(_config); var input = _input.Read(); var scenario = _selector.GetByInput(input); _hud.Show(scenario); scenario.Execute(_hero); } catch (GameException ex) { _hud.Update(ex); } if (_hero.Health <= 0) { _hud.Update(_hero); return(false); } return(true); }
private void EnablePushNotifications(object sender, EventArgs e) { _hud.Show("Enabling..."); var featureService = Mvx.Resolve <IFeaturesService>(); featureService.Activate(FeatureIds.PushNotifications); }
public override void ViewDidLoad() { NoItemsText = "No Notifications".t(); Title = "Notifications".t(); base.ViewDidLoad(); _markHud = new Hud(View); _segmentBarButton.Width = View.Frame.Width - 10f; ToolbarItems = new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), _segmentBarButton, new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace) }; var vm = (NotificationsViewModel)ViewModel; NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.CheckButton, UIBarButtonItemStyle.Plain, (s, e) => vm.ReadAllCommand.Execute(null)); vm.ReadAllCommand.CanExecuteChanged += (sender, e) => NavigationItem.RightBarButtonItem.Enabled = vm.ReadAllCommand.CanExecute(null); vm.Bind(x => x.IsMarking, x => { if (x) _markHud.Show("Marking..."); else _markHud.Hide(); }); BindCollection(vm.Notifications, x => { var el = new StyledStringElement(x.Subject.Title, x.UpdatedAt.ToDaysAgo(), UITableViewCellStyle.Subtitle) { Accessory = UITableViewCellAccessory.DisclosureIndicator }; var subject = x.Subject.Type.ToLower(); if (subject.Equals("issue")) el.Image = Images.Flag; else if (subject.Equals("pullrequest")) el.Image = Images.Hand; else if (subject.Equals("commit")) el.Image = Images.Commit; else if (subject.Equals("release")) el.Image = Images.Tag; else el.Image = Images.Notifications; el.Tapped += () => vm.GoToNotificationCommand.Execute(x); return el; }); var set = this.CreateBindingSet<NotificationsView, NotificationsViewModel>(); set.Bind(_viewSegment).To(x => x.ShownIndex); set.Apply(); }
public override void ViewDidLoad() { Title = "Create Gist"; _hud = this.CreateHud(); base.ViewDidLoad(); NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => ViewModel.SaveCommand.Execute(null)); ViewModel.Bind(x => x.Description, UpdateView); ViewModel.Bind(x => x.Files, UpdateView); ViewModel.Bind(x => x.Public, UpdateView); ViewModel.Bind(x => x.IsSaving, x => { if (x) _hud.Show("Saving..."); else _hud.Hide(); }); }
public override void ViewWillAppear(bool animated) { var vm = (SettingsViewModel)ViewModel; vm.Bind(x => x.PushNotificationsEnabled, CreateTable); vm.Bind(x => x.IsSaving, x => { if (x) { _hud.Show("Saving..."); } else { _hud.Hide(); } }); CreateTable(); base.ViewWillAppear(animated); }
public override void ViewDidLoad() { Title = "Accounts"; base.ViewDidLoad(); NavigationItem.LeftBarButtonItem = null; NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Add, (s, e) => ViewModel.AddAccountCommand.Execute(null)); _hud = new Hud(View); ViewModel.Bind(x => x.IsLoggingIn, x => { if (x) { _hud.Show("Logging in..."); } else { _hud.Hide(); } }); }
public override void ViewDidLoad() { Title = "Create Gist"; _hud = this.CreateHud(); base.ViewDidLoad(); NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => ViewModel.SaveCommand.Execute(null)); ViewModel.Bind(x => x.Description, UpdateView); ViewModel.Bind(x => x.Files, UpdateView); ViewModel.Bind(x => x.Public, UpdateView); ViewModel.Bind(x => x.IsSaving, x => { if (x) { _hud.Show("Saving..."); } else { _hud.Hide(); } }); }
public override void ViewDidLoad() { base.ViewDidLoad(); if (!ViewModel.IsEnterprise || ViewModel.AttemptedAccount != null) { LoadRequest(); } ViewModel.Bind(x => x.IsLoggingIn, x => { if (x) { _hud.Show("Logging in..."); } else { _hud.Hide(); } }); }
public override void ViewDidLoad() { base.ViewDidLoad(); View.AutosizesSubviews = true; _imgView = new UIImageView {AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight}; _hud = new Hud(View); Add(_imgView); var vm = (BaseStartupViewModel)ViewModel; vm.Bind(x => x.IsLoggingIn, x => { if (x) { _hud.Show("Logging in..."); } else { _hud.Hide(); } }); }
public void TechnicianListPageViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { TechnicianListPageViewModel vm = sender as TechnicianListPageViewModel; switch (e.PropertyName) { case "IsLoading": IHud hud = DependencyService.Get <IHud>(); if (vm.IsLoading) { //XHUD.HUD.Show("Loading data...", -1, XHUD.MaskType.Black); hud.Show("Loading data..."); } else { hud.Dismiss(); } break; case "IsSignedIn": if (vm.IsSignedIn) { Device.BeginInvokeOnMainThread(() => MainPage = new MainDashboard()); //MainPage = new MainDashboard(this); } else { if (!(MainPage is TechnicianListPage)) { MainPage = new TechnicianListPage(vm); } } break; default: break; } }
public override void ViewDidLoad() { var set = this.CreateBindingSet <AddAccountView, AddAccountViewModel>(); set.Bind(User).To(x => x.Username); set.Bind(Password).To(x => x.Password); set.Bind(Domain).To(x => x.Domain); set.Bind(LoginButton).To(x => x.LoginCommand); set.Apply(); base.ViewDidLoad(); ViewModel.Bind(x => x.IsLoggingIn, x => { if (x) { _hud.Show("Logging in..."); } else { _hud.Hide(); } }); View.BackgroundColor = UIColor.FromRGB(239, 239, 244); Logo.Image = Images.Logos.GitHub; if (ViewModel.IsEnterprise) { LoginButton.SetTitleColor(UIColor.White, UIControlState.Normal); LoginButton.SetBackgroundImage(Images.Buttons.BlackButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); } else { LoginButton.SetBackgroundImage(Images.Buttons.GreyButton.CreateResizableImage(new UIEdgeInsets(18, 18, 18, 18)), UIControlState.Normal); //Hide the domain, slide everything up Domain.Hidden = true; var f = User.Frame; f.Y -= 39; User.Frame = f; var p = Password.Frame; p.Y -= 39; Password.Frame = p; var l = LoginButton.Frame; l.Y -= 39; LoginButton.Frame = l; } //Set some generic shadowing LoginButton.Layer.ShadowColor = UIColor.Black.CGColor; LoginButton.Layer.ShadowOffset = new SizeF(0, 1); LoginButton.Layer.ShadowOpacity = 0.3f; Domain.ShouldReturn = delegate { User.BecomeFirstResponder(); return(true); }; User.ShouldReturn = delegate { Password.BecomeFirstResponder(); return(true); }; Password.ShouldReturn = delegate { Password.ResignFirstResponder(); LoginButton.SendActionForControlEvents(UIControlEvent.TouchUpInside); return(true); }; ScrollView.ContentSize = new SizeF(View.Frame.Width, LoginButton.Frame.Bottom + 10f); }
public override void ViewDidLoad() { Title = "New Issue"; base.ViewDidLoad(); _hud = this.CreateHud(); var vm = (IssueAddViewModel)ViewModel; NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => { View.EndEditing(true); vm.SaveCommand.Execute(null); }); var title = new InputElement("Title", string.Empty, string.Empty); title.Changed += (object sender, EventArgs e) => vm.Title = title.Value; var assignedTo = new StyledStringElement("Responsible", "Unassigned", UITableViewCellStyle.Value1); assignedTo.Accessory = UITableViewCellAccessory.DisclosureIndicator; assignedTo.Tapped += () => vm.GoToAssigneeCommand.Execute(null); var milestone = new StyledStringElement("Milestone".t(), "None", UITableViewCellStyle.Value1); milestone.Accessory = UITableViewCellAccessory.DisclosureIndicator; milestone.Tapped += () => vm.GoToMilestonesCommand.Execute(null); var labels = new StyledStringElement("Labels".t(), "None", UITableViewCellStyle.Value1); labels.Accessory = UITableViewCellAccessory.DisclosureIndicator; labels.Tapped += () => vm.GoToLabelsCommand.Execute(null); var content = new MultilinedElement("Description"); content.Tapped += () => { var composer = new MarkdownComposerViewController { Title = "Issue Description", Text = content.Value }; composer.NewComment(this, (text) => { vm.Content = text; composer.CloseComposer(); }); }; vm.Bind(x => x.Title, x => title.Value = x); vm.Bind(x => x.Content, x => content.Value = x); vm.Bind(x => x.AssignedTo, x => { assignedTo.Value = x == null ? "Unassigned" : x.Login; Root.Reload(assignedTo, UITableViewRowAnimation.None); }); vm.Bind(x => x.Milestone, x => { milestone.Value = x == null ? "None" : x.Title; Root.Reload(milestone, UITableViewRowAnimation.None); }); vm.BindCollection(x => x.Labels, x => { labels.Value = vm.Labels.Items.Count == 0 ? "None" : string.Join(", ", vm.Labels.Items.Select(i => i.Name)); Root.Reload(labels, UITableViewRowAnimation.None); }); vm.Bind(x => x.IsSaving, x => { if (x) _hud.Show("Saving..."); else _hud.Hide(); }); Root = new RootElement(Title) { new Section { title, assignedTo, milestone, labels }, new Section { content } }; }
public static IDisposable Activate(this IHud hud, string text) { hud.Show(text); return(Disposable.Create(hud.Hide)); }
public override void ViewDidLoad() { base.ViewDidLoad(); _hud = this.CreateHud(); NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => { View.EndEditing(true); ViewModel.SaveCommand.Execute(null); }); var title = new InputElement("Title", string.Empty, string.Empty) { TextAlignment = UITextAlignment.Right }; title.Changed += (object sender, EventArgs e) => ViewModel.Title = title.Value; var assignedTo = new StyledStringElement("Responsible", "Unassigned", UITableViewCellStyle.Value1); assignedTo.Accessory = UITableViewCellAccessory.DisclosureIndicator; assignedTo.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); var kind = new StyledStringElement("Issue Type", ViewModel.Kind, UITableViewCellStyle.Value1); kind.Accessory = UITableViewCellAccessory.DisclosureIndicator; kind.Tapped += () => { var ctrl = new IssueAttributesView(IssueModifyViewModel.Kinds, ViewModel.Kind) { Title = "Issue Type" }; ctrl.SelectedValue = x => ViewModel.Kind = x.ToLower(); NavigationController.PushViewController(ctrl, true); }; var priority = new StyledStringElement("Priority", ViewModel.Priority, UITableViewCellStyle.Value1); priority.Accessory = UITableViewCellAccessory.DisclosureIndicator; priority.Tapped += () => { var ctrl = new IssueAttributesView(IssueModifyViewModel.Priorities, ViewModel.Priority) { Title = "Priority" }; ctrl.SelectedValue = x => ViewModel.Priority = x.ToLower(); NavigationController.PushViewController(ctrl, true); }; var milestone = new StyledStringElement("Milestone", "None", UITableViewCellStyle.Value1); milestone.Accessory = UITableViewCellAccessory.DisclosureIndicator; milestone.Tapped += () => ViewModel.GoToMilestonesCommand.Execute(null); var component = new StyledStringElement("Component", "None", UITableViewCellStyle.Value1); component.Accessory = UITableViewCellAccessory.DisclosureIndicator; component.Tapped += () => ViewModel.GoToComponentsCommand.Execute(null); var version = new StyledStringElement("Version", "None", UITableViewCellStyle.Value1); version.Accessory = UITableViewCellAccessory.DisclosureIndicator; version.Tapped += () => ViewModel.GoToVersionsCommand.Execute(null); var content = new MultilinedElement("Description"); content.Tapped += () => { var composer = new Composer { Title = "Issue Description", Text = content.Value }; composer.NewComment(this, (text) => { ViewModel.Content = text; composer.CloseComposer(); }); }; ViewModel.Bind(x => x.IsSaving, x => { if (x) _hud.Show("Saving..."); else _hud.Hide(); }); Root = new RootElement(Title) { new Section { title, assignedTo, kind, priority }, new Section { milestone, component, version }, new Section { content } }; ViewModel.Bind(x => x.Title, x => { title.Value = x; Root.Reload(title, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.AssignedTo, x => { assignedTo.Value = x == null ? "Unassigned" : x.Username; Root.Reload(assignedTo, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Kind, x => { kind.Value = x; Root.Reload(kind, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Priority, x => { priority.Value = x; Root.Reload(priority, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Milestone, x => { milestone.Value = x ?? "None"; Root.Reload(milestone, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Component, x => { component.Value = x ?? "None"; Root.Reload(component, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Version, x => { version.Value = x ?? "None"; Root.Reload(version, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Content, x => { content.Value = x; Root.Reload(content, UITableViewRowAnimation.None); }, true); }
public override void ViewDidLoad() { base.ViewDidLoad(); _header = new HeaderView(); _hud = this.CreateHud(); var content = System.IO.File.ReadAllText("WebCell/body.html", System.Text.Encoding.UTF8); _descriptionElement = new WebElement(content, "body", false); _descriptionElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; //_descriptionElement.HeightChanged = x => Render(); var content2 = System.IO.File.ReadAllText("WebCell/comments.html", System.Text.Encoding.UTF8); _commentsElement = new WebElement(content2, "comments", true); _commentsElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; //_commentsElement.HeightChanged = x => Render(); _milestoneElement = new StyledStringElement("Milestone", "No Milestone", UITableViewCellStyle.Value1) {Image = Images.Milestone, Accessory = UITableViewCellAccessory.DisclosureIndicator}; _milestoneElement.Tapped += () => ViewModel.GoToMilestoneCommand.Execute(null); _assigneeElement = new StyledStringElement("Assigned", "Unassigned".t(), UITableViewCellStyle.Value1) {Image = Images.Person, Accessory = UITableViewCellAccessory.DisclosureIndicator }; _assigneeElement.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); _labelsElement = new StyledStringElement("Labels", "None", UITableViewCellStyle.Value1) {Image = Images.Tag, Accessory = UITableViewCellAccessory.DisclosureIndicator}; _labelsElement.Tapped += () => ViewModel.GoToLabelsCommand.Execute(null); _addCommentElement = new StyledStringElement("Add Comment") { Image = Images.Pencil }; _addCommentElement.Tapped += AddCommentTapped; NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Action, (s, e) => ShowExtraMenu()); NavigationItem.RightBarButtonItem.Enabled = false; ViewModel.Bind(x => x.IsLoading, x => { if (!x) { NavigationItem.RightBarButtonItem.Enabled = ViewModel.Issue != null; } }); ViewModel.Bind(x => x.IsModifying, x => { if (x) _hud.Show("Loading..."); else _hud.Hide(); }); ViewModel.Bind(x => x.Issue, x => { _assigneeElement.Value = x.Assignee != null ? x.Assignee.Login : "******".t(); _milestoneElement.Value = x.Milestone != null ? x.Milestone.Title : "No Milestone"; _labelsElement.Value = x.Labels.Count == 0 ? "None" : string.Join(", ", x.Labels.Select(i => i.Name)); _descriptionElement.Value = ViewModel.MarkdownDescription; _header.Title = x.Title; _header.Subtitle = "Updated " + x.UpdatedAt.ToDaysAgo(); Render(); }); ViewModel.BindCollection(x => x.Comments, (e) => RenderComments()); ViewModel.BindCollection(x => x.Events, (e) => RenderComments()); }
public override void ViewDidLoad() { base.ViewDidLoad(); _header = new HeaderView(); _hud = this.CreateHud(); var content = System.IO.File.ReadAllText("WebCell/body.html", System.Text.Encoding.UTF8); _descriptionElement = new WebElement(content, "body", false); _descriptionElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; //_descriptionElement.HeightChanged = x => Render(); var content2 = System.IO.File.ReadAllText("WebCell/comments.html", System.Text.Encoding.UTF8); _commentsElement = new WebElement(content2, "comments", true); _commentsElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; //_commentsElement.HeightChanged = x => Render(); _milestoneElement = new StyledStringElement("Milestone", "No Milestone", UITableViewCellStyle.Value1) { Image = Images.Milestone, Accessory = UITableViewCellAccessory.DisclosureIndicator }; _milestoneElement.Tapped += () => ViewModel.GoToMilestoneCommand.Execute(null); _assigneeElement = new StyledStringElement("Assigned", "Unassigned".t(), UITableViewCellStyle.Value1) { Image = Images.Person, Accessory = UITableViewCellAccessory.DisclosureIndicator }; _assigneeElement.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); _labelsElement = new StyledStringElement("Labels", "None", UITableViewCellStyle.Value1) { Image = Images.Tag, Accessory = UITableViewCellAccessory.DisclosureIndicator }; _labelsElement.Tapped += () => ViewModel.GoToLabelsCommand.Execute(null); _addCommentElement = new StyledStringElement("Add Comment") { Image = Images.Pencil }; _addCommentElement.Tapped += AddCommentTapped; NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Action, (s, e) => ShowExtraMenu()); NavigationItem.RightBarButtonItem.Enabled = false; ViewModel.Bind(x => x.IsLoading, x => { if (!x) { NavigationItem.RightBarButtonItem.Enabled = ViewModel.Issue != null; } }); ViewModel.Bind(x => x.IsModifying, x => { if (x) { _hud.Show("Loading..."); } else { _hud.Hide(); } }); ViewModel.Bind(x => x.Issue, x => { _assigneeElement.Value = x.Assignee != null ? x.Assignee.Login : "******".t(); _milestoneElement.Value = x.Milestone != null ? x.Milestone.Title : "No Milestone"; _labelsElement.Value = x.Labels.Count == 0 ? "None" : string.Join(", ", x.Labels.Select(i => i.Name)); _descriptionElement.Value = ViewModel.MarkdownDescription; _header.Title = x.Title; _header.Subtitle = "Updated " + x.UpdatedAt.ToDaysAgo(); Render(); }); ViewModel.BindCollection(x => x.Comments, (e) => RenderComments()); ViewModel.BindCollection(x => x.Events, (e) => RenderComments()); }
public override void ViewDidLoad() { NoItemsText = "No Notifications".t(); Title = "Notifications".t(); base.ViewDidLoad(); _markHud = new Hud(View); _segmentBarButton.Width = View.Frame.Width - 10f; ToolbarItems = new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), _segmentBarButton, new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace) }; var vm = (NotificationsViewModel)ViewModel; NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.CheckButton, UIBarButtonItemStyle.Plain, (s, e) => vm.ReadAllCommand.Execute(null)); vm.ReadAllCommand.CanExecuteChanged += (sender, e) => NavigationItem.RightBarButtonItem.Enabled = vm.ReadAllCommand.CanExecute(null); vm.Bind(x => x.IsMarking, x => { if (x) { _markHud.Show("Marking..."); } else { _markHud.Hide(); } }); BindCollection(vm.Notifications, x => { var el = new StyledStringElement(x.Subject.Title, x.UpdatedAt.ToDaysAgo(), UITableViewCellStyle.Subtitle) { Accessory = UITableViewCellAccessory.DisclosureIndicator }; var subject = x.Subject.Type.ToLower(); if (subject.Equals("issue")) { el.Image = Images.Flag; } else if (subject.Equals("pullrequest")) { el.Image = Images.Hand; } else if (subject.Equals("commit")) { el.Image = Images.Commit; } else if (subject.Equals("release")) { el.Image = Images.Tag; } else { el.Image = Images.Notifications; } el.Tapped += () => vm.GoToNotificationCommand.Execute(x); return(el); }); var set = this.CreateBindingSet <NotificationsView, NotificationsViewModel>(); set.Bind(_viewSegment).To(x => x.ShownIndex); set.Apply(); }
public override void ViewDidLoad() { Title = "New Issue"; base.ViewDidLoad(); _hud = this.CreateHud(); var vm = (IssueAddViewModel)ViewModel; NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => { View.EndEditing(true); vm.SaveCommand.Execute(null); }); var title = new InputElement("Title", string.Empty, string.Empty); title.Changed += (object sender, EventArgs e) => vm.Title = title.Value; var assignedTo = new StyledStringElement("Responsible", "Unassigned", UITableViewCellStyle.Value1); assignedTo.Accessory = UITableViewCellAccessory.DisclosureIndicator; assignedTo.Tapped += () => vm.GoToAssigneeCommand.Execute(null); var milestone = new StyledStringElement("Milestone".t(), "None", UITableViewCellStyle.Value1); milestone.Accessory = UITableViewCellAccessory.DisclosureIndicator; milestone.Tapped += () => vm.GoToMilestonesCommand.Execute(null); var labels = new StyledStringElement("Labels".t(), "None", UITableViewCellStyle.Value1); labels.Accessory = UITableViewCellAccessory.DisclosureIndicator; labels.Tapped += () => vm.GoToLabelsCommand.Execute(null); var content = new MultilinedElement("Description"); content.Tapped += () => { var composer = new MarkdownComposerViewController { Title = "Issue Description", Text = content.Value }; composer.NewComment(this, (text) => { vm.Content = text; composer.CloseComposer(); }); }; vm.Bind(x => x.Title, x => title.Value = x); vm.Bind(x => x.Content, x => content.Value = x); vm.Bind(x => x.AssignedTo, x => { assignedTo.Value = x == null ? "Unassigned" : x.Login; Root.Reload(assignedTo, UITableViewRowAnimation.None); }); vm.Bind(x => x.Milestone, x => { milestone.Value = x == null ? "None" : x.Title; Root.Reload(milestone, UITableViewRowAnimation.None); }); vm.BindCollection(x => x.Labels, x => { labels.Value = vm.Labels.Items.Count == 0 ? "None" : string.Join(", ", vm.Labels.Items.Select(i => i.Name)); Root.Reload(labels, UITableViewRowAnimation.None); }); vm.Bind(x => x.IsSaving, x => { if (x) { _hud.Show("Saving..."); } else { _hud.Hide(); } }); Root = new RootElement(Title) { new Section { title, assignedTo, milestone, labels }, new Section { content } }; }
public override void ViewDidLoad() { Root.UnevenRows = true; base.ViewDidLoad(); _header = new HeaderView(); _hud = this.CreateHud(); var content = System.IO.File.ReadAllText("WebCell/body.html", System.Text.Encoding.UTF8); _descriptionElement = new WebElement(content, "body", false); _descriptionElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; var content2 = System.IO.File.ReadAllText("WebCell/comments.html", System.Text.Encoding.UTF8); _commentsElement = new WebElement(content2, "comments", true); _commentsElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; _milestoneElement = new StyledStringElement("Milestone", "No Milestone", UITableViewCellStyle.Value1) { Image = Images.Milestone }; _milestoneElement.Tapped += () => ViewModel.GoToMilestoneCommand.Execute(null); _assigneeElement = new StyledStringElement("Assigned", "Unassigned".t(), UITableViewCellStyle.Value1) { Image = Images.Person }; _assigneeElement.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); _labelsElement = new StyledStringElement("Labels", "None", UITableViewCellStyle.Value1) { Image = Images.Tag }; _labelsElement.Tapped += () => ViewModel.GoToLabelsCommand.Execute(null); _addCommentElement = new StyledStringElement("Add Comment") { Image = Images.Pencil }; _addCommentElement.Tapped += AddCommentTapped; _split1 = new SplitElement(new SplitElement.Row { Image1 = Images.Cog, Image2 = Images.Merge }); _split2 = new SplitElement(new SplitElement.Row { Image1 = Images.Person, Image2 = Images.Create }); ViewModel.Bind(x => x.PullRequest, x => { var merged = (x.Merged != null && x.Merged.Value); _split1.Value.Text1 = x.State; _split1.Value.Text2 = merged ? "Merged" : "Not Merged"; _split2.Value.Text1 = x.User.Login; _split2.Value.Text2 = x.CreatedAt.ToString("MM/dd/yy"); _descriptionElement.Value = ViewModel.MarkdownDescription; _header.Title = x.Title; _header.Subtitle = "Updated " + x.UpdatedAt.ToDaysAgo(); Render(); }); NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Action, (s, e) => ShowExtraMenu()); NavigationItem.RightBarButtonItem.Enabled = false; ViewModel.Bind(x => x.IsLoading, x => { if (!x) { NavigationItem.RightBarButtonItem.Enabled = ViewModel.PullRequest != null; } }); ViewModel.Bind(x => x.IsModifying, x => { if (x) { _hud.Show("Loading..."); } else { _hud.Hide(); } }); ViewModel.Bind(x => x.Issue, x => { _assigneeElement.Value = x.Assignee != null ? x.Assignee.Login : "******".t(); _milestoneElement.Value = x.Milestone != null ? x.Milestone.Title : "No Milestone"; _labelsElement.Value = x.Labels.Count == 0 ? "None" : string.Join(", ", x.Labels.Select(i => i.Name)); Render(); }); ViewModel.GoToLabelsCommand.CanExecuteChanged += (sender, e) => { var before = _labelsElement.Accessory; _labelsElement.Accessory = ViewModel.GoToLabelsCommand.CanExecute(null) ? UITableViewCellAccessory.DisclosureIndicator : UITableViewCellAccessory.None; if (_labelsElement.Accessory != before && _labelsElement.GetImmediateRootElement() != null) { Root.Reload(_labelsElement, UITableViewRowAnimation.Fade); } }; ViewModel.GoToAssigneeCommand.CanExecuteChanged += (sender, e) => { var before = _assigneeElement.Accessory; _assigneeElement.Accessory = ViewModel.GoToAssigneeCommand.CanExecute(null) ? UITableViewCellAccessory.DisclosureIndicator : UITableViewCellAccessory.None; if (_assigneeElement.Accessory != before && _assigneeElement.GetImmediateRootElement() != null) { Root.Reload(_assigneeElement, UITableViewRowAnimation.Fade); } }; ViewModel.GoToMilestoneCommand.CanExecuteChanged += (sender, e) => { var before = _milestoneElement.Accessory; _milestoneElement.Accessory = ViewModel.GoToMilestoneCommand.CanExecute(null) ? UITableViewCellAccessory.DisclosureIndicator : UITableViewCellAccessory.None; if (_milestoneElement.Accessory != before && _milestoneElement.GetImmediateRootElement() != null) { Root.Reload(_milestoneElement, UITableViewRowAnimation.Fade); } }; ViewModel.BindCollection(x => x.Comments, e => RenderComments()); ViewModel.BindCollection(x => x.Events, e => RenderComments()); }
public override void ViewDidLoad() { Root.UnevenRows = true; base.ViewDidLoad(); _header = new HeaderView(); _hud = this.CreateHud(); var content = System.IO.File.ReadAllText("WebCell/body.html", System.Text.Encoding.UTF8); _descriptionElement = new WebElement(content, "body", false); _descriptionElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; var content2 = System.IO.File.ReadAllText("WebCell/comments.html", System.Text.Encoding.UTF8); _commentsElement = new WebElement(content2, "comments", true); _commentsElement.UrlRequested = ViewModel.GoToUrlCommand.Execute; _milestoneElement = new StyledStringElement("Milestone", "No Milestone", UITableViewCellStyle.Value1) { Image = Images.Milestone }; _milestoneElement.Tapped += () => ViewModel.GoToMilestoneCommand.Execute(null); _assigneeElement = new StyledStringElement("Assigned", "Unassigned".t(), UITableViewCellStyle.Value1) { Image = Images.Person }; _assigneeElement.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); _labelsElement = new StyledStringElement("Labels", "None", UITableViewCellStyle.Value1) { Image = Images.Tag }; _labelsElement.Tapped += () => ViewModel.GoToLabelsCommand.Execute(null); _addCommentElement = new StyledStringElement("Add Comment") { Image = Images.Pencil }; _addCommentElement.Tapped += AddCommentTapped; _split1 = new SplitElement(new SplitElement.Row { Image1 = Images.Cog, Image2 = Images.Merge }); _split2 = new SplitElement(new SplitElement.Row { Image1 = Images.Person, Image2 = Images.Create }); ViewModel.Bind(x => x.PullRequest, x => { var merged = (x.Merged != null && x.Merged.Value); _split1.Value.Text1 = x.State; _split1.Value.Text2 = merged ? "Merged" : "Not Merged"; _split2.Value.Text1 = x.User.Login; _split2.Value.Text2 = x.CreatedAt.ToString("MM/dd/yy"); _descriptionElement.Value = ViewModel.MarkdownDescription; _header.Title = x.Title; _header.Subtitle = "Updated " + x.UpdatedAt.ToDaysAgo(); Render(); }); NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Action, (s, e) => ShowExtraMenu()); NavigationItem.RightBarButtonItem.Enabled = false; ViewModel.Bind(x => x.IsLoading, x => { if (!x) { NavigationItem.RightBarButtonItem.Enabled = ViewModel.PullRequest != null; } }); ViewModel.Bind(x => x.IsModifying, x => { if (x) _hud.Show("Loading..."); else _hud.Hide(); }); ViewModel.Bind(x => x.Issue, x => { _assigneeElement.Value = x.Assignee != null ? x.Assignee.Login : "******".t(); _milestoneElement.Value = x.Milestone != null ? x.Milestone.Title : "No Milestone"; _labelsElement.Value = x.Labels.Count == 0 ? "None" : string.Join(", ", x.Labels.Select(i => i.Name)); Render(); }); ViewModel.GoToLabelsCommand.CanExecuteChanged += (sender, e) => { var before = _labelsElement.Accessory; _labelsElement.Accessory = ViewModel.GoToLabelsCommand.CanExecute(null) ? UITableViewCellAccessory.DisclosureIndicator : UITableViewCellAccessory.None; if (_labelsElement.Accessory != before && _labelsElement.GetImmediateRootElement() != null) Root.Reload(_labelsElement, UITableViewRowAnimation.Fade); }; ViewModel.GoToAssigneeCommand.CanExecuteChanged += (sender, e) => { var before = _assigneeElement.Accessory; _assigneeElement.Accessory = ViewModel.GoToAssigneeCommand.CanExecute(null) ? UITableViewCellAccessory.DisclosureIndicator : UITableViewCellAccessory.None; if (_assigneeElement.Accessory != before && _assigneeElement.GetImmediateRootElement() != null) Root.Reload(_assigneeElement, UITableViewRowAnimation.Fade); }; ViewModel.GoToMilestoneCommand.CanExecuteChanged += (sender, e) => { var before = _milestoneElement.Accessory; _milestoneElement.Accessory = ViewModel.GoToMilestoneCommand.CanExecute(null) ? UITableViewCellAccessory.DisclosureIndicator : UITableViewCellAccessory.None; if (_milestoneElement.Accessory != before && _milestoneElement.GetImmediateRootElement() != null) Root.Reload(_milestoneElement, UITableViewRowAnimation.Fade); }; ViewModel.BindCollection(x => x.Comments, e => RenderComments()); ViewModel.BindCollection(x => x.Events, e => RenderComments()); }
public override void ViewDidLoad() { base.ViewDidLoad(); _hud = this.CreateHud(); NavigationItem.RightBarButtonItem = new UIBarButtonItem(Theme.CurrentTheme.SaveButton, UIBarButtonItemStyle.Plain, (s, e) => { View.EndEditing(true); ViewModel.SaveCommand.Execute(null); }); var title = new InputElement("Title", string.Empty, string.Empty) { TextAlignment = UITextAlignment.Right }; title.Changed += (object sender, EventArgs e) => ViewModel.Title = title.Value; var assignedTo = new StyledStringElement("Responsible", "Unassigned", UITableViewCellStyle.Value1); assignedTo.Accessory = UITableViewCellAccessory.DisclosureIndicator; assignedTo.Tapped += () => ViewModel.GoToAssigneeCommand.Execute(null); var kind = new StyledStringElement("Issue Type", ViewModel.Kind, UITableViewCellStyle.Value1); kind.Accessory = UITableViewCellAccessory.DisclosureIndicator; kind.Tapped += () => { var ctrl = new IssueAttributesView(IssueModifyViewModel.Kinds, ViewModel.Kind) { Title = "Issue Type" }; ctrl.SelectedValue = x => ViewModel.Kind = x.ToLower(); NavigationController.PushViewController(ctrl, true); }; var priority = new StyledStringElement("Priority", ViewModel.Priority, UITableViewCellStyle.Value1); priority.Accessory = UITableViewCellAccessory.DisclosureIndicator; priority.Tapped += () => { var ctrl = new IssueAttributesView(IssueModifyViewModel.Priorities, ViewModel.Priority) { Title = "Priority" }; ctrl.SelectedValue = x => ViewModel.Priority = x.ToLower(); NavigationController.PushViewController(ctrl, true); }; var milestone = new StyledStringElement("Milestone".t(), "None", UITableViewCellStyle.Value1); milestone.Accessory = UITableViewCellAccessory.DisclosureIndicator; milestone.Tapped += () => ViewModel.GoToMilestonesCommand.Execute(null); var component = new StyledStringElement("Component".t(), "None", UITableViewCellStyle.Value1); component.Accessory = UITableViewCellAccessory.DisclosureIndicator; component.Tapped += () => ViewModel.GoToComponentsCommand.Execute(null); var version = new StyledStringElement("Version".t(), "None", UITableViewCellStyle.Value1); version.Accessory = UITableViewCellAccessory.DisclosureIndicator; version.Tapped += () => ViewModel.GoToVersionsCommand.Execute(null); var content = new MultilinedElement("Description"); content.Tapped += () => { var composer = new Composer { Title = "Issue Description", Text = content.Value }; composer.NewComment(this, (text) => { ViewModel.Content = text; composer.CloseComposer(); }); }; ViewModel.Bind(x => x.IsSaving, x => { if (x) { _hud.Show("Saving..."); } else { _hud.Hide(); } }); Root = new RootElement(Title) { new Section { title, assignedTo, kind, priority }, new Section { milestone, component, version }, new Section { content } }; ViewModel.Bind(x => x.Title, x => { title.Value = x; Root.Reload(title, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.AssignedTo, x => { assignedTo.Value = x == null ? "Unassigned" : x.Username; Root.Reload(assignedTo, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Kind, x => { kind.Value = x; Root.Reload(kind, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Priority, x => { priority.Value = x; Root.Reload(priority, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Milestone, x => { milestone.Value = x ?? "None"; Root.Reload(milestone, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Component, x => { component.Value = x ?? "None"; Root.Reload(component, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Version, x => { version.Value = x ?? "None"; Root.Reload(version, UITableViewRowAnimation.None); }, true); ViewModel.Bind(x => x.Content, x => { content.Value = x; Root.Reload(content, UITableViewRowAnimation.None); }, true); }
public TechnicianListPage(TechnicianListPageViewModel viewModel) { hud.Show(); hud.Dismiss(); // Set the page title. NavigationPage.SetHasNavigationBar(this, true); Title = "Technican Dashboard"; _activityIndicator = new ActivityIndicator() { Color = Color.Red }; _activityIndicator.SetBinding(ActivityIndicator.IsRunningProperty, "IsLoading"); _activityIndicator.SetBinding(ActivityIndicator.IsVisibleProperty, "IsLoading"); _activityIndicator.BindingContext = _vm; BackgroundColor = Color.White; // Create the view model for this page _vm = viewModel; //new TechnicianListPageViewModel(); // Set the binding context for this page BindingContext = _vm.TechnicianList; // Create our screen objects // Create a label for the technician list _labelTitle = new Xamarin.Forms.Label(); _labelTitle.Text = "SELECT TECHNICIAN"; _labelTitle.FontFamily = Device.OnPlatform("OpenSans-Bold", "sans-serif-black", null); _labelTitle.FontSize = 22; _labelTitle.TextColor = Color.White; _labelTitle.HorizontalTextAlignment = TextAlignment.Center; _labelTitle.VerticalTextAlignment = TextAlignment.Center; Grid titleLayout = new Grid() { BackgroundColor = Color.FromHex("#2980b9"), HorizontalOptions = LayoutOptions.FillAndExpand, HeightRequest = 80 }; titleLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); titleLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); titleLayout.Children.Add(_labelTitle, 0, 0); // Create a template to display each technician in the list var dataTemplateItem = new DataTemplate(typeof(TechnicialDataCell)); // Create the actual list _listViewTechnicians = new ListView() { HasUnevenRows = true, HorizontalOptions = LayoutOptions.Fill, SeparatorVisibility = SeparatorVisibility.None, BackgroundColor = Color.White, ItemsSource = _vm.TechnicianList, ItemTemplate = dataTemplateItem }; _listViewTechnicians.ItemTapped += ListViewTechnicians_ItemTapped; StackLayout layout = new StackLayout { BackgroundColor = Color.FromHex("#2980b9"), Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { titleLayout, _activityIndicator, _listViewTechnicians } }; if (Device.OS == TargetPlatform.iOS) { // move layout under the status bar layout.Padding = new Thickness(0, 40, 0, 0); } Content = layout; }