private static void SetFeatureEditorForNetworkCoverage(INetworkCoverageGroupLayer networkCoverageGroupLayer)
        {
            ISnapRule networkCoverageSnapRule = new SnapRule
            {
                Criteria = (layer, feature) => feature is IBranch && ((IBranch)feature).Network == networkCoverageGroupLayer.NetworkCoverage.Network,
                SnapRole = SnapRole.FreeAtObject,
                Obligatory = true,
                PixelGravity = 40,
                NewFeatureLayer = networkCoverageGroupLayer.LocationLayer
            };

            networkCoverageGroupLayer.FeatureEditor = new NetworkLocationFeatureEditor(networkCoverageGroupLayer);

            var locationFeatureEditor = new NetworkLocationFeatureEditor(networkCoverageGroupLayer) { SnapRules = { networkCoverageSnapRule } };

            networkCoverageGroupLayer.LocationLayer.FeatureEditor = locationFeatureEditor;
        }
        private static void SetFeatureEditorForNetworkCoverage(INetworkCoverageGroupLayer networkCoverageGroupLayer)
        {
            ISnapRule networkCoverageSnapRule = new SnapRule
            {
                Criteria        = (layer, feature) => feature is IBranch && ((IBranch)feature).Network == networkCoverageGroupLayer.NetworkCoverage.Network,
                SnapRole        = SnapRole.FreeAtObject,
                Obligatory      = true,
                PixelGravity    = 40,
                NewFeatureLayer = networkCoverageGroupLayer.LocationLayer
            };

            networkCoverageGroupLayer.FeatureEditor = new NetworkLocationFeatureEditor(networkCoverageGroupLayer);

            var locationFeatureEditor = new NetworkLocationFeatureEditor(networkCoverageGroupLayer)
            {
                SnapRules = { networkCoverageSnapRule }
            };

            networkCoverageGroupLayer.LocationLayer.FeatureEditor = locationFeatureEditor;
        }
        /// <summary>
        /// Generates theme for route type network coverage layers.
        /// </summary>
        /// <param name="groupLayer"></param>
        /// <param name="color"></param>
        public static void SetupRouteLayerTheme(INetworkCoverageGroupLayer groupLayer, Color?color)
        {
            if (null == color)
            {
                color = Color.FromArgb(100, Color.Green);
            }

            // customize theme
            var segmentTheme  = ThemeFactory.CreateSingleFeatureTheme(groupLayer.SegmentLayer.Style.GeometryType, (Color)color, 10);
            var locationTheme = ThemeFactory.CreateSingleFeatureTheme(groupLayer.LocationLayer.Style.GeometryType, (Color)color, 15);

            groupLayer.SegmentLayer.Theme  = segmentTheme;
            groupLayer.LocationLayer.Theme = locationTheme;

            var locationStyle = (VectorStyle)locationTheme.DefaultStyle;

            locationStyle.Fill      = Brushes.White;
            locationStyle.Shape     = ShapeType.Ellipse;
            locationStyle.ShapeSize = 15;

            var segmentStyle = (VectorStyle)segmentTheme.DefaultStyle;

            segmentStyle.Line.EndCap = LineCap.ArrowAnchor;
        }
 public NetworkLocationFeatureEditor(INetworkCoverageGroupLayer networkCoverageGroupLayer)
 {
     this.networkCoverageGroupLayer = networkCoverageGroupLayer;
 }
 public NetworkLocationFeatureEditor(INetworkCoverageGroupLayer networkCoverageGroupLayer)
 {
     this.networkCoverageGroupLayer = networkCoverageGroupLayer;
 }
        /// <summary>
        /// Generates theme for route type network coverage layers.
        /// </summary>
        /// <param name="groupLayer"></param>
        /// <param name="color"></param>
        public static void SetupRouteLayerTheme(INetworkCoverageGroupLayer groupLayer, Color? color)
        {
            if (null == color)
            {
                color = Color.FromArgb(100, Color.Green);
            }

            // customize theme
            var segmentTheme = ThemeFactory.CreateSingleFeatureTheme(groupLayer.SegmentLayer.Style.GeometryType, (Color)color, 10);
            var locationTheme = ThemeFactory.CreateSingleFeatureTheme(groupLayer.LocationLayer.Style.GeometryType, (Color)color, 15);

            groupLayer.SegmentLayer.Theme = segmentTheme;
            groupLayer.LocationLayer.Theme = locationTheme;

            var locationStyle = (VectorStyle)locationTheme.DefaultStyle;
            locationStyle.Fill = Brushes.White;
            locationStyle.Shape = ShapeType.Ellipse;
            locationStyle.ShapeSize = 15;

            var segmentStyle = (VectorStyle)segmentTheme.DefaultStyle;
            segmentStyle.Line.EndCap = LineCap.ArrowAnchor;
        }