示例#1
0
        public WriteFileWorker(
            object sender,
            ProgressReporterInterface progress,
            string filename,
            FamilyFileTypeOperation operation,
            int filterIndex,
            ref FamilyTreeStoreBaseClass tree)
        {
            trace = new TraceSource("WriteFileWorker", SourceLevels.Warning);
            trace.TraceInformation("WriteFileWorker(" + filename + ")" + DateTime.Now);
            progressString = "Exporting...";

            familyTree       = tree;
            this.operation   = operation;
            this.filterIndex = filterIndex;

            progressReporter = progress;

            backgroundWorker = new BackgroundWorker();

            backgroundWorker.WorkerReportsProgress = true;
            backgroundWorker.DoWork             += new DoWorkEventHandler(DoWork);
            backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(Completed);
            backgroundWorker.ProgressChanged    += new ProgressChangedEventHandler(ProgressChanged);

            backgroundWorker.RunWorkerAsync(filename);
        }
示例#2
0
        public string GetFileTypeFilter(FamilyFileTypeOperation operation)
        {
            string filterStr = "";

            foreach (FamilyFileTypeBaseClass fileType in codecList)
            {
                if (fileType.GetFileTypeFilter(operation) != null)
                {
                    trace.TraceInformation("GetFileTypeFilter - add " + fileType.GetType() + ":" + fileType.GetFileTypeFilter(operation));
                    if (filterStr.Length > 0)
                    {
                        filterStr += "|";
                    }
                    filterStr += fileType.GetFileTypeFilter(operation);
                }
                else
                {
                    trace.TraceInformation("GetFileTypeFilter - ignore " + fileType.GetType());
                }
            }


            if (filterStr.Length > 0)
            {
                filterStr += "|";
            }
            filterStr += "All files|*.*";
            return(filterStr);
        }
示例#3
0
        public string GetFileTypeFilter(FamilyFileTypeOperation operation)
        {
            if ((operation == FamilyFileTypeOperation.Open) || (operation == FamilyFileTypeOperation.Import))
            {
                FamilyFileTypeCollection codec = new FamilyFileTypeCollection();

                string filter;

                filter = codec.GetFileTypeFilter(operation);

                codec = null;

                return(filter);
            }
            else if ((operation == FamilyFileTypeOperation.Save) || (operation == FamilyFileTypeOperation.Export))
            {
                FamilyFileEncoderCollection codec = new FamilyFileEncoderCollection();

                string filter;

                filter = codec.GetFileTypeFilter(operation);

                codec = null;

                return(filter);
            }
            return(null);
        }
示例#4
0
 public override string GetFileTypeFilter(FamilyFileTypeOperation operation)
 {
     if (operation == FamilyFileTypeOperation.Import)
     {
         return("Anarkiv|*.ddb");
     }
     return(null);
 }
示例#5
0
 public override string GetFileTypeFilter(FamilyFileTypeOperation operation = FamilyFileTypeOperation.Open)
 {
     if (operation == FamilyFileTypeOperation.Import)
     {
         return("Gedcom|*.ged");
     }
     return(null);
 }
示例#6
0
 public override string GetFileTypeFilter(FamilyFileTypeOperation operation)
 {
     if (operation == FamilyFileTypeOperation.Open)
     {
         return("GeneaLite|*.xml");
     }
     return(null);
 }
 public override string GetFileTypeFilter(FamilyFileTypeOperation operation)
 {
     if (operation == FamilyFileTypeOperation.Import)
     {
         return("Text|*.txt");
     }
     return(null);
 }
示例#8
0
 public string GetFileTypeFilter(FamilyFileTypeOperation operation, int variant = 0)
 {
     if (operation == FamilyFileTypeOperation.Save)
     {
         return("GeneaLite|*.xml");
     }
     return(null);
 }
示例#9
0
        public IDictionary <int, string> GetOperationVariantList(FamilyFileTypeOperation operation)
        {
            if (operation == FamilyFileTypeOperation.Export)
            {
                IDictionary <int, string> opList = new Dictionary <int, string>();

                opList.Add(0, "Normal");
                opList.Add(1, "Extensive");

                return(opList);
            }
            return(null);
        }
示例#10
0
        public void SaveFile(string filename, FamilyFileTypeOperation operation, int filterIndex)
        {
            trace.TraceInformation("FamilyForm2::SaveFile:" + filename + " idx:" + filterIndex);

            progressReporter = new AsyncWorkerProgress(FileSaveProgress);

            writeFileWorker = new WriteFileWorker(this, progressReporter, filename, operation, filterIndex, ref familyTree);

            if (operation == FamilyFileTypeOperation.Save)
            {
                this.Text = filename;
            }
        }
示例#11
0
        public void StoreFile(FamilyTreeStoreBaseClass familyTree, string filename, FamilyFileTypeOperation operation, int variant = 0)
        {
            trace.TraceInformation("XmlEncoder::StoreFile() start " + DateTime.Now);

            FileStream             fileStream = new FileStream(filename, FileMode.Create);
            DataContractSerializer serializer = new DataContractSerializer(familyTree.GetType());

            serializer.WriteObject(fileStream, familyTree);

            fileStream.Close();

            trace.TraceInformation("XmlEncoder::StoreFile() done " + DateTime.Now);
        }
示例#12
0
        public string GetFileTypeFilter(FamilyFileTypeOperation operation, int variant = 0)
        {
            string filter = "";

            encoderMapList.Clear();
            foreach (FamilyFileEncoder encoder in encoderList)
            {
                if (encoder.GetFileTypeFilter(operation) != null)
                {
                    IDictionary <int, string> opList = encoder.GetOperationVariantList(operation);
                    if ((opList != null) && (opList.Count > 0))
                    {
                        foreach (KeyValuePair <int, string> op in opList)
                        {
                            EncoderMap entry = new EncoderMap();

                            entry.filter  = encoder.GetFileTypeFilter(operation, op.Key);
                            entry.encoder = encoder;
                            entry.variant = op.Key;
                            filter       += entry.filter;
                            encoderMapList.Add(entry);
                            AppendFilterStrings(ref filter);
                        }
                    }
                    else
                    {
                        EncoderMap entry = new EncoderMap();

                        entry.filter  = encoder.GetFileTypeFilter(operation);
                        entry.encoder = encoder;
                        entry.variant = 0;

                        filter += entry.filter;
                        encoderMapList.Add(entry);

                        AppendFilterStrings(ref filter);
                    }
                }
            }
            filter += "All files|*.*";
            return(filter);
        }
示例#13
0
        public void StoreFile(FamilyTreeStoreBaseClass familyTree, string filename, FamilyFileTypeOperation operation, int variant = 0)
        {
            trace.TraceInformation("FamilyFileEncoderCollection.StoreFile({0},{1})", filename, variant);

            if (encoderMapList.Count == 0)
            {
                // We should never have to generate a filter
                // list with only one variant at this level...
                // The variant parameter has another meaning in this
                // class compared to real encoder classes...
                GetFileTypeFilter(operation);
            }
            if (variant < encoderMapList.Count)
            {
                selectedEncoder = encoderMapList[variant].encoder;
                if (storedProgressTarget != null)
                {
                    selectedEncoder.SetProgressTarget(storedProgressTarget);
                    storedProgressTarget = null;
                }
                selectedEncoder.StoreFile(familyTree, filename, operation, encoderMapList[variant].variant);
                return;
            }
            foreach (FamilyFileEncoder encoder in encoderList)
            {
                if (encoder.IsKnownFileType(filename))
                {
                    selectedEncoder = encoder;
                    if (storedProgressTarget != null)
                    {
                        encoder.SetProgressTarget(storedProgressTarget);
                        storedProgressTarget = null;
                    }
                    encoder.StoreFile(familyTree, filename, operation, variant);
                }
            }
        }
示例#14
0
 public virtual string GetFileTypeFilter(FamilyFileTypeOperation operation)
 {
     return(null);
 }
示例#15
0
 public IDictionary <int, string> GetOperationVariantList(FamilyFileTypeOperation operation)
 {
     return(null);
 }