private void SetLabelSmoothing(SymbolSmoothing smooting) { if (_map == null || _map.MapElements == null) { return; } foreach (IDatasetElement dsElement in _map.MapElements) { IFeatureLayer fLayer = dsElement as IFeatureLayer; if (fLayer == null || fLayer.LabelRenderer == null) { continue; } ILabelRenderer lRenderer = fLayer.LabelRenderer; foreach (ISymbol symbol in lRenderer.Symbols) { if (symbol == null) { continue; } symbol.SymbolSmothingMode = smooting; } } if (_app != null) { _app.RefreshActiveMap(DrawPhase.All); } }
private void tvRenderer_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node is RendererNode) { btnOK.Enabled = true; if (_selectedRenderer != ((RendererNode)e.Node).FeatureRenderer) { //if (_selectedRenderer != null) _selectedRenderer.Release(); _selectedRenderer = ((RendererNode)e.Node).FeatureRenderer; } } else if (e.Node is LabelRendererNode) { btnOK.Enabled = true; if (_selectedLabelRenderer != ((LabelRendererNode)e.Node).LabelRenderer) { //if (_selectedLabelRenderer != null) _selectedRenderer.Release(); _selectedLabelRenderer = ((LabelRendererNode)e.Node).LabelRenderer; } } else { btnOK.Enabled = false; _selectedRenderer = null; } }
public DefaultFormRenderer(IElementRendererManager elementRendererManager, ILabelRenderer labelRenderer, IValidationMessaageRenderer validationMessaageRenderer, ISubmittedMessageRenderer submittedMessageRenderer, SiteSettings siteSettings) { _elementRendererManager = elementRendererManager; _labelRenderer = labelRenderer; _validationMessaageRenderer = validationMessaageRenderer; _submittedMessageRenderer = submittedMessageRenderer; _siteSettings = siteSettings; }
public object Clone() { ILabelRenderer renderer = _renderer.Clone() as ILabelRenderer; ScaleRenderer scaleRenderer = new ScaleRenderer(renderer); scaleRenderer._minScale = _minScale; scaleRenderer._maxScale = _maxScale; return(scaleRenderer); }
public CustomFormRenderer(IElementRendererManager elementRendererManager, ILabelRenderer labelRenderer, IValidationMessaageRenderer validationMessaageRenderer, ISubmittedMessageRenderer submittedMessageRenderer, SiteSettings siteSettings) { _elementRendererManager = elementRendererManager; _labelRenderer = labelRenderer; _validationMessaageRenderer = validationMessaageRenderer; _submittedMessageRenderer = submittedMessageRenderer; _siteSettings = siteSettings; }
private void MakeTree() { PlugInManager compManager = new PlugInManager(); if (_type == RendererType.featureRenderer) { foreach (XmlNode xmlnode in compManager.GetPluginNodes(Plugins.Type.IFeatureRenderer)) { IFeatureRenderer renderer = (IFeatureRenderer)compManager.CreateInstance(xmlnode); if (renderer == null || !renderer.CanRender(_layer, null)) { continue; } TreeNode parent = null; foreach (TreeNode cat in tvRenderer.Nodes) { if (cat.Text == renderer.Category) { parent = cat; break; } } if (parent == null) { parent = new TreeNode(renderer.Category); tvRenderer.Nodes.Add(parent); } TreeNode rNode = new RendererNode(renderer); parent.Nodes.Add(rNode); } } else if (_type == RendererType.labelRenderer) { TreeNode parent = new TreeNode("Label Renderers"); foreach (XmlNode xmlnode in compManager.GetPluginNodes(Plugins.Type.ILabelRenderer)) { ILabelRenderer renderer = (ILabelRenderer)compManager.CreateInstance(xmlnode); if (renderer == null || !renderer.CanRender(_layer, null)) { continue; } parent.Nodes.Add(new LabelRendererNode(renderer)); } tvRenderer.Nodes.Add(parent); } foreach (TreeNode parent in tvRenderer.Nodes) { parent.Expand(); } }
private void SelectRendererItem(ILabelRenderer renderer) { foreach (object item in RendererBox.Items) { if (item is RendererItem && ((RendererItem)item).LabelRenderer == renderer) { RendererBox.SelectedItem = item; break; } } }
public DefaultFormRendererTests() { _formCollection = new FormCollection(); var mockingKernel = new MockingKernel(); MrCMSKernel.OverrideKernel(mockingKernel); _elementRendererManager = A.Fake<IElementRendererManager>(); _labelRenderer= A.Fake<ILabelRenderer>(); _validationMessageRenderer= A.Fake<IValidationMessaageRenderer>(); _submittedMessageRenderer = A.Fake<ISubmittedMessageRenderer>(); _siteSettings = new SiteSettings(); _defaultFormRenderer = new DefaultFormRenderer(_elementRendererManager, _labelRenderer, _validationMessageRenderer,_submittedMessageRenderer, _siteSettings); }
public LabelRendererNode(ILabelRenderer renderer) { _renderer = renderer; if (_renderer != null) { base.Text = renderer.Name; } else { base.Text = "Default"; } }
public object PropertyPanel(ILabelRenderer renderer, IFeatureLayer layer) { _renderer = renderer as SimpleLabelRenderer; if (layer != null) { _fc = layer.FeatureClass; } InitializeComponent(); MakeGUI(); return(panel1); }
public DefaultFormRendererTests() { _formCollection = new FormCollection(); var mockingKernel = new MockingKernel(); MrCMSKernel.OverrideKernel(mockingKernel); _elementRendererManager = A.Fake <IElementRendererManager>(); _labelRenderer = A.Fake <ILabelRenderer>(); _validationMessageRenderer = A.Fake <IValidationMessaageRenderer>(); _submittedMessageRenderer = A.Fake <ISubmittedMessageRenderer>(); _siteSettings = new SiteSettings(); _defaultFormRenderer = new DefaultFormRenderer(_elementRendererManager, _labelRenderer, _validationMessageRenderer, _submittedMessageRenderer, _siteSettings); }
public object PropertyPanel(ILabelRenderer renderer, IFeatureLayer layer) { _renderer = renderer as ChartLabelRenderer; _fc = layer.Class as IFeatureClass; if (_renderer == null || _fc == null) { return(null); } InitializeComponent(); MakeGUI(); return(panel1); }
private void subscribeLabelRenderer() { var labelRenderer = _labelRenderer; if (labelRenderer != null) { labelRenderer.PropertyChanged -= onLabelRendererPropertyChanged; } labelRenderer = _image.CustomRenderer as ILabelRenderer; if (labelRenderer != null) { _customImageSize = labelRenderer.CustomImageSize; _customResolutionFactor = labelRenderer.CustomImageResolutionFactor; labelRenderer.PropertyChanged += onLabelRendererPropertyChanged; } _labelRenderer = labelRenderer; }
public object Clone(IDisplay display) { if (_renderer == null) { return(null); } ILabelRenderer renderer = _renderer.Clone(display) as ILabelRenderer; if (renderer == null) { return(null); } ScaleRenderer scaleRenderer = new ScaleRenderer(renderer); scaleRenderer._minScale = _minScale; scaleRenderer._maxScale = _maxScale; return(scaleRenderer); }
public object Clone(CloneOptions options) { if (_renderer == null) { return(null); } ILabelRenderer renderer = _renderer.Clone(options) as ILabelRenderer; if (renderer == null) { return(null); } ScaleRenderer scaleRenderer = new ScaleRenderer(renderer); scaleRenderer._minScale = _minScale; scaleRenderer._maxScale = _maxScale; return(scaleRenderer); }
static public gView.Framework.Symbology.ILegendGroup LegendGroup(LayerItem layerItem) { if (layerItem == null) { return(null); } List <ILayer> layers = layerItem.TOCElement.Layers; if (layers.Count == 0) { return(null); } ILayer elem = layers[0]; if (!(elem is IFeatureLayer)) { return(null); } LegendGroupGroup legendGroup = new LegendGroupGroup(); ILabelRenderer labelRenderer = ((IFeatureLayer)elem).LabelRenderer; if (labelRenderer is ILegendGroup) { legendGroup.Add((ILegendGroup)labelRenderer); } IFeatureRenderer renderer = ((IFeatureLayer)elem).FeatureRenderer; if (renderer is ILegendGroup) { legendGroup.Add((ILegendGroup)renderer); } return(legendGroup.Count > 0 ? legendGroup : null); }
private void btnDown_Click(object sender, EventArgs e) { if (_selectedItem == null || _selectedItem.LabelRenderer == null || _renderer == null) { return; } ILabelRenderer selectedRenderer = _selectedItem.LabelRenderer; int index = _renderer.Renderers.IndexOf(_selectedItem.LabelRenderer); if (index <= 0) { return; } _renderer.Renderers.Remove(_selectedItem.LabelRenderer); _renderer.Renderers.Insert(Math.Max(0, index - 1), _selectedItem.LabelRenderer); BuildList(); SelectRendererItem(selectedRenderer); }
private void btnProperties_Click(object sender, EventArgs e) { if (_selectedItem == null || _selectedItem.LabelRenderer == null || !(_selectedItem.LabelRenderer is IPropertyPage)) { return; } ILabelRenderer clone = _selectedItem.LabelRenderer.Clone() as ILabelRenderer; if (clone == null) { return; } IPropertyPage page = clone as IPropertyPage; Control panel = page.PropertyPage(_layer) as Control; if (panel != null) { FormGroupRendererProperties dlg = new FormGroupRendererProperties(panel); if (dlg.ShowDialog() == DialogResult.OK) { int index = _renderer.Renderers.IndexOf(_selectedItem.LabelRenderer); if (index != -1) { _renderer.Renderers.RemoveAt(index); _renderer.Renderers.Insert(index, clone); _selectedItem.LabelRenderer = clone; BuildList(); RendererBox.SelectedItem = _selectedItem; } } } }
public AGSTextComponent(ILabelRenderer labelRenderer) { _labelRenderer = labelRenderer; }
async private Task Render(IFeatureLayer layer) { IFeatureRenderer clonedFeatureRenderer = null; ILabelRenderer clonedLabelRenderer = null; GraphicsEngine.Abstraction.IBitmap compositionModeCopyBitmap = null; GraphicsEngine.Abstraction.ICanvas compositionModeCopyCanvas = null, originalCanvas = null; try { _map.FireOnUserInterface(true); if (( layer.FeatureRenderer == null || layer.FeatureRenderer.HasEffect(layer, _map) == false) && ( layer.LabelRenderer == null || _useLabelRenderer == false )) { return; } IFeatureClass fClass = layer.FeatureClass; if (fClass == null) { return; } //IDataset dataset = (IDataset)_map[layer]; //if (dataset == null) return; //if (!(dataset is IFeatureDataset)) return; IGeometry filterGeom = _map.Display.DisplayTransformation.TransformedBounds(_map.Display); //_map.Display.Envelope; if (_map.Display.GeometricTransformer != null) { filterGeom = MapHelper.Project(fClass, _map.Display); } gView.Framework.Data.SpatialFilter filter = new gView.Framework.Data.SpatialFilter(); filter.DatasetCachingContext = _datasetCachingContext; filter.Geometry = filterGeom; filter.AddField(fClass.ShapeFieldName); //filter.FuzzyQuery = true; filter.SpatialRelation = spatialRelation.SpatialRelationMapEnvelopeIntersects; filter.MapScale = _map.Display.mapScale; filter.CancelTracker = _cancelTracker; if (layer.FilterQuery != null) { filter.WhereClause = layer.FilterQuery.WhereClause; if (layer.FilterQuery is IBufferQueryFilter) { ISpatialFilter sFilter = await BufferQueryFilter.ConvertToSpatialFilter(layer.FilterQuery as IBufferQueryFilter); if (sFilter == null) { return; } filter.SpatialRelation = spatialRelation.SpatialRelationIntersects; filter.Geometry = sFilter.Geometry; } if (layer.FilterQuery is ISpatialFilter) { //filter.FuzzyQuery = ((ISpatialFilter)layer.FilterQuery).FuzzyQuery; filter.SpatialRelation = ((ISpatialFilter)layer.FilterQuery).SpatialRelation; filter.Geometry = ((ISpatialFilter)layer.FilterQuery).Geometry; } } // Erst nach dem Clonen anwenden!!! //if (layer.FeatureRenderer != null && layer.FeatureRenderer.HasEffect(layer, _map)) //{ // layer.FeatureRenderer.PrepareQueryFilter(layer, filter); //} //if (layer.LabelRenderer != null && _useLabelRenderer) //{ // layer.LabelRenderer.PrepareQueryFilter(_map.Display, layer, filter); //} IDisplay display = _map; double refScale = display.refScale; #region Layer Clonen IFeatureRenderer renderer = null; ILabelRenderer labelRenderer = null; lock (lockThis) { // Beim Clonen sprerren... // Da sonst bei der Servicemap bei gleichzeitigen Requests // Exception "Objekt wird bereits an anderer Stelle verwendet" auftreten kann! if (layer.FeatureRenderer != null && layer.FeatureRenderer.HasEffect(layer, _map)) { if (layer.RequiresFeatureRendererClone(display)) { renderer = clonedFeatureRenderer = (IFeatureRenderer)layer.FeatureRenderer.Clone( new CloneOptions(display, layer.UseWithRefScale(display), maxRefScaleFactor: layer.MaxRefScaleFactor)); } else { renderer = layer.FeatureRenderer; } } if (layer.LabelRenderer != null && _useLabelRenderer) { if (layer.RequiresLabelRendererClone(display)) { labelRenderer = clonedLabelRenderer = (ILabelRenderer)layer.LabelRenderer.Clone(new CloneOptions(display, layer.UseLabelsWithRefScale(display), maxLabelRefscaleFactor: layer.MaxLabelRefScaleFactor)); } else // Clone with null => simple clone { //display.refScale = 0; labelRenderer = clonedLabelRenderer = (ILabelRenderer)layer.LabelRenderer.Clone(null); //display.refScale = refScale; } } } #endregion #region Prepare filter // Prepare erst auf geclonte renderer anwenden!! (Threadsafe) if (renderer != null && renderer.HasEffect(layer, _map)) { renderer.PrepareQueryFilter(layer, filter); } if (labelRenderer != null && _useLabelRenderer) { labelRenderer.PrepareQueryFilter(_map.Display, layer, filter); } #endregion using (IFeatureCursor fCursor = await fClass.GetFeatures(MapHelper.MapQueryFilter(filter))) { _map.FireOnUserInterface(false); if (fCursor != null) { IFeature feature; if (renderer != null) { renderer.StartDrawing(_map); bool useCompostionModeCopy = layer is IFeatureLayerComposition && ((IFeatureLayerComposition)layer).CompositionMode == FeatureLayerCompositionMode.Copy; if (useCompostionModeCopy) { originalCanvas = _map.Display.Canvas; compositionModeCopyBitmap = GraphicsEngine.Current.Engine.CreateBitmap(_map.Display.Bitmap.Width, _map.Display.Bitmap.Height, GraphicsEngine.PixelFormat.Rgba32); compositionModeCopyCanvas = compositionModeCopyBitmap.CreateCanvas(); compositionModeCopyBitmap.MakeTransparent(); compositionModeCopyBitmap.SetResolution(_map.Display.Bitmap.DpiX, _map.Display.Bitmap.DpiY); ((Display)_map.Display).Canvas = compositionModeCopyCanvas; } while ((feature = await fCursor.NextFeature()) != null) { if (_cancelTracker != null) { if (!_cancelTracker.Continue) { break; } } renderer.Draw(_map, feature); if (labelRenderer != null) { labelRenderer.Draw(_map, feature); } _counter.Counter++; if (_isServiceMap == false) { if (_counter.Counter % 100 == 0) { _map.FireRefreshMapView(); } } } } else if (labelRenderer != null && _cancelTracker.Continue) { while ((feature = await fCursor.NextFeature()) != null) { if (_cancelTracker != null) { if (!_cancelTracker.Continue) { break; } } labelRenderer.Draw(_map, feature); _counter.Counter++; } } if (labelRenderer != null) { labelRenderer.Release(); } if (renderer != null) { renderer.FinishDrawing(_map, _cancelTracker); } if (compositionModeCopyCanvas != null && compositionModeCopyBitmap != null) { originalCanvas.DrawBitmap(compositionModeCopyBitmap, new GraphicsEngine.CanvasRectangle(0, 0, compositionModeCopyBitmap.Width, compositionModeCopyBitmap.Height), new GraphicsEngine.CanvasRectangle(0, 0, compositionModeCopyBitmap.Width, compositionModeCopyBitmap.Height), opacity: (float)Math.Min(1, (100f - ((IFeatureLayerComposition)layer).CompositionModeCopyTransparency) / 100)); } } else { if (fClass is IDebugging && ((IDebugging)fClass).LastException != null) { throw ((IDebugging)fClass).LastException; } throw new Exception("Can't query feature class. Unknown error"); } } } catch (Exception ex) { if (_map is IServiceMap && ((IServiceMap)_map).MapServer != null) { await((IServiceMap)_map).MapServer.LogAsync( ((IServiceMap)_map).Name, "RenderFeatureLayer: " + ((layer != null) ? layer.Title : String.Empty), loggingMethod.error, ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace); } if (_map != null) { _map.AddRequestException(new Exception("RenderFeatureLayerThread: " + ((layer != null) ? layer.Title : String.Empty) + "\n" + ex.Message, ex)); } } finally { if (clonedFeatureRenderer != null) { clonedFeatureRenderer.Release(); } if (clonedLabelRenderer != null) { clonedLabelRenderer.Release(); } if (originalCanvas != null) { ((Display)_map.Display).Canvas = originalCanvas; } if (compositionModeCopyCanvas != null) { compositionModeCopyCanvas.Dispose(); compositionModeCopyCanvas = null; } if (compositionModeCopyBitmap != null) { compositionModeCopyBitmap.Dispose(); compositionModeCopyBitmap = null; } _map.FireOnUserInterface(false); } }
public RendererItem(ILabelRenderer renderer) { _renderer = renderer; }
public AGSTextComponent(ILabelRenderer labelRenderer, IGameEvents events) { _labelRenderer = labelRenderer; _events = events; }
async public Task Render() { ILabelRenderer clonedLabelRenderer = null; try { if (_layer == null || _layer.LabelRenderer == null || _map == null) { return; } IFeatureClass fClass = _layer.FeatureClass; if (fClass == null) { return; } IGeometry filterGeom = _map.Display.Envelope; if (_map.Display.GeometricTransformer != null) { filterGeom = MapHelper.Project(fClass, _map.Display); //filterGeom = (IGeometry)_map.Display.GeometricTransformer.InvTransform2D(filterGeom); } gView.Framework.Data.SpatialFilter filter = new gView.Framework.Data.SpatialFilter(); filter.Geometry = filterGeom; filter.AddField(fClass.ShapeFieldName); filter.SpatialRelation = spatialRelation.SpatialRelationMapEnvelopeIntersects; if (_layer.FilterQuery != null) { filter.WhereClause = _layer.FilterQuery.WhereClause; if (_layer.FilterQuery is ISpatialFilter) { //filter.FuzzyQuery = ((ISpatialFilter)_layer.FilterQuery).FuzzyQuery; filter.SpatialRelation = ((ISpatialFilter)_layer.FilterQuery).SpatialRelation; filter.Geometry = ((ISpatialFilter)_layer.FilterQuery).Geometry; } } #region Clone Layer ILabelRenderer labelRenderer = null; lock (lockThis) { // Beim Clonen sprerren... // Da sonst bei der Servicemap bei gleichzeitigen Requests // Exception "Objekt wird bereits an anderer Stelle verwendet" auftreten kann! //labelRenderer = (ILabelRenderer)_layer.LabelRenderer.Clone(new CloneOptions(_map, maxLabelRefscaleFactor: _layer.MaxLabelRefScaleFactor)); if (_layer.RequiresLabelRendererClone(_map)) { labelRenderer = clonedLabelRenderer = (ILabelRenderer)_layer.LabelRenderer.Clone(new CloneOptions(_map, _layer.UseLabelsWithRefScale(_map), maxLabelRefscaleFactor: _layer.MaxLabelRefScaleFactor)); } else { labelRenderer = clonedLabelRenderer = (ILabelRenderer)_layer.LabelRenderer.Clone(null); } } #endregion #region Prepare Filter labelRenderer.PrepareQueryFilter(_map.Display, _layer, filter); #endregion using (IFeatureCursor fCursor = await fClass.GetFeatures(filter)) { if (fCursor != null) { IFeature feature; while ((feature = await fCursor.NextFeature()) != null) { if (_cancelTracker != null) { if (!_cancelTracker.Continue) { break; } } _counter.Counter++; labelRenderer.Draw(_map, feature); } labelRenderer.Release(); } } } catch (Exception ex) { if (_map is IServiceMap && ((IServiceMap)_map).MapServer != null) { await((IServiceMap)_map).MapServer.LogAsync( ((IServiceMap)_map).Name, "RenderLabelThread:" + ((_layer != null) ? _layer.Title : String.Empty), loggingMethod.error, ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace); } if (_map != null) { if (_map != null) { _map.AddRequestException(new Exception("RenderLabelThread: " + ((_layer != null) ? _layer.Title : String.Empty) + "\n" + ex.Message, ex)); } } } finally { if (clonedLabelRenderer != null) { clonedLabelRenderer.Release(); } } }
public ScaleRenderer(ILabelRenderer renderer) { _renderer = renderer; }
public ScaleRenderer(ILabelRenderer renderer, double minScale, double maxScale) : this(renderer) { _minScale = minScale; _maxScale = maxScale; }