Exemplo n.º 1
0
 public void ObjSelectionChangedListener(object sender, ObjSelectionChangedEvent e)
 {
     try
     {
         if (e.addObjs != null)
         {
             foreach (string objdef in e.addObjs.Keys)
             {
                 string layerID = Globals.project.objsDefIndex[objdef].definition.GISLayerName;
                 //临时,接口没有返回GISLayerName
                 if (layerID == null)
                 {
                     layerID = e.addObjs[objdef].FirstOrDefault().parent.definition.Type;
                 }
                 highlightObjects(e.addObjs[objdef], layerID, true);
             }
         }
         if (e.removeObjs != null)
         {
             foreach (string objdef in e.removeObjs.Keys)
             {
                 string layerID = Globals.project.objsDefIndex[objdef].definition.GISLayerName;
                 if (layerID == null)
                 {
                     layerID = e.addObjs[objdef].FirstOrDefault().parent.definition.Type;
                 }
                 highlightObjects(e.removeObjs[objdef], layerID, false);
             }
         }
     }
     catch (Exception ex)
     {
     }
 }
Exemplo n.º 2
0
        // Summary:
        //     Object selection event listener (function).
        //     It will highlight selected objects and unhighlight
        //     deselected objects.
        public void objSelectionChangedListener(object sender,
                                                ObjSelectionChangedEvent e)
        {
            if (sender == this)
            {
                return;
            }

            if (e.addObjs != null)
            {
                foreach (string objdef in e.addObjs.Keys)
                {
                    string layerID = Globals.project.objsDefIndex[objdef].definition.GISLayerName;
                    highlightObjects(e.addObjs[layerID], layerID, true);
                }
            }
            if (e.removeObjs != null)
            {
                foreach (string objdef in e.removeObjs.Keys)
                {
                    string layerID = Globals.project.objsDefIndex[objdef].definition.GISLayerName;
                    highlightObjects(e.removeObjs[layerID], layerID, false);
                }
            }
        }
 // Summary:
 //     Object selection event listener (function).
 //     It will broadcast the event to views and datagrid.
 public void objSelectionChangedListener(object sender,
                                         ObjSelectionChangedEvent e)
 {
     if (objSelectionChangedTrigger != null)
     {
         objSelectionChangedTrigger(sender, e);
     }
 }
Exemplo n.º 4
0
        public async Task <bool> selectByPoint(System.Windows.Point screenPoint)
        {
            bool             success = false;
            DGObject         obj     = null;
            IS3GraphicsLayer gLayer  = null;

            //foreach (Layer layer in _map.Layers)
            //{
            //    gLayer = layer as IS3GraphicsLayer;
            //    if (!isLayerSelectable(gLayer))
            //        continue;
            //    obj = await gLayer.selectObjectByPoint(screenPoint, mapView);
            //    if (obj != null)
            //    {
            //        break;
            //    }
            //}
            for (int i = _map.Layers.Count - 1; i >= 0; i--)
            {
                Layer layer = _map.Layers[i];
                gLayer = layer as IS3GraphicsLayer;
                if (!isLayerSelectable(gLayer))
                {
                    continue;
                }
                obj = await gLayer.selectObjectByPoint(screenPoint, mapView);

                if (obj != null)
                {
                    break;
                }
            }
            if (obj != null && ObjSelectionChangedHandler != null)
            {
                ObjSelectionChangedEvent args = new ObjSelectionChangedEvent();
                args.addObjs = new Dictionary <string, List <DGObject> >();
                List <DGObject> objs = new List <DGObject>();
                objs.Add(obj);
                args.addObjs.Add(obj.parent.definition.Name, objs);
                ObjSelectionChangedHandler(this, args);
                success = true;
            }
            return(success);
        }
Exemplo n.º 5
0
        public async void selectByRect()
        {
            if (Globals.isThreadUnsafe())
            {
                Globals.application.Dispatcher.Invoke(new Action(() =>
                {
                    selectByRect();
                }));
                return;
            }

            Geometry geom = await _mapView.Editor.RequestShapeAsync(DrawShape.Rectangle);

            if (_srEMap != null)
            {
                geom = GeometryEngine.Project(geom, _srEMap);
            }
            IGeometry rect = IS3GeometryEngine.fromGeometry(geom);

            ObjSelectionChangedEvent args = new ObjSelectionChangedEvent();

            args.addObjs = new Dictionary <string, List <DGObject> >();

            foreach (Layer layer in _map.Layers)
            {
                IGraphicsLayer gLayer = layer as IGraphicsLayer;
                if (!isLayerSelectable(gLayer))
                {
                    continue;
                }
                List <DGObject> objs = gLayer.selectObjectsByRect(rect);
                if (objs.Count > 0)
                {
                    args.addObjs.Add(gLayer.ID, objs);
                }
            }

            if (ObjSelectionChangedHandler != null)
            {
                ObjSelectionChangedHandler(this, args);
            }
        }
Exemplo n.º 6
0
        private void DGObjectDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (DGObjectDataGrid.IsKeyboardFocusWithin == false)
            {
                return;
            }
            List <DGObject> addedObjs   = new List <DGObject>();
            List <DGObject> removedObjs = new List <DGObject>();
            DGObject        selectOne   = DGObjectDataGrid.SelectedItem as DGObject;

            addedObjs.Add(selectOne);
            if (_lastObj != null)
            {
                removedObjs.Add(_lastObj);
            }
            if (objSelectionChangedTrigger != null)
            {
                Dictionary <string, List <DGObject> > addedObjsDict   = null;
                Dictionary <string, List <DGObject> > removedObjsDict = null;
                if (addedObjs.Count > 0)
                {
                    addedObjsDict = new Dictionary <string, List <DGObject> >();
                    addedObjsDict[selectOne.parent.definition.Name] = addedObjs;
                }
                if (removedObjs.Count > 0)
                {
                    removedObjsDict = new Dictionary <string, List <DGObject> >();
                    removedObjsDict[_lastObj.parent.definition.Name] = removedObjs;
                }
                ObjSelectionChangedEvent args =
                    new ObjSelectionChangedEvent();
                args.addObjs    = addedObjsDict;
                args.removeObjs = removedObjsDict;
                objSelectionChangedTrigger(this, args);
            }
            _lastObj = selectOne;
        }
Exemplo n.º 7
0
 public void ObjSelectionChangedListener(object sender, ObjSelectionChangedEvent e)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 8
0
 public void ObjSelectionChangedListener(object sender, ObjSelectionChangedEvent e)
 {
 }