public void releaseMoleculeDisplay() { if (null != _displayedMolecule) { _displayedMolecule.setDisplayType(DisplayedMolecule.DisplayType.MOLECULELIST); } }
// Update is called once per frame void Update() { int previousListedCount = _displayedListMoleculesCount; int previousTotalCount = _displayedMolecules.Count; resetMoleculeList(); ArrayList molecules = _reactionEngine.getMoleculesFromMedium(mediumId); foreach(System.Object molecule in molecules) { Molecule castMolecule = (Molecule)molecule; string realName = castMolecule.getRealName(); string codeName = castMolecule.getName(); float concentration = castMolecule.getConcentration(); if(displayAll || (0 != concentration)) { DisplayedMolecule found = LinkedListExtensions.Find( _displayedMolecules , m => m.getCodeName() == codeName , false , " GraphMoleculeList::Update()" ); if(null != found) { found.update(concentration); } else //molecule is not displayed yet { DisplayedMolecule created = new DisplayedMolecule(codeName, realName, concentration, DisplayedMolecule.DisplayType.MOLECULELIST); //search if molecule should be displayed in a Device/molecule component List<EquipedDisplayedDeviceWithMolecules> containers = _equipedDevices.FindAll(eddwm => eddwm.device.getFirstGeneProteinName() == codeName); if(containers.Count != 0) { created.setDisplayType(DisplayedMolecule.DisplayType.DEVICEMOLECULELIST); foreach(EquipedDisplayedDeviceWithMolecules container in containers) { container.addDisplayedMolecule(created); } } else { _displayedListMoleculesCount++; } //anyway add it to molecule list _displayedMolecules.AddLast(created); } } } removeUnusedMolecules(); if(_displayedMolecules.Count != previousTotalCount || previousListedCount != _displayedListMoleculesCount) { //rearrange devices positionDeviceAndMoleculeComponents(); } string namesToDisplay = ""; string valuesToDisplay = ""; foreach(DisplayedMolecule molecule in _displayedMolecules) { if(molecule.getDisplayType() == DisplayedMolecule.DisplayType.MOLECULELIST) { namesToDisplay+=molecule.getRealName()+":\n"; valuesToDisplay+=molecule.getVal()+"\n"; } } if(!string.IsNullOrEmpty(namesToDisplay)) { namesToDisplay.Remove(namesToDisplay.Length-1, 1); valuesToDisplay.Remove(valuesToDisplay.Length-1, 1); } namesLabel.text = namesToDisplay; valuesLabel.text = valuesToDisplay; /* if(null != topLabels) { topLabelsShift = Vector3.up * topLabels.relativeSize.y * topLabels.transform.localScale.y; namesLabel.transform.localPosition = topLabels.transform.localPosition + topLabelsShift; } */ setUnfoldingListBackgroundScale(); }
//TODO allow multiple protein management public void addDisplayedMolecule(DisplayedMolecule molecule) { _displayedMolecule = molecule; molecule.setDisplayType(DisplayedMolecule.DisplayType.DEVICEMOLECULELIST); }
// Update is called once per frame void Update() { int previousListedCount = _displayedListMoleculesCount; int previousTotalCount = _displayedMolecules.Count; resetMoleculeList(); ArrayList molecules = _reactionEngine.getMoleculesFromMedium(mediumId); foreach (System.Object molecule in molecules) { Molecule castMolecule = (Molecule)molecule; string realName = castMolecule.getRealName(); string codeName = castMolecule.getName(); float concentration = castMolecule.getConcentration(); if (displayAll || (0 != concentration)) { DisplayedMolecule found = LinkedListExtensions.Find( _displayedMolecules , m => m.getCodeName() == codeName , false , " GraphMoleculeList::Update()" ); if (null != found) { found.update(concentration); } else //molecule is not displayed yet { DisplayedMolecule created = new DisplayedMolecule(codeName, realName, concentration, DisplayedMolecule.DisplayType.MOLECULELIST); //search if molecule should be displayed in a Device/molecule component List <EquipedDisplayedDeviceWithMolecules> containers = _equipedDevices.FindAll(eddwm => eddwm.device.getFirstGeneProteinName() == codeName); if (containers.Count != 0) { created.setDisplayType(DisplayedMolecule.DisplayType.DEVICEMOLECULELIST); foreach (EquipedDisplayedDeviceWithMolecules container in containers) { container.addDisplayedMolecule(created); } } else { _displayedListMoleculesCount++; } //anyway add it to molecule list _displayedMolecules.AddLast(created); } } } removeUnusedMolecules(); if (_displayedMolecules.Count != previousTotalCount || previousListedCount != _displayedListMoleculesCount) { //rearrange devices positionDeviceAndMoleculeComponents(); } string namesToDisplay = ""; string valuesToDisplay = ""; foreach (DisplayedMolecule molecule in _displayedMolecules) { if (molecule.getDisplayType() == DisplayedMolecule.DisplayType.MOLECULELIST) { namesToDisplay += molecule.getRealName() + ":\n"; valuesToDisplay += molecule.getVal() + "\n"; } } if (!string.IsNullOrEmpty(namesToDisplay)) { namesToDisplay.Remove(namesToDisplay.Length - 1, 1); valuesToDisplay.Remove(valuesToDisplay.Length - 1, 1); } namesLabel.text = namesToDisplay; valuesLabel.text = valuesToDisplay; /* * if(null != topLabels) * { * topLabelsShift = Vector3.up * topLabels.relativeSize.y * topLabels.transform.localScale.y; * namesLabel.transform.localPosition = topLabels.transform.localPosition + topLabelsShift; * } */ setUnfoldingListBackgroundScale(); }