22 #include "../../toolbox/components/datagrid/component.h"
23 #include "../../toolbox/components/datagrid/renderer/correlation.h"
25 namespace Antares::Window
35 virtual wxString name()
const
37 return wxT(
"Areas in alphabetical order");
40 virtual const char* icon()
const
42 return "images/16x16/sort_alphabet.png";
48 auto study = GetCurrentStudy();
51 pArray.reserve(study->areas.size());
52 const Data::Area::Map::iterator end = study->areas.end();
53 for (Data::Area::Map::iterator i = study->areas.begin(); i != end; ++i)
55 pArray.push_back(i->second);
60 virtual uint size()
const
62 return (uint)pArray.size();
67 return (i < pArray.size()) ? pArray[i] : NULL;
70 virtual uint areaIndex(uint i)
const
72 return pArray[i]->index;
76 Data::Area::Vector pArray;
87 virtual wxString name()
const
89 return wxT(
"Areas in reverse alphabetical order");
92 virtual const char* icon()
const
94 return "images/16x16/sort_alphabet_descending.png";
101 auto study = GetCurrentStudy();
104 pArray.reserve(study->areas.size());
105 const Data::Area::Map::reverse_iterator end = study->areas.rend();
106 for (Data::Area::Map::reverse_iterator i = study->areas.rbegin(); i != end; ++i)
108 pArray.push_back(i->second);
113 virtual uint size()
const
115 return (uint)pArray.size();
120 return (i < pArray.size()) ? pArray[i] : NULL;
123 virtual uint areaIndex(uint i)
const
125 return pArray[i]->index;
129 Data::Area::Vector pArray;
137 return (a->
ui->cacheColorHSV == b->ui->cacheColorHSV)
138 ? (a->
name < b->name)
139 : (a->
ui->cacheColorHSV) > (b->ui->cacheColorHSV);
150 virtual wxString name()
const
152 return wxT(
"Areas ordered by theur color");
155 virtual const char* icon()
const
157 return "images/16x16/color.png";
160 virtual void reload()
164 auto study = GetCurrentStudy();
168 const Data::Area::Map::iterator end = study->areas.end();
169 for (Data::Area::Map::iterator i = study->areas.begin(); i != end; ++i)
171 pArray.push_back(i->second);
174 std::sort(pArray.begin(), pArray.end(),
SortColor());
175 pRegionStart.resize(pArray.size(), 0);
176 pRegionEnd.resize(pArray.size(), 0);
177 pRegionColor.resize(pArray.size());
178 pRegionColorIdentity.resize(pArray.size());
183 Yuni::CString<12, false> old;
185 wxColour colorIdentity;
186 const Data::Area::Vector::const_iterator end = pArray.end();
187 for (Data::Area::Vector::const_iterator i = pArray.begin(); i != end; ++i, ++j)
189 if (old != (*i)->ui->cacheColorHSV)
191 for (
int z = lastLevel; z < j; ++z)
193 pRegionEnd[z] = j - 1;
195 old = (*i)->ui->cacheColorHSV;
197 (
unsigned char)Yuni::Math::MinMax<int>((*i)->ui->color[0] + 35, 0, 255),
198 (
unsigned char)Yuni::Math::MinMax<int>((*i)->ui->color[1] + 35, 0, 255),
199 (
unsigned char)Yuni::Math::MinMax<int>((*i)->ui->color[2] + 35, 0, 255));
201 (
unsigned char)Yuni::Math::MinMax<int>((*i)->ui->color[0] - 35, 0, 255),
202 (
unsigned char)Yuni::Math::MinMax<int>((*i)->ui->color[1] - 35, 0, 255),
203 (
unsigned char)Yuni::Math::MinMax<int>((*i)->ui->color[2] - 35, 0, 255));
206 pRegionStart[j] = lastLevel;
207 pRegionColor[j] = color;
208 pRegionColorIdentity[j] = colorIdentity;
210 for (
int z = lastLevel; z < (int)pArray.size(); ++z)
212 pRegionEnd[z] = (int)pArray.size() - 1;
218 virtual uint size()
const
220 return (uint)pArray.size();
225 return (i < pArray.size()) ? pArray[i] : NULL;
228 virtual Component::Datagrid::Renderer::IRenderer::CellStyle cellStyle(
int col,
int row)
const
230 return (col == row || (row >= pRegionStart[col] && row <= pRegionEnd[col]))
231 ? Component::Datagrid::Renderer::IRenderer::cellStyleCustom
232 : Component::Datagrid::Renderer::IRenderer::cellStyleDefault;
235 virtual wxColour cellBackgroundColor(
int col,
int row)
const
237 return (col == row) ? pRegionColorIdentity[col] : pRegionColor[col];
240 virtual wxColour cellTextColor(
int,
int)
const
242 return wxColour(0, 0, 0);
245 virtual uint areaIndex(uint i)
const
247 return pArray[i]->index;
251 Data::Area::Vector pArray;
252 std::vector<int> pRegionStart;
253 std::vector<int> pRegionEnd;
254 std::vector<wxColour> pRegionColor;
255 std::vector<wxColour> pRegionColorIdentity;
Definition: correlation.h:35
Definition for a single area.
Definition: area.h:51
AreaName name
Name of the area.
Definition: area.h:212
std::unique_ptr< AreaUI > ui
Information for the UI.
Definition: area.h:303
Definition: datasources.hxx:29
Definition: datasources.hxx:144
Definition: datasources.hxx:81
Definition: datasources.hxx:133