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); }
public bool CanChangeIndexToStart(TaxonImageDesc _imageDesc) { if (_imageDesc == null) { return(false); } List <TaxonImageDesc> list = ListImageDesc(_imageDesc.CollectionId, _imageDesc.Secondary); return(list.IndexOf(_imageDesc) > 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); }
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); }
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); }
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(); }
//--------------------------------------------------------------------------------- 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); } } }
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); }
public void SetImageAsPrimary(TaxonImageDesc _imageDesc) { SetImageAsSecondary(_imageDesc, false); }