示例#1
0
        public void GroupLayerCloneTest()
        {
            var mocks = new MockRepository();
            var map = mocks.StrictMock<Map>();
            map.Expect(m => m.IsDisposing).Return(false).Repeat.Any();

            var layer1 = mocks.DynamicMock<ILayer>();
            var layer1Clone = mocks.DynamicMock<ILayer>();
            layer1.Expect(l => l.Clone()).Return(layer1Clone).Repeat.Once();

            mocks.ReplayAll();

            var originalGroupLayer = new GroupLayer("original");
            originalGroupLayer.Map = map;
            originalGroupLayer.Layers.AddRange(new[]{layer1});
            originalGroupLayer.HasReadOnlyLayersCollection = true;

            var clone = (GroupLayer) originalGroupLayer.Clone();

            Assert.AreEqual("original", clone.Name);
            Assert.IsNull(clone.Map);
            Assert.IsTrue(clone.HasReadOnlyLayersCollection);

            mocks.VerifyAll();
        }
示例#2
0
        public void ClearSelectionOnParentGroupLayerRemove()
        {
            var featureProvider = new DataTableFeatureProvider();
            featureProvider.Add(new WKTReader().Read("POINT(0 0)"));
            var layer = new VectorLayer { DataSource = featureProvider };
            var groupLayer = new GroupLayer { Layers = { layer } };

            using (var mapControl = new MapControl { Map = { Layers = { groupLayer } }, AllowDrop = false })
            {
                var selectTool = mapControl.SelectTool;

                selectTool.Select(featureProvider.Features.Cast<IFeature>());

                WindowsFormsTestHelper.Show(mapControl);

                mapControl.Map.Layers.Remove(groupLayer);

                mapControl.WaitUntilAllEventsAreProcessed();

                selectTool.Selection
                    .Should("selection is cleared on layer remove").Be.Empty();
            }

            WindowsFormsTestHelper.CloseAll();
        }
示例#3
0
 public void MutatingAGroupLayerWithHasReadonlyLayerCollectionThrows()
 {
     var layerGroup = new GroupLayer {HasReadOnlyLayersCollection = true};
     var childLayer = new VectorLayer();
     layerGroup.Layers.Add(childLayer);
     
 }
示例#4
0
        /// <summary>
        /// Clones the layer
        /// </summary>
        /// <returns>cloned object</returns>
        public override object Clone()
        {
            var clonedLayerGroup = new GroupLayer(name.Clone() as string);

            foreach (var layer in Layers)
            {
                var layerToAdd = layer.Clone() as Layer;
                clonedLayerGroup.Layers.Add(layerToAdd);
            }
            return(clonedLayerGroup);
        }
示例#5
0
 public void EnablingChildLayerBubblesOnePropertyChangedEvent()
 {
     //this is needed to let the mapcontrol refresh see issue 2749
     int callCount = 0;
     var layerGroup = new GroupLayer();
     var childLayer = new VectorLayer();
     layerGroup.Layers.Add(childLayer);
     ((INotifyPropertyChanged)layerGroup).PropertyChanged += (sender, args) => callCount++;
     childLayer.Visible = false;
     
     Assert.AreEqual(1,callCount);
 }
示例#6
0
        public void MutatingANestedGroupLayerWhenParentHasReadonlyLayerCollectionDoesNotThrow()
        {
            var layerGroup = new GroupLayer();
            var childGroupLayer = new GroupLayer();
            var childLayer = new VectorLayer();
            layerGroup.Layers.Add(childGroupLayer);

            layerGroup.HasReadOnlyLayersCollection = true;

            childGroupLayer.Layers.Add(childLayer); //no exception!

            Assert.AreEqual(1, childGroupLayer.Layers.Count);
        }
示例#7
0
        public void CanDeleteAndMoveDependsOnGroupLayerReadOnlyAndFeatureItself()
        {
            var map = new Map();
            var groupLayer1 = new GroupLayer();
            var groupLayer2 = new GroupLayer();
            var layer = new VectorLayer();
            groupLayer1.Layers.Add(groupLayer2);
            groupLayer2.Layers.Add(layer);
            map.Layers.Add(groupLayer1);

            var editor = new TestFeatureInteractor(layer, null, null, null) { IsEditable = false };

            Assert.IsFalse(editor.AllowDeletion());
            Assert.IsFalse(editor.AllowMove());

            groupLayer1.ReadOnly = true;

            Assert.IsFalse(editor.AllowDeletion());
            Assert.IsFalse(editor.AllowMove());
        }
示例#8
0
        public void IsLegendBigEnoughForContent()
        {
            var mapControl = new MapControl();

            var groupLayer = new GroupLayer("Group");
            var sublayer = new GroupLayer("Subgroup");
            var subsublayer = new GroupLayer("Subsubgroup");
            var subsubsublayer = new GroupLayer("Subsubsubgroup");
            var subsubsubsublayer = new GroupLayer("Subsubsubsubgroup");
            var vectorLayer = new VectorLayer("Very long layer name");
            vectorLayer.DataSource = new DataTableFeatureProvider("POINT(50 50)");
            subsubsubsublayer.Layers.Add(vectorLayer);
            subsubsublayer.Layers.Add(subsubsubsublayer);
            subsublayer.Layers.Add(subsubsublayer);
            sublayer.Layers.Add(subsublayer);
            groupLayer.Layers.Add(sublayer);
            mapControl.Map.Layers.Add(groupLayer);

            mapControl.LegendTool.Visible = true;

            WindowsFormsTestHelper.ShowModal(mapControl);
        }
示例#9
0
        public void BringForward()
        {
            var mocks = new MockRepository();

            var groupLayer = new GroupLayer();
            var layer1 = mocks.Stub<ILayer>();
            var layer2 = mocks.Stub<ILayer>();
            var layer3 = mocks.Stub<ILayer>();
            var layer4 = mocks.Stub<ILayer>();
            var layer5 = mocks.Stub<ILayer>();

            mocks.ReplayAll();

            var map = new Map();

            map.Layers.AddRange(new[] { groupLayer, layer4, layer5 });
            groupLayer.Layers.AddRange(new[] { layer1, layer2, layer3 });

            layer5.RenderOrder = 0;

            layer1.RenderOrder = 1;
            layer3.RenderOrder = 2;
            layer2.RenderOrder = 4;

            layer4.RenderOrder = 5;

            map.BringForward(layer3);

            Assert.AreEqual(0, layer5.RenderOrder);
            Assert.AreEqual(2, layer1.RenderOrder);
            Assert.AreEqual(1, layer3.RenderOrder);
            Assert.AreEqual(3, layer2.RenderOrder);
            Assert.AreEqual(4, layer4.RenderOrder);
        }
示例#10
0
        public void SendToBack()
        {
            var mocks = new MockRepository();

            var groupLayer = new GroupLayer();
            var layer1 = mocks.Stub<ILayer>();
            var layer2 = mocks.Stub<ILayer>();
            var layer3 = mocks.Stub<ILayer>();
            var layer4 = mocks.Stub<ILayer>();

            mocks.ReplayAll();

            var map = new Map();
            map.Layers.AddRange(new[] { groupLayer, layer4 });
            groupLayer.Layers.AddRange(new[] { layer1, layer2, layer3 });

            layer4.RenderOrder = 5;

            layer1.RenderOrder = 1;
            layer3.RenderOrder = 2;
            layer2.RenderOrder = 4;

            map.SendToBack(groupLayer);

            Assert.AreEqual(1, layer1.RenderOrder);
            Assert.AreEqual(3, layer2.RenderOrder);
            Assert.AreEqual(2, layer3.RenderOrder);
            Assert.AreEqual(0, layer4.RenderOrder);
        }
示例#11
0
        public void GetLayerByFeature()
        {
            var map = new Map();
            var groupLayer1 = new GroupLayer();
            var groupLayer2 = new GroupLayer();
            var childLayer1 = new VectorLayer();
            var childLayer2 = new VectorLayer{ Visible = false };
            var feature = new Feature();

            map.Layers.Add(groupLayer1);
            groupLayer1.Layers.Add(childLayer1);
            groupLayer1.Layers.Add(groupLayer2);
            groupLayer2.Layers.Add(childLayer2);

            Assert.IsNull(map.GetLayerByFeature(feature));
            
            childLayer2.DataSource = new FeatureCollection
                                        {
                                            Features = new List<Feature> { feature },
                                            FeatureType = typeof (Feature)
                                        };

            Assert.AreSame(childLayer2, map.GetLayerByFeature(feature), "Should retrieved invisible layer.");

            childLayer1.DataSource = new FeatureCollection
                                         {
                                             Features = new List<Feature> {feature},
                                             FeatureType = typeof (Feature)
                                         };

            Assert.AreSame(childLayer1, map.GetLayerByFeature(feature), "Should retrieve childLayer1 as it's first in the collection.");
        }
示例#12
0
        public void GetAllVisibleLayersWithGroupLayer()
        {
            var map = new Map();
            var groupLayer = new GroupLayer();
            groupLayer.Visible = false;
            var nestedLayer = new VectorLayer();
            nestedLayer.Visible = true;
            groupLayer.Layers.Add(nestedLayer);

            var vectorLayer = new VectorLayer();
            map.Layers = new EventedList<ILayer> { groupLayer, vectorLayer };

            Assert.AreEqual(new ILayer[] { vectorLayer }, map.GetAllVisibleLayers(true).ToArray());
        }
示例#13
0
        public void GetGroupLayerContainingLayer()
        {
            var map = new Map();
            var groupLayer = new GroupLayer();
            var childLayer = new VectorLayer();

            map.Layers.Add(groupLayer);
            groupLayer.Layers.Add(childLayer);

            Assert.AreEqual(groupLayer, map.GetGroupLayerContainingLayer(childLayer));
            //the grouplayer is not part of a grouplayer
            Assert.IsNull(map.GetGroupLayerContainingLayer(groupLayer));
        }