예제 #1
0
        partial void SaveButton(NSObject sender)
        {
            if (SpectraListTable.IsRowSelected(SpectraListTable.SelectedRow))
            {
                int k   = (int)SpectraListTable.SelectedRow;
                var dlg = new NSSavePanel
                {
                    Title                 = "Save Spectrum",
                    AllowedFileTypes      = new string[] { "dat", "txt" },
                    ShowsTagField         = false,
                    CanCreateDirectories  = true,
                    NameFieldStringValue  = ListOfSpectra[k].Name + ".dat",
                    AccessibilityExpanded = true
                };

                if (dlg.RunModal() == 1)
                {
                    string path = dlg.Url.Path;
                    Console.WriteLine(path);


                    double[][] tmpArray = new double[ListOfSpectra[k].XX.Length][];

                    for (int i = 0; i < tmpArray.GetLength(0); i++)
                    {
                        tmpArray[i]    = new double[2];
                        tmpArray[i][0] = ListOfSpectra[k].XX[i];
                        tmpArray[i][1] = ListOfSpectra[k].YY[i];
                    }

                    TableReader.SaveTable(path, tmpArray);
                }
            }
        }
예제 #2
0
        partial void DelButton(NSObject sender)
        {
            int k = (int)SpectraListTable.SelectedRow;

            if (SpectraListTable.IsRowSelected(SpectraListTable.SelectedRow))
            {
                ListOfSpectra.RemoveAt(k);
                SpectraListTable.RemoveRows(new NSIndexSet(k), NSTableViewAnimation.SlideLeft);
                if (indexies.Count > 0)
                {
                    for (int i = 0; i < indexies.Count; i++)
                    {
                        if (indexies[i] == k)
                        {
                            indexies.RemoveAt(i);
                        }
                    }

                    for (int i = 0; i < indexies.Count; i++)
                    {
                        if (indexies[i] > k)
                        {
                            indexies[i] -= 1;
                        }
                    }
                }


                return;
            }
        }
        void ReleaseDesignerOutlets()
        {
            if (SpectraListColumn != null)
            {
                SpectraListColumn.Dispose();
                SpectraListColumn = null;
            }

            if (SpectraListTable != null)
            {
                SpectraListTable.Dispose();
                SpectraListTable = null;
            }

            if (TextFieldModel1 != null)
            {
                TextFieldModel1.Dispose();
                TextFieldModel1 = null;
            }

            if (TextFieldModel2 != null)
            {
                TextFieldModel2.Dispose();
                TextFieldModel2 = null;
            }

            if (TextFieldVelocity1 != null)
            {
                TextFieldVelocity1.Dispose();
                TextFieldVelocity1 = null;
            }

            if (TextFieldVelocity2 != null)
            {
                TextFieldVelocity2.Dispose();
                TextFieldVelocity2 = null;
            }
        }
예제 #4
0
        // It works with Segue Instance.
        public override void PrepareForSegue(NSStoryboardSegue segue, NSObject sender)
        {
            base.PrepareForSegue(segue, sender);

            switch (segue.Identifier)
            {
            case "RenameSheetSegue":
                var sheet = segue.DestinationController as SheetViewController;
                int k;

                if (SpectraListTable.IsRowSelected(SpectraListTable.SelectedRow))
                {
                    k             = (int)SpectraListTable.SelectedRow;
                    sheet.NewName = ListOfSpectra[k].Name;
                }

                sheet.SheetAccepted += (s, e) =>
                {
                    if (SpectraListTable.IsRowSelected(SpectraListTable.SelectedRow))
                    {
                        k = (int)SpectraListTable.SelectedRow;
                        ListOfSpectra[k].Name = sheet.NewName;

                        DataSource = new TableDataSource(ListOfSpectra);

                        for (int i = 0; i <= ListOfSpectra.Count; i++)
                        {
                            SpectraListTable.DataSource = DataSource;
                            SpectraListTable.Delegate   = new TableDelegate(DataSource);
                        }
                    }
                };
                sheet.Presentor = this;
                break;

            case "TrimSegue":
                var trimSheet = segue.DestinationController as TrimDialogController;
                int l         = (int)SpectraListTable.SelectedRow;

                trimSheet.SheetAccepted += (s, e) =>
                {
                    if (SpectraListTable.IsRowSelected(SpectraListTable.SelectedRow))
                    {
                        double l1 = Convert.ToDouble(trimSheet.Lamda1);
                        double l2 = Convert.ToDouble(trimSheet.Lamda2);
                        ListOfSpectra.Add(ListOfSpectra[l].Trimmed(l1, l2));

                        ReloadTable();
                    }
                };

                trimSheet.Presentor = this;
                break;

            case "MathSegue":
                var      mathSheet = segue.DestinationController as CustomDialogController;
                string[] mas       = new string[ListOfSpectra.Count];
                for (int i = 0; i < ListOfSpectra.Count; i++)
                {
                    mas[i] = ListOfSpectra[i].Name;
                }

                // Fill List
                mathSheet.BoxSpectraList = new List <string>(mas);
                mathSheet.SheetAccepted += (s, e) =>
                {
                    Spectrum sp1 = ListOfSpectra[mathSheet.Index1];
                    Spectrum sp2 = ListOfSpectra[mathSheet.Index2];
                    switch (mathSheet.RadioId)
                    {
                    case "PlusId":

                        ListOfSpectra.Add(sp1 + sp2);
                        break;

                    case "MinusId":
                        ListOfSpectra.Add(sp1 - sp2);
                        break;

                    case "MultiplyId":
                        ListOfSpectra.Add(sp1 * sp2);
                        break;

                    case "DivisionId":
                        ListOfSpectra.Add(sp1 / sp2);
                        break;
                    }
                    ReloadTable();
                };
                mathSheet.Presentor = this;
                SpectraListTable.ReloadData();
                break;

            case "PlotSegue":
                var dlg = segue.DestinationController as PlotWindowController;
                // Console.WriteLine(indexies.Count.ToString() + "======================");
                if (SpectraListTable.IsRowSelected(SpectraListTable.SelectedRow))
                {
                    k = (int)SpectraListTable.SelectedRow;
                    if (indexies.Count > 0)
                    {
                        int c = 0;
                        for (int i = 0; i < indexies.Count; i++)
                        {
                            if (indexies[i] == k)
                            {
                                c++;
                            }
                        }
                        if (c == 0)
                        {
                            indexies.Add(k);
                        }
                    }
                    else
                    {
                        indexies.Add(k);
                    }



                    for (int j = 0; j < indexies.Count; j++)
                    {
                        Console.WriteLine("===" + indexies[j].ToString() + "===");
                        dlg.ListOfSpectra.Add(ListOfSpectra[indexies[j]]);
                    }
                    //dlg.ListOfSpectra.Add(ListOfSpectra[k]);
                }

                dlg.DialogAccepted += (s, e) =>
                {
                    DismissController(dlg);
                };
                dlg.DialogCanceled += (s, e) =>
                {
                    indexies.Clear();
                    DismissController(dlg);
                };
                dlg.Presentor = this;
                break;
            }
        }