public ImportInfoProxy(IRemoteUrl ui) { _ui = ui; _imgBytes = imageToBytes(Resources.DefaultThumbnail); if (!string.IsNullOrWhiteSpace(ui.LocalPath)) { _proxy = new VideoDataInfoProxy(); _proxy.TreeNodesReceived += proxy_TreeNodesReceived; _proxy.MessageReceived += proxy_MessageReceived; _proxy.UpdateSource(new VideoDataSource() { SrcType = SourceType.Local, LocalSourcePath = ui.LocalPath }); try { _proxy.GetVideoTreeNodesAsync(); } catch (Exception ex) { Logger.Default.Error("获取视频信息失败!", ex); string msg = "获取视频信息失败!\n" + ex.Message; DialogUtil.ShowError(msg); } } else { buildNodeRoot(ui.VideoInfos); } }
/// <summary> /// ログインデータからログインを行います。 /// 自動ログイン時などに使われます。 /// </summary> private void ExecuteLogin(object sender, ExecutedRoutedEventArgs e) { if (this.model == null) { return; } try { // ログイン処理を行い、必要ならダイアログを表示します。 var loginData = LoginInternal(); if (loginData != null) { if (IsShowMessageDialog) { DialogUtil.Show( "ログインできました。ヽ( *^∇^*)ノ*:・'゚☆", "OK", MessageBoxButton.OK); } DialogResult = true; } else { DialogUtil.ShowError( "ログインできませんでした。( ´ω`)"); } } catch (Exception ex) { DialogUtil.ShowError(ex, "ログインに失敗しました。( ´ω`)"); } }
private static void ExecuteRedoContinue(object sender, ExecutedRelayEventArgs e) { var element = e.Parameter as GLShogiElement; if (element == null) { throw new ArgumentNullException("element"); } try { var autoPlay = new DefaultAutoPlay( element.BoardModel, true, AutoPlayType.Redo) { IsUseEffect = false, }; //TODO element.StartAutoPlay(autoPlay); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError( "局面を連続して進めることに失敗しました ( ̄ω ̄;)"); } }
/// <summary> /// 棋譜ファイルの書き込みを行います。 /// </summary> public static void SaveKif(ShogiUIElement3D control, TextWriter writer) { try { if (control == null || writer == null) { return; } //var manager = model.MoveManager; //var root = manager.CreateVariationNode(control.Board); var headers = new Dictionary <string, string>(); headers["先手"] = control.BlackPlayerName; headers["後手"] = control.WhitePlayerName; //var kifu = new KifuObject(headers, null); //KifuWriter.Save(writer, kifu); } catch (Exception ex) { DialogUtil.ShowError(ex, "棋譜ファイルの出力に失敗しました( ̄ω ̄;)"); } }
/// <summary> /// 接続処理 /// </summary> private void ConnectButton_Click(object sender, RoutedEventArgs e) { try { if (!this.nicoClient.IsLogin) { MessageBox.Show( "ログインしていません。", "エラー", MessageBoxButton.OK, MessageBoxImage.Error); return; } this.commentClient.Connect( LiveUrl, this.nicoClient.CookieContainer); } catch (Exception ex) { DialogUtil.ShowError(ex, "放送への接続に失敗しました。"); return; } }
/// <summary> /// 棋譜ファイルを保存します。 /// </summary> private static void ExecuteSaveKifFile(ShogiUIElement3D control) { try { var dialog = new SaveFileDialog() { AddExtension = true, CheckFileExists = false, OverwritePrompt = true, CreatePrompt = false, Title = "棋譜ファイルの選択", RestoreDirectory = false, Filter = "Kif Files(*.kif)|*.kif|All files (*.*)|*.*", FilterIndex = 0, }; var result = dialog.ShowDialog(); if (result == null || !result.Value) { return; } using (var writer = new StreamWriter(dialog.FileName, false, KifuObject.DefaultEncoding)) { SaveKif(control, writer); } } catch (Exception ex) { DialogUtil.ShowError(ex, "棋譜ファイルの保存に失敗しました( ̄ω ̄;)"); } }
/// <summary> /// 棋譜ファイルを読み込みます。 /// </summary> private static void ExecuteLoadKifFile(ShogiUIElement3D control) { try { var dialog = new OpenFileDialog() { DefaultExt = ".kif", Title = "棋譜ファイルの選択", Multiselect = false, RestoreDirectory = false, Filter = "Kif Files(*.kif,*.ki2)|*.kif;*.ki2|All files (*.*)|*.*", FilterIndex = 0, }; var result = dialog.ShowDialog(); if (result == null || !result.Value) { return; } using (var reader = new StreamReader(dialog.FileName, KifuObject.DefaultEncoding)) { LoadKif(control, reader); } } catch (Exception ex) { DialogUtil.ShowError(ex, "棋譜ファイルの読み込みに失敗しました。( ̄ω ̄;)"); } }
/// <summary> /// 放送に接続します。 /// </summary> private void ConnectButton_Click(object sender, RoutedEventArgs e) { try { if (!this.nicoClient.IsLogin) { MessageBox.Show( "ログインしていません。", "エラー", MessageBoxButton.OK, MessageBoxImage.Error); return; } /*Live.LiveInfo.Create( * "lv203771397", * this.nicoClient.CookieContainer);*/ this.commentClient.Connect( LiveUrl, this.nicoClient.CookieContainer); this.commentClient.StartReceiveMessage(1000); } catch (Exception ex) { DialogUtil.ShowError(ex, "放送への接続に失敗しました。"); return; } DialogUtil.Show( "接続に成功しました。", "OK", MessageBoxButton.OK); }
public void Download(string path, bool showTip) { if (!string.IsNullOrWhiteSpace(path) && !Downloading) { string subPath = $"Time_{DataInfoModel.Begin:yyyyMMddHHmm}_{DataInfoModel.End:yyyyMMddHHmm}"; string downPath = Path.Combine(path, subPath); DownloadToPath(downPath); } else { DialogUtil.ShowError("无效的下载路径。"); } }
private void sendData(int code, byte[] data) { try { Client.Send(code, data); } catch (Exception ex) { Logger.Default.Error("发送数据失败!", ex); string msg = "发送数据失败!\n" + ex.Message; DialogUtil.ShowError(msg); } }
/// <summary> /// OK /// </summary> private void ExecuteOK(object sender, ExecutedRoutedEventArgs e) { try { //this.control.Connect(); DialogResult = false; } catch (Exception ex) { DialogUtil.ShowError(ex, "評価値サーバーへの接続に失敗しました。"); } }
public VideoStreamProxy() { Client.ReceiveCompleted += onReceived; try { EnsureStart(); } catch (Exception ex) { Logger.Default.Error("尝试连接下载服务失败!", ex); string msg = "尝试连接下载服务失败!\n" + ex.Message; DialogUtil.ShowError(msg); } }
/// <summary> /// 盤面を反転します。 /// </summary> private static void ExecuteSetReverseBoard(ShogiUIElement3D control, ExecutedRoutedEventArgs e) { try { var isWhite = (bool)e.Parameter; var side = (isWhite ? BWType.White : BWType.Black); control.ViewSide = side; } catch (Exception ex) { DialogUtil.ShowError(ex, "盤面の反転に失敗しました( ̄ω ̄;)"); } }
/// <summary> /// 並列化サーバーへ接続します。 /// </summary> public static void ExecuteConnect() { var bonanza = Global.Bonanza; if (bonanza == null) { return; } var model = Global.MainViewModel; if (model == null) { return; } if (!NameRegex.IsMatch(model.Name)) { DialogUtil.ShowError( "名前には英数字とアンダーバーしか使えません (-o-;)"); return; } if (model.Name == "unknown") { DialogUtil.ShowError( "名前を'unknown'にすることはできません (-o-;)"); return; } try { // 並列化サーバーへの接続コマンドを発行します。 bonanza.Connect( Global.ServerAddress, Global.ServerPort, model.Name, model.ThreadNum, model.HashMemSize, -1, true); //!Global.IsPublished); } catch (Exception ex) { DialogUtil.ShowError(ex, "並列化サーバーへの接続に失敗しました。"); } }
private static void ExecuteGotoLastState(GLShogiElement element) { if (element == null) { throw new ArgumentNullException("element"); } try { element.Board.RedoAll(); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError( "局面を最終局面にできませんでした ( ̄ω ̄;)"); } }
private static void ExecuteUndo(GLShogiElement element) { if (element == null) { throw new ArgumentNullException("element"); } try { element.Board.Undo(); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError(ex, "指し手をⅰ手戻すことができませんでした ( ̄ω ̄;)"); } }
public void UpdateSource(VideoDataSource src) { _diProxy.UpdateSource(src); if (src.SrcType == SourceType.Local) { try { _diProxy.GetVideoTreeNodesAsync(); } catch (Exception ex) { Logger.Default.Error("刷新本地数据源视频录像信息失败!", ex); string msg = "刷新本地数据源视频录像信息失败!\n" + ex.Message; DialogUtil.ShowError(msg); return; } } RefreshVideoDataSummary(); }
private void btnOk_Click(object sender, RoutedEventArgs e) { try { IRemoteUrl ui = RemoteUrl.Parse(txtUrl.Text.Trim()) as IRemoteUrl; if (ui == null) { DialogUtil.ShowWarning("不支持导入数据源格式。"); return; } ImportUrl = ui; this.DialogResult = true; this.Close(); } catch (Exception ex) { Common.Log.Logger.Default.Error(ex); DialogUtil.ShowError(ex.Message); } }
private static void ExecuteGotoLastState(object sender, ExecutedRelayEventArgs e) { var element = e.Parameter as GLShogiElement; if (element == null) { throw new ArgumentNullException("element"); } try { element.Board.RedoAll(); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError( "局面を最終局面にできませんでした ( ̄ω ̄;)"); } }
private static void ExecuteUndo(object sender, ExecutedRelayEventArgs e) { var element = e.Parameter as GLShogiElement; if (element == null) { throw new ArgumentNullException("element"); } try { element.BoardModel.Undo(); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError(ex, "指し手をⅰ手戻すことができませんでした ( ̄ω ̄;)"); } }
/// <summary> /// 生放送に接続します。 /// </summary> private static void ExecuteConnect(object sender, ExecutedRoutedEventArgs e) { try { var data = (NicoLiveCommandData)e.Parameter; data.CommentClient.Connect( data.LiveUrl, data.NicoClient.CookieContainer); data.CommentClient.StartReceiveMessage(-1); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError(ex, "生放送への接続に失敗しました。"); } }
/// <summary> /// 棋譜ファイルの読み込みを行います。 /// </summary> public static void LoadKif(ShogiUIElement3D control, TextReader reader) { try { if (reader == null) { return; } // ファイルを読み込み局面を作成します。 var file = KifuReader.Load(reader); var board = file.CreateBoard(); control.Board = board; } catch (Exception ex) { DialogUtil.ShowError(ex, "棋譜ファイルの読み込みに失敗しました( ̄ω ̄;)"); } }
/// <summary> /// 更新情報の確認やダイアログの表示などを行います。 /// </summary> public void CheckToUpdate(TimeSpan timeout) { if (this.updateWindow != null || this.progressWindow != null) { // すでに確認用のウィンドウが起動しています。 return; } if (!this.updater.LatestVersionEvent.WaitOne(timeout)) { DialogUtil.ShowError( string.Format( "更新情報の確認ができません(T¬T){0}{0}" + "少し時間をおいてから、もう一度試してみて下さい。", Environment.NewLine)); return; } var latestVersion = this.updater.LatestVersion; if (latestVersion == null) { DialogUtil.Show("更新はありません d(-_☆)", "確認", MessageBoxButton.OK); return; } // ファイルのダウンロード中なら if (!this.updater.DownloadDoneEvent.WaitOne(0)) { ShowProgress(); } else { if (ConfirmUpdate(true)) { ExecuteUpdate(); } } }
public void UpdateSource(IUrl ui) { GlobalDataSource = null; SourceIndex++; DestoryProxy(); if (ui is ILocalUrl) { InfoManager = new LocalInfoProxy(ui.LocalPath); } else if (ui is IRemoteUrl) { InfoManager = new ImportInfoProxy(ui as IRemoteUrl); } else { Common.Log.Logger.Default.Trace("未找到正确的URL配置"); DialogUtil.ShowError("未找到正确的URL配置"); return; } InfoManager.LocalSourceInfoReceived += InfoManager_NodeUpdated; onDataSourceChanged(); }
/// <summary> /// 詰将棋サーバーへ接続します。 /// </summary> public static void ExecuteConnect() { var bonanza = Global.Bonanza; if (bonanza == null) { return; } var model = Global.MainViewModel; if (model == null) { return; } if (!NameRegex.IsMatch(model.Name)) { DialogUtil.ShowError( "名前には英数字とアンダーバーしか使えません (-o-;)"); return; } try { // 並列化サーバーへの接続コマンドを発行します。 bonanza.ConnectToDfpn( "garnet-alice.net", 4085, model.Name, model.ThreadNum, model.HashMemSize); } catch (Exception ex) { DialogUtil.ShowError(ex, "詰将棋サーバーへの接続に失敗しました。"); } }
public LocalInfoProxy(string localPath) { _src = new VideoDataSource() { SrcType = SourceType.Local, LocalSourcePath = localPath }; _imgBytes = imageToBytes(Resources.DefaultThumbnail); _proxy = new VideoDataInfoProxy(); _proxy.TreeNodesReceived += proxy_TreeNodesReceived; _proxy.MessageReceived += proxy_MessageReceived; _proxy.UpdateSource(_src); try { _proxy.GetVideoTreeNodesAsync(); } catch (Exception e) { Logger.Default.Error("加载本地视频信息失败!", e); string msg = "加载本地视频信息失败!\n" + e.Message; DialogUtil.ShowError(msg); } }
/// <summary> /// 指し手を連続して戻します。 /// </summary> public static void ExecuteUndoContinue(GLShogiElement element) { if (element == null) { throw new ArgumentNullException("element"); } try { var autoPlay = new DefaultAutoPlay( element.BoardModel, true, AutoPlayType.Undo) { IsUseEffect = false, }; //TODO element.StartAutoPlay(autoPlay); } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError( "指し手を連続して戻すことに失敗しました ( ̄ω ̄;)"); } }
void updater_DownloadDone(object sender, DownloadDoneEventArgs e) { DownloadError = e.Error; if (e.IsCancelled) { return; } if (e.Error != null) { WPFUtil.UIProcess(() => DialogUtil.ShowError("更新ファイルのダウンロードに失敗しました。")); return; } WPFUtil.UIProcess(() => { if (!this.updater.CanExecutePack()) { // 更新できません>< return; } if (this.progressWindow != null) { this.progressWindow.Close(); this.progressWindow = null; } if (ConfirmUpdate(true)) { ExecuteUpdate(); } }); e.IsUpdate = false; }
private void RefreshVideoDataSummary() { if (SearchTimePeriod == null || !_diProxy.SourceValid) { return; } try { foreach (SearchNodeHistoryViewModel vm in ResultsSource.Source as List <SearchNodeHistoryViewModel> ) { if (vm.IsUnfoldVideo) { List <VideoInfo> viList = new List <VideoInfo>(); var nodes = vm.VideoChildren.Source as List <VideoThumbnailsViewModel>; foreach (CctvNode cn in vm.Node.Children) { if (cn.Type == CctvNode.NodeType.Video) { var pNode = nodes.Find(n => n.ID == cn.ID); if (pNode != null) { viList.Add(new VideoInfo(cn.ID, pNode.StreamId)); pNode.VideoDataInfo.UpdateTimePacket(SearchTimePeriod.BeginTime, SearchTimePeriod.EndTime); } } } _diProxy.GetVideoDataInfoAsync(viList.ToArray(), SearchTimePeriod.BeginTime, SearchTimePeriod.EndTime); } } } catch (Exception ex) { Logger.Default.Error("刷新视频录像信息失败!", ex); string msg = "刷新视频录像信息失败!\n" + ex.Message; DialogUtil.ShowError(msg); } }
/// <summary> /// 色選択を行います。 /// </summary> private void SelectColor(object sender, ExecuteRelayEventArgs e) { try { var dialog = new ColorDialog { SelectedColor = Color, }; // 色選択ダイアログを出します。 var result = dialog.ShowDialogCenterMouse(); if (result == true) { Color = dialog.SelectedColor; } } catch (Exception ex) { Util.ThrowIfFatal(ex); DialogUtil.ShowError(ex, "色の選択に失敗しました (ToT)"); } }