示例#1
0
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            this.DelayBind(() =>
            {
                var colorConverter   = new MvxRGBValueConverter();
                var durationCombiner = new DurationValueCombiner();
                var bindingSet       = this.CreateBindingSet <ReportsLegendViewCell, ChartSegment>();

                //Text
                bindingSet.Bind(ProjectLabel).To(vm => vm.ProjectName);
                bindingSet.Bind(PercentageLabel)
                .For(v => v.Text)
                .ByCombining("Format", "'{0:0.00}%'", nameof(ChartSegment.Percentage));

                bindingSet.Bind(TotalTimeLabel)
                .ByCombining(durationCombiner,
                             vm => vm.TrackedTime,
                             vm => vm.DurationFormat);

                // Color
                bindingSet.Bind(ProjectLabel)
                .For(v => v.TextColor)
                .To(vm => vm.Color)
                .WithConversion(colorConverter);

                bindingSet.Bind(CircleView)
                .For(v => v.BackgroundColor)
                .To(vm => vm.Color)
                .WithConversion(colorConverter);

                bindingSet.Apply();
            });
        }
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            TimeLabel.Font = TimeLabel.Font.GetMonospacedDigitFont();

            this.DelayBind(() =>
            {
                var colorConverter      = new MvxRGBValueConverter();
                var visibilityConverter = new MvxVisibilityValueConverter();
                var timeSpanConverter   = new TimeSpanToDurationValueConverter();
                var descriptionTopDistanceValueConverter = new BoolToConstantValueConverter <nfloat>(HasProjectDistance, NoProjectDistance);

                var bindingSet = this.CreateBindingSet <TimeEntriesLogViewCell, TimeEntryViewModel>();

                //Text
                bindingSet.Bind(ProjectLabel).To(vm => vm.ProjectName);
                bindingSet.Bind(DescriptionLabel).To(vm => vm.Description);
                bindingSet.Bind(TimeLabel)
                .To(vm => vm.Duration)
                .WithConversion(timeSpanConverter);

                //Color
                bindingSet.Bind(ProjectLabel)
                .For(v => v.TextColor)
                .To(vm => vm.ProjectColor)
                .WithConversion(colorConverter);

                bindingSet.Bind(ProjectDotView)
                .For(v => v.BackgroundColor)
                .To(vm => vm.ProjectColor)
                .WithConversion(colorConverter);

                //Visibility
                bindingSet.Bind(DescriptionTopDistanceConstraint)
                .For(v => v.Constant)
                .To(vm => vm.HasProject)
                .WithConversion(descriptionTopDistanceValueConverter);

                bindingSet.Bind(ProjectLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(ProjectDotView)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(TaskLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Apply();
            });
        }
示例#3
0
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            ContentView.BackgroundColor = UIColor.White;
            FadeView.Layer.AddSublayer(new CAGradientLayer
            {
                Colors     = new[] { UIColor.White.ColorWithAlpha(0.0f).CGColor, UIColor.White.CGColor },
                Locations  = new[] { new NSNumber(0.0f), new NSNumber(0.2f) },
                StartPoint = new CGPoint(0.0, 0.5),
                EndPoint   = new CGPoint(1.0, 0.5),
                Frame      = FadeView.Bounds
            });

            StartButton.TouchUpInside += onStartButtonTap;

            this.DelayBind(() =>
            {
                var colorConverter      = new MvxRGBValueConverter();
                var visibilityConverter = new MvxVisibilityValueConverter();
                var timeSpanConverter   = new TimeSpanToDurationValueConverter();
                var descriptionTopDistanceValueConverter = new BoolToConstantValueConverter <nfloat>(HasProjectDistance, NoProjectDistance);
                var projectTaskClientCombiner            = new ProjectTaskClientValueCombiner(
                    ProjectTaskClientLabel.Font.CapHeight,
                    Color.Suggestions.ClientColor.ToNativeColor(),
                    true
                    );

                var bindingSet = this.CreateBindingSet <SuggestionsViewCell, Suggestion>();

                //Text
                bindingSet.Bind(DescriptionLabel).To(vm => vm.Description);
                bindingSet.Bind(ProjectTaskClientLabel)
                .For(v => v.AttributedText)
                .ByCombining(projectTaskClientCombiner,
                             v => v.ProjectName,
                             v => v.TaskName,
                             v => v.ClientName,
                             v => v.ProjectColor);

                //Visibility
                bindingSet.Bind(DescriptionTopDistanceConstraint)
                .For(v => v.Constant)
                .To(vm => vm.HasProject)
                .WithConversion(descriptionTopDistanceValueConverter);

                bindingSet.Bind(ProjectTaskClientLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Apply();
            });
        }
示例#4
0
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            ContentView.BackgroundColor = UIColor.White;

            this.DelayBind(() =>
            {
                var colorConverter      = new MvxRGBValueConverter();
                var visibilityConverter = new MvxVisibilityValueConverter();
                var timeSpanConverter   = new TimeSpanToDurationValueConverter();
                var descriptionTopDistanceValueConverter = new BoolToConstantValueConverter <nfloat>(HasProjectDistance, NoProjectDistance);

                var bindingSet = this.CreateBindingSet <SuggestionsViewCell, Suggestion>();

                //Text
                bindingSet.Bind(ProjectLabel).To(vm => vm.ProjectName);
                bindingSet.Bind(DescriptionLabel).To(vm => vm.Description);

                //Color
                bindingSet.Bind(ProjectLabel)
                .For(v => v.TextColor)
                .To(vm => vm.ProjectColor)
                .WithConversion(colorConverter);

                bindingSet.Bind(ProjectDotView)
                .For(v => v.BackgroundColor)
                .To(vm => vm.ProjectColor)
                .WithConversion(colorConverter);

                //Visibility
                bindingSet.Bind(DescriptionTopDistanceConstraint)
                .For(v => v.Constant)
                .To(vm => vm.HasProject)
                .WithConversion(descriptionTopDistanceValueConverter);

                bindingSet.Bind(ProjectLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(ProjectDotView)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(TaskLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Apply();
            });
        }
示例#5
0
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            ContentView.BackgroundColor = UIColor.White;
            FadeView.FadeRight          = true;

            StartButton.TouchUpInside += onStartButtonTap;

            this.DelayBind(() =>
            {
                var colorConverter      = new MvxRGBValueConverter();
                var visibilityConverter = new MvxVisibilityValueConverter();
                var timeSpanConverter   = new TimeSpanToDurationValueConverter();
                var descriptionTopDistanceValueConverter = new BoolToConstantValueConverter <nfloat>(HasProjectDistance, NoProjectDistance);
                var projectTaskClientCombiner            = new ProjectTaskClientValueCombiner(
                    ProjectTaskClientLabel.Font.CapHeight,
                    Color.Suggestions.ClientColor.ToNativeColor(),
                    true
                    );

                var bindingSet = this.CreateBindingSet <SuggestionsViewCell, Suggestion>();

                //Text
                bindingSet.Bind(DescriptionLabel).To(vm => vm.Description);
                bindingSet.Bind(ProjectTaskClientLabel)
                .For(v => v.AttributedText)
                .ByCombining(projectTaskClientCombiner,
                             v => v.ProjectName,
                             v => v.TaskName,
                             v => v.ClientName,
                             v => v.ProjectColor);

                //Visibility
                bindingSet.Bind(DescriptionTopDistanceConstraint)
                .For(v => v.Constant)
                .To(vm => vm.HasProject)
                .WithConversion(descriptionTopDistanceValueConverter);

                bindingSet.Bind(ProjectTaskClientLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Apply();
            });
        }
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            ClientNameLabel.LineBreakMode  = UILineBreakMode.TailTruncation;
            ProjectNameLabel.LineBreakMode = UILineBreakMode.TailTruncation;

            this.DelayBind(() =>
            {
                var colorConverter      = new MvxRGBValueConverter();
                var taskCountConverter  = new TaskCountConverter();
                var visibilityConverter = new MvxVisibilityValueConverter();

                var bindingSet = this.CreateBindingSet <StartTimeEntryProjectsViewCell, ProjectSuggestionViewModel>();

                //Text
                bindingSet.Bind(ProjectNameLabel).To(vm => vm.ProjectName);
                bindingSet.Bind(ClientNameLabel).To(vm => vm.ClientName);
                bindingSet.Bind(AmountOfTasksLabel)
                .To(vm => vm.NumberOfTasks)
                .WithConversion(taskCountConverter);

                //Color
                bindingSet.Bind(ProjectNameLabel)
                .For(v => v.TextColor)
                .To(vm => vm.ProjectColor)
                .WithConversion(colorConverter);

                bindingSet.Bind(ProjectDotView)
                .For(v => v.BackgroundColor)
                .To(vm => vm.ProjectColor)
                .WithConversion(colorConverter);

                //Visibility
                bindingSet.Bind(ToggleTaskImage)
                .For(v => v.BindVisibility())
                .To(vm => vm.NumberOfTasks)
                .WithConversion(visibilityConverter);

                bindingSet.Apply();
            });
        }
        public override void AwakeFromNib()
        {
            base.AwakeFromNib();

            FadeView.FadeRight = true;

            TimeLabel.Font = TimeLabel.Font.GetMonospacedDigitFont();
            ContinueButton.TouchUpInside += onContinueButtonTap;

            this.DelayBind(() =>
            {
                var colorConverter              = new MvxRGBValueConverter();
                var visibilityConverter         = new MvxVisibilityValueConverter();
                var timeSpanConverter           = new TimeSpanToDurationValueConverter();
                var invertedVisibilityConverter = new MvxInvertedVisibilityValueConverter();
                var projectTaskClientCombiner   = new ProjectTaskClientValueCombiner(
                    ProjectTaskClientLabel.Font.CapHeight,
                    Color.TimeEntriesLog.ClientColor.ToNativeColor(),
                    true
                    );
                var descriptionTopDistanceValueConverter =
                    new BoolToConstantValueConverter <nfloat>(hasProjectDistance, noProjectDistance);

                var bindingSet = this.CreateBindingSet <TimeEntriesLogViewCell, TimeEntryViewModel>();

                //Text
                bindingSet.Bind(DescriptionLabel).To(vm => vm.Description);
                bindingSet.Bind(ProjectTaskClientLabel)
                .For(v => v.AttributedText)
                .ByCombining(projectTaskClientCombiner,
                             v => v.ProjectName,
                             v => v.TaskName,
                             v => v.ClientName,
                             v => v.ProjectColor);

                bindingSet.Bind(TimeLabel)
                .To(vm => vm.Duration)
                .WithConversion(timeSpanConverter);

                //Visibility
                bindingSet.Bind(DescriptionTopDistanceConstraint)
                .For(v => v.Constant)
                .To(vm => vm.HasProject)
                .WithConversion(descriptionTopDistanceValueConverter);

                bindingSet.Bind(ProjectTaskClientLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasProject)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(AddDescriptionLabel)
                .For(v => v.BindVisibility())
                .To(vm => vm.HasDescription)
                .WithConversion(invertedVisibilityConverter);

                bindingSet.Bind(AddDescriptionTopDistanceConstraint)
                .For(v => v.Constant)
                .To(vm => vm.HasProject)
                .WithConversion(descriptionTopDistanceValueConverter);

                bindingSet.Bind(SyncErrorImageView)
                .For(v => v.BindVisibility())
                .To(vm => vm.CanSync)
                .WithConversion(invertedVisibilityConverter);

                bindingSet.Bind(UnsyncedImageView)
                .For(v => v.BindVisibility())
                .To(vm => vm.NeedsSync)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(ContinueButton)
                .For(v => v.BindVisibility())
                .To(vm => vm.CanSync)
                .WithConversion(visibilityConverter);

                bindingSet.Bind(ContinueImageView)
                .For(v => v.BindVisibility())
                .To(vm => vm.CanSync)
                .WithConversion(visibilityConverter);

                bindingSet.Apply();
            });
        }
示例#8
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            DurationLabel.Font = DurationLabel.Font.GetMonospacedDigitFont();

            PreferredContentSize = View.Frame.Size;

            resizeSwitch();

            var durationConverter           = new TimeSpanToDurationWithUnitValueConverter();
            var dateConverter               = new DateToTitleStringValueConverter();
            var timeConverter               = new DateTimeToTimeConverter();
            var visibilityConverter         = new MvxVisibilityValueConverter();
            var inverterVisibilityConverter = new MvxInvertedVisibilityValueConverter();
            var colorConverter              = new MvxRGBValueConverter();

            var bindingSet = this.CreateBindingSet <EditTimeEntryViewController, EditTimeEntryViewModel>();

            //Text
            bindingSet.Bind(DescriptionLabel).To(vm => vm.Description);
            bindingSet.Bind(ProjectLabel).To(vm => vm.Project);
            bindingSet.Bind(ClientLabel).To(vm => vm.Client);
            bindingSet.Bind(BillableSwitch).To(vm => vm.Billable);
            bindingSet.Bind(DurationLabel)
            .To(vm => vm.Duration)
            .WithConversion(durationConverter);

            bindingSet.Bind(StartDateLabel)
            .To(vm => vm.StartTime)
            .WithConversion(dateConverter);

            bindingSet.Bind(StartTimeLabel)
            .To(vm => vm.StartTime)
            .WithConversion(timeConverter);

            //Commands
            bindingSet.Bind(CloseButton).To(vm => vm.CloseCommand);
            bindingSet.Bind(DeleteButton).To(vm => vm.DeleteCommand);

            //Description visibility
            bindingSet.Bind(AddDescriptionView)
            .For(v => v.BindVisible())
            .To(vm => vm.Description)
            .WithConversion(visibilityConverter);

            bindingSet.Bind(DescriptionLabel)
            .For(v => v.BindVisible())
            .To(vm => vm.Description)
            .WithConversion(inverterVisibilityConverter);

            //Project visibility
            bindingSet.Bind(AddProjectAndTaskView)
            .For(v => v.BindVisible())
            .To(vm => vm.Project)
            .WithConversion(visibilityConverter);

            bindingSet.Bind(ProjectLabel)
            .For(v => v.BindVisible())
            .To(vm => vm.Project)
            .WithConversion(inverterVisibilityConverter);

            bindingSet.Bind(ProjectDot)
            .For(v => v.BindVisible())
            .To(vm => vm.Project)
            .WithConversion(inverterVisibilityConverter);

            //Tags visibility
            bindingSet.Bind(AddTagsView)
            .For(v => v.BindVisible())
            .To(vm => vm.Tags)
            .WithConversion(visibilityConverter);

            bindingSet.Bind(TagsLabel)
            .For(v => v.BindVisible())
            .To(vm => vm.Tags)
            .WithConversion(inverterVisibilityConverter);

            //Colors
            bindingSet.Bind(ProjectDot)
            .For(v => v.BackgroundColor)
            .To(vm => vm.ProjectColor)
            .WithConversion(colorConverter);

            bindingSet.Apply();
        }