示例#1
0
 public void LabelDrop(CsfDocumentViewModel docvm)
 {
     for (var i = this.ClassView.SelectedItems.Count - 1; i >= 0; i--)
     {
         docvm.LabelDrop(this.ClassView.SelectedItems[i] as CsfLabelViewModel);
     }
 }
        public static async Task SaveFile(
            string filePath,
            CsfDocumentViewModel docvm,
            StatusCallbackHandle statusCallback     = null,
            ProgressCallbackHandle progressCallback = null
            )
        {
            await using var fs = new FileStream(filePath, FileMode.Create);
            var doc = new CsfDocument();

            _ = statusCallback?.Invoke("Converting".GetResource(), false);
            _ = progressCallback?.Invoke(0, docvm.Content.Count);
            doc.AddRange(docvm.Content.Select((o, i) =>
            {
                _ = progressCallback?.Invoke(i, docvm.Content.Count);
                return(o.GetLabel());
            }));

            _        = statusCallback?.Invoke("CalculatingHeader".GetResource(), true);
            doc.Head = new CsfHead
            {
                Version     = docvm.Version,
                Language    = docvm.Language,
                Unknown     = 0x5CF6_98A8,
                LabelCount  = doc.Count,
                StringCount = doc.Select(n => n.Count).Sum()
            };
            _ = statusCallback?.Invoke("WritingFile".GetResource(), false);
            await doc.SerializeAsync(fs, (i, j) =>
                                     _ = progressCallback?.Invoke(i, j));

            _ = statusCallback?.Invoke("Complete".GetResource(), false);
            _ = progressCallback?.Invoke(0, 1);
        }
示例#3
0
        public void ClassClone(CsfDocumentViewModel docvm)
        {
            var className = (this.ClassView.SelectedItem as CsfLabelViewModel)?.Class;
            var result    = docvm.ClassClone(className);

            this.ClassView.SelectedItems.Clear();
            result.ForEach(i => this.ClassView.SelectedItems.Add(i));
        }
示例#4
0
        public void LabelClone(CsfDocumentViewModel docvm)
        {
            var list = new List <CsfLabelViewModel>(this.ClassView.SelectedItems.Count);

            for (var i = this.ClassView.SelectedItems.Count - 1; i >= 0; i--)
            {
                list.Add(docvm.LabelClone(this.ClassView.SelectedItems[i] as CsfLabelViewModel));
            }
            this.SelectLabel(list);
        }
示例#5
0
 public void LabelCreate(CsfDocumentViewModel docvm) => this.SelectLabel(docvm.LabelCreate(this.ClassView.SelectedItem as CsfLabelViewModel));
示例#6
0
 public void ClassRename(CsfDocumentViewModel docvm, string newClassName) =>
 this.SelectLabel(docvm.ClassRename((this.ClassView.SelectedItem as CsfLabelViewModel)?.Class, newClassName));
示例#7
0
 public void ClassDrop(CsfDocumentViewModel docvm) => docvm.ClassDrop((this.ClassView.SelectedItem as CsfLabelViewModel)?.Class);