예제 #1
0
        /// <summary>
        ///     Gets the visible layers.
        /// </summary>
        /// <param name="map">The map.</param>
        /// <returns>Returns a <see cref="SearchablePackage"/> representing the package.</returns>
        private SearchablePackage GetVisibleLayers(IMap map)
        {
            SearchablePackage package = new SearchablePackage("<Visible Layers>");

            foreach (var layer in map.GetVisibleLayers())
            {
                var item = layer.AsSearchableItem();
                package.Items.Add(item);
            }

            return(package);
        }
예제 #2
0
        /// <summary>
        ///     Gets the searchable items based on the map.
        /// </summary>
        /// <param name="map">The map.</param>
        /// <returns>
        ///     Returns a <see cref="IEnumerable{Searchable}" /> representing the searchable items in the map.
        /// </returns>
        private IEnumerable <Searchable> GetLayers(IMap map)
        {
            var items = new List <Searchable>();

            foreach (var node in map.GetHierarchy())
            {
                SearchablePackage package = null;
                IEnumerable <IHierarchy <ILayer> > children;

                if (node.Children.Any())
                {
                    package = new SearchablePackage(node.Value.Name);
                    items.Add(package);

                    children = node.Children;
                }
                else
                {
                    children = new[] { node };
                }

                foreach (var child in children)
                {
                    var annotationLayer = child.Value as IAnnotationSublayer;
                    if (annotationLayer != null)
                    {
                        continue;
                    }

                    var featureLayer = child.Value as IFeatureLayer;
                    if (featureLayer == null)
                    {
                        continue;
                    }

                    var item = featureLayer.AsSearchableItem();

                    if (package != null)
                    {
                        package.Items.Add(item);
                    }
                    else
                    {
                        items.Add(item);
                    }
                }
            }

            return(items);
        }
예제 #3
0
        /// <summary>
        ///     Gets the searchable package.
        /// </summary>
        /// <returns>Returns a <see cref="SearchablePackage" /> representing the package.</returns>
        private SearchablePackage GetSearchablePackage()
        {
            var items  = this.GetSearchableItems();
            var fields = this.GetCheckedFields();

            if (fields.Any())
            {
                foreach (var item in items)
                {
                    var contains = item.Fields.Where(fields.Contains).ToList();
                    if (contains.Any())
                    {
                        item.Fields.Remove(f => !contains.Contains(f));
                    }
                }
            }

            var package = new SearchablePackage(this.tvwPackages.SelectedNode.Text, items);

            return(package);
        }