예제 #1
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();
            }
        }
예제 #2
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;
        }