Пример #1
0
        // (0.0.6)バグを修正.
        // parameterで数値が渡されれば、1サイクルに対して解析を行う。
        // さもなければ、全サイクルに対して解析を行う。
        async void FitSpectrum_Executed(object parameter)
        {
            // parameterがnullであれば,全てのprofileに対してフィッティングを行う.
            // parameterにprofileが与えられていれば,それに対してフィッティングを行う.

            // ★BaseROIを決める段階と,実際のフィッティングを行う段階を分離した方がいいのでは?

            var fitting_task = parameter is FittingProfile?
                               Task.WhenAll(WideScanFittingData.FitSingleProfile((FittingProfile)parameter)) :
                                   Task.WhenAll(WideScanFittingData.FittingCondition.FittingProfiles.Select(p => WideScanFittingData.FitSingleProfile(p)));

            try
            {
                await fitting_task;
            }
            catch (Exception) { }

            if (fitting_task.Exception is AggregateException)
            {
                var message = string.Join("\n", fitting_task.Exception.InnerExceptions.Select(ex => ex.Message));
                Messenger.Default.Send(this, new SimpleMessage(this)
                {
                    Message = message
                });
                return;
            }
        }
Пример #2
0
 void RemoveProfile_Executed(object parameter)
 {
     if (CurrentFittingProfile != null)
     {
         // これで大丈夫かな?
         WideScanFittingData.RemoveFittingProfile(CurrentFittingProfile);
     }
 }
Пример #3
0
 async void ExportCsv_Executed(object parameter)
 {
     if (!string.IsNullOrEmpty(this.ExportCsvDestination))
     {
         bool diff = parameter is bool && (bool)parameter;
         await WideScanFittingData.ExportCsv(this.ExportCsvDestination, diff?ExportCsvFlag.Raw : ExportCsvFlag.Raw);
     }
 }
Пример #4
0
        void SaveCondition_Executed(object parameter)
        {
            var message = new SelectSaveFileMessage(this)
            {
                Message = "プロファイルの出力先を選んで下さい。"
            };

            message.Ext = new string[] { ".fcd" };
            Messenger.Default.Send(this, message);
            if (!string.IsNullOrEmpty(message.SelectedFile))
            {
                WideScanFittingData.SaveFittingCondition(message.SelectedFile);
            }
        }
Пример #5
0
        async void AddReferenceSpectrum_Executed(object parameter)
        {
            var message = new SelectOpenFileMessage(this)
            {
                Message = "参照スペクトルを選んで下さい."
            };

            // 拡張子ではなくファイル名が指定されている場合ってどうするの?
            message.Filter = new string[] { "id" };
            Messenger.Default.Send(this, message);
            if (!string.IsNullOrEmpty(message.SelectedFile))
            {
                await WideScanFittingData.AddReferenceSpectrumAsync(message.SelectedFile, CurrentFittingProfile);
            }
        }
Пример #6
0
        void SelectChartDestination_Executed(object parameter)
        {
            // ディレクトリを選ぶのか?
            // とりあえずファイル選択にしておく.
            // →ファイル選択と見せかけて、ディレクトリ選択にする。

            var message = new SelectSaveFileMessage(this)
            {
                Message = "pngファイルの出力先を選んで下さい."
            };

            message.Ext = new string[] { ".png" };
            Messenger.Default.Send(this, message);
            WideScanFittingData.SetChartDestination(message.SelectedFile);
        }
Пример #7
0
        void LoadCondition_Executed(object parameter)
        {
            var message = new SelectOpenFileMessage(this)
            {
                Message = "ロードするプロファイルを選択して下さい。"
            };

            message.Filter = new string[] { "*.fcd", "*" };
            Messenger.Default.Send(this, message);
            if (!string.IsNullOrEmpty(message.SelectedFile))
            {
                // ロードする.
                WideScanFittingData.LoadFittingCondition(message.SelectedFile);
            }
        }