예제 #1
0
		public override void ViewDidLoad()
		{
			Title = "Commits".t();
			Root.UnevenRows = true;

			base.ViewDidLoad();

			var vm = (CommitsViewModel) ViewModel;
			BindCollection(vm.Commits, x =>
				{
					var msg = x.Commit.Message ?? string.Empty;
					var firstLine = msg.IndexOf("\n", StringComparison.Ordinal);
					var desc = firstLine > 0 ? msg.Substring(0, firstLine) : msg;

					string login;
					var date = DateTimeOffset.MinValue;

					if (x.Committer != null)
						login = x.Committer.Login;
					else if (x.Author != null)
						login = x.Author.Login;
					else if (x.Commit.Committer != null)
						login = x.Commit.Committer.Name;
					else
						login = "******";

					if (x.Commit.Committer != null)
						date = x.Commit.Committer.Date;

					var el = new NameTimeStringElement { Name = login, Time = date.ToDaysAgo(), String = desc, Lines = 4 };
					el.Tapped += () => vm.GoToChangesetCommand.Execute(x);
					return el;
				});
		}
예제 #2
0
        public override void ViewDidLoad()
        {
            Title = "Commits".t();
            Root.UnevenRows = true;

            base.ViewDidLoad();

            var vm = (PullRequestCommitsViewModel) ViewModel;
            BindCollection(vm.Commits, x =>
                {
                    var msg = x.Message ?? string.Empty;
                    var firstLine = msg.IndexOf("\n", StringComparison.Ordinal);
                    var desc = firstLine > 0 ? msg.Substring(0, firstLine) : msg;
                    string username;
                    if (x.Author.User != null)
                        username = x.Author.User.DisplayName ?? x.Author.User.Username;
                    else
                    {
                        var bracketStart = x.Author.Raw.IndexOf("<", StringComparison.Ordinal);
                        username = x.Author.Raw.Substring(0, bracketStart > 0 ? bracketStart : x.Author.Raw.Length);
                    }

                    var el = new NameTimeStringElement { Name = username, Time = x.Date.ToDaysAgo(), String = desc, Lines = 4 };
                    el.Tapped += () => vm.GoToChangesetCommand.Execute(x);
                    return el;
                });
        }
예제 #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

			var vm = (PullRequestsViewModel)ViewModel;
            _segmentBarButton.Width = View.Frame.Width - 10f;
			var set = this.CreateBindingSet<PullRequestsView, PullRequestsViewModel>();
			set.Bind(_viewSegment).To(x => x.SelectedFilter);
			set.Apply();

			BindCollection(vm.PullRequests, s =>
            {
                var sse = new NameTimeStringElement
                {
                    Name = s.Title,
					String = s.Description.Replace('\n', ' ').Replace("\r", ""),
                    Lines = 3,
					Time = s.UpdatedOn.ToDaysAgo(),
                    Image = Theme.CurrentTheme.AnonymousUserImage,
					ImageUri = new Uri(s.Author.Links.Avatar.Href)
                };
				sse.Tapped += () => vm.GoToPullRequestCommand.Execute(s);
                return sse;
            });
        }
예제 #4
0
		public override void ViewDidLoad()
		{
			Title = "Commits".t();
			Root.UnevenRows = true;

			base.ViewDidLoad();

			var vm = (CommitsViewModel) ViewModel;
			BindCollection(vm.Commits, x =>
				{
					var msg = x.Message ?? string.Empty;
					var firstLine = msg.IndexOf("\n", StringComparison.Ordinal);
					var desc = firstLine > 0 ? msg.Substring(0, firstLine) : msg;
					var el = new NameTimeStringElement { Name = x.Author, Time = x.Utctimestamp.ToDaysAgo(), String = desc, Lines = 4 };
					el.Tapped += () => vm.GoToChangesetCommand.Execute(x);
					return el;
				});
		}
예제 #5
0
        public override void ViewDidLoad()
        {
            NoItemsText = "No Gists".t();

            base.ViewDidLoad();

            var vm = (GistsViewModel) ViewModel;
            BindCollection(vm.Gists, x =>
            {
                var str = string.IsNullOrEmpty(x.Description) ? "Gist " + x.Id : x.Description;
                var sse = new NameTimeStringElement
                {
                    Time = x.UpdatedAt.ToDaysAgo(),
                    String = str,
                    Lines = 4,
                    Image = Theme.CurrentTheme.AnonymousUserImage
                };

                sse.Name = (x.User == null) ? "Anonymous" : x.User.Login;
                sse.ImageUri = (x.User == null) ? null : new Uri(x.User.AvatarUrl);
                sse.Tapped += () => vm.GoToGistCommand.Execute(x);
                return sse;
            });
        }
        private void AddItems(RootElement root, List<ChangesetModel> changes)
        {
            var sec = new Section();
            changes.ForEach(x => {
                var desc = (x.Message ?? "").Replace("\n", " ").Trim();
                var el = new NameTimeStringElement { Name = x.Author, Time = (x.Utctimestamp), String = desc, Lines = 4 };
                el.Tapped += () => NavigationController.PushViewController(new ChangesetInfoController(User, Slug, x.Node), true);
                sec.Add(el);
            });

            if (sec.Count > 0)
            {
                InvokeOnMainThread(delegate {
                    root.Insert(root.Count - 1, sec);
                });
            }
        }
예제 #7
0
파일: GistView.cs 프로젝트: GirliOS/CodeHub
        public void RenderGist()
        {
            if (ViewModel.Gist == null)
                return;

            var model = ViewModel.Gist;

            _shareButton.Enabled = _userButton.Enabled = model != null;
            var root = new RootElement(Title) { UnevenRows = true };
            var sec = new Section();
            root.Add(sec);

            var str = string.IsNullOrEmpty(model.Description) ? "Gist " + model.Id : model.Description;
            var d = new NameTimeStringElement() {
                Time = model.UpdatedAt.ToDaysAgo(),
                String = str,
                Image = Theme.CurrentTheme.AnonymousUserImage
            };

            //Sometimes there's no user!
            d.Name = (model.User == null) ? "Anonymous" : model.User.Login;
            d.ImageUri = (model.User == null) ? null : new Uri(model.User.AvatarUrl);

            sec.Add(d);

            var sec2 = new Section("Files");
            root.Add(sec2);

            foreach (var file in model.Files.Keys)
            {
                var sse = new StyledStringElement(file, model.Files[file].Size + " bytes", UITableViewCellStyle.Subtitle) {
                    Accessory = UITableViewCellAccessory.DisclosureIndicator,
                    LineBreakMode = UILineBreakMode.TailTruncation,
                    Lines = 1
                };

                var fileSaved = file;
                var gistFileModel = model.Files[fileSaved];

            //				if (string.Equals(gistFileModel.Language, "markdown", StringComparison.OrdinalIgnoreCase))
            //					sse.Tapped += () => ViewModel.GoToViewableFileCommand.Execute(gistFileModel);
            //				else
                    sse.Tapped += () => ViewModel.GoToFileSourceCommand.Execute(gistFileModel);

                sec2.Add(sse);
            }

            if (ViewModel.Comments.Items.Count > 0)
            {
                var sec3 = new Section("Comments");
                foreach (var comment in ViewModel.Comments)
                {
                    var el = new NameTimeStringElement
                    {
                        Name = "Anonymous",
                        Image = Theme.CurrentTheme.AnonymousUserImage,
                        String = comment.Body,
                     	Time = comment.CreatedAt.ToDaysAgo(),
                    };

                    if (comment.User != null)
                    {
                        el.Name = comment.User.Login;
                        el.ImageUri = new Uri(comment.User.AvatarUrl);
                    }

                    sec3.Add(el);
                }
                root.Add(sec3);
            }

            Root = root;
        }