Пример #1
0
        public static TaxonIds Compute(TaxonTreeNode _node)
        {
            TaxonIds Data = new TaxonIds();

            _node.ParseNodeDesc(CheckIds, Data);
            Data.BuildRanges();
            return(Data);
        }
Пример #2
0
        public static UInt32 GetUnusedTolId(TaxonTreeNode _node)
        {
            TaxonIds Data = new TaxonIds()
            {
                MaxTolId = FirstTolID
            };

            _node.ParseNodeDesc(LastTolIds, Data);
            return(Data.MaxTolId + 1);
        }
Пример #3
0
 void UpdateButtonID()
 {
     if (Edited.Desc.OTTID == 0)
     {
         buttonOTT.Text = "Create Id";
     }
     else
     {
         buttonOTT.Text = TaxonIds.IdDesc(Edited.Desc.OTTID);
     }
 }
Пример #4
0
 private static void LastTolIds(TaxonDesc _desc, object _data)
 {
     if (_desc.OTTID >= FirstTolID)
     {
         TaxonIds Data = _data as TaxonIds;
         if (_desc.OTTID > Data.MaxTolId)
         {
             Data.MaxTolId = _desc.OTTID;
         }
     }
 }
Пример #5
0
        private static void CheckIds(TaxonDesc _desc, object _data)
        {
            if (_desc.OTTID == 0)
            {
                (_data as TaxonIds).NoIds.Add(_desc);
                return;
            }

            TaxonIds Data = _data as TaxonIds;

            if (_desc.OTTID >= FirstTolID)
            {
                if (Data.TolIds.ContainsKey(_desc.OTTID))
                {
                    Data.Duplicates.Add(new Tuple <TaxonDesc, TaxonDesc>(Data.TolIds[_desc.OTTID], _desc));
                    return;
                }

                Data.TolIds[_desc.OTTID] = _desc;
                if (_desc.OTTID > Data.MaxTolId)
                {
                    Data.MaxTolId = _desc.OTTID;
                }
                if (_desc.OTTID < Data.MinTolId)
                {
                    Data.MinTolId = _desc.OTTID;
                }
            }
            else
            {
                if (Data.Ids.ContainsKey(_desc.OTTID))
                {
                    Data.Duplicates.Add(new Tuple <TaxonDesc, TaxonDesc>(Data.Ids[_desc.OTTID], _desc));
                    return;
                }

                Data.Ids[_desc.OTTID] = _desc;
                if (_desc.OTTID > Data.MaxId)
                {
                    Data.MaxId = _desc.OTTID;
                }
                if (_desc.OTTID < Data.MinId)
                {
                    Data.MinId = _desc.OTTID;
                }
            }
        }
Пример #6
0
 //---------------------------------------------------------------------------------
 private void ButtonOTT_Click(object sender, EventArgs e)
 {
     if (Edited.Desc.OTTID == 0)
     {
         string message = "Create TOL ID for " + (string.IsNullOrEmpty(Edited.Desc.RefMultiName.Main) ? "that taxon" : Edited.Desc.RefMultiName.Main) + "?";
         if (MessageBox.Show(message, "Create ID", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
         {
             return;
         }
         Edited.Desc.OTTID = TaxonIds.GetUnusedTolId(TaxonUtils.OriginalRoot);
         UpdateButtonID();
     }
     else if (!TaxonIds.IsTolID(Edited.Desc.OTTID))
     {
         string url = "https://tree.opentreeoflife.org/opentree/argus/ottol@" + Edited.Desc.OTTID.ToString();
         Process.Start(url);
     }
 }