public void Initialise(bool isAssay) { assayMode = isAssay; mainMenu.SetActive(false); sharedMenu.SetActive(true); assayMenu.SetActive(isAssay); combiMenu.SetActive(!isAssay); for (int i = 0; i < csvController.samplePositions.Count; i++) { string sampleID = csvController.sampleList[i]; int samplePos = csvController.samplePositions[i]; samples.Add(sampleID); GameObject g = GameObject.Instantiate(samplePrefab) as GameObject; g.transform.SetParent(sampleScrollView.transform, false); g.GetComponentInChildren <Text>().text = sampleID; g.GetComponent <SampleListEntry>().SampleID = sampleID; g.GetComponent <SampleListEntry>().index = samplePos; sampleToggles.Add(g.GetComponent <Toggle>()); } if (isAssay) { for (int i = 1; i < csvController.grid.GetUpperBound(0); i++) { string columnHeader = csvController.grid[i, 0]; if (columnHeader != "" && columnHeader != null) { columns.Add(columnHeader); GameObject g = GameObject.Instantiate(samplePrefab) as GameObject; g.transform.SetParent(columnScrollView.transform, false); g.GetComponentInChildren <Text>().text = columnHeader; g.GetComponent <SampleListEntry>().SampleID = columnHeader; g.GetComponent <SampleListEntry>().index = i; if (!ContainsNoCase(columnHeader, "_pc")) { g.GetComponent <Toggle>().isOn = false; } columnToggles.Add(g.GetComponent <Toggle>()); } //int samplePos = csvController.samplePositions[i]; //sampleToggles.Add(g.GetComponent<Toggle>()); } } else { for (int i = 1; i < csvController.grid.GetUpperBound(0); i++) { string columnHeader = csvController.grid[i, 0]; if (columnHeader != "" && columnHeader != null) { columns.Add(columnHeader); GameObject g = GameObject.Instantiate(combiElemMinPrefab) as GameObject; g.transform.SetParent(combiColumnScrollView.transform, false); g.GetComponentInChildren <Text>().text = columnHeader; g.GetComponent <CombiMineralElementListEntry>().SampleID = columnHeader; g.GetComponent <CombiMineralElementListEntry>().label.text = columnHeader; g.GetComponent <CombiMineralElementListEntry>().index = i; if (ContainsNoCase(columnHeader, "_ppm")) { g.GetComponent <CombiMineralElementListEntry>().ElementToggle.isOn = true; } else if (ContainsNoCase(columnHeader, "_pc")) { g.GetComponent <CombiMineralElementListEntry>().ElementToggle.isOn = true; } else if (ContainsNoCase(columnHeader, "_wt%")) { g.GetComponent <CombiMineralElementListEntry>().MineralToggle.isOn = true; } //g.GetComponent<CombiMineralElementListEntry>().ElementToggle. //columnToggles.Add(g.GetComponent<Toggle>()); } //int samplePos = csvController.samplePositions[i]; //sampleToggles.Add(g.GetComponent<Toggle>()); //NEXT TIME: //Add the mineral comps to the- oh shit i need to make the CMC a real thing huh, okay brb gotta do that //then add them to the CombiMineralCompScrollview which definitely already exists in code } } //Add all mineral compositions and elements to the corresponding lists int k = 0; //Dataset dataset = new Dataset(defaultMineralDict); datasetDict.Add("Default", defaultDataset); Dictionary <string, MineralComposition> defaultMineralDict = defaultDataset.mineralDict; currentMineralDict = defaultMineralDict; foreach (MineralComposition mc in defaultMineralDict.Values) { GameObject g = GameObject.Instantiate(mineralCompListPrefab) as GameObject; g.transform.SetParent(mineralCompScrollView.transform, false); MineralCompositionListEntry mcle = g.GetComponent <MineralCompositionListEntry>(); mcle.label.text = mc.mineral; mcle.MineralComp = mc.mineral; mcle.index = k; if (isAssay) { g.GetComponentInChildren <InputField>().text = mc.weight.ToString(); } else { g.GetComponentInChildren <InputField>().text = mc.startPoint.ToString(); } mineralToggles.Add(g.GetComponent <Toggle>()); k++; } foreach (MineralComposition mc in elementDict.Values) { GameObject g = GameObject.Instantiate(mineralCompListPrefab) as GameObject; g.transform.SetParent(elementCompScrollView.transform, false); MineralCompositionListEntry mcle = g.GetComponent <MineralCompositionListEntry>(); mcle.label.text = mc.mineral; mcle.MineralComp = mc.mineral; mcle.index = k; g.GetComponent <Toggle>().isOn = false; if (isAssay) { g.GetComponentInChildren <InputField>().text = mc.weight.ToString(); } else { g.GetComponentInChildren <InputField>().text = mc.startPoint.ToString(); } elementToggles.Add(g.GetComponent <Toggle>()); k++; } /* * if (isAssay) * { * } * else * { * int i = 0; * foreach (CombiController.CombiMineralComposition cmc in combiController.combiMineralDict.Values) * { * * GameObject g = GameObject.Instantiate(mineralCompListPrefab) as GameObject; * g.transform.SetParent(mineralCompScrollView.transform, false); * MineralCompositionListEntry mcle = g.GetComponent<MineralCompositionListEntry>(); * mcle.label.text = cmc.mineral; * mcle.MineralComp = cmc.mineral; * mcle.index = i; * g.GetComponentInChildren<InputField>().text = cmc.weight.ToString(); * mineralToggles.Add(g.GetComponent<Toggle>()); * i++; * } * foreach (CombiController.CombiMineralComposition cmc in combiController.combiElementDict.Values) * { * * GameObject g = GameObject.Instantiate(mineralCompListPrefab) as GameObject; * g.transform.SetParent(elementCompScrollView.transform, false); * MineralCompositionListEntry mcle = g.GetComponent<MineralCompositionListEntry>(); * mcle.label.text = cmc.mineral; * mcle.MineralComp = cmc.mineral; * mcle.index = i; * g.GetComponent<Toggle>().isOn = false; * g.GetComponentInChildren<InputField>().text = cmc.weight.ToString(); * elementToggles.Add(g.GetComponent<Toggle>()); * i++; * } * }*/ }
public IEnumerator ChangeDataset() { Dataset ds; if (!datasetDict.TryGetValue(datasetDropdown.options[datasetDropdown.value].text, out ds)) { Debug.Log("dataset not found - creating new one"); Dictionary <string, MineralComposition> mineralDict = new Dictionary <string, MineralComposition>(); yield return(StartCoroutine(FastDownload(path + datasetDropdown.options[datasetDropdown.value].text, fileContents => fileContentString = fileContents))); string[,] datasetGrid = CSVReader.SplitCsvGrid(fileContentString); for (int i = 1; i <= datasetGrid.GetUpperBound(1); i++) { string columnHeader = datasetGrid[0, i]; string mineralComp = datasetGrid[0, i]; MineralComposition MC = new MineralComposition(mineralComp); double[] val = new double[] { Double.Parse(datasetGrid[1, i]), Double.Parse(datasetGrid[2, i]), Double.Parse(datasetGrid[3, i]), Double.Parse(datasetGrid[4, i]), Double.Parse(datasetGrid[5, i]), Double.Parse(datasetGrid[6, i]), Double.Parse(datasetGrid[7, i]), Double.Parse(datasetGrid[8, i]), Double.Parse(datasetGrid[9, i]), Double.Parse(datasetGrid[10, i]), Double.Parse(datasetGrid[11, i]), Double.Parse(datasetGrid[12, i]), Double.Parse(datasetGrid[13, i]), Double.Parse(datasetGrid[14, i]), Double.Parse(datasetGrid[15, i]), Double.Parse(datasetGrid[16, i]), Double.Parse(datasetGrid[17, i]), Double.Parse(datasetGrid[18, i]), Double.Parse(datasetGrid[19, i]), Double.Parse(datasetGrid[20, i]), Double.Parse(datasetGrid[21, i]) }; FillMCDatabase(MC, val); MC.weight = double.Parse(datasetGrid[22, i]); MC.startPoint = double.Parse(datasetGrid[23, i]); mineralDict.Add(mineralComp, MC); } ds = new Dataset(mineralDict); datasetDict.Add(datasetDropdown.options[datasetDropdown.value].text, ds); } currentMineralDict = ds.mineralDict; mineralToggles.Clear(); foreach (Transform child in mineralCompScrollView.transform) { GameObject.Destroy(child.gameObject); } int k = 0; foreach (MineralComposition mc in currentMineralDict.Values) { GameObject g = GameObject.Instantiate(mineralCompListPrefab) as GameObject; g.transform.SetParent(mineralCompScrollView.transform, false); MineralCompositionListEntry mcle = g.GetComponent <MineralCompositionListEntry>(); mcle.label.text = mc.mineral; mcle.MineralComp = mc.mineral; mcle.index = k; if (assayMode) { g.GetComponentInChildren <InputField>().text = mc.weight.ToString(); } else { g.GetComponentInChildren <InputField>().text = mc.startPoint.ToString(); } mineralToggles.Add(g.GetComponent <Toggle>()); k++; } foreach (Transform child in elementCompScrollView.transform) { MineralCompositionListEntry mcle = child.gameObject.GetComponent <MineralCompositionListEntry>(); mcle.index = k; k++; } yield return(null); }