private void ParserBoxSelectedIndexChanged(object sender, EventArgs e) { subparsersListBox.Items.Clear(); ParserData.Parser data = m_data.Data[parserBox.SelectedIndex]; welfBox.SelectedItem = data.ParserType.ToString().ToLower(); PageParser parser = m_parsers[data.ParserType]; if (parser.FlagsType != null) { foreach (Enum val in Enum.GetValues(parser.FlagsType)) { subparsersListBox.Items.Add(val, true); } } }
public void StartButtonClick(object sender, EventArgs e) { ParserData.Parser data = m_data.Data[parserBox.SelectedIndex]; PageParser parser = m_parsers[data.ParserType]; parser.Parser = data; parser.Locale = (Locale)localeBox.SelectedItem; parser.Flags = GetSubparsers(); ParsingType type = (ParsingType)parsingControl.SelectedIndex; m_worker = new Worker(type, parser, WorkerPageDownloaded); Worker.ParserValue value = default(Worker.ParserValue); switch (type) { case ParsingType.TypeBySingleValue: { value.Id = (uint)valueBox.Value; break; } case ParsingType.TypeByList: { value.Array = GetEntriesList().Data; numericUpDown.Maximum = progressBar.Maximum = value.Array.Length; break; } case ParsingType.TypeByMultipleValue: { value.Start = (uint)rangeStart.Value; value.End = (uint)rangeEnd.Value; if (value.Start > value.End) { ShowMessageBox(MessageType.MultipleTypeBigger); return; } if (value.Start == value.End) { ShowMessageBox(MessageType.MultipleTypeEqual); return; } numericUpDown.Maximum = progressBar.Maximum = (int)(value.End - value.Start) + 1; break; } case ParsingType.TypeByWoWHeadFilter: { value.Maximum = (data.CountLimit / MaxIdCountPerRequest); numericUpDown.Maximum = progressBar.Maximum = (int)value.Maximum + 1; break; } default: return; } m_worker.SetValue(value); abortButton.Enabled = true; subparsersListBox.Enabled = settingsBox.Enabled = startButton.Enabled = false; numericUpDown.Value = progressBar.Value = 0; SetLabelText(Resources.Label_Working); Requests.Compress = Settings.Default.DataCompression; backgroundWorker.RunWorkerAsync(); }