internal void showDialog(List <ExperimentStorage> targets, ExperimentData experimentData) { NE_Helper.log("start"); this.targets = targets; exp = experimentData; NE_Helper.log("init done"); if (exp == null || targets == null || targets.Count == 0) { this.enabled = false; return; } // Highlight source part sourcePart = exp.store.getPart(); sourcePart.SetHighlightColor(dullOrange); sourcePart.SetHighlightType(Part.HighlightType.AlwaysOn); sourcePart.SetHighlight(true, false); // Create a list of destination parts and highlight them for (int i = 0, count = targets.Count; i < count; i++) { Part p = targets[i].part; if (p == sourcePart || destinationParts.Contains(p)) { continue; } destinationParts.Add(p); p.SetHighlightColor(dullCyan); p.SetHighlightType(Part.HighlightType.AlwaysOn); p.SetHighlight(true, false); } smInfo = ScreenMessages.PostScreenMessage(Localizer.Format("#ne_Select_a_part_to_transfer_1_to_ESC_to_cancel", exp.getAbbreviation()), 15, ScreenMessageStyle.UPPER_CENTER); smInfo.color = Color.cyan; this.enabled = true; NE_Helper.LockUI(); }