示例#1
0
 private void button8_Click(object sender, EventArgs e)
 {
     using (frmDataProviderSelector frm = new frmDataProviderSelector())
     {
         frm.StartPosition = FormStartPosition.CenterScreen;
         if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             IRasterDataProvider dataProvider = null;
             bool isNew = false;
             try
             {
                 dataProvider = frm.DataProvider;
                 int[] bandNos = frm.BandNos;
                 isNew = frm.IsNewDataProvider;
                 DoStat(dataProvider, bandNos);
             }
             finally
             {
                 if (isNew && dataProvider != null)
                 {
                     dataProvider.Dispose();
                 }
             }
         }
     }
 }
        public override void Execute()
        {
            ICanvasViewer viewer = _smartSession.SmartWindowManager.ActiveCanvasViewer;

            if (viewer == null)
            {
                return;
            }
            IRasterDrawing drawing = viewer.ActiveObject as IRasterDrawing;

            if (drawing == null)
            {
                return;
            }
            int[] aoi = GetAOI();
            using (frmDataProviderSelector frm = new frmDataProviderSelector(aoi != null))
            {
                frm.StartPosition = FormStartPosition.CenterScreen;
                frm.SetDataProvider(drawing.DataProviderCopy);
                frm.SetSelectedBands(drawing.SelectedBandNos);
                if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    IRasterDataProvider dataProvider = null;
                    bool isNew = false;
                    try
                    {
                        dataProvider = frm.DataProvider;
                        int[] bandNos = frm.BandNos;
                        isNew = frm.IsNewDataProvider;
                        bool isApplyAoi = frm.ApplyAoi;
                        if (isApplyAoi && aoi != null)
                        {
                            DoStat(dataProvider, bandNos, aoi);
                        }
                        else
                        {
                            DoStat(dataProvider, bandNos, null);
                        }
                    }
                    finally
                    {
                        if (isNew && dataProvider != null)
                        {
                            dataProvider.Dispose();
                        }
                    }
                }
            }
        }