Exemplo n.º 1
0
        private void CInsertNewSection(object sender, ExecutedRoutedEventArgs e)
        {
            if (VirtualizingListBox.ActiveTransctiption != null)
            {
                if (VirtualizingListBox.ActiveTransctiption.IsParagraph)
                {
                    TranscriptionParagraph p = (TranscriptionParagraph)VirtualizingListBox.ActiveTransctiption;
                    int idx = p.ParentIndex;
                    TranscriptionSection sec = (TranscriptionSection)p.Parent;
                    TranscriptionSection s   = new TranscriptionSection(Properties.Strings.DefaultSectionText);
                    for (int i = idx; i < sec.Children.Count; i++)
                    {
                        s.Add(sec[i]);
                    }

                    sec.Children.RemoveRange(idx, sec.Children.Count - idx);

                    sec.Parent.Insert(sec.ParentIndex + 1, s);
                    VirtualizingListBox.ActiveTransctiption = s;

                    VirtualizingListBox.Reset();
                }
                else if (VirtualizingListBox.ActiveTransctiption.IsSection)
                {
                    var s = new TranscriptionSection(Properties.Strings.DefaultSectionText);
                    s.Children.AddRange(VirtualizingListBox.ActiveTransctiption.Children);
                    VirtualizingListBox.ActiveTransctiption.Children.Clear();
                    VirtualizingListBox.ActiveTransctiption.Parent.Insert(VirtualizingListBox.ActiveTransctiption.ParentIndex, s);
                    VirtualizingListBox.ActiveTransctiption = s;
                    VirtualizingListBox.Reset();
                }
                else if (VirtualizingListBox.ActiveTransctiption.IsChapter)
                {
                    var s = new TranscriptionSection(Properties.Strings.DefaultSectionText);
                    VirtualizingListBox.ActiveTransctiption.Insert(0, s);
                    VirtualizingListBox.ActiveTransctiption = s;
                    VirtualizingListBox.Reset();
                }
            }
        }
Exemplo n.º 2
0
        private void CAssignSpeaker(object sender, ExecutedRoutedEventArgs e)
        {
            TranscriptionParagraph tpr = null;

            if (sender is TranscriptionParagraph)
            {
                tpr = (TranscriptionParagraph)sender;
            }
            else
            {
                tpr = VirtualizingListBox.ActiveTransctiption as TranscriptionParagraph;
            }

            var mgr = new SpeakersManager(tpr.Speaker, Transcription, Transcription.Speakers, SpeakersDatabase)
            {
                MessageLabel = Properties.Strings.mainWindowSpeakersManagerSelectedParagraphMessage, Message = VirtualizingListBox.ActiveTransctiption.Text
            };

            if (smwidth != null && smheight != null && smleft != null && smtop != null)
            {
                mgr.Width  = smwidth.Value;
                mgr.Height = smheight.Value;
                mgr.Left   = smleft.Value;
                mgr.Top    = smtop.Value;
            }

            if (mgr.ShowDialog() == true && mgr.SelectedSpeaker != null)
            {
                Transcription.BeginUpdate();
                var origspk = tpr.Speaker;
                tpr.Speaker = mgr.SelectedSpeaker;

                if (!Transcription.EnumerateParagraphs().Any(p => p.Speaker == origspk))
                {
                    Transcription.Speakers.Remove(origspk);
                }


                var replaced = AdvancedSpeakerCollection.SynchronizedAdd(Transcription.Speakers, mgr.SelectedSpeaker);

                if (replaced != null)
                {
                    foreach (var p in Transcription.EnumerateParagraphs().Where(p => p.Speaker == replaced))
                    {
                        p.Speaker = mgr.SelectedSpeaker;
                    }
                }

                Transcription.EndUpdate();
            }

            smwidth  = mgr.Width;
            smheight = mgr.Height;
            smleft   = mgr.Left;
            smtop    = mgr.Top;

            if (mgr.SpeakerChanged)//refresh all sepakers
            {
                var pinned = SpeakersDatabase.Where(s => s.PinnedToDocument);
                Transcription.Speakers.AddRange(pinned.Except(Transcription.Speakers));
            }

            VirtualizingListBox.SpeakerChanged(VirtualizingListBox.ActiveElement);
        }