예제 #1
0
        private void Initialize()
        {
            var view = new EventedView(View.Frame);

            view.OnTouchesEnded += (sender, args) =>
            {
                _tableView.ResignTextFieldAsFirstResponder();
            };

            View = view;

            // add navigation item
            View.BackgroundColor = UIColor.GroupTableViewBackgroundColor;
            var navigationBar = new UINavigationBar(new RectangleF(0, 0, View.Frame.Width, 44));
            //navigationBar.TintColor = UIColor.DarkGray;
            var navigationItem = new UINavigationItem(Comparison == null ? "New Comparison" : Comparison.Name);
            var doneButton     = new UIBarButtonItem(UIBarButtonSystemItem.Done, (sender, args) =>
            {
                if (_tableView.ComparisonName == null || _tableView.ComparisonName.Trim() == string.Empty)
                {
                    new UIAlertView("Warning", "Please provide a comparison name", null, "Dismiss").Show();
                    return;
                }

                if (Comparison == null)
                {
                    Comparison = new ComparisonModel()
                    {
                        Name       = _tableView.ComparisonName.Trim(),
                        UnitId     = _unitPicker.SelectedUnit.Id,
                        UnitTypeId = _tableView.UnitTypeId
                    };
                    Comparison.Id = DataService.SaveComparison(Comparison);
                }
                else
                {
                    Comparison.Name       = _tableView.ComparisonName.Trim();
                    Comparison.UnitId     = _unitPicker.SelectedUnit.Id;
                    Comparison.UnitTypeId = _tableView.UnitTypeId;
                    DataService.UpdateComparison(Comparison);
                }

                if (OnFinished != null)
                {
                    OnFinished(this, EventArgs.Empty);
                }
            });

            var cancelButton = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, (sender, args) =>
            {
                if (Comparison != null)
                {
                    navigationItem.Title = Comparison.Name;
                }

                if (OnCanceled != null)
                {
                    OnCanceled(this, EventArgs.Empty);
                }
            });

            navigationItem.SetRightBarButtonItem(doneButton, false);
            navigationItem.SetLeftBarButtonItem(cancelButton, false);
            navigationBar.PushNavigationItem(navigationItem, false);
            View.AddSubview(navigationBar);

            _tableView = new ComparisonTableView(new RectangleF(0, 44, View.Frame.Width, View.Frame.Height - 44), UITableViewStyle.Grouped);
            _tableView.OnUnitTypeChanged += (sender, args) =>
            {
                _unitPicker.SetUnitType(_tableView.UnitTypeId);
                _tableView.SetUnitText(_unitPicker.SelectedUnit.FullName);
            };

            _tableView.OnTouchesEnded += (sender, args) =>
            {
                _tableView.ResignTextFieldAsFirstResponder();
            };

            _tableView.OnKeyboardDone += (sender, args) =>
            {
                _tableView.ResignTextFieldAsFirstResponder();
            };

            if (Comparison != null)
            {
                _tableView.OnNameChanged += (sender, args) =>
                {
                    navigationItem.Title = _tableView.ComparisonName;
                };
            }

            View.AddSubview(_tableView);

            if (Comparison == null)
            {
                _unitPicker = new UnitPicker(1, new RectangleF(0, View.Frame.Height - 216, 320, 216));
            }
            else
            {
                _unitPicker = new UnitPicker(Comparison.UnitTypeId, new RectangleF(0, View.Frame.Height - 216, 320, 216));
            }

            _unitPicker.OnSelectionChanged += (sender, args) =>
            {
                _tableView.SetUnitText(_unitPicker.SelectedUnit.FullName);
            };

            View.AddSubview(_unitPicker);
        }
예제 #2
0
 public ComparisonTableViewSource(ComparisonTableView tableView)
 {
     _tableView = tableView;
 }