Exemplo n.º 1
0
        public void SetImageAsSecondary(TaxonImageDesc _imageDesc, bool _secondary = true)
        {
            if (_imageDesc == null)
            {
                return;
            }
            if (_imageDesc.Secondary == _secondary)
            {
                return;
            }

            List <TaxonImageDesc> listFrom = ListImageDesc(_imageDesc.CollectionId, _imageDesc.Secondary);
            List <TaxonImageDesc> listTo   = ListImageDesc(_imageDesc.CollectionId, !_imageDesc.Secondary);
            int index = listFrom.IndexOf(_imageDesc);

            if (index == -1)
            {
                return;
            }
            _imageDesc.StartUseTempName(this);
            listFrom.Remove(_imageDesc);
            _imageDesc.Secondary = _secondary;
            listTo.Add(_imageDesc);
            ReindexAndReorderImages(listFrom);
            ReindexAndReorderImages(listTo);
        }
Exemplo n.º 2
0
        public bool CanChangeIndexToStart(TaxonImageDesc _imageDesc)
        {
            if (_imageDesc == null)
            {
                return(false);
            }
            List <TaxonImageDesc> list = ListImageDesc(_imageDesc.CollectionId, _imageDesc.Secondary);

            return(list.IndexOf(_imageDesc) > 0);
        }
Exemplo n.º 3
0
        public bool CanChangeIndexToEnd(TaxonImageDesc _imageDesc)
        {
            if (_imageDesc == null)
            {
                return(false);
            }
            List <TaxonImageDesc> list = ListImageDesc(_imageDesc.CollectionId, _imageDesc.Secondary);
            int index = list.IndexOf(_imageDesc);

            return(index != -1 && index < list.Count - 1);
        }
Exemplo n.º 4
0
        public void ChangeIndexToEnd(TaxonImageDesc _imageDesc)
        {
            if (_imageDesc == null)
            {
                return;
            }
            List <TaxonImageDesc> list = ListImageDesc(_imageDesc.CollectionId, _imageDesc.Secondary);
            int index = list.IndexOf(_imageDesc);

            if (index == -1 || index == list.Count - 1)
            {
                return;
            }
            list.RemoveAt(index);
            list.Add(_imageDesc);
            ReindexAndReorderImages(list);
        }
Exemplo n.º 5
0
        public void ChangeIndexToNext(TaxonImageDesc _imageDesc)
        {
            if (_imageDesc == null)
            {
                return;
            }
            List <TaxonImageDesc> list = ListImageDesc(_imageDesc.CollectionId, _imageDesc.Secondary);
            int index = list.IndexOf(_imageDesc);

            if (index == 0)
            {
                return;
            }
            list.RemoveAt(index);
            list.Insert(index - 1, _imageDesc);
            ReindexAndReorderImages(list);
        }
Exemplo n.º 6
0
        public void DeleteImage(TaxonImageDesc _imageDesc, bool _rename)
        {
            if (_imageDesc.IsALink)
            {
                return;
            }
            string path = _imageDesc.GetPath(this);

            if (File.Exists(path))
            {
                File.Delete(path);
            }
            Images.Remove(_imageDesc);

            if (!_rename)
            {
                return;
            }
            foreach (TaxonImageDesc desc in Images)
            {
                if (desc.CollectionId != _imageDesc.CollectionId)
                {
                    continue;
                }
                if (desc.Secondary != _imageDesc.Secondary)
                {
                    continue;
                }
                if (desc.Index <= _imageDesc.Index)
                {
                    continue;
                }
                desc.ChangeIndexAndRenameFile(this, desc.Index - 1);
            }
            UpdateAvailableImages();
            TaxonImages.Manager.Clear();
            Controls.TaxonControlList.OnAvailableImagesChanged();
            Controls.TaxonControlList.OnReselectTaxon();
        }
Exemplo n.º 7
0
        //---------------------------------------------------------------------------------
        public void AddImage(Image _image)
        {
            if (_image == null)
            {
                return;
            }

            NewImage dlg = new NewImage(Edited, _image);

            // try creating default image (faster create image without UI ... )
            if ((ModifierKeys & Keys.Shift) == 0 && dlg.CreateWithoutUI())
            {
                taxonListImage1.UpdateUI();
            }
            else if (dlg.ShowDialog() == DialogResult.OK)
            {
                taxonListImage1.UpdateUI();
                TaxonImageDesc imageDesc = dlg.GetImageDesc();
                if (imageDesc != null)
                {
                    taxonListImage1.SetImage(imageDesc);
                }
            }
        }
Exemplo n.º 8
0
        public static TaxonDesc LoadBin(BinaryReader _br, uint _version)
        {
            if (_version == 1)
            {
                TaxonDesc taxon = new TaxonDesc
                {
                    Name                    = _br.ReadString(),
                    HasSound                = _br.ReadBoolean(),
                    FrenchName              = _br.ReadString(),
                    ClassicRank             = (ClassicRankEnum)_br.ReadUInt32(),
                    Age                     = _br.ReadUInt32(),
                    RelativeGeneticDistance = _br.ReadSingle(),
                    OTTID                   = _br.ReadUInt32()
                };

                uint imageNumber = _br.ReadUInt32();
                if (imageNumber != 0)
                {
                    taxon.Images = new List <TaxonImageDesc>((int)imageNumber);
                    for (uint i = 0; i < imageNumber; i++)
                    {
                        TaxonImageDesc image = new TaxonImageDesc
                        {
                            CollectionId = _br.ReadInt32(),
                            Secondary    = _br.ReadBoolean(),
                            Index        = _br.ReadInt32()
                        };
                        taxon.Images.Add(image);
                    }
                }

                return(taxon);
            }

            if (_version == 2)
            {
                TaxonDesc taxon = new TaxonDesc
                {
                    Name                    = _br.ReadString(),
                    Flags                   = _br.ReadUInt32(),
                    HasSound                = _br.ReadBoolean(),
                    FrenchName              = _br.ReadString(),
                    ClassicRank             = (ClassicRankEnum)_br.ReadUInt32(),
                    Age                     = _br.ReadUInt32(),
                    RelativeGeneticDistance = _br.ReadSingle(),
                    OTTID                   = _br.ReadUInt32()
                };

                uint imageNumber = _br.ReadUInt32();
                if (imageNumber != 0)
                {
                    taxon.Images = new List <TaxonImageDesc>((int)imageNumber);
                    for (uint i = 0; i < imageNumber; i++)
                    {
                        TaxonImageDesc image = new TaxonImageDesc
                        {
                            CollectionId = _br.ReadInt32(),
                            Secondary    = _br.ReadBoolean(),
                            Index        = _br.ReadInt32()
                        };
                        taxon.Images.Add(image);
                    }
                }

                return(taxon);
            }

            if (_version == 3)
            {
                TaxonDesc taxon = new TaxonDesc
                {
                    Name = _br.ReadString()
                };

                if (_br.ReadUInt32() != 0)
                {
                    /*taxon.AlternativeNames = */ _br.ReadString();
                }

                taxon.Flags                   = _br.ReadUInt32();
                taxon.HasSound                = _br.ReadBoolean();
                taxon.FrenchName              = _br.ReadString();
                taxon.ClassicRank             = (ClassicRankEnum)_br.ReadUInt32();
                taxon.Age                     = _br.ReadUInt32();
                taxon.RelativeGeneticDistance = _br.ReadSingle();
                taxon.OTTID                   = _br.ReadUInt32();

                uint imageNumber = _br.ReadUInt32();
                if (imageNumber != 0)
                {
                    taxon.Images = new List <TaxonImageDesc>((int)imageNumber);
                    for (uint i = 0; i < imageNumber; i++)
                    {
                        TaxonImageDesc image = new TaxonImageDesc
                        {
                            CollectionId = _br.ReadInt32(),
                            Secondary    = _br.ReadBoolean(),
                            Index        = _br.ReadInt32()
                        };
                        taxon.Images.Add(image);
                    }
                }

                return(taxon);
            }

            if (_version == 4)
            {
                TaxonDesc taxon = new TaxonDesc
                {
                    Name                    = _br.ReadString(),
                    Flags                   = _br.ReadUInt32(),
                    HasSound                = _br.ReadBoolean(),
                    FrenchName              = _br.ReadString(),
                    ClassicRank             = (ClassicRankEnum)_br.ReadUInt32(),
                    Age                     = _br.ReadUInt32(),
                    RelativeGeneticDistance = _br.ReadSingle(),
                    OTTID                   = _br.ReadUInt32()
                };

                uint imageNumber = _br.ReadUInt32();
                if (imageNumber != 0)
                {
                    taxon.Images = new List <TaxonImageDesc>((int)imageNumber);
                    for (uint i = 0; i < imageNumber; i++)
                    {
                        TaxonImageDesc image = new TaxonImageDesc
                        {
                            CollectionId = _br.ReadInt32(),
                            Secondary    = _br.ReadBoolean(),
                            Index        = _br.ReadInt32()
                        };
                        taxon.Images.Add(image);
                    }
                }

                return(taxon);
            }

            if (_version == 5)
            {
                TaxonDesc taxon = new TaxonDesc
                {
                    Name                    = _br.ReadString(),
                    Flags                   = _br.ReadUInt32(),
                    HasSound                = _br.ReadBoolean(),
                    FrenchName              = _br.ReadString(),
                    ClassicRank             = (ClassicRankEnum)_br.ReadUInt32(),
                    Age                     = _br.ReadUInt32(),
                    RelativeGeneticDistance = _br.ReadSingle(),
                    OTTID                   = _br.ReadUInt32()
                };

                uint imageNumber = _br.ReadUInt32();
                if (imageNumber != 0)
                {
                    taxon.Images = new List <TaxonImageDesc>((int)imageNumber);
                    for (uint i = 0; i < imageNumber; i++)
                    {
                        TaxonImageDesc image = new TaxonImageDesc
                        {
                            CollectionId = _br.ReadInt32(),
                            Secondary    = _br.ReadBoolean(),
                            Index        = _br.ReadInt32(),
                            LinksId      = _br.ReadInt32()
                        };
                        taxon.Images.Add(image);
                    }
                }

                return(taxon);
            }

            if (_version == 6)
            {
                TaxonDesc taxon = new TaxonDesc
                {
                    Name                    = _br.ReadString(),
                    Flags                   = _br.ReadUInt32(),
                    HasSound                = _br.ReadBoolean(),
                    FrenchName              = _br.ReadString(),
                    ClassicRank             = (ClassicRankEnum)_br.ReadUInt32(),
                    Age                     = _br.ReadUInt32(),
                    RelativeGeneticDistance = _br.ReadSingle(),
                    OTTID                   = _br.ReadUInt32(),
                    RedListCategory         = (RedListCategoryEnum)_br.ReadByte()
                };

                uint imageNumber = _br.ReadUInt32();
                if (imageNumber != 0)
                {
                    taxon.Images = new List <TaxonImageDesc>((int)imageNumber);
                    for (uint i = 0; i < imageNumber; i++)
                    {
                        TaxonImageDesc image = new TaxonImageDesc
                        {
                            CollectionId = _br.ReadInt32(),
                            Secondary    = _br.ReadBoolean(),
                            Index        = _br.ReadInt32(),
                            LinksId      = _br.ReadInt32()
                        };
                        taxon.Images.Add(image);
                    }
                }

                return(taxon);
            }


            return(null);
        }
Exemplo n.º 9
0
 public void SetImageAsPrimary(TaxonImageDesc _imageDesc)
 {
     SetImageAsSecondary(_imageDesc, false);
 }