Пример #1
0
 static bool ValidateDataset(IDataset ds) {
     int i0 = ds.Rows - pcaSamples;
     if ((i0 > 0) && ds.BodyList.Skip(i0).All(b => b.IsDummy)) {
         for (int i = i0; i < ds.BodyList.Count; i++)
             ds.BodyList[i].Disabled = false;
         return true;
     } else {
         var ret = MsgBox.YesNoTimed("Current dataset is invalid for dual metric. Do you want to adjust the dataset for dual metric?", "Dual Metric", 5);
         if (ret == DialogResult.Yes) {
             i0 = ds.Rows;
             var rg = new Random();
             for (int i = 0; i < pcaSamples; i++) {
                 IBody b = ds.AddRow("." + i, null, (short)51, null);
                 b.IsDummy = true;
                 b.X = rg.Next((int)ds.CurrentMap.Width);
                 b.Y = rg.Next((int)ds.CurrentMap.Height);
                 if ((i == 0) || (i == (pcaSamples - 1))) 
                     b.Highlighted = true;
                 if (i == 0)
                     b.ShowId = true;
             }
             ds.CurrentMap.GlyphType = DualAffinity.GlyphSets;                    
             ds.CurrentMap.RedrawAll();
             SingleCellPlugin.App.ScriptApp.Folder.DataChanged = true;
             Root.Data.Map.Metric = null;
             return true;
         } else {
             return false;
         }
     }
 }
Пример #2
0
        static bool ValidateDataset(IDataset ds)
        {
            int i0     = ds.Rows - ds.Columns;
            var csList = ds.ColumnSpecList;

            if ((ds.Rows > ds.Columns) && Enumerable.Range(0, ds.Columns).All(i => ds.BodyList[i0 + i].Id == csList[i].Id))
            {
                return(true);
            }
            else
            {
                var ret = MsgBox.YesNoTimed("Current dataset is invalid for dual metric. Do you want to adjust the dataset for dual metric?", "Dual Metric", 5);
                if (ret == DialogResult.Yes)
                {
                    var rg = new Random();
                    for (int col = 0; col < ds.Columns; col++)
                    {
                        var cs = ds.ColumnSpecList[col];
                        var b  = ds.AddRow(cs.Id, cs.Name, (short)16, null);
                        b.X       = rg.Next((int)ds.CurrentMap.Width);
                        b.Y       = rg.Next((int)ds.CurrentMap.Height);
                        b.IsDummy = true;
                    }
                    ds.CurrentMap.GlyphType = GlyphSets;
                    ds.CurrentMap.RedrawAll();
                    SingleCellPlugin.App.ScriptApp.Folder.DataChanged = true;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }