public override void ViewDidLoad() { base.ViewDidLoad(); _segmentBarButton = new UIBarButtonItem(_viewSegment); _segmentBarButton.Width = View.Frame.Width - 10f; ToolbarItems = new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), _segmentBarButton, new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace) }; var vm = (MyIssuesViewModel)ViewModel; var weakVm = new WeakReference<MyIssuesViewModel>(vm); vm.Bind(x => x.SelectedFilter).Subscribe(x => { var goodVm = weakVm.Get(); if (x == 2 && goodVm != null) { var filter = new CodeHub.iOS.Views.Filters.MyIssuesFilterViewController(goodVm.Issues); var nav = new UINavigationController(filter); PresentViewController(nav, true, null); } // If there is searching going on. Finish it. FinishSearch(); }); this.BindCollection(vm.Issues, CreateElement); OnActivation(d => { d(vm.Bind(x => x.SelectedFilter, true).Subscribe(x => _viewSegment.SelectedSegment = (nint)x)); d(_viewSegment.GetChangedObservable().Subscribe(x => vm.SelectedFilter = x)); }); }
private static Element CreateElement(SourceTreeViewModel.SourceModel x, WeakReference<SourceTreeViewModel> viewModel) { if (x.Type.Equals("dir", StringComparison.OrdinalIgnoreCase)) { var e = new StringElement(x.Name, AtlassianIcon.Devtoolsfolderclosed.ToImage()); e.Clicked.Select(_ => x).BindCommand(viewModel.Get()?.GoToSourceCommand); return e; } if (x.Type.Equals("file", StringComparison.OrdinalIgnoreCase)) { var e = new StringElement(x.Name, AtlassianIcon.Devtoolsfile.ToImage()); e.Clicked.Select(_ => x).BindCommand(viewModel.Get()?.GoToSourceCommand); return e; } return new StringElement(x.Name) { Image = AtlassianIcon.Devtoolsfilebinary.ToImage() }; }
protected IssueElement CreateElement(IssueModel x) { var weakVm = new WeakReference<IBaseIssuesViewModel>(ViewModel); 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" : x.Comments + " comments"; var el = new IssueElement(x.Number.ToString(), x.Title, assigned, x.State, commentString, kind, x.UpdatedAt); el.Tapped += () => weakVm.Get()?.GoToIssueCommand.Execute(x); return el; }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = (TeamsViewModel) ViewModel; var weakVm = new WeakReference<TeamsViewModel>(vm); this.BindCollection(vm.Teams, x => { var e = new StringElement(x.Name); e.Clicked.Subscribe(_ => weakVm.Get()?.GoToTeamCommand.Execute(x)); return e; }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = (ChangesetBranchesViewModel) ViewModel; var weakVm = new WeakReference<ChangesetBranchesViewModel>(vm); BindCollection(vm.Branches, x => { var e = new StringElement(x.Name); e.Clicked.Subscribe(_ => weakVm.Get()?.GoToBranchCommand.Execute(x)); return e; }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = (BaseUserCollectionViewModel)ViewModel; var weakVm = new WeakReference<BaseUserCollectionViewModel>(vm); BindCollection(vm.Users, x => { var e = new UserElement(x.Username, string.Empty, string.Empty, new Avatar(x.Avatar)); e.Clicked.Subscribe(_ => weakVm.Get()?.GoToUserCommand.Execute(x)); return e; }); }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = (GroupsViewModel) ViewModel; var weakVm = new WeakReference<GroupsViewModel>(vm); BindCollection(vm.Organizations, x => { var e = new StringElement(x.Name); e.Clicked.Select(_ => x).BindCommand(weakVm.Get()?.GoToGroupCommand); return e; }); }
public static GistCreateView Show(UIViewController parent) { var ctrl = new GistCreateView(); var weakVm = new WeakReference<GistCreateViewModel>(ctrl.ViewModel); ctrl.ViewModel.SaveCommand.Subscribe(_ => parent.DismissViewController(true, null)); ctrl.NavigationItem.LeftBarButtonItem = new UIBarButtonItem { Image = Images.Buttons.CancelButton }; ctrl.NavigationItem.LeftBarButtonItem.GetClickedObservable().Subscribe(_ => { weakVm.Get()?.CancelCommand.Execute(null); parent.DismissViewController(true, null); }); parent.PresentViewController(new ThemedNavigationController(ctrl), true, null); return ctrl; }
public override void ViewDidLoad() { base.ViewDidLoad(); var vm = (OrganizationsViewModel) ViewModel; var weakVm = new WeakReference<OrganizationsViewModel>(vm); BindCollection(vm.Organizations, x => { var avatar = new GitHubAvatar(x.AvatarUrl); var e = new UserElement(x.Login, string.Empty, string.Empty, avatar); e.Clicked.Subscribe(_ => weakVm.Get()?.GoToOrganizationCommand.Execute(x)); return e; }); }
public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); var accountsService = Mvx.Resolve<IAccountsService>(); var weakVm = new WeakReference<AccountsViewController>(this); var accountSection = new Section(); accountSection.AddAll(accountsService.Select(account => { var t = new AccountElement(account, account.Equals(accountsService.ActiveAccount)); t.Tapped += () => weakVm.Get()?.SelectAccount(account); return t; })); Root.Reset(accountSection); SetCancelButton(); }
private static Action<object> MakeCallback(WeakReference<BranchesAndTagsViewModel> weakVm, BranchesAndTagsViewModel.ViewObject viewObject) { return new Action<object>(_ => weakVm.Get()?.GoToSourceCommand.Execute(viewObject)); }
public void SetButtons(List<Button> items) { foreach (var b in _buttons.Zip(items, (x, y) => new { Button = x, Data = y })) { b.Button.Caption = b.Data.Caption; b.Button.Text = b.Data.Text; b.Button.UserInteractionEnabled = true; var weakRef = new WeakReference<Button>(b.Data); b.Button.Touch = () => weakRef.Get()?.Clicked.OnNext(Unit.Default); } }
private static Tuple<NSMutableAttributedString,List<NewsCellView.Link>> CreateAttributedStringFromBlocks(UIFont font, UIColor primaryColor, IEnumerable<TextBlock> blocks) { var attributedString = new NSMutableAttributedString(); var links = new List<NewsCellView.Link>(); nint lengthCounter = 0; int i = 0; foreach (var b in blocks) { UIColor color = null; if (b.Tapped != null) color = LinkColor; color = color ?? primaryColor; var ctFont = new CoreText.CTFont(font.Name, font.PointSize); var str = new NSAttributedString(b.Value, new CoreText.CTStringAttributes() { ForegroundColor = color.CGColor, Font = ctFont }); attributedString.Append(str); var strLength = str.Length; if (b.Tapped != null) { var weakTapped = new WeakReference<Action>(b.Tapped); links.Add(new NewsCellView.Link { Range = new NSRange(lengthCounter, strLength), Callback = () => weakTapped.Get()?.Invoke(), Id = i++ }); } lengthCounter += strLength; } return new Tuple<NSMutableAttributedString, List<NewsCellView.Link>>(attributedString, links); }
private static Action<object> MakeCallback(WeakReference<GistViewModel> weakVm, GistFileModel model) { return new Action<object>(_ => weakVm.Get()?.GoToFileSourceCommand.Execute(model)); }
private static Action MakeCallback(WeakReference<CommitsViewModel> weakVm, CommitModel model) { return new Action(() => weakVm.Get()?.GoToChangesetCommand.Execute(model)); }
public MarkReadSection(string text, NotificationsView parent, bool button) : base(new CoreGraphics.CGRect(0, 0, 320, 28f)) { var weakVm = new WeakReference<NotificationsViewModel>(parent.ViewModel as NotificationsViewModel); TextLabel.Text = text; if (button) { _button = new UIButton(UIButtonType.RoundedRect); _button.SetImage(Images.Buttons.CheckButton, UIControlState.Normal); //_button.Frame = new System.Drawing.RectangleF(320f - 42f, 1f, 26f, 26f); _button.TintColor = UIColor.FromRGB(50, 50, 50); _button.TouchUpInside += (sender, e) => weakVm.Get()?.ReadRepositoriesCommand.Execute(text); Add(_button); } }
private static Action<object> MakeCallback(WeakReference<NotificationsViewModel> weakVm, NotificationModel model) { return new Action<object>(_ => weakVm.Get()?.GoToNotificationCommand.Execute(model)); }
private static Action MakeCallback(WeakReference<RepositoriesExploreViewModel> weakVm, RepositorySearchModel.RepositoryModel model) { return new Action(() => weakVm.Get()?.GoToRepositoryCommand.Execute(model)); }
public static EventHandler MakeHandler(ImageAndTitleHeaderView view) { var weakRef = new WeakReference<ImageAndTitleHeaderView>(view); return new EventHandler((s, e) => weakRef.Get()._clickedSubject.OnNext(Unit.Default)); }