first commit
This commit is contained in:
49
helix/javascript/array_summary/subarray_display.js
Normal file
49
helix/javascript/array_summary/subarray_display.js
Normal file
@@ -0,0 +1,49 @@
|
||||
class SubarrayDisplay {
|
||||
init(currentSeismicCountSelector, neededAnchorSelector, weightSelector, panelData) {
|
||||
this.currentSeismicCountSelector = currentSeismicCountSelector;
|
||||
this.neededAnchorSelector = neededAnchorSelector;
|
||||
this.weightSelector = weightSelector;
|
||||
this.didModifyPanels(panelData);
|
||||
}
|
||||
|
||||
didModifyPanels(panelData) {
|
||||
let seismicCount = this.computeSeismicAnchorCounts(panelData);
|
||||
|
||||
this.assignSeismicCountItems(seismicCount);
|
||||
}
|
||||
|
||||
didUpdateSubarrayData(subarrayData) {
|
||||
for (let i = 0; i < subarrayData.length; i++) {
|
||||
let data = subarrayData[i];
|
||||
let subarray = i + 2;
|
||||
let neededAnchors = data.required_seismic_anchors;
|
||||
let weight = data.weight;
|
||||
this.neededAnchorSelector.find('td:nth-child(' + subarray + ')').text(neededAnchors);
|
||||
this.weightSelector.find('td:nth-child(' + subarray + ')').text(weight.toLocaleString());
|
||||
}
|
||||
}
|
||||
|
||||
computeSeismicAnchorCounts(panelData) {
|
||||
let seismicCount = {};
|
||||
for (let i = 0; i < panelData.length; i++) {
|
||||
let panel = panelData[i].data;
|
||||
if (seismicCount[panel.subarray] === undefined) {
|
||||
seismicCount[panel.subarray] = 0;
|
||||
}
|
||||
seismicCount[panel.subarray] += panel.seismic_anchors;
|
||||
}
|
||||
|
||||
return seismicCount
|
||||
}
|
||||
|
||||
assignSeismicCountItems(seismicAnchorCounts) {
|
||||
for (var subarray in seismicAnchorCounts) {
|
||||
if (seismicAnchorCounts.hasOwnProperty(subarray)) {
|
||||
const childId = parseInt(Object.keys(seismicAnchorCounts).indexOf(subarray)) + 2;
|
||||
this.currentSeismicCountSelector.find(`td:nth-child(${childId})`).text(seismicAnchorCounts[subarray]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default SubarrayDisplay;
|
||||
Reference in New Issue
Block a user