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); } } }
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; } }
// 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; } }