Beispiel #1
0
 private void cancelButton_Click(object sender, EventArgs e)
 {
     if (selectedHeadline != null && selectedHeadline.IsFetching == true)
     {
         HeadlineManager.CancelFetchChannelsAsync(selectedHeadline);
     }
 }
Beispiel #2
0
        /// <summary>
        /// 選択されたヘッドラインを下に下げる
        /// </summary>
        private void DownHeadline()
        {
            if (headlineListView.SelectedIndices.Count == 1 &&
                headlineListView.SelectedIndices[0] != -1 && headlineListView.SelectedIndices[0] < headlineListView.Items.Count - 1)
            {
                HeadlineBase selectedHeadline = (HeadlineBase)headlineListView.Items[headlineListView.SelectedIndices[0]].Tag;

                HeadlineManager.Down(selectedHeadline);

                headlineListView.BeginUpdate();

                UpdateHeadlineListView();

                // 選択を復元する
                for (int i = 0; i < headlineListView.Items.Count; ++i)
                {
                    if ((HeadlineBase)headlineListView.Items[i].Tag == selectedHeadline)
                    {
                        headlineListView.Items[i].Selected = true;
                        break;
                    }
                }

                headlineListView.EndUpdate();
            }
        }
Beispiel #3
0
 private void headlineAutomaticUpdatesTimer_Tick(object sender, EventArgs e)
 {
     if (selectedHeadline != null)
     {
         // 選択されているヘッドラインを取得する
         HeadlineManager.FetchChannelsAsync(selectedHeadline);
     }
 }
Beispiel #4
0
        static void Main()
        {
            // エラーハンドラ登録
            System.Threading.Thread.GetDomain().UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e)
            {
                Exception ex = e.ExceptionObject as Exception;
                SaveExceptionLog(ex);
            };

            try
            {
                // プラグインを検索する
                HeadlinePluginManager.FindPlugins();

                // 設定を読み込む
                UserSettingAdapter.Load();

                // ヘッドラインを読み込む
                HeadlineManager.Load();

                Application.Run(new MainForm());

                #region 番組取得のスレッドを終了する

                // ヘッドライン取得処理の中止
                HeadlineManager.CancelFetchChannelsAsync();

                // スレッドが中止されるまで待つ
                // 1秒待ってスレッドが中止されないようなら、スレッドの中止を待たずにここを抜ける
                for (int i = 0; HeadlineManager.IsExistBusyFetchChannelAsync() == true && i < 10; ++i)
                {
                    System.Threading.Thread.Sleep(100);
                }

                #endregion // 番組取得のスレッドを終了する
            }
            catch (Exception ex)
            {
                SaveExceptionLog(ex);

                // 例外の再送
                throw ex;
            }
            finally
            {
                // ヘッドラインを保存する
                HeadlineManager.Save();

                // 設定を保存する
                UserSettingAdapter.Save();
            }
        }
Beispiel #5
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            // フォームのテキストバーを設定
            this.Text = AssemblyUtility.GetTitle(Assembly.GetExecutingAssembly());

            // 設定の復元
            LoadFormSetting();

            // 初めて起動された場合
            if (UserSettingAdapter.IsSettingCreatedNew == true)
            {
                // メインフォームのスプリッターの位置を適当に設定する
                topPanel.Height = Convert.ToInt32(Height * 0.618);

                // メッセージボックスにファイルパスを設定するように表示する
                MessageBox.Show(messagesResource.GetString("PleaseSettingPath"), messagesResource.GetString("Infomation"), MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);

                SettingForm settingForm = new SettingForm();
                settingForm.ShowDialog();
                settingForm.Dispose();

                foreach (HeadlinePlugin plugin in HeadlinePluginManager.Plugins)
                {
                    switch (plugin.ClassName)
                    {
                    // ねとらじプラグインが見つかった場合は、ねとらじのヘッドラインを作成する
                    case "PocketLadioDeux.NetLadioHeadlinePlugin.Headline":
                    {
                        HeadlineBase headline = plugin.CreateInstance();
                        headline.Name = "ねとらじ";
                        HeadlineManager.AddHeadline(headline);
                    }
                    break;

                    case "PocketLadioDeux.ShoutCastHeadlinePlugin.Headline":
                    {
                        HeadlineBase headline = plugin.CreateInstance();
                        if (headline is PocketLadioDeux.ShoutCastHeadlinePlugin.Headline)
                        {
                            headline.Name = "Jazz";
                            ((PocketLadioDeux.ShoutCastHeadlinePlugin.Headline)headline).Setting.SearchWord = "Jazz";
                            HeadlineManager.AddHeadline(headline);
                        }
                    }
                    break;

                    default:
                        break;
                    }
                }
            }
        }
Beispiel #6
0
        private void addButton_Click(object sender, EventArgs e)
        {
            HeadlinePlugin plugin   = ((KindCombo)kindComboBox.SelectedItem).Plugin;
            HeadlineBase   headline = plugin.CreateInstance();

            headline.Name = nameTextBox2.Text;
            headline.ConnectionSetting = HeadlineManager.ConnectionSetting;
            headline.CreatedHeadlineByManual();

            HeadlineManager.AddHeadline(headline);

            nameTextBox2.Text = string.Empty;
            UpdateHeadlineListView();
        }
Beispiel #7
0
        /// <summary>
        /// リストビューで選択されているヘッドラインを削除する
        /// </summary>
        private void RemoveHeadline()
        {
            // 削除するHeadlineのリスト
            List <HeadlineBase> removed = new List <HeadlineBase>();

            foreach (int v in headlineListView.SelectedIndices)
            {
                removed.Add(HeadlineManager.Headlines[v]);
            }

            // 削除
            foreach (HeadlineBase headline in removed)
            {
                HeadlineManager.RemoveHeadline(headline);
            }

            UpdateHeadlineListView();
        }
Beispiel #8
0
 private void updateButton_Click(object sender, EventArgs e)
 {
     HeadlineManager.FetchChannelsAsync(selectedHeadline);
 }