예제 #1
0
 private Element CreateElement(ContentModel x)
 {
     if (x.Type.Equals("dir", StringComparison.OrdinalIgnoreCase))
     {
         return(new StyledStringElement(x.Name, () => NavigationController.PushViewController(
                                            new SourceViewController(ViewModel.Username, ViewModel.Repository, ViewModel.Branch, x.Path), true), Images.Folder));
     }
     else if (x.Type.Equals("file", StringComparison.OrdinalIgnoreCase))
     {
         //If there's a size, it's a file
         if (x.Size != null)
         {
             return(new StyledStringElement(x.Name, () => NavigationController.PushViewController(
                                                new SourceInfoViewController(x.HtmlUrl, x.Path)
             {
                 Title = x.Name
             }, true), Images.File));
         }
         //If there is no size, it's most likey a submodule
         else
         {
             var nameAndSlug = x.GitUrl.Substring(x.GitUrl.IndexOf("/repos/") + 7);
             var repoId      = new CodeHub.Utils.RepositoryIdentifier(nameAndSlug.Substring(0, nameAndSlug.IndexOf("/git")));
             var sha         = x.GitUrl.Substring(x.GitUrl.LastIndexOf("/") + 1);
             return(new StyledStringElement(x.Name, () => NavigationController.PushViewController(
                                                new SourceViewController(repoId.Owner, repoId.Name, sha)
             {
                 Title = x.Name
             }, true), Images.Repo));
         }
     }
     else
     {
         return(new StyledStringElement(x.Name)
         {
             Image = Images.File
         });
     }
 }
예제 #2
0
        protected MonoTouch.Dialog.Element CreateElement(IssueModel x)
        {
            var isPullRequest = x.PullRequest != null && !(string.IsNullOrEmpty(x.PullRequest.HtmlUrl));
            var assigned      = x.Assignee != null ? x.Assignee.Login : "******";
            var kind          = isPullRequest ? "Pull" : "Issue";
            var commentString = x.Comments == 1 ? "1 comment".t() : x.Comments + " comments".t();
            var el            = new IssueElement(x.Number.ToString(), x.Title, assigned, x.State, commentString, kind, x.UpdatedAt);

            el.Tag = x;

            if (isPullRequest)
            {
                el.Tapped += () => {
                    //Make sure the first responder is gone.
                    View.EndEditing(true);
                    var s1     = x.Url.Substring(x.Url.IndexOf("/repos/") + 7);
                    var repoId = new CodeHub.Utils.RepositoryIdentifier(s1.Substring(0, s1.IndexOf("/issues")));
                    var info   = new PullRequestViewController(repoId.Owner, repoId.Name, x.Number);
                    //info.Controller.ModelChanged = newModel => ChildChangedModel(newModel, x);
                    NavigationController.PushViewController(info, true);
                };
            }
            else
            {
                el.Tapped += () => {
                    //Make sure the first responder is gone.
                    View.EndEditing(true);
                    var s1     = x.Url.Substring(x.Url.IndexOf("/repos/") + 7);
                    var repoId = new CodeHub.Utils.RepositoryIdentifier(s1.Substring(0, s1.IndexOf("/issues")));
                    var info   = new IssueViewController(repoId.Owner, repoId.Name, x.Number);
                    //info.ViewModel.ModelChanged = newModel => ChildChangedModel(newModel, x);
                    NavigationController.PushViewController(info, true);
                };
            }
            return(el);
        }