public AutoGenerateExecutor(IResultHandler resultHandler,
                             IMonitoringProduct monitoringProduct,
                             IThemeGraphGenerator layoutGenerator,
                             IFileNameGenerator fileNameGenerator)
 {
     _resultHandler      = resultHandler;
     _monitoringProduct  = monitoringProduct;
     _layoutGenerator    = layoutGenerator;
     _fileNameGenerator  = fileNameGenerator;
     _contextEnvironment = new ContextEnvironment();
 }
        public void HandleResult(IContextEnvironment contextEnvironment, IMonitoringProduct product, IMonitoringSubProduct subProduct, IExtractResult result)
        {
            (_session.MonitoringSession as IMonitoringSession).ChangeActiveSubProduct(subProduct.Identify);
            if (subProduct.Identify == "DBLV")//只有判识结果在叠加在影像上
            {
                (_session.MonitoringSession as IMonitoringSession).ExtractingSession.Start((_session.SmartWindowManager.ActiveCanvasViewer), product, subProduct);
                DisplayResultClass.DisplayResult(_session, subProduct, result, true);
            }
            else
            {
                DisplayResultClass.DisplayResult(_session, subProduct, result, true);
            }
            string fname;

            if (result is IPixelIndexMapper)
            {
                fname = (_session.MonitoringSession as IMonitoringSession).ExtractingSession.AddToWorkspace((_session.MonitoringSession as IMonitoringSession).Workspace);
                DisplayResultClass._contextEnvironment.PutContextVar(subProduct.Identify, fname);
            }
            else if (result is IExtractResultArray)
            {
                IExtractResultArray  extResultMapper = result as ExtractResultArray;
                IExtractResultBase[] mappers         = extResultMapper.PixelMappers;
                if (mappers == null || mappers.Length == 0)
                {
                    return;
                }
                foreach (IExtractResultBase mapper in mappers)
                {
                    if (mapper is IPixelIndexMapper)
                    {
                        fname = (_session.MonitoringSession as IMonitoringSession).ExtractingSession.AddToWorkspace((_session.MonitoringSession as IMonitoringSession).Workspace);
                        DisplayResultClass._contextEnvironment.PutContextVar(subProduct.Identify, fname);
                    }
                }
            }
            else if (result is IFileExtractResult && subProduct.Identify == "DBLV")
            {
                DisplayResultClass._contextEnvironment.PutContextVar(subProduct.Identify, (result as IFileExtractResult).FileName);
            }
        }
Beispiel #3
0
        private void CustomVarSetterHandler(string[] dblvFileNames, string beginSubprod, IContextEnvironment contextEnv)
        {
            if (dblvFileNames == null || dblvFileNames.Length < 1)
            {
                return;
            }
            string varValue = dblvFileNames[0];

            for (int i = 1; i < dblvFileNames.Length; i++)
            {
                varValue += "*" + dblvFileNames[i];
            }
            contextEnv.PutContextVar("DBLV", varValue);
        }
Beispiel #4
0
        private void CustomVarSetterHandler(string dblvFileName, string beginSubprod, IContextEnvironment contextEnv)
        {
            string ndviFileName = Path.GetFileName(dblvFileName);

            if (string.IsNullOrEmpty(ndviFileName))
            {
                return;
            }
            string dblvName = Path.GetDirectoryName(dblvFileName) + "\\" + ndviFileName.Replace("NDVI", "DBLV");

            if (File.Exists(dblvName))
            {
                contextEnv.PutContextVar("DBLV", dblvName);
            }
        }
        private static void TrySetContextEnvironment(ISmartSession session, string beginSubprod, IContextEnvironment contextEnv, CustomVarSetterHandler customVarSetter)
        {
            contextEnv.PutContextVar(ContextEnvironment.ENV_VAR_NAME_CURRENT_RASTER_FILE, GetCurrentRasterFile(session));
            IWorkspace ws = (session.MonitoringSession as IMonitoringSession).Workspace;

            if (ws == null)
            {
                return;
            }
            ICatalog catalog = ws.ActiveCatalog;

            if (catalog == null)
            {
                return;
            }
            string[] fnames = catalog.GetSelectedFiles();
            if (fnames == null || fnames.Length == 0)
            {
                return;
            }
            RasterIdentify rst = new RasterIdentify(fnames[0]);

            if (string.IsNullOrEmpty(rst.SubProductIdentify))
            {
                contextEnv.PutContextVar(ContextEnvironment.ENV_VAR_NAME_BINARY_FILE, fnames[0]);
            }
            else
            {
                contextEnv.PutContextVar(rst.SubProductIdentify, fnames[0]);
            }
            //
            if (customVarSetter != null)
            {
                customVarSetter(fnames[0], beginSubprod, contextEnv);
            }
        }