Ejemplo n.º 1
0
        //---------------------------------------------------------------------------------
        private void Picture_SetSpeciesAndSubSpecies(TaxonTreeNode _species, int _previousImageIndex)
        {
            _CurrentTaxonIsSpecies = true;

            TaxonBigVignette.Visible      = true;
            TaxonBigVignette.CurrentTaxon = _species;
            TaxonBigVignette.Tag          = _species;

            List <TaxonTreeNode> speciesList = new List <TaxonTreeNode>();

            _species.GetAllChildrenWithImageRecursively(speciesList);

            //if (TaxonUtils.CurrentFilters.HasFilter(TaxonFilters.FilterAlive))
            //    speciesList = speciesList.Where(node => node.Desc.IsExtinct).ToList();

            if (speciesList.Contains(_species))
            {
                speciesList.Remove(_species);
            }
            else
            {
                _species = null;
            }

            _MultiImages.SetLists(speciesList, _species);
            _MultiImages.ScrollMode_UpdateOutputImages();
            _MultiImages.Visible = true;
        }
Ejemplo n.º 2
0
        //---------------------------------------------------------------------------------
        private void Pictures_SetFamily(TaxonTreeNode _family, TaxonTreeNode _previousSelectedTaxon = null, List <TaxonTreeNode> _previousDisplayedTaxons = null)
        {
            _CurrentTaxonIsSpecies = false;

            TaxonBigVignette.Visible      = true;
            TaxonBigVignette.CurrentTaxon = _family;
            TaxonBigVignette.Tag          = _family;

            if (DisplayModeForOthers == DisplayModeForOthersEnum.AllWithScroll)
            {
                List <TaxonTreeNode> speciesList = new List <TaxonTreeNode>();
                _family.GetAllChildrenWithImageRecursively(speciesList);

                //if (TaxonUtils.CurrentFilters.HasFilter(TaxonFilters.FilterAlive))
                //    speciesList = speciesList.Where(node => node.Desc.IsExtinct).ToList();

                _MultiImages.SetOldList(speciesList);
                _MultiImages.ScrollMode_UpdateOutputImages();
            }
            else
            {
                List <TaxonTreeNode> displayedTaxon = null;
                if (_previousSelectedTaxon != null)
                {
                    if (_previousSelectedTaxon == _family)
                    {
                        displayedTaxon = _previousDisplayedTaxons;
                    }

                    /*else if (_previousSelectedTaxon.Desc.HasImage && _previousSelectedTaxon.IsChildOf(_family))
                     *  displayedTaxon = new List<TaxonTreeNode>() { _previousSelectedTaxon };*/
                }

                _MultiImages.ListTaxons = null;
                int newChildrenNeeded = _NumberInMultiImageControl;
                if (displayedTaxon != null)
                {
                    newChildrenNeeded -= displayedTaxon.Count;
                }

                List <TaxonTreeNode> newChildren = null;
                if (newChildrenNeeded > 0)
                {
                    // build list of taxon with images
                    List <TaxonTreeNode> speciesList = new List <TaxonTreeNode>();

                    _family.GetAllChildrenWithImageRecursively(speciesList);
                    //if (TaxonUtils.CurrentFilters.HasFilter(TaxonFilters.FilterAlive))
                    //    speciesList = speciesList.Where(node => node.Desc.IsExtinct).ToList();

                    if (displayedTaxon != null)
                    {
                        foreach (TaxonTreeNode node in displayedTaxon)
                        {
                            speciesList.Remove(node);
                        }
                    }

                    // get random taxons, sort and fill it with null if needed
                    newChildren = TaxonUtils.RandomTaxon(speciesList, newChildrenNeeded);
                    //newChildren.Sort(new Comparison<TaxonTreeNode>(TaxonTreeNode.Compare));
                }

                if (displayedTaxon != null)
                {
                    if (newChildren != null)
                    {
                        displayedTaxon.AddRange(newChildren);
                    }
                    newChildren = displayedTaxon;
                }
                newChildren.Sort(new Comparison <TaxonTreeNode>(TaxonTreeNode.Compare));
                while (newChildren.Count < _NumberInMultiImageControl)
                {
                    newChildren.Add(null);
                }

                _MultiImages.SetTaxonList(newChildren);
            }
            _MultiImages.Visible = true;
        }