Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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();
        }