private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { var senderGrid = (DataGridView)sender; if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0) { //if(MessageBoxAutocloseWithButtons.Show(5, true, "Yes", "No", $"Include X Y coordinates?") == DialogResult.OK) if (MessageBox.Show("Include X Y coordinates?", "Include coordinates", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { FormPleaseWait pleaseWait = new FormPleaseWait("download data"); pleaseWait.Owner = this; pleaseWait.StartPosition = FormStartPosition.CenterParent; pleaseWait.Show(this); int x = this.DesktopBounds.Left + (this.Width - pleaseWait.Width) / 2; int y = this.DesktopBounds.Top + (this.Height - pleaseWait.Height) / 2; pleaseWait.SetDesktopLocation(x, y); string id = senderGrid.Rows[e.RowIndex].Cells[0].Value.ToString(); MySQL mySql = new MySQL(); string fileName = $"P{senderGrid.Rows[e.RowIndex].Cells[1].Value}_{senderGrid.Rows[e.RowIndex].Cells[3].Value}_{senderGrid.Rows[e.RowIndex].Cells[2].Value}_{senderGrid.Rows[e.RowIndex].Cells[5].Value}_{senderGrid.Rows[e.RowIndex].Cells[8].Value}x{senderGrid.Rows[e.RowIndex].Cells[4].Value}.jpg"; string filePath = Path.Combine(Path.GetTempPath(), fileName); mySql.GetImage(id, "marked image", filePath); string filePathOriginal = Path.Combine(Path.GetTempPath(), "original-" + fileName); string filePathMarked = Path.Combine(Path.GetTempPath(), "marked-" + fileName); mySql.GetImage(id, "original image", filePathOriginal); mySql.GetImage(id, "marked image", filePathMarked); filePath = filePathOriginal; List <Point> coordinates = mySql.GetCoordinates(id); pleaseWait.Close(); Hide(); int blurredFactor = FormWorker.fallbackBlurredFactor; string blurredFactorString = blurredFactor.ToString(); if (MessageBoxCustom.InputBox("Setting: Min Dist", "minimal distance between 2 datapoints:", ref blurredFactorString) == DialogResult.OK) { int.TryParse(blurredFactorString, out blurredFactor); } int offset = FormWorker.fallbackOffset; string offsetString = offset.ToString(); if (MessageBoxCustom.InputBox("Setting: Offset", "offset:", ref offsetString) == DialogResult.OK) { int.TryParse(offsetString, out offset); } int restArea = FormWorker.fallbackIntersectionPointRestrictedRadius; string restAreaString = restArea.ToString(); if (MessageBoxCustom.InputBox("Setting: Restricted Area", "intersection point restriced area:", ref restAreaString) == DialogResult.OK) { int.TryParse(restAreaString, out restArea); } FormWorker formWorker = new FormWorker(WorkerMethod.ReanalyzeSingleDatapointsAndMeasurement, this); bool smthingChanged = false; if (offset > 0) { formWorker.DEFAULT_OFFSET = offset; formWorker._offsetOuterLine = offset; smthingChanged = true; } if (blurredFactor > 0) { formWorker.DEFAULT_BLURRED_FACTOR = blurredFactor; formWorker._blurredFactor = blurredFactor; smthingChanged = true; } if (restArea > 0) { formWorker.DEFAULT_INTERSECTION_POINT_RESTRICTED_RADIUS = restArea; formWorker._intersectionPointRestrictedRadius = restArea; smthingChanged = true; } if (smthingChanged) { formWorker.FillOptionsWithDefaultValues(); } formWorker._waitTime = waitTime; formWorker._filePath = filePath; formWorker._coordinates = coordinates; formWorker._note = senderGrid.Rows[e.RowIndex].Cells[10].Value.ToString(); formWorker._layer = senderGrid.Rows[e.RowIndex].Cells[9].Value.ToString(); if (File.Exists(filePathOriginal)) { formWorker._originalPictureOVERWRITE = new Bitmap(filePathOriginal); } else { formWorker._originalPictureOVERWRITE = new Bitmap(1024, 768); } if (File.Exists(filePathMarked)) { formWorker._markedPictureOVERWRITE = new Bitmap(filePathMarked); } else { formWorker._markedPictureOVERWRITE = new Bitmap(1024, 768); } formWorker.ShowDialog(); } else { FormPleaseWait pleaseWait = new FormPleaseWait("download data"); pleaseWait.Owner = this; pleaseWait.StartPosition = FormStartPosition.CenterParent; pleaseWait.Show(this); int x = this.DesktopBounds.Left + (this.Width - pleaseWait.Width) / 2; int y = this.DesktopBounds.Top + (this.Height - pleaseWait.Height) / 2; pleaseWait.SetDesktopLocation(x, y); string id = senderGrid.Rows[e.RowIndex].Cells[0].Value.ToString(); MySQL mySql = new MySQL(); string fileName = $"P{senderGrid.Rows[e.RowIndex].Cells[1].Value}_{senderGrid.Rows[e.RowIndex].Cells[3].Value}_{senderGrid.Rows[e.RowIndex].Cells[2].Value}_{senderGrid.Rows[e.RowIndex].Cells[5].Value}_{senderGrid.Rows[e.RowIndex].Cells[8].Value}x{senderGrid.Rows[e.RowIndex].Cells[4].Value}.jpg"; string filePath = Path.Combine(Path.GetTempPath(), fileName); mySql.GetImage(id, "original image", filePath); string filePathOriginal = Path.Combine(Path.GetTempPath(), "original-" + fileName); string filePathMarked = Path.Combine(Path.GetTempPath(), "marked-" + fileName); mySql.GetImage(id, "original image", filePathOriginal); mySql.GetImage(id, "marked image", filePathMarked); pleaseWait.Close(); Hide(); int offset = FormWorker.fallbackOffset; string offsetString = offset.ToString(); if (MessageBoxCustom.InputBox("Setting: Offset", "offset:", ref offsetString) == DialogResult.OK) { int.TryParse(offsetString, out offset); } int blurredFactor = FormWorker.fallbackBlurredFactor; string blurredFactorString = blurredFactor.ToString(); if (MessageBoxCustom.InputBox("Setting: Min Dist", "minimal distance between 2 datapoints:", ref blurredFactorString) == DialogResult.OK) { int.TryParse(blurredFactorString, out blurredFactor); } int restArea = FormWorker.fallbackIntersectionPointRestrictedRadius; string restAreaString = restArea.ToString(); if (MessageBoxCustom.InputBox("Setting: Restricted Area", "intersection point restriced area:", ref restAreaString) == DialogResult.OK) { int.TryParse(restAreaString, out restArea); } FormWorker formWorker = new FormWorker(WorkerMethod.ReanalyzeSingleDatapointsAndMeasurement, this); bool smthingChanged = false; if (offset > 0) { formWorker.DEFAULT_OFFSET = offset; formWorker._offsetOuterLine = offset; smthingChanged = true; } if (blurredFactor > 0) { formWorker.DEFAULT_BLURRED_FACTOR = blurredFactor; formWorker._blurredFactor = blurredFactor; smthingChanged = true; } if (restArea > 0) { formWorker.DEFAULT_INTERSECTION_POINT_RESTRICTED_RADIUS = restArea; formWorker._intersectionPointRestrictedRadius = restArea; smthingChanged = true; } if (smthingChanged) { formWorker.FillOptionsWithDefaultValues(); } formWorker._waitTime = waitTime; formWorker._filePath = filePath; formWorker._layer = senderGrid.Rows[e.RowIndex].Cells[9].Value.ToString(); if (File.Exists(filePathOriginal)) { formWorker._originalPictureOVERWRITE = new Bitmap(filePathOriginal); } else { formWorker._originalPictureOVERWRITE = new Bitmap(1024, 768); } if (File.Exists(filePathMarked)) { formWorker._markedPictureOVERWRITE = new Bitmap(filePathMarked); } else { formWorker._markedPictureOVERWRITE = new Bitmap(1024, 768); } formWorker.ShowDialog(); } } }
private void Reanalyze() { cutList.Clear(); cutList = mysql.GetCut(firstId, lastId); bool filter = false; int filterAge = 0; string filterGenoType = ""; string filterLayer = ""; if (string.IsNullOrEmpty(textBox3.Text) == false) { if (int.TryParse(textBox3.Text, out filterAge)) { filter = true; } } int customOffset = 0; int customBlurredFactor = 0; int customIntersectionPointRestrictedRadius = 0; if (string.IsNullOrEmpty(textBox5.Text) == false) { int.TryParse(textBox5.Text, out customOffset); } if (string.IsNullOrEmpty(textBox6.Text) == false) { int.TryParse(textBox6.Text, out customBlurredFactor); } if (string.IsNullOrEmpty(textBox7.Text) == false) { int.TryParse(textBox7.Text, out customIntersectionPointRestrictedRadius); } if (string.IsNullOrEmpty(textBox4.Text) == false) { if (textBox4.Text.Trim().ToUpper() == "WT") { filterGenoType = "WT"; filter = true; } if (textBox4.Text.Trim().ToUpper() == "KO") { filterGenoType = "KO"; filter = true; } } if (string.IsNullOrEmpty(textBox8.Text) == false) { filterLayer = textBox8.Text.Trim().ToLower(); filter = true; } foreach (Cut cut in cutList) { try { if (filter) { if (filterAge > 0 && cut.Age != filterAge) { continue; } if (string.IsNullOrEmpty(filterGenoType) == false && cut.Genotype != filterGenoType) { continue; } if (string.IsNullOrEmpty(filterLayer) == false && cut.Layer.ToLower().Contains(filterLayer) == false) { continue; } } FormPleaseWait pleaseWait = new FormPleaseWait("download data"); pleaseWait.Owner = this; pleaseWait.StartPosition = FormStartPosition.CenterParent; pleaseWait.Show(this); int x = this.DesktopBounds.Left + (this.Width - pleaseWait.Width) / 2; int y = this.DesktopBounds.Top + (this.Height - pleaseWait.Height) / 2; pleaseWait.SetDesktopLocation(x, y); string fileName = $"P{cut.Age}_{cut.Animal}_{cut.Genotype}_{cut.Method}_{cut.ZoomFactor}x{cut.CutIdentifier}.jpg"; string filePath = Path.Combine(Path.GetTempPath(), fileName); mysql.GetImage(cut.Id.ToString(), "marked image", filePath); string filePathOriginal = Path.Combine(Path.GetTempPath(), "original-" + fileName); string filePathMarked = Path.Combine(Path.GetTempPath(), "marked-" + fileName); mysql.GetImage(cut.Id.ToString(), "original image", filePathOriginal); mysql.GetImage(cut.Id.ToString(), "marked image", filePathMarked); filePath = filePathOriginal; List <Point> coordinates = mysql.GetCoordinates(cut.Id.ToString()); pleaseWait.Close(); Hide(); FormWorker formWorker = new FormWorker(WorkerMethod.ReanalyzeSingleDatapointsAndMeasurement, this); bool smthingChanged = false; if (customOffset > 0) { formWorker.DEFAULT_OFFSET = customOffset; formWorker._offsetOuterLine = customOffset; smthingChanged = true; } if (customBlurredFactor > 0) { formWorker.DEFAULT_BLURRED_FACTOR = customBlurredFactor; formWorker._blurredFactor = customBlurredFactor; smthingChanged = true; } if (customIntersectionPointRestrictedRadius > 0) { formWorker.DEFAULT_INTERSECTION_POINT_RESTRICTED_RADIUS = customIntersectionPointRestrictedRadius; formWorker._intersectionPointRestrictedRadius = customIntersectionPointRestrictedRadius; smthingChanged = true; } if (smthingChanged) { formWorker.FillOptionsWithDefaultValues(); } formWorker._waitTime = _waitTime; formWorker._filePath = filePath; formWorker._coordinates = coordinates; formWorker._note = cut.Note; formWorker._layer = cut.Layer; formWorker._originalPictureOVERWRITE = new Bitmap(filePathOriginal); formWorker._markedPictureOVERWRITE = new Bitmap(filePathMarked); formWorker.ShowDialog(); } catch (Exception ex) { //just for debug } } }