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); } }
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); }
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); } }