Exemple #1
0
        private ExtendTask GetTaskFromDataRow(DataRow rowTask)
        {
            if (rowTask == null)
            {
                return(null);
            }

            // Task本身
            ExtendTask task = new ExtendTask();

            task.DatasourceType    = (enumDataType)rowTask["DataType"];
            task.MapScale          = (int)rowTask["MapScale"];
            task.Name              = rowTask["TaskName"] as string;
            task.Path              = rowTask["TaskPath"] as string;
            task.SourcePath        = rowTask["Datasource"] as string;
            task.StandardName      = cmbStandard.SelectedItem as string;
            task.SchemaID          = ((KeyValuePair <string, string>)cmbSchema.SelectedItem).Key;
            task.TopoTolerance     = Convert.ToDouble(rowTask["TopoTolerance"]);
            task.UseSourceDirectly = (bool)rowTask["UseSourceDirectly"];
            task.Messager          = this.MessageHandler;

            // DataImport
            IDataImport dataImporter = null;

            if (task.DatasourceType == enumDataType.VCT)
            {
                dataImporter = new VCTDataImport();
            }
            else
            {
                NoReferenceDataImport noRefDataImport = new NoReferenceDataImport();
                noRefDataImport.ReferenceLayer = ((KeyValuePair <string, string>)cmbSpatialRefLayer.SelectedItem).Key;
                dataImporter = noRefDataImport;
            }
            dataImporter.ImportingObjectChanged += new ImportingObjectChangedHandler(dataImporter_ImportingObjectChanged);
            task.DataImporter = dataImporter;

            string        strCheckMode = rowTask["CheckMode"] as string;
            enumCheckMode checkMode    = enumCheckMode.CreateOnly;

            if (strCheckMode == Text_CheckMode_CheckPartly)
            {
                checkMode = enumCheckMode.CheckPartly;
            }
            if (strCheckMode == Text_CheckMode_CheckAll)
            {
                checkMode = enumCheckMode.CheckAll;
                task.ReadyForCheck(true);
            }
            task.CheckMode = checkMode;
            task.RuleInfos = rowTask["Hy.Check.Rules"] as List <SchemaRuleEx>;

            return(task);
        }
Exemple #2
0
        /// <summary>
        /// 构建Task对象,进行创建
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void wizardControl_FinishClick(object sender, CancelEventArgs e)
        {
            this.m_Task = GenerateTask();
            IDataImport dataImporter = null;

            switch (this.m_DataType)
            {
            case enumDataType.FileGDB:
                dataImporter = new FileGDBDataImport();
                break;

            case enumDataType.PGDB:
                dataImporter = new MDBDataImport();
                break;

            case enumDataType.SHP:
                dataImporter = new SHPDataImport();
                break;

            case enumDataType.VCT:
                VCTDataImport vctDataImport = new VCTDataImport();
                // vctDataImport.ConvertStepping += new VCTConvertStepHandler(vctDataImport_ConvertStepping);
                dataImporter = vctDataImport;
                break;
            }
            this.m_Task.DataImporter = dataImporter;
            this.m_Task.Messager     = MessageHandler;
//#if !DEBUG

            this.Hide();
//#endif

            #region 后台线程导入方式

            //Hy.Common.UI.frmProgress frmProgress = new Hy.Common.UI.frmProgress();
            //dataImporter.ImportingObjectChanged += new ImportingObjectChangedHandler(frmProgress.ShowDoing);
            //System.Threading.Thread newThread = new System.Threading.Thread(new System.Threading.ThreadStart(RunTaskCreate));
            //newThread.Start();

            //frmProgress.ShowGifProgress();
            //frmProgress.ShowDialog();

            #endregion


            // 线程显示进度方式

            dataImporter.ImportingObjectChanged += new ImportingObjectChangedHandler(dataImporter_ImportingObjectChanged);

            try
            {
                bool isSucceed = m_Task.Create();


                isSucceed = isSucceed && m_Task.CreateMXD();


                if (isSucceed)
                {
                    //MessageBoxApi.ShowFinishedMessageBox("任务创建成功!");
                    BolFinished       = true;
                    this.DialogResult = DialogResult.OK;
                }
                else
                {
                    MessageBoxApi.ShowFinishedMessageBox("任务创建失败!");
                    this.DialogResult = DialogResult.Cancel;
                }
            }
            catch (Exception exp)
            {
                MessageHandler(enumMessageType.Exception, exp.ToString());
            }
            finally
            {
                m_GifProgress.Hide();
                //m_Progress.Hide();
            }
        }