示例#1
0
 /// <summary>
 /// Change the name of this EditInterface.
 /// </summary>
 /// <param name="name"></param>
 public void setName(String name)
 {
     if (this.name != name)
     {
         this.name = name;
         if (OnNameChanged != null)
         {
             OnNameChanged.Invoke(this);
         }
     }
 }
示例#2
0
        public void Init()
        {
            if (!_isInitted)
            {
                _provider    = GetComponent <IProvider <T> >();
                _pickHandler = GetComponent <IPickHandler <T> >();

                RegisterDynamicProvider();
                OnNameChanged?.Invoke(this);

                _isInitted = true;

                if (_provider != null)
                {
                    SetPickables(_provider.Get());
                }
            }
        }
示例#3
0
        public ComparisonTableView(RectangleF frame, UITableViewStyle style) : base(frame, style)
        {
            _source             = new ComparisonTableViewSource(this);
            _source.OnEditUnit += (sender, args) =>
            {
                OnEditUnit.Fire(this, args);
                ResignTextFieldAsFirstResponder();
            };
            _source.OnKeyboardDone += (sender, args) =>
            {
                OnKeyboardDone.Fire(this, EventArgs.Empty);
            };
            _source.OnNameChanged += (sender, args) =>
            {
                OnNameChanged.Fire(this, EventArgs.Empty);
            };
            Source          = _source;
            ScrollEnabled   = false;
            AllowsSelection = false;

            var footerView = new UIView(new RectangleF(0, 0, Frame.Width, 34));

            footerView.Center = new PointF(Frame.Width / 2, 17);
            var footerLabel = new UILabel(new RectangleF(0, 0, footerView.Frame.Width - 100, 34));

            footerLabel.Center          = new PointF(footerView.Frame.Width / 2, 17);
            footerLabel.TextAlignment   = UITextAlignment.Center;
            footerLabel.Text            = "Comparisons will be performed using this base unit";
            footerLabel.Lines           = 2;
            footerLabel.Font            = UIFont.FromName("Helvetica", 14);
            footerLabel.BackgroundColor = UIColor.Clear;
            footerLabel.TextColor       = UIColor.DarkGray;
            footerLabel.ShadowColor     = UIColor.White;
            footerLabel.ShadowOffset    = new SizeF(0, 1);
            footerView.AddSubview(footerLabel);

            TableFooterView = footerView;
        }
示例#4
0
        public void ChangeName(string name)
        {
            var conf = configProvider.GetConfig();

            if (conf is null)
            {
                throw new ConfigException(Resources.ConfigNotFound);
            }
            if (conf.Info is null)
            {
                throw new ConfigException(Resources.ConfigInfoIsNull);
            }
            var shared = configProvider.GetSharedConfig();
            var tmp    = conf.Info.Name;

            conf.Info.Name = name;
            if (shared != null && shared.Config != null && shared.Config.Info != null)
            {
                shared.Config.Info.Name = name;
            }
            try
            {
                OnConfigNameChanged?.Invoke(this, conf, name);
            }
            catch
            {
                conf.Info.Name = tmp;
                if (shared != null && shared.Config != null && shared.Config.Info != null)
                {
                    shared.Config.Info.Name = tmp;
                }
                throw;
            }
            configProvider.Commit();
            OnNameChanged?.Invoke(this, name);
        }
示例#5
0
        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            EventedTableViewCell cell;

            switch (indexPath.Row)
            {
            case (0):
                cell = new EventedTableViewCell();
                AddLabel(cell, "Name");
                ComparisonNameText = AddTextField(cell, "comparison name (i.e. Apples)", indexPath, () =>
                {
                    OnKeyboardDone.Fire(this, EventArgs.Empty);
                    return(null);
                });
                ComparisonNameText.EditingChanged += (sender, args) =>
                {
                    OnNameChanged.Fire(this, EventArgs.Empty);
                };
                ComparisonNameText.ReturnKeyType          = UIReturnKeyType.Done;
                ComparisonNameText.AutocapitalizationType = UITextAutocapitalizationType.Words;
                break;

            case (1):
                cell = new EventedTableViewCell();
                AddLabel(cell, "Compare by");
                // add segmented control
                UnitTypeSegmented = new EventedSegmentedControl(new RectangleF(120, 7, 180, 30));
                UnitTypeSegmented.ControlStyle = UISegmentedControlStyle.Bar;
                UnitTypeSegmented.InsertSegment("Weight", 0, false);
                UnitTypeSegmented.InsertSegment("Volume", 1, false);
                UnitTypeSegmented.InsertSegment("Each", 2, false);
                UnitTypeSegmented.SelectedSegment = 0;

                UnitTypeSegmented.ValueChanged += (sender, args) =>
                {
                    _tableView.FireOnUnitTypeChanged();
                };

                UnitTypeSegmented.OnTouchesEnded += (sender, args) =>
                {
                    if (ComparisonNameText.IsFirstResponder)
                    {
                        ComparisonNameText.ResignFirstResponder();
                    }
                };

                cell.AddSubview(UnitTypeSegmented);
                break;

            case (2):
                cell = new EventedTableViewCell();
                AddLabel(cell, "Base unit");
                UnitLabel           = new UILabel(new RectangleF(0, 0, cell.Frame.Width - 115, 20));
                UnitLabel.Center    = new PointF(200, (cell.Frame.Height / 2) + 1);
                UnitLabel.Text      = "ounces";
                UnitLabel.Font      = UIFont.FromName("Helvetica", 14);
                UnitLabel.TextColor = UIColor.DarkTextColor;
                cell.AddSubview(UnitLabel);
                cell.OnTouchesEnded += (sender, args) =>
                {
                    ActiveIndexPath = indexPath;
                    OnEditUnit.Fire(this, EventArgs.Empty);
                };

                break;

            default:
                throw new ArgumentException("Invalid row index: " + indexPath.Row);
            }
            return(cell);
        }
示例#6
0
 private void RaiseOnNameChangedEvent()
 {
     OnNameChanged?.Invoke(this, EventArgs.Empty);
 }
示例#7
0
 public virtual void SetPickables(IEnumerable <T> pickables)
 {
     _pickables = pickables.ToList();
     UpdateButtons();
     OnNameChanged?.Invoke(this);
 }
示例#8
0
 public virtual void RemovePickables(IEnumerable <T> pickables)
 {
     _pickables.RemoveAll(x => pickables.Contains(x));
     UpdateButtons();
     OnNameChanged?.Invoke(this);
 }
示例#9
0
 public virtual void AddPickables(IEnumerable <T> pickables)
 {
     _pickables.AddRange(pickables);
     UpdateButtons();
     OnNameChanged?.Invoke(this);
 }