private void Initialize() { Store.Current.SelectedDatabaseChange += (sender, args) => { var databaseReference = args.Data; Title = databaseReference == null ? $"LiteDB Explorer {Versions.CurrentVersion}" : $"{databaseReference.Name} - LiteDB Explorer {Versions.CurrentVersion}"; }; Store.Current.SelectedCollectionChange += (sender, args) => { BorderFilePreview.Visibility = Visibility.Collapsed; }; Store.Current.SelectedDocumentChange += (sender, args) => { var document = args.Data; BorderFilePreview.Visibility = Visibility.Collapsed; if (document != null && document.Collection is FileCollectionReference reference) { var fileInfo = reference.GetFileObject(document); FilePreview.LoadFile(fileInfo); BorderFilePreview.Visibility = Visibility.Visible; } }; }
private void ListCollectionData_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (DbSelectedItems.Count() > 1 || DbSelectedItems.Count() == 0) { ItemsDocPreview.ItemsSource = null; BorderDocPreview.Visibility = Visibility.Collapsed; BorderFilePreview.Visibility = Visibility.Collapsed; return; } BorderDocPreview.Visibility = Visibility.Visible; var document = DbSelectedItems.First(); var controls = new List <DocumentFieldData>(); for (int i = 0; i < document.LiteDocument.Keys.Count; i++) { var key = document.LiteDocument.Keys.ElementAt(i); var valueEdit = BsonValueEditor.GetBsonValueEditor(string.Format("[{0}]", key), document.LiteDocument[key], document.LiteDocument, true); controls.Add(new DocumentFieldData(key, valueEdit)); } ItemsDocPreview.ItemsSource = controls; if (document.Collection is FileCollectionReference) { var fileInfo = (document.Collection as FileCollectionReference).GetFileObject(document); FilePreview.LoadFile(fileInfo); BorderFilePreview.Visibility = Visibility.Visible; } else { BorderFilePreview.Visibility = Visibility.Collapsed; } }
private void AddPreviewBoxes() { lock (flowPreview.Controls) { MasterFileList = new List <FilePreview>(); foreach (Control c in _pnlCameras.Controls) { try { if (c is CameraWindow) { var cw = ((CameraWindow)c); List <FilesFile> ffs; lock (cw.FileList) { ffs = cw.FileList.ToList(); } foreach (FilesFile ff in ffs) { MasterFileList.Add(new FilePreview(ff.Filename, ff.DurationSeconds, cw.Camobject.name, ff.CreatedDateTicks, 2, cw.Camobject.id, ff.MaxAlarm)); } } if (c is VolumeLevel) { var vl = ((VolumeLevel)c); List <FilesFile> ffs; lock (vl.FileList) { ffs = vl.FileList.ToList(); } foreach (FilesFile ff in ffs) { MasterFileList.Add(new FilePreview(ff.Filename, ff.DurationSeconds, vl.Micobject.name, ff.CreatedDateTicks, 1, vl.Micobject.id, ff.MaxAlarm)); } } } catch (Exception ex) { Log.Error("", ex); } } var displayList = MasterFileList.OrderByDescending(p => p.CreatedDateTicks).Where(p => p.ObjectTypeId == 2).Take(Conf.PreviewItems).ToList(); foreach (FilePreview fp in displayList) { FilePreview fp1 = fp; var filename = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp1.ObjectId).directory + "\\" + fp.Filename; FilePreview fp2 = fp; var thumb = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp2.ObjectId).directory + "\\thumbs\\" + fp.Filename.Substring(0, fp.Filename.LastIndexOf(".", StringComparison.Ordinal)) + ".jpg"; AddPreviewControl(thumb, filename, fp.Duration, (new DateTime(fp.CreatedDateTicks)), false); } } }
//-----Execute at page load----- public MainPage() { this.InitializeComponent(); for (int i = 0; i <= 99; i++) { FilePreview.Items.Add((string)"Text to send line " + i.ToString()); } FilePreview.SelectedIndex = 0; FilePreview.ScrollIntoView(FilePreview.SelectedItem); }
private List <FilePreview> GetFiles() { var files = new List <FilePreview>(); var currentDirectory = Directory.GetCurrentDirectory(); var resultsDirectory = System.IO.Path.Combine(currentDirectory, "Results"); if (Directory.Exists(resultsDirectory)) { DirectoryInfo dirInfo = new DirectoryInfo(resultsDirectory); FileInfo[] info = dirInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly); if (info.Count() != 0) { foreach (var file in info) { try { if (file.Extension == ".json") { var fileStr = File.ReadAllText(file.FullName); var saveFile = JsonConvert.DeserializeObject <SaveFile>(fileStr); var filePreview = new FilePreview { AlgorithmName = saveFile.Name, AlgorithmTime = saveFile.OutputData.AlgorithmTime, Size = saveFile.OutputData.StudentSequence.Count, LocalPath = file.FullName }; files.Add(filePreview); } } catch { } } } else { ShowNoDataYet(); } } else { ShowNoDataYet(); } return(files); }
private void ListCollectionData_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (DbSelectedItems.Count() > 1 || !DbSelectedItems.Any()) { // ItemsDocPreview.ItemsSource = null; BorderDocPreview.Visibility = Visibility.Collapsed; BorderFilePreview.Visibility = Visibility.Collapsed; return; } BorderDocPreview.Visibility = Visibility.Visible; var document = DbSelectedItems.First(); /*var controls = new List<DocumentFieldData>(); * * for (int i = 0; i < document.LiteDocument.Keys.Count; i++) * { * var key = document.LiteDocument.Keys.ElementAt(i); * var valueEdit = BsonValueEditor.GetBsonValueEditor( * expandMode: BsonEditorExpandMode.Inline, * bindingPath: $"[{key}]", * bindingValue: document.LiteDocument[key], * bindingSource: document.LiteDocument, * readOnly: true, * keyName: key * ); * controls.Add(new DocumentFieldData(key, valueEdit)); * } * * ItemsDocPreview.ItemsSource = controls;*/ DocumentTreeView.ItemsSource = new DocumentTreeItemsSource(document); if (document.Collection is FileCollectionReference reference) { var fileInfo = reference.GetFileObject(document); FilePreview.LoadFile(fileInfo); BorderFilePreview.Visibility = Visibility.Visible; } else { BorderFilePreview.Visibility = Visibility.Collapsed; } }
public void LoadPreviews() { UISync.Execute(ClearPreviewBoxes); lock (flowPreview.Controls) { MasterFileList = new List <FilePreview>(); foreach (Control c in _pnlCameras.Controls) { try { if (c is CameraWindow) { var cw = ((CameraWindow)c); List <FilesFile> ffs; lock (cw.FileList) { ffs = cw.FileList.ToList(); } foreach (FilesFile ff in ffs) { MasterFileList.Add(new FilePreview(ff.Filename, ff.DurationSeconds, cw.Camobject.name, ff.CreatedDateTicks, 2, cw.Camobject.id)); } } } catch { } } MasterFileList = MasterFileList.OrderByDescending(p => p.CreatedDateTicks).Take(Conf.PreviewItems).ToList(); foreach (FilePreview fp in MasterFileList) { FilePreview fp1 = fp; var filename = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp1.ObjectId).directory + "\\" + fp.Filename; FilePreview fp2 = fp; var thumb = Conf.MediaDirectory + "video\\" + Cameras.Single(p => p.id == fp2.ObjectId).directory + "\\thumbs\\" + fp.Filename.Substring(0, fp.Filename.LastIndexOf(".")) + ".jpg"; AddPreviewControl(thumb, filename, fp.Duration, (new DateTime(fp.CreatedDateTicks)), false); } } }
private void RenderList(List <FilePreview> l, int pageCount) { flowPreview.SuspendLayout(); mediaPanelControl1.lblPage.Text = String.Format("{0} / {1}", (MediaPanelPage + 1), pageCount); var currentList = new List <PreviewBox>(); for (int i = 0; i < flowPreview.Controls.Count; i++) { var pb = flowPreview.Controls[i] as PreviewBox; if (pb != null) { var cd = pb.CreatedDate; if (NeedsMediaRebuild || l.Count(p => p.CreatedDateTicks == cd.Ticks) == 0) { flowPreview.Controls.Remove(pb); pb.MouseDown -= PbMouseDown; pb.MouseEnter -= PbMouseEnter; pb.Dispose(); i--; } else { currentList.Add(pb); } } else { var lb = flowPreview.Controls[i] as Label; if (lb != null) { flowPreview.Controls.Remove(lb); i--; } } } int ci = 0; DateTime dtCurrent = DateTime.MinValue; bool first = true; foreach (FilePreview fp in l) { var dt = new DateTime(fp.CreatedDateTicks); if (first || dtCurrent.DayOfYear != dt.DayOfYear) { first = false; dtCurrent = dt; var lb = new Label { Text = dtCurrent.ToShortDateString(), Margin = new Padding(3), Padding = new Padding(0), ForeColor = Color.White, BackColor = Color.Black, Width = 96, Height = 73, TextAlign = ContentAlignment.MiddleCenter }; flowPreview.Controls.Add(lb); flowPreview.Controls.SetChildIndex(lb, ci); ci++; } var cdt = new DateTime(fp.CreatedDateTicks); var pb = currentList.FirstOrDefault(p => p.CreatedDate == cdt); if (pb == null) { FilePreview fp1 = fp; var dir = Helper.GetMediaDirectory(fp1.ObjectTypeId, fp1.ObjectId); switch (fp1.ObjectTypeId) { case 1: var v = Microphones.SingleOrDefault(p => p.id == fp1.ObjectId); if (v != null) { var filename = dir + "audio\\" + v.directory + "\\" + fp.Filename; pb = AddPreviewControl(fp1, Resources.audio, filename, v.name); } break; case 2: var c = Cameras.SingleOrDefault(p => p.id == fp1.ObjectId); if (c != null) { var filename = dir + "video\\" + c.directory + "\\" + fp.Filename; var thumb = dir + "video\\" + c.directory + "\\thumbs\\" + fp.Filename.Substring(0, fp.Filename.LastIndexOf(".", StringComparison.Ordinal)) + ".jpg"; pb = AddPreviewControl(fp1, thumb, filename, c.name); } break; } } if (pb != null) { flowPreview.Controls.SetChildIndex(pb, ci); ci++; } } flowPreview.ResumeLayout(true); NeedsMediaRebuild = false; }
public void ЗагрузитьМеню() { System.Threading.Tasks.Task.Factory.StartNew(() => { for (int i = 0; i < 3; i++) { try { using (RosService.Client client = new RosService.Client()) { if (client.СведенияПользователя.ГруппаРаздел == 0) { throw new Exception("Интерфейс пользователя не задан в настройках"); } var xamlLoaded = client.Архив.ПолучитьЗначение <string>(client.СведенияПользователя.ГруппаРаздел, "ИнтерфейсКод", Хранилище.Оперативное); if (string.IsNullOrEmpty(xamlLoaded)) { var query = new RosService.Data.Query(); query.ДобавитьУсловиеПоиска("НазваниеОбъекта", "БыстроеМеню", Query.Оператор.авно); query.ДобавитьМестоПоиска(client.СведенияПользователя.ГруппаРаздел, 1); var БыстроеМеню = client.Архив.Поиск(query, Хранилище.Оперативное).AsEnumerable().SingleOrDefault(); xamlLoaded = client.Архив.ПолучитьЗначение <string>(БыстроеМеню.Field <decimal>("id_node"), "XamlКод", Хранилище.Оперативное); } if (string.IsNullOrEmpty(xamlLoaded)) { return; } this.Dispatcher.Invoke(DispatcherPriority.Loaded, (Action <string>) delegate(string xaml) { try { //var menu = System.Windows.Markup.XamlReader.Load(new System.Xml.XmlTextReader(new System.IO.StringReader(xaml))) as FrameworkElement; //if (menu is System.Windows.Controls.TabControl) if (xaml.StartsWith("<TabControl")) { //var tab = menu as System.Windows.Controls.TabControl; var oRow = PART_DocumentsHost.Items.Count - 1; foreach (var item in System.Xml.Linq.XDocument.Parse(xaml).Root.Elements()) { var tag = item.Attribute("Tag").Value; if ("@@Главная".Equals(tag)) { //ПользовательскоеМеню = RosControl.Helper.CloneElement<DependencyObject>(item.Content as DependencyObject); ПользовательскоеМеню = XamlReader.Parse(item.FirstNode.ToString()) as FrameworkElement; } else { var __Icon = null as object; var strIcon = TryGetValue(item, "Icon"); if (!string.IsNullOrEmpty(strIcon)) { __Icon = new FilePreview() { Mode = FilePreviewMode.Icon, id_node = strIcon } } ; PART_DocumentsHost.Items.Insert(oRow++, new DocumentsTabItem() { Header = TryGetValue(item, "Header"), Tag = tag, IsReadOnly = true, Icon = __Icon, MinWidth = 0, ToolTip = TryGetValue(item, "ToolTip"), Navigation = XamlReader.Parse(item.FirstNode.ToString()) as FrameworkElement }); } } } else { ПользовательскоеМеню = XamlReader.Parse(xaml) as FrameworkElement; } ЗагрузитьВкладки(); } catch (Exception ex) { ПользовательскоеМеню = new TextBlock() { Margin = new Thickness(10), TextWrapping = TextWrapping.Wrap, TextAlignment = TextAlignment.Center, Text = ex.Message }; } }, xamlLoaded); break; } } catch (TimeoutException) { System.Threading.Thread.Sleep(1000); continue; } catch (Exception ex) { this.Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, (Action) delegate { ПользовательскоеМеню = new TextBlock() { Margin = new Thickness(10), TextWrapping = TextWrapping.Wrap, TextAlignment = TextAlignment.Center, Text = ex.Message }; }); } } }); }
void FfmpegMergeProcessExited(object sender, EventArgs e) { if (_ffmpegProcess.ExitCode == 0) { if (_pbMerge.Count > 0) { var ma = 0d; var fi = new FileInfo(_dir + _outfile); var alertData = new StringBuilder(); int durationSeconds = 0; foreach (var m in _pbMerge) { if (m.AlertData != "") { alertData.Append(m.AlertData); alertData.Append(","); } durationSeconds += m.DurationSeconds; if (m.MaxAlarm > ma) { ma = m.MaxAlarm; } } var ff = new FilesFile { CreatedDateTicks = DateTime.Now.Ticks, DurationSeconds = durationSeconds, IsTimelapse = false, TriggerLevel = _pbMerge.First().TriggerLevel, TriggerLevelMax = _pbMerge.First().TriggerLevelMax, Filename = _outfile, AlertData = Helper.GetMotionDataPoints(alertData), MaxAlarm = ma, SizeBytes = fi.Length, IsMergeFile = true, IsMergeFileSpecified = true }; string name; if (_currentObject.Ot == 1) { var vl = MainClass.GetVolumeLevel(_currentObject.ID); vl.AddFile(ff); name = vl.Micobject.name; } else { var cw = MainClass.GetCameraWindow(_currentObject.ID); cw.AddFile(ff); name = cw.Camobject.name; var fpv = _pbMerge.First(); //get preview image string imgname = fpv.Filename.Substring(0, fpv.Filename.LastIndexOf(".", StringComparison.Ordinal)); var imgpath = _dir + "thumbs/" + imgname + "_large.jpg"; if (File.Exists(imgpath)) { Image bmpPreview = Image.FromFile(imgpath); string jpgname = _dir + "thumbs\\" + ff.Filename.Substring(0, ff.Filename.LastIndexOf(".", StringComparison.Ordinal)); bmpPreview.Save(jpgname + "_large.jpg", MainForm.Encoder, MainForm.EncoderParams); Image.GetThumbnailImageAbort myCallback = ThumbnailCallback; Image myThumbnail = bmpPreview.GetThumbnailImage(96, 72, myCallback, IntPtr.Zero); myThumbnail.Save(jpgname + ".jpg", MainForm.Encoder, MainForm.EncoderParams); myThumbnail.Dispose(); bmpPreview.Dispose(); } } var fp = new FilePreview(_outfile, durationSeconds, name, ff.CreatedDateTicks, _currentObject.Ot, _currentObject.ID, ma, false, true); MainForm.MasterFileAdd(fp); MainForm.NeedsMediaRefresh = Helper.Now; } _pbMerge.Clear(); } else { Logger.LogErrorToFile("FFMPEG process exited with code " + _ffmpegProcess.ExitCode); MessageBox.Show(this, LocRm.GetString("ErrorCheckLogFile")); } DoClose(); }
private void RenderList(List <FilePreview> l, int pageCount) { var currentList = new List <PreviewBox>(); int ci = 0; DateTime dtCurrent = DateTime.MinValue; bool first = true; foreach (FilePreview fp in l) { var dt = new DateTime(fp.CreatedDateTicks); if (first || dtCurrent.DayOfYear != dt.DayOfYear) { first = false; dtCurrent = dt; DateTime tag = new DateTime(dtCurrent.Year, dtCurrent.Month, dtCurrent.Day); var lb = new Label { Text = dtCurrent.ToShortDateString(), Tag = tag, Margin = new Padding(3), Padding = new Padding(0), ForeColor = Color.White, BackColor = Color.Black, Width = 96, Height = 73, TextAlign = ContentAlignment.MiddleCenter }; lb.Click += Lb_Click; lb.Cursor = Cursors.Hand; ci++; } var cdt = new DateTime(fp.CreatedDateTicks); var pb = currentList.FirstOrDefault(p => p.CreatedDate == cdt); if (pb == null) { FilePreview fp1 = fp; var dir = Helper.GetMediaDirectory(fp1.ObjectTypeId, fp1.ObjectId); switch (fp1.ObjectTypeId) { case 1: var v = Microphones.SingleOrDefault(p => p.id == fp1.ObjectId); if (v != null) { var filename = dir + "audio\\" + v.directory + "\\" + fp.Filename; pb = AddPreviewControl(fp1, Resources.audio, filename, v.name); } break; case 2: var c = Cameras.SingleOrDefault(p => p.id == fp1.ObjectId); if (c != null) { var filename = dir + "video\\" + c.directory + "\\" + fp.Filename; var thumb = dir + "video\\" + c.directory + "\\thumbs\\" + fp.Filename.Substring(0, fp.Filename.LastIndexOf(".", StringComparison.Ordinal)) + ".jpg"; pb = AddPreviewControl(fp1, thumb, filename, c.name); } break; } } if (pb != null) { ci++; } } NeedsMediaRebuild = false; }
//-----Task for Feeding Lines to Serial Port private async Task FeedTask() { FeedActive = true; string s = ""; int i = 0; int c = 0; await this.Dispatcher.RunAsync(DispatchPriority, () => { i = FilePreview.SelectedIndex; c = FilePreview.Items.Count; }); while (i < c) { //*****Update Controls in the UI thread***** await this.Dispatcher.RunAsync(DispatchPriority, () => { s = FilePreview.SelectedItem.ToString(); }); //This commented code was used to bypass the Datawriter for testing /*s = s += "\r\n"; * StringBuilder sb = new StringBuilder(); * sb.Insert(0, s); * Windows.Storage.Streams.IBuffer b; * byte[] ba1 = Encoding.UTF8.GetBytes(s); * b = ba1.AsBuffer(); * uint x = await Port.OutputStream.WriteAsync(b);*/ s = s += "\r\n"; PortDataWriter.WriteString(s); Task <UInt32> storeAsyncTask; storeAsyncTask = PortDataWriter.StoreAsync().AsTask(); //<----This is where program hangs uint x = await storeAsyncTask; if (x != 0) { i++; if (i < c) { //*****Update Controls in the UI thread***** await this.Dispatcher.RunAsync(DispatchPriority, () => { FilePreview.SelectedIndex = i; FilePreview.ScrollIntoView(FilePreview.SelectedItem); }); } else { //*****Update Controls in the UI thread***** await this.Dispatcher.RunAsync(DispatchPriority, () => { FilePreview.SelectedIndex = 0; FilePreview.ScrollIntoView(FilePreview.SelectedItem); }); EnableFeed = false; } } if (EnableFeed == false) { break; } } //*****Update Controls in the UI thread***** await this.Dispatcher.RunAsync(DispatchPriority, () => { SingleBtn.IsEnabled = true; FeedBtn.Icon = new SymbolIcon(Symbol.Play); }); FeedActive = false; }