| 3118 | } |
| 3119 | |
| 3120 | void SetData(matrix_t<double> &data) |
| 3121 | { |
| 3122 | mData = data; |
| 3123 | |
| 3124 | if (GridTable) GridTable->SetMatrix(NULL); |
| 3125 | Grid->SetTable(NULL); |
| 3126 | |
| 3127 | size_t dataSize = mData.nrows(); |
| 3128 | if (dataSize < 1) |
| 3129 | { |
| 3130 | mData.at(1,0) = 0.0; |
| 3131 | dataSize = 1; |
| 3132 | } |
| 3133 | if (dataSize == 1) |
| 3134 | mMode = DATA_LIFETIME_MATRIX_SINGLEVALUE; |
| 3135 | else if (dataSize == (mAnalysisPeriod)) |
| 3136 | mMode = DATA_LIFETIME_MATRIX_ANNUAL; |
| 3137 | else if (dataSize == (mAnalysisPeriod * 12)) |
| 3138 | mMode = DATA_LIFETIME_MATRIX_MONTHLY; |
| 3139 | else if (dataSize == (mAnalysisPeriod * 52)) |
| 3140 | mMode = DATA_LIFETIME_MATRIX_WEEKLY; |
| 3141 | else if (dataSize == (mAnalysisPeriod * 365)) |
| 3142 | mMode = DATA_LIFETIME_MATRIX_DAILY; |
| 3143 | else if (dataSize == (mAnalysisPeriod * 8760)) |
| 3144 | mMode = DATA_LIFETIME_MATRIX_HOURLY; |
| 3145 | else |
| 3146 | { |
| 3147 | mMode = DATA_LIFETIME_MATRIX_SUBHOURLY; |
| 3148 | size_t stepsPerHour = dataSize / (mAnalysisPeriod * 8760); |
| 3149 | switch (stepsPerHour) |
| 3150 | { |
| 3151 | case 2: // 30 minute |
| 3152 | Timesteps->SetSelection(5); |
| 3153 | break; |
| 3154 | case 3: // 20 minute |
| 3155 | Timesteps->SetSelection(4); |
| 3156 | break; |
| 3157 | case 4: // 15 minute |
| 3158 | Timesteps->SetSelection(3); |
| 3159 | break; |
| 3160 | case 6: // 10 minute |
| 3161 | Timesteps->SetSelection(2); |
| 3162 | break; |
| 3163 | case 12: // 5 minute |
| 3164 | Timesteps->SetSelection(1); |
| 3165 | break; |
| 3166 | default: // 1 minute |
| 3167 | Timesteps->SetSelection(0); |
| 3168 | break; |
| 3169 | } |
| 3170 | } |
| 3171 | |
| 3172 | GridTable = new AFDataLifetimeMatrixTable(&mData, mMode, mColumnLabels); |
| 3173 | GridTable->SetAttrProvider(new wxExtGridCellAttrProvider); |
| 3174 | |
| 3175 | Grid->SetTable(GridTable, true); |
| 3176 | // can use max text width from column labels |
| 3177 | for (size_t ic = 0; ic < (size_t)Grid->GetNumberCols(); ic++) |
nothing calls this directly
no test coverage detected