public override void Execute(string argument) { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer != null) { ICanvasViewer canViewer = viewer as ICanvasViewer; if (canViewer == null) { return; } IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; IGeoPanAdjust adjust = rd as IGeoPanAdjust; if (adjust != null && adjust.IsHasUnsavedGeoAdjusted) { DialogResult ret = MsgBox.ShowQuestionYesNoCancel("对当前影像的平移校正结果未保存,请确认是否保存?\n按【是】保存。\n按【否】不保存。\n按【取消】返回。"); if (ret == DialogResult.Cancel) { return; } else if (ret == DialogResult.Yes) { adjust.Save(); } else { adjust.Cancel(); } } } _smartSession.UIFrameworkHelper.SetVisible(argument, false); _smartSession.UIFrameworkHelper.SetLockBesideX(argument, false); }
public override void Execute() { ISmartViewer v = _smartSession.SmartWindowManager.ActiveViewer; ISmartToolWindow wnd = _smartSession.SmartWindowManager.SmartToolWindowFactory.GetSmartToolWindow(_id); if (wnd != null) { UCLayerManagerPanel layerManeger = new UCLayerManagerPanel(_smartSession); if (v == null) { layerManeger.Apply(null); } if (v is ICanvasViewer) { layerManeger.Apply((v as ICanvasViewer).LayerProvider as ILayersProvider); } else if (v is ILayoutViewer) { layerManeger.Apply((v as ILayoutViewer).LayerProvider as ILayersProvider); } (wnd as ToolWindow).Controls.Add(layerManeger); layerManeger.Dock = DockStyle.Fill; _smartSession.SmartWindowManager.DisplayWindow(wnd, new WindowPosition(DockStyle.Left, false)); (wnd as DockWindow).TabStrip.SizeInfo.AbsoluteSize = new System.Drawing.Size(WND_DEFAULT_WIDTH, 0); } }
private string TryGetFileFromActiveView() { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { throw new Exception("未获得激活的数据窗口"); } ICanvasViewer canViewer = viewer as ICanvasViewer; if (canViewer == null) { throw new Exception("未获得激活的数据窗口"); } IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; if (rd == null) { throw new Exception("未从激活的数据窗口中获取数据提供者"); } IRasterDataProvider rdp = rd.DataProvider; if (rdp == null) { throw new Exception("未从激活的数据窗口中获取数据提供者"); } return(rdp.fileName); }
void _radDock_DockWindowClosed(object sender, DockWindowEventArgs e) { //触发注册在视窗上的关闭事件 ISmartWindow smartWindow = e.DockWindow as ISmartWindow; if (smartWindow != null) { if (smartWindow.OnWindowClosed != null) { smartWindow.OnWindowClosed(smartWindow, e); } } // if (e.DockWindow.Equals(_activeViewer)) { _activeViewer = null; } // if (e.DockWindow.Equals(_newestCreatedCanvasViewer)) { _newestCreatedCanvasViewer = null; } // _linkableViewerManager.Unlink(e.DockWindow as ILinkableViewer); e.DockWindow.Dispose(); /* * 以下1行释放Telerik不能释放的资源 */ if (e.DockWindow is Telerik.WinControls.IGeoDoFree) { (e.DockWindow as Telerik.WinControls.IGeoDoFree).Free(); } if (e.DockWindow is ISmartWindow) { (e.DockWindow as ISmartWindow).Free(); } /* * 以下三行释放视图资源(CanvasViewer,LayoutViewer) */ ISmartViewer smartViewer = e.DockWindow as ISmartViewer; if (smartViewer != null) { smartViewer.DisposeViewer(); // SetActiveViewer(null, smartViewer is ICanvasViewer); } /* * 以下一句解决LayoutEventArgs引用DocumentTabStrip对象导致对象不释放的问题 */ _radDock.MainDocumentContainer.PerformLayout(); // GC.Collect(); }
void _radDock_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e) { ISmartViewer viewer = e.NewWindow as ISmartViewer; if (viewer != null) { SetActiveViewer(viewer, viewer is ICanvasViewer); } }
void _radDock_ActiveWindowChanged(object sender, DockWindowEventArgs e) { ISmartViewer viewer = e.DockWindow as ISmartViewer; if (viewer != null) { SetActiveViewer(viewer, viewer is ICanvasViewer); } }
void _radDock_DockWindowAdded(object sender, DockWindowEventArgs e) { ISmartViewer viewer = e.DockWindow as ISmartViewer; if (viewer != null) { SetActiveViewer(viewer, viewer is ICanvasViewer); //radDock的DockWindowAdded事件执行完毕,会调用ActiveWindowChanged } if (viewer is ICanvasViewer) { _newestCreatedCanvasViewer = viewer as ICanvasViewer; } }
private void AdjustFinished(object sender, EventArgs e) { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { return; } ICanvasViewer canViewer = viewer as ICanvasViewer; (canViewer.Canvas.CurrentViewControl as PanAdjustControlLayer).AdjustFinishedHandler -= _finishedHandler; canViewer.Canvas.CurrentViewControl = new DefaultControlLayer(); canViewer.Canvas.Refresh(enumRefreshType.All); }
public override void Execute() { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { return; } ICanvasViewer canViewer = viewer as ICanvasViewer; IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; IGeoPanAdjust adjust = rd as IGeoPanAdjust; adjust.Cancel(); canViewer.Canvas.Refresh(Core.DrawEngine.enumRefreshType.All); }
private static bool IsOrbitData(ISmartSession session) { ISmartViewer activeViewer = session.SmartWindowManager.ActiveViewer; if (activeViewer is ICanvasViewer) { ICanvasViewer cv = activeViewer as ICanvasViewer; IRasterDrawing draing = cv.ActiveObject as IRasterDrawing; if (draing == null || draing.DataProvider.DataIdentify == null) { return(false); } return(draing.DataProvider.DataIdentify.IsOrbit); } return(false); }
public override bool Open(string fname, out bool memoryIsNotEnough) { memoryIsNotEnough = false; if (!MemoryIsEnoughChecker.MemoryIsEnouggWithMsgBoxForRaster(fname)) { memoryIsNotEnough = true; return(false); } ISmartViewer viewer = _session.SmartWindowManager.ActiveViewer; //if (viewer == null) CreateCanvasViewer(fname); //else if (viewer is ICanvasViewer) // AddLayer2CanvasViewer(viewer as ICanvasViewer, fname); //else if (viewer is ILayoutViewer) // AddDataToLayoutViewer(viewer as ILayoutViewer, fname); return(true); }
public override void Execute() { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { return; } ICanvasViewer canViewer = viewer as ICanvasViewer; IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; (rd as IGeoPanAdjust).Start(); IRasterDataProvider rdp = rd.DataProvider; canViewer.Canvas.CurrentViewControl = new PanAdjustControlLayer(); (canViewer.Canvas.CurrentViewControl as PanAdjustControlLayer).AdjustFinishedHandler += _finishedHandler; canViewer.Canvas.Refresh(enumRefreshType.All); }
public override void Execute() { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { return; } ICanvasViewer canViewer = viewer as ICanvasViewer; IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; IGeoPanAdjust adjust = rd as IGeoPanAdjust; if (rd == null) { return; } PanAdjustTool adjustTool = new PanAdjustTool(); string fileName = null; try { fileName = adjustTool.SaveGeoAdjust(rd.EnvelopeBeforeAdjusting, rd.DataProviderCopy); adjust.Cancel(); } catch (Exception e) { MessageBox.Show(e.Message); } if (fileName != null && File.Exists(fileName)) { string adjustTxtDir = AppDomain.CurrentDomain.BaseDirectory + "MonitoringProductArgs\\COMM\\"; if (!Directory.Exists(adjustTxtDir)) { Directory.CreateDirectory(adjustTxtDir); } string txtFileName = Path.Combine(adjustTxtDir, "AdjustSaveFile.txt"); using (StreamWriter sw = new StreamWriter(txtFileName, true, Encoding.Default)) { sw.WriteLine(fileName); } } }
public override void Execute() { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { return; } ICanvasViewer canViewer = viewer as ICanvasViewer; IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; PanAdjustControlLayer layer = canViewer.Canvas.CurrentViewControl as PanAdjustControlLayer; if (layer == null) { return; } IGeoPanAdjust adjust = rd as IGeoPanAdjust; adjust.Save(); canViewer.Canvas.CurrentViewControl = new DefaultControlLayer(); canViewer.Canvas.Refresh(Core.DrawEngine.enumRefreshType.All); }
private void SetActiveViewer(ISmartViewer viewer, bool isCanvasViewer) { if (viewer == null && isCanvasViewer) { _activeCanvasViewer = null; } if (viewer != null && viewer.Equals(_activeViewer) && !viewer.Equals(_newestCreatedCanvasViewer)) { return; } ISmartViewer oldViewer = _activeViewer; _activeViewer = viewer; if (viewer is ICanvasViewer) { _activeCanvasViewer = viewer as ICanvasViewer; } if (_activeWindowChangedHandler != null) { _activeWindowChangedHandler(this, oldViewer, viewer); } UpdatePrimaryLinkWindow(); }
private static ISpatialReference GetSpatialRef(ISmartSession session) { ISmartViewer activeViewer = session.SmartWindowManager.ActiveViewer; if (activeViewer is ICanvasViewer) { return((activeViewer as ICanvasViewer).Canvas.CoordTransform.SpatialRefOfViewer as ISpatialReference); } else if (activeViewer is ILayoutViewer) { IDataFrame df = (activeViewer as ILayoutViewer).LayoutHost.ActiveDataFrame; if (df == null) { return(null); } IDataFrameDataProvider prd = df.Provider as IDataFrameDataProvider; if (prd == null) { return(null); } return(prd.Canvas.CoordTransform.SpatialRefOfViewer as ISpatialReference); } return(null); }
public override void Execute(string argument) { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer != null) { ICanvasViewer canViewer = viewer as ICanvasViewer; if (canViewer == null) { return; } IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; if (rd == null || rd.RgbProcessorStack == null) { return; } List <IRgbProcessor> rgbProcessors = new List <IRgbProcessor>(); foreach (IRgbProcessor processor in rd.RgbProcessorStack.Processors) { rgbProcessors.Add(processor); } rgbProcessors.Reverse(); int[] selectBands = rd.SelectedBandNos; IGeoPanAdjust adjust = rd as IGeoPanAdjust; if (adjust != null) { if (adjust.IsHasUnsavedGeoAdjusted) { DialogResult ret = MsgBox.ShowQuestionYesNoCancel("对当前影像的平移校正结果未保存,请确认是否保存?\n按【是】保存。\n按【否】不保存。\n按【取消】返回。"); if (ret == DialogResult.Cancel) { return; } else if (ret == DialogResult.Yes) { PanAdjustTool adjustTool = new PanAdjustTool(); string fileName = null; try { fileName = adjustTool.SaveGeoAdjust(rd.EnvelopeBeforeAdjusting, rd.DataProviderCopy); } catch (Exception e) { MessageBox.Show(e.Message); } adjust.Cancel(); if (File.Exists(fileName)) { OpenFileFactory.Open(fileName); IRasterDrawing draw = _smartSession.SmartWindowManager.ActiveViewer.ActiveObject as IRasterDrawing; draw.SelectedBandNos = selectBands; if (rgbProcessors != null && rgbProcessors.Count > 0) { draw.RgbProcessorStack.Clear(); foreach (IRgbProcessor processor in rgbProcessors) { draw.RgbProcessorStack.Process(processor); } } } } else { adjust.Cancel(); } } else { string dirTXTFname = AppDomain.CurrentDomain.BaseDirectory + "MonitoringProductArgs\\COMM\\AdjustSaveFile.txt"; if (File.Exists(dirTXTFname)) { string[] fileNames = File.ReadAllLines(dirTXTFname, Encoding.Default); int length = fileNames.Length; string lastFile = fileNames[length - 1]; AdjustConfig config = new AdjustConfig(); bool IsOpenResult = true; bool.TryParse(config.GetConfigValue("IsOpenResult"), out IsOpenResult); if (IsOpenResult && File.Exists(lastFile)) { try { OpenFileFactory.Open(lastFile); IRasterDrawing draw = _smartSession.SmartWindowManager.ActiveViewer.ActiveObject as IRasterDrawing; draw.SelectedBandNos = selectBands; if (rgbProcessors != null && rgbProcessors.Count > 0) { draw.RgbProcessorStack.Clear(); foreach (IRgbProcessor processor in rgbProcessors) { draw.RgbProcessorStack.Process(processor); } } } catch (Exception e) { MessageBox.Show(e.Message); } } File.Delete(dirTXTFname); } } } } _smartSession.UIFrameworkHelper.SetVisible(argument, false); _smartSession.UIFrameworkHelper.SetLockBesideX(argument, false); }
public override void Execute(string argument) { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer != null) { ICanvasViewer canViewer = viewer as ICanvasViewer; if (canViewer == null) { return; } IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; if (rd == null || rd.RgbProcessorStack == null) { return; } List <IRgbProcessor> rgbProcessors = new List <IRgbProcessor>(); foreach (IRgbProcessor processor in rd.RgbProcessorStack.Processors) { rgbProcessors.Add(processor); } rgbProcessors.Reverse(); int[] selectBands = rd.SelectedBandNos; IGeoPanAdjust adjust = rd as IGeoPanAdjust; if (adjust != null) { if (adjust.IsHasUnsavedGeoAdjusted) { DialogResult ret = MsgBox.ShowQuestionYesNoCancel("对当前影像的平移校正结果未保存,请确认是否保存?\n按【是】保存。\n按【否】不保存。\n按【取消】返回。"); if (ret == DialogResult.Cancel) { return; } else if (ret == DialogResult.Yes) { GeoAdjustHelper adjustTool = new GeoAdjustHelper(); string fileName = null; string dblvFileName = null; try { fileName = adjustTool.SaveGeoAdjustByChangeCoordEnvelope(rd.DataProvider.CoordEnvelope, rd.DataProviderCopy); dblvFileName = AdjustDBLVFile(rd.DataProvider.CoordEnvelope, rd.DataProviderCopy); } catch (Exception e) { MessageBox.Show(e.Message); } adjust.Cancel(); if (File.Exists(fileName)) { OpenFileFactory.Open(fileName); IRasterDrawing draw = _smartSession.SmartWindowManager.ActiveViewer.ActiveObject as IRasterDrawing; draw.SelectedBandNos = selectBands; if (rgbProcessors != null && rgbProcessors.Count > 0) { draw.RgbProcessorStack.Clear(); foreach (IRgbProcessor processor in rgbProcessors) { draw.RgbProcessorStack.Process(processor); } } //生成多通道合成图 LayoutCreater layoutCreater = new LayoutCreater(); string mcsiFileName = layoutCreater.CreateMCSI(_smartSession); if (!string.IsNullOrEmpty(mcsiFileName) && File.Exists(mcsiFileName)) { OpenFileFactory.Open(mcsiFileName); } //生成二值图 if (!string.IsNullOrEmpty(dblvFileName)) { string imgFileName = layoutCreater.CreateDBLVLayout(dblvFileName, draw.FileName); if (!string.IsNullOrEmpty(imgFileName) && File.Exists(imgFileName)) { OpenFileFactory.Open(imgFileName); } } } } else { adjust.Cancel(); } } else { string dirTXTFname = AppDomain.CurrentDomain.BaseDirectory + "MonitoringProductArgs\\COMM\\AdjustSaveFile.txt"; if (File.Exists(dirTXTFname)) { string[] fileNames = File.ReadAllLines(dirTXTFname, Encoding.Default); int length = fileNames.Length; string lastFile = fileNames[length - 1]; if (File.Exists(lastFile)) { try { OpenFileFactory.Open(lastFile); IRasterDrawing draw = _smartSession.SmartWindowManager.ActiveViewer.ActiveObject as IRasterDrawing; draw.SelectedBandNos = selectBands; if (rgbProcessors != null && rgbProcessors.Count > 0) { draw.RgbProcessorStack.Clear(); foreach (IRgbProcessor processor in rgbProcessors) { draw.RgbProcessorStack.Process(processor); } } } catch (Exception e) { MessageBox.Show(e.Message); } } File.Delete(dirTXTFname); } } } } //_smartSession.UIFrameworkHelper.SetVisible(argument, false); //_smartSession.UIFrameworkHelper.SetLockBesideX(argument, false); }
public void NewVerticalGroup(ISmartViewer viewer) { _radDock.AddDocument(viewer as DockWindow, (viewer as DockWindow).TabStrip as DocumentTabStrip, DockPosition.Bottom); }
public void NewHorizontalGroup(ISmartViewer viewer) { _radDock.AddDocument(viewer as DockWindow, (viewer as DockWindow).TabStrip as DocumentTabStrip, DockPosition.Right); }
public override void Execute() { try { List <string> _cutfiles = new List <string>(); base.Execute(); RasterClip s = new RasterClip(); BlockDefWithAOI[] envelopes; string inputFilename = TryGetInfoFromActiveView(out envelopes); string outdir = Path.GetDirectoryName(inputFilename); int[] aoiIndex = null; List <BlockDefWithAOI> blockList = new List <BlockDefWithAOI>(); frmImageClip frm = new frmImageClip(_smartSession); if (frm.ShowDialog() == DialogResult.OK) { _cutfiles.AddRange(frm.InputFiles); _cutfiles.AddRange(frm.CustomSelectFiles); BlockDefWithAOI outEnvelope; Size size; frm.GetArgs(out outEnvelope, out size, out outdir, out inputFilename); envelopes = new BlockDefWithAOI[] { outEnvelope }; aoiIndex = frm.GetFeatureAOIIndex(); blockList.AddRange(envelopes); if (aoiIndex != null && aoiIndex.Length != 0) { blockList[0].AOIIndexes = aoiIndex; } } else { return; } if (blockList[0].AOIIndexes == null) { blockList[0].AOIIndexes = _smartSession.SmartWindowManager.ActiveCanvasViewer.AOIProvider.GetIndexes(); } string[] put = s.RasterClipT(inputFilename, blockList.ToArray(), outdir, _smartSession.ProgressMonitorManager.DefaultProgressMonitor, "Cut"); _cutfiles = _cutfiles.Distinct().ToList(); foreach (string file in _cutfiles) { s.RasterClipT(file, blockList.ToArray(), outdir, _smartSession.ProgressMonitorManager.DefaultProgressMonitor, "Cut"); } ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; int[] selectBands = null; List <IRgbProcessor> rgbProcessors = null; if (viewer != null) { ICanvasViewer canViewer = viewer as ICanvasViewer; if (canViewer == null) { return; } IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; if (rd == null || rd.RgbProcessorStack == null) { return; } rgbProcessors = new List <IRgbProcessor>(); foreach (IRgbProcessor processor in rd.RgbProcessorStack.Processors) { rgbProcessors.Add(processor); } rgbProcessors.Reverse(); selectBands = rd.SelectedBandNos; } for (int i = 0; i < put.Length; i++) { OpenFileToWindows(put[i]); if (selectBands == null) { continue; } IRasterDrawing draw = _smartSession.SmartWindowManager.ActiveViewer.ActiveObject as IRasterDrawing; draw.SelectedBandNos = selectBands; if (rgbProcessors != null && rgbProcessors.Count > 0) { draw.RgbProcessorStack.Clear(); foreach (IRgbProcessor processor in rgbProcessors) { draw.RgbProcessorStack.Process(processor); } } } } catch (Exception ex) { MessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public override void Execute() { ISmartViewer viewer = _smartSession.SmartWindowManager.ActiveViewer; if (viewer == null) { return; } ICanvasViewer canViewer = viewer as ICanvasViewer; IRasterDrawing rd = canViewer.ActiveObject as IRasterDrawing; if (rd == null || rd.RgbProcessorStack == null) { return; } List <IRgbProcessor> rgbProcessors = new List <IRgbProcessor>(); foreach (IRgbProcessor processor in rd.RgbProcessorStack.Processors) { rgbProcessors.Add(processor); } rgbProcessors.Reverse(); int[] selectBands = rd.SelectedBandNos; IGeoPanAdjust adjust = rd as IGeoPanAdjust; if (rd == null) { return; } GeoAdjustHelper helper = new GeoAdjustHelper(); string fileName = null; string dblvFileName = null; try { CoordEnvelope envelopeAfter = new CoordEnvelope(rd.Envelope.MinX, rd.Envelope.MinY, rd.Envelope.Width, rd.Envelope.Height); fileName = helper.SaveGeoAdjustByChangeCoordEnvelope(envelopeAfter, rd.DataProviderCopy); //调整对应的判识结果文件 dblvFileName = AdjustDBLVFile(envelopeAfter, rd.DataProviderCopy); adjust.Cancel(); if (File.Exists(fileName)) { OpenFileFactory.Open(fileName); IRasterDrawing draw = _smartSession.SmartWindowManager.ActiveViewer.ActiveObject as IRasterDrawing; draw.SelectedBandNos = selectBands; if (rgbProcessors != null && rgbProcessors.Count > 0) { draw.RgbProcessorStack.Clear(); foreach (IRgbProcessor processor in rgbProcessors) { draw.RgbProcessorStack.Process(processor); } } //生成多通道合成图 LayoutCreater layoutCreater = new LayoutCreater(); string mcsiFileName = layoutCreater.CreateMCSI(_smartSession); if (!string.IsNullOrEmpty(mcsiFileName) && File.Exists(mcsiFileName)) { OpenFileFactory.Open(mcsiFileName); } //生成二值图 if (!string.IsNullOrEmpty(dblvFileName)) { string imgFileName = layoutCreater.CreateDBLVLayout(dblvFileName, draw.FileName); if (!string.IsNullOrEmpty(imgFileName) && File.Exists(imgFileName)) { OpenFileFactory.Open(imgFileName); } } } } catch (Exception e) { MessageBox.Show(e.Message); } if (fileName != null && File.Exists(fileName)) { string adjustTxtDir = AppDomain.CurrentDomain.BaseDirectory + "MonitoringProductArgs\\COMM\\"; if (!Directory.Exists(adjustTxtDir)) { Directory.CreateDirectory(adjustTxtDir); } string txtFileName = Path.Combine(adjustTxtDir, "AdjustSaveFile.txt"); using (StreamWriter sw = new StreamWriter(txtFileName, true, Encoding.Default)) { sw.WriteLine(fileName); if (dblvFileName != null && File.Exists(dblvFileName)) { sw.WriteLine(dblvFileName); } } } }