()
| 172 | } |
| 173 | |
| 174 | function buildTree() { |
| 175 | if (treeWidget == null) { |
| 176 | return; |
| 177 | } |
| 178 | let treeData = []; |
| 179 | let itemColors = {}; |
| 180 | |
| 181 | const plotData = wpd.appData.getPlotData(); |
| 182 | const fileManager = wpd.appData.getFileManager(); |
| 183 | const pageManager = wpd.appData.getPageManager(); |
| 184 | const currentFileIndex = fileManager.currentFileIndex(); |
| 185 | |
| 186 | // Image item |
| 187 | treeData.push(wpd.gettext('image')); |
| 188 | |
| 189 | // Axes folder |
| 190 | let axesNames = plotData.getAxesNames(); |
| 191 | const axesFileMap = fileManager.getAxesNameMap(); |
| 192 | axesNames = axesNames.filter(name => axesFileMap[name] === currentFileIndex); |
| 193 | let axesFolder = {}; |
| 194 | if (wpd.appData.isMultipage()) { |
| 195 | const currentPage = pageManager.currentPage(); |
| 196 | const axesPageMap = pageManager.getAxesNameMap(); |
| 197 | axesFolder[wpd.gettext("axes")] = axesNames.filter( |
| 198 | name => axesPageMap[name] === currentPage |
| 199 | ); |
| 200 | } else { |
| 201 | axesFolder[wpd.gettext("axes")] = axesNames; |
| 202 | } |
| 203 | treeData.push(axesFolder); |
| 204 | |
| 205 | // Datasets folder |
| 206 | let datasetNames = plotData.getDatasetNames(); |
| 207 | const datasetFileMap = fileManager.getDatasetNameMap(); |
| 208 | datasetNames = datasetNames.filter(name => datasetFileMap[name] === currentFileIndex); |
| 209 | let datasetsFolder = {}; |
| 210 | if (wpd.appData.isMultipage()) { |
| 211 | const currentPage = pageManager.currentPage(); |
| 212 | const datasetPageMap = pageManager.getDatasetNameMap(); |
| 213 | datasetsFolder[wpd.gettext("datasets")] = datasetNames.filter( |
| 214 | name => datasetPageMap[name] === currentPage |
| 215 | ); |
| 216 | } else { |
| 217 | datasetsFolder[wpd.gettext("datasets")] = datasetNames; |
| 218 | } |
| 219 | treeData.push(datasetsFolder); |
| 220 | |
| 221 | // Dataset colors |
| 222 | for (let ds of plotData.getDatasets()) { |
| 223 | if (ds.colorRGB != null) { |
| 224 | itemColors["/" + wpd.gettext("datasets") + "/" + ds.name] = ds.colorRGB; |
| 225 | } |
| 226 | } |
| 227 | |
| 228 | // Measurements folder |
| 229 | let distMeasures = fileManager.filterToCurrentFileMeasurements( |
| 230 | plotData.getMeasurementsByType(wpd.DistanceMeasurement) |
| 231 | ); |
no test coverage detected