private void cancelButton_Click(object sender, EventArgs e) { if (selectedHeadline != null && selectedHeadline.IsFetching == true) { HeadlineManager.CancelFetchChannelsAsync(selectedHeadline); } }
/// <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(); } }
private void headlineAutomaticUpdatesTimer_Tick(object sender, EventArgs e) { if (selectedHeadline != null) { // 選択されているヘッドラインを取得する HeadlineManager.FetchChannelsAsync(selectedHeadline); } }
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(); } }
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; } } } }
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(); }
/// <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(); }
private void updateButton_Click(object sender, EventArgs e) { HeadlineManager.FetchChannelsAsync(selectedHeadline); }