public override void ViewDidLoad() { base.ViewDidLoad(); this.CreateTopBackground(UIColor.GroupTableViewBackgroundColor); var header = new ImageAndTitleHeaderView { EnableSeperator = true, SeperatorColor = TableView.SeparatorColor, Image = Images.ProjectAvatar, BackgroundColor = UIColor.GroupTableViewBackgroundColor, }; TableView.TableHeaderView = header; ViewModel.WhenAnyValue(x => x.Project).Where(x => x != null).Subscribe(x => { if (x.IsPersonal) { header.Text = x.Name + "'s Personal Repositories"; } else { header.Text = x.Description; } TableView.TableHeaderView = header; var selfLink = x.Links["self"].FirstOrDefault(); if (selfLink != null && !string.IsNullOrEmpty(selfLink.Href)) { header.ImageUri = selfLink.Href + "/avatar.png"; } }); }
public override void ViewDidLoad() { Title = ViewModel.RepositorySlug; base.ViewDidLoad(); var header = new ImageAndTitleHeaderView { BackgroundColor = UIColor.GroupTableViewBackgroundColor, Image = Images.ProjectAvatar, Text = ViewModel.RepositorySlug }; TableView.TableHeaderView = header; TableView.TableFooterView = new UIView(); TableView.SeparatorInset = UIEdgeInsets.Zero; TableView.BackgroundColor = UIColor.GroupTableViewBackgroundColor; TableView.SectionHeaderHeight = 0.3f; var settingsSection = new Section(); var splitElement = new SplitButtonElement(); var forksButton = splitElement.AddButton("Forks", "0", () => ViewModel.GoToForksCommand.ExecuteIfCan()); var releatedButton = splitElement.AddButton("Related", "0", () => ViewModel.GoToRelatedCommand.ExecuteIfCan()); settingsSection.Add(splitElement); // // var eventsElement = new StyledStringElement("Events", () => {}, Images.Megaphone.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)); // settingsSection.Add(eventsElement); // // var readmeElement = new StyledStringElement("Readme", () => {}, Images.Readme.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)); // settingsSection.Add(readmeElement); // var codeSection = new Section(); codeSection.Add(new StyledStringElement("Commits", () => ViewModel.GoToCommitsCommand.Execute(null), Images.Commit.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate))); codeSection.Add(new StyledStringElement("Source Code", () => ViewModel.GoToSourceCommand.Execute(null), Images.Build.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate))); codeSection.Add(new StyledStringElement("Pull Requests", () => ViewModel.GoToPullRequestsCommand.Execute(null), Images.Merge.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate))); var root = new RootElement(Title); root.Add(settingsSection); root.Add(codeSection); Root = root; ViewModel.WhenAnyValue(x => x.Repository).Where(x => x != null).Subscribe(x => { var selfLink = x.Project.Links["self"].FirstOrDefault(); if (selfLink == null || string.IsNullOrEmpty(selfLink.Href)) { return; } header.ImageUri = selfLink.Href + "/avatar.png"; }); ViewModel.WhenAnyValue(x => x.ForkedRepositories).Subscribe(x => forksButton.Text = x.ToString()); ViewModel.WhenAnyValue(x => x.RelatedRepositories).Subscribe(x => releatedButton.Text = x.ToString()); }
protected PrettyDialogViewController() { HeaderView = new ImageAndTitleHeaderView(); SlideUpTitle = new SlideUpTitleView(44f) { Offset = 100f }; NavigationItem.TitleView = SlideUpTitle; _backgroundHeaderView = new UIView(); }
protected PrettyDialogViewController() { _rootElement = new Lazy <RootElement>(() => new RootElement(TableView)); _backgroundHeaderView = new UIView(); _tableView = new Lazy <EnhancedTableView>(() => new EnhancedTableView(UITableViewStyle.Grouped)); HeaderView = new ImageAndTitleHeaderView(); SlideUpTitle = new SlideUpTitleView(44f) { Offset = 100f }; NavigationItem.TitleView = SlideUpTitle; }
public override void ViewDidLoad() { Style = UITableViewStyle.Grouped; Title = ViewModel.UserSlug; base.ViewDidLoad(); var header = new ImageAndTitleHeaderView { BackgroundColor = UIColor.GroupTableViewBackgroundColor }; header.Image = CodeFramework.iOS.Images.LoginUserUnknown; header.Text = ViewModel.UserSlug; var repositorySection = new Section(); Root = new RootElement(Title) { repositorySection }; TableView.TableHeaderView = header; ViewModel.WhenAnyValue(x => x.User).Where(x => x != null).Subscribe(x => { header.Text = x.DisplayName; var selfLink = x.Links["self"].FirstOrDefault(); if (selfLink == null || string.IsNullOrEmpty(selfLink.Href)) { return; } header.ImageUri = selfLink.Href + "/avatar.png"; }); ViewModel.Repositories.Changed.Subscribe(_ => repositorySection.Reset(ViewModel.Repositories.Select(x => { var el = new StyledStringElement(x.Name); el.Accessory = UITableViewCellAccessory.DisclosureIndicator; el.Tapped += () => ViewModel.GoToRepositoryCommand.Execute(x); return(el); }))); }
protected BaseDialogViewController() : base(UITableViewStyle.Grouped) { SlideUpTitle = new SlideUpTitleView(44f) { Offset = 100f }; NavigationItem.TitleView = SlideUpTitle; HeaderView = new ImageAndTitleHeaderView(); _backgroundHeaderView = new UIView(); Appearing .Where(x => ToolbarItems != null && NavigationController != null) .Subscribe(x => NavigationController.SetToolbarHidden(false, x)); Disappearing .Where(x => ToolbarItems != null && NavigationController != null) .Subscribe(x => NavigationController.SetToolbarHidden(true, x)); Disappearing .Where(_ => NavigationController != null) .Subscribe(_ => NavigationController.NavigationBar.ShadowImage = null); }
public override void ViewDidLoad() { Title = ViewModel.Title; base.ViewDidLoad(); Root = new RootElement(Title) { UnevenRows = true }; var splitElement1 = new SplitElement { Button1 = new SplitElement.SplitButton(Images.Commit.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "-", () => ViewModel.GoToParentCommitCommand.ExecuteIfCan()), Button2 = new SplitElement.SplitButton(Images.Branch.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "-", () => ViewModel.GoToBranchesCommand.ExecuteIfCan()), }; var splitElement2 = new SplitElement { Button1 = new SplitElement.SplitButton(Images.Build.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "0 Builds", () => ViewModel.GoToBuildStatusCommand.ExecuteIfCan()), Button2 = new SplitElement.SplitButton(Images.Comment.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "0 Comments", () => ViewModel.GoToCommentsCommand.ExecuteIfCan()), }; Root.Add(new Section() { splitElement1, splitElement2 }); var header = new ImageAndTitleHeaderView { // EnableSeperator = true, // SeperatorColor = TableView.SeparatorColor BackgroundColor = UIColor.GroupTableViewBackgroundColor, Image = Images.Avatar, Text = ViewModel.RepositorySlug }; TableView.TableHeaderView = header; TableView.SectionFooterHeight = 0.3f; ViewModel.WhenAnyValue(x => x.Commit).Where(x => x != null).Subscribe(x => { header.Text = x.Message; TableView.TableHeaderView = header; var firstParent = x.Parents.FirstOrDefault(); if (firstParent != null) { splitElement1.Button1.Text = firstParent.DisplayId; } else { splitElement1.Button1.Text = "No Parent"; } }); ViewModel.WhenAnyValue(x => x.BuildStatus).Where(x => x != null && x.Length > 0).Subscribe(x => { var first = x.FirstOrDefault(); if (string.Equals(first.State, "SUCCESSFUL", StringComparison.OrdinalIgnoreCase)) { splitElement2.Button1.Image = Images.BuildOk.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); } else if (string.Equals(first.State, "FAILED", StringComparison.OrdinalIgnoreCase)) { splitElement2.Button1.Image = Images.Error.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); } else { splitElement2.Button1.Image = Images.Update.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); } splitElement2.Button1.Text = string.Format("{0} Build{1}", x.Length, x.Length == 1 ? string.Empty : "s"); }); ViewModel.Branches.Changed.Subscribe(_ => { if (ViewModel.Branches.Count > 1) { splitElement1.Button2.Text = string.Format("{0} Branches", ViewModel.Branches.Count); } else { var firstBranch = ViewModel.Branches.FirstOrDefault(); if (firstBranch != null) { splitElement1.Button2.Text = firstBranch.DisplayId; } } }); var fileIcon = Images.File.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); ViewModel.Changes.Changed.Subscribe(_ => { var sections = new List <Section>(); sections.Add(new Section() { splitElement1, splitElement2 }); foreach (var @group in ViewModel.Changes.GroupBy(x => x.Path.Parent)) { var sec = new Section("/" + @group.Key); foreach (var entry in @group) { var entryClosed = entry; var element = new StyledStringElement(entry.Path.Name, FirstCharToUpper(entry.Type), UITableViewCellStyle.Subtitle); element.Tapped += () => ViewModel.GoToDiffCommand.ExecuteIfCan(entryClosed); element.Accessory = UITableViewCellAccessory.DisclosureIndicator; element.Image = fileIcon; sec.Add(element); } sections.Add(sec); } Root.Reset(sections); }); }
public override void ViewDidLoad() { base.ViewDidLoad(); Root = new RootElement(string.Format("Pull Request #{0}", ViewModel.PullRequestId)) { UnevenRows = true }; var description = new StyledMultilineElement(string.Empty); description.Font = UIFont.SystemFontOfSize(12f); var statusElement = new SplitElement { Button1 = new SplitElement.SplitButton(Images.Status.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "Open") { Enabled = false }, Button2 = new SplitElement.SplitButton(Images.Group.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "0 Participants", () => ViewModel.GoToParticipantsCommand.ExecuteIfCan()), }; var buildElement = new SplitElement { Button1 = new SplitElement.SplitButton(Images.Build.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "0 Builds", () => ViewModel.GoToBuildStatusCommand.ExecuteIfCan()), Button2 = new SplitElement.SplitButton(Images.Comment.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), "0 Comments", () => ViewModel.GoToCommentsCommand.ExecuteIfCan()), }; Root.Add(new Section { statusElement, buildElement }); var changesElement = new StyledStringElement("Changes", () => ViewModel.GoToChangesCommand.ExecuteIfCan(), Images.File.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)); var commitsElement = new StyledStringElement("Commits", () => ViewModel.GoToCommitsCommand.ExecuteIfCan(), Images.Commit.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)); Root.Add(new Section { changesElement, commitsElement }); var mergeElement = new StyledStringElement("Merge", string.Empty); mergeElement.Image = Images.Merge; var commentsElement = new WebElement("comments"); var commentsSection = new Section() { commentsElement }; var header = new ImageAndTitleHeaderView { BackgroundColor = UIColor.GroupTableViewBackgroundColor, Image = Images.Avatar, Text = " " }; TableView.TableHeaderView = header; TableView.SectionFooterHeight = 0.3f; ViewModel.GoToCommentsCommand.Subscribe(_ => { if (commentsElement.GetImmediateRootElement() != null) { TableView.ScrollToRow(commentsElement.IndexPath, UITableViewScrollPosition.Middle, true); } }); ViewModel.WhenAnyValue(x => x.PullRequest).Where(x => x != null).Subscribe(x => { header.Text = x.Title; statusElement.Button1.Text = x.State; description.Caption = x.Description; if (description.GetImmediateRootElement() == null) { Root[0].Insert(0, UITableViewRowAnimation.Fade, description); } var selfLink = x.Author.User.Links["self"].FirstOrDefault(); if (selfLink != null && !string.IsNullOrEmpty(selfLink.Href)) { header.ImageUri = selfLink.Href + "/avatar.png"; } TableView.TableHeaderView = header; }); ViewModel.Participants.Changed.Subscribe(_ => { statusElement.Button2.Text = string.Format("{0} Participant{1}", ViewModel.Participants.Count, ViewModel.Participants.Count != 1 ? "s" : string.Empty); }); ViewModel.WhenAnyValue(x => x.BuildStatus).Where(x => x != null && x.Length > 0).Subscribe(x => { var first = x.FirstOrDefault(); if (string.Equals(first.State, "SUCCESSFUL", StringComparison.OrdinalIgnoreCase)) { buildElement.Button1.Image = Images.BuildOk.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); } else if (string.Equals(first.State, "FAILED", StringComparison.OrdinalIgnoreCase)) { buildElement.Button1.Image = Images.Error.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); } else { buildElement.Button1.Image = Images.Update.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); } buildElement.Button1.Text = string.Format("{0} Build{1}", x.Length, x.Length == 1 ? string.Empty : "s"); }); ViewModel.Activities.Changed.Subscribe(_ => { var commentCount = ViewModel.Activities.Where(x => x.Comment != null).Sum(x => CommentCount(x.Comment)); buildElement.Button2.Text = string.Format("{0} Comment{1}", commentCount, commentCount != 1 ? "s" : string.Empty); if (ViewModel.Activities.Count > 0) { if (commentsSection.GetImmediateRootElement() == null) { Root.Add(commentsSection); } var template = new CommentCellView { Model = ViewModel.Activities.ToList() }; commentsElement.Value = template.GenerateString(); } else { if (commentsSection.GetImmediateRootElement() != null) { Root.Remove(commentsSection, UITableViewRowAnimation.Fade); } } }); }