예제 #1
0
        private void Ok_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.OK;

            switch (_mode)
            {
            default:
            case Mode.New:
                var domain    = MemoryDomains.FirstOrDefault(d => d.Name == DomainDropDown.SelectedItem.ToString());
                var address   = AddressBox.ToLong() ?? 0;
                var notes     = NotesBox.Text;
                var type      = Watch.StringToDisplayType(DisplayTypeDropDown.SelectedItem.ToString());
                var bigendian = BigEndianCheckBox.Checked;
                switch (SizeDropDown.SelectedIndex)
                {
                case 0:
                    _watchList.Add(Watch.GenerateWatch(domain, address, WatchSize.Byte, type, bigendian, notes));
                    break;

                case 1:
                    _watchList.Add(Watch.GenerateWatch(domain, address, WatchSize.Word, type, bigendian, notes));
                    break;

                case 2:
                    _watchList.Add(Watch.GenerateWatch(domain, address, WatchSize.DWord, type, bigendian, notes));
                    break;
                }

                break;

            case Mode.Edit:
                DoEdit();
                break;

            case Mode.Duplicate:
                var tempWatchList = new List <Watch>();
                tempWatchList.AddRange(_watchList);
                _watchList.Clear();
                foreach (var watch in tempWatchList)
                {
                    _watchList.Add(Watch.GenerateWatch(
                                       watch.Domain,
                                       watch.Address,
                                       watch.Size,
                                       watch.Type,
                                       watch.BigEndian,
                                       watch.Notes));
                }

                DoEdit();
                break;
            }

            Close();
        }