13#include "xy_grib_panel.h"
17XyGribPanel::XyGribPanel(wxWindow* parent, wxWindowID
id,
const wxPoint& pos,
18 const wxSize& size,
long style,
const wxString& name)
19 : wxPanel(parent, id, pos, size, style, name) {
20 wxGridBagSizer* m_separator_line;
21 m_separator_line =
new wxGridBagSizer(0, 0);
22 m_separator_line->SetFlexibleDirection(wxBOTH);
23 m_separator_line->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
25 m_wavemodel_label =
new wxStaticText(
this, wxID_ANY, _(
"Wave model"),
26 wxDefaultPosition, wxDefaultSize, 0);
27 m_wavemodel_label->Wrap(-1);
28 m_separator_line->Add(m_wavemodel_label, wxGBPosition(1, 0), wxGBSpan(1, 1),
29 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
31 m_atmmodel_label =
new wxStaticText(
this, wxID_ANY, _(
"Weather model"),
32 wxDefaultPosition, wxDefaultSize, 0);
33 m_atmmodel_label->Wrap(-1);
34 m_separator_line->Add(m_atmmodel_label, wxGBPosition(0, 0), wxGBSpan(1, 1),
35 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
37 m_weathermodel =
new wxStaticText(
this, wxID_ANY, _(
"Resolution"),
38 wxDefaultPosition, wxDefaultSize, 0);
39 m_weathermodel->Wrap(-1);
40 m_separator_line->Add(m_weathermodel, wxGBPosition(2, 0), wxGBSpan(1, 1),
41 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
43 m_duration_label =
new wxStaticText(
this, wxID_ANY, _(
"Days"),
44 wxDefaultPosition, wxDefaultSize, 0);
45 m_duration_label->Wrap(-1);
46 m_separator_line->Add(m_duration_label, wxGBPosition(3, 0), wxGBSpan(1, 1),
47 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
49 m_run_label =
new wxStaticText(
this, wxID_ANY, _(
"Run"), wxDefaultPosition,
51 m_run_label->Wrap(-1);
52 m_separator_line->Add(m_run_label, wxGBPosition(4, 0), wxGBSpan(1, 1),
53 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
55 m_interval_label =
new wxStaticText(
this, wxID_ANY, _(
"Interval"),
56 wxDefaultPosition, wxDefaultSize, 0);
57 m_interval_label->Wrap(-1);
58 m_separator_line->Add(m_interval_label, wxGBPosition(5, 0), wxGBSpan(1, 1),
59 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
61 wxArrayString m_atmmodel_choiceChoices;
62 m_atmmodel_choice =
new wxChoice(
this, wxID_ANY, wxDefaultPosition,
63 wxDefaultSize, m_atmmodel_choiceChoices, 0);
64 m_atmmodel_choice->SetSelection(0);
65 m_separator_line->Add(m_atmmodel_choice, wxGBPosition(0, 1), wxGBSpan(1, 1),
68 wxArrayString m_wavemodel_choiceChoices;
70 new wxChoice(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
71 m_wavemodel_choiceChoices, 0);
72 m_wavemodel_choice->SetSelection(0);
73 m_separator_line->Add(m_wavemodel_choice, wxGBPosition(1, 1), wxGBSpan(1, 1),
76 wxArrayString m_interval_choiceChoices;
77 m_interval_choice =
new wxChoice(
this, wxID_ANY, wxDefaultPosition,
78 wxDefaultSize, m_interval_choiceChoices, 0);
79 m_interval_choice->SetSelection(0);
80 m_separator_line->Add(m_interval_choice, wxGBPosition(5, 1), wxGBSpan(1, 1),
83 wxArrayString m_resolution_choiceChoices;
85 new wxChoice(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
86 m_resolution_choiceChoices, 0);
87 m_resolution_choice->SetSelection(0);
88 m_separator_line->Add(m_resolution_choice, wxGBPosition(2, 1), wxGBSpan(1, 1),
91 wxArrayString m_duration_choiceChoices;
92 m_duration_choice =
new wxChoice(
this, wxID_ANY, wxDefaultPosition,
93 wxDefaultSize, m_duration_choiceChoices, 0);
94 m_duration_choice->SetSelection(0);
95 m_separator_line->Add(m_duration_choice, wxGBPosition(3, 1), wxGBSpan(1, 1),
98 wxArrayString m_run_choiceChoices;
99 m_run_choice =
new wxChoice(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
100 m_run_choiceChoices, 0);
101 m_run_choice->SetSelection(0);
102 m_separator_line->Add(m_run_choice, wxGBPosition(4, 1), wxGBSpan(1, 1),
103 wxALL | wxEXPAND, 5);
106 new wxNotebook(
this, wxID_ANY, wxDefaultPosition, wxSize(-1, -1), 0);
108 new wxPanel(m_dataconfig_nbook, wxID_ANY, wxDefaultPosition,
109 wxDefaultSize, wxTAB_TRAVERSAL);
110 wxGridSizer* m_surfacetab_sizer;
111 m_surfacetab_sizer =
new wxGridSizer(0, 2, 0, 0);
113 m_wind_cbox =
new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Wind (10m)"),
114 wxDefaultPosition, wxDefaultSize, 0);
115 m_wind_cbox->SetValue(
true);
116 m_surfacetab_sizer->Add(m_wind_cbox, 0, wxALL, 5);
119 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Wind gust (surface)"),
120 wxDefaultPosition, wxDefaultSize, 0);
121 m_gust_cbox->SetValue(
true);
122 m_surfacetab_sizer->Add(m_gust_cbox, 0, wxALL, 5);
125 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Pressure (MSL)"),
126 wxDefaultPosition, wxDefaultSize, 0);
127 m_surfacetab_sizer->Add(m_pressure_cbox, 0, wxALL, 5);
130 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Temperature (2m)"),
131 wxDefaultPosition, wxDefaultSize, 0);
132 m_surfacetab_sizer->Add(m_temperature_cbox, 0, wxALL, 5);
135 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"CAPE (surface)"),
136 wxDefaultPosition, wxDefaultSize, 0);
137 m_surfacetab_sizer->Add(m_cape_cbox, 0, wxALL, 5);
139 m_reflectivity_cbox =
new wxCheckBox(m_surfacetab_panel, wxID_ANY,
140 _(
"Reflectivity (atmosphere)"),
141 wxDefaultPosition, wxDefaultSize, 0);
142 m_surfacetab_sizer->Add(m_reflectivity_cbox, 0, wxALL, 5);
145 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Cloud cover (total)"),
146 wxDefaultPosition, wxDefaultSize, 0);
147 m_surfacetab_sizer->Add(m_cloudcover_cbox, 0, wxALL, 5);
149 m_precipitation_cbox =
150 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Total precipitation"),
151 wxDefaultPosition, wxDefaultSize, 0);
152 m_surfacetab_sizer->Add(m_precipitation_cbox, 0, wxALL, 5);
155 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Wave Significant height"),
156 wxDefaultPosition, wxDefaultSize, 0);
157 m_waveheight_cbox->SetValue(
true);
158 m_surfacetab_sizer->Add(m_waveheight_cbox, 0, wxALL, 5);
161 new wxCheckBox(m_surfacetab_panel, wxID_ANY, _(
"Wind waves"),
162 wxDefaultPosition, wxDefaultSize, 0);
163 m_surfacetab_sizer->Add(m_windwave_cbox, 0, wxALL, 5);
165 m_surfacetab_panel->SetSizer(m_surfacetab_sizer);
166 m_surfacetab_panel->Layout();
167 m_surfacetab_sizer->Fit(m_surfacetab_panel);
168 m_dataconfig_nbook->AddPage(m_surfacetab_panel, _(
"Parameters"),
false);
170 m_separator_line->Add(m_dataconfig_nbook, wxGBPosition(0, 2), wxGBSpan(6, 1),
171 wxALL | wxEXPAND, 5);
173 m_separator_1 =
new wxStaticLine(
this, wxID_ANY, wxDefaultPosition,
174 wxDefaultSize, wxLI_HORIZONTAL);
175 m_separator_line->Add(m_separator_1, wxGBPosition(7, 0), wxGBSpan(1, 3),
176 wxEXPAND | wxALL, 5);
178 m_download_button =
new wxButton(
this, wxID_ANY, _(
"Download"),
179 wxDefaultPosition, wxDefaultSize, 0);
180 m_separator_line->Add(m_download_button, wxGBPosition(9, 0), wxGBSpan(1, 1),
181 wxALL | wxEXPAND, 5);
183 m_progress_gauge =
new wxGauge(
this, wxID_ANY, 100, wxDefaultPosition,
184 wxDefaultSize, wxGA_HORIZONTAL);
185 m_progress_gauge->SetValue(0);
186 m_separator_line->Add(m_progress_gauge, wxGBPosition(9, 1), wxGBSpan(1, 2),
187 wxALIGN_CENTER_VERTICAL | wxALL | wxEXPAND, 5);
189 m_status_label =
new wxStaticText(
this, wxID_ANY, _(
"Status :"),
190 wxDefaultPosition, wxDefaultSize, 0);
191 m_status_label->Wrap(-1);
192 m_separator_line->Add(m_status_label, wxGBPosition(8, 0), wxGBSpan(1, 1),
193 wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, 5);
195 m_status_text =
new wxStaticText(
this, wxID_ANY, _(
"Ready"),
196 wxDefaultPosition, wxDefaultSize, 0);
197 m_status_text->Wrap(-1);
198 m_separator_line->Add(m_status_text, wxGBPosition(8, 1), wxGBSpan(1, 2),
201 m_sizeestimate_label =
new wxStaticText(
this, wxID_ANY, _(
"Estimated size :"),
202 wxDefaultPosition, wxDefaultSize, 0);
203 m_sizeestimate_label->Wrap(-1);
204 m_separator_line->Add(m_sizeestimate_label, wxGBPosition(6, 1),
205 wxGBSpan(1, 1), wxALIGN_RIGHT | wxALL, 5);
207 m_sizeestimate_text =
new wxStaticText(
this, wxID_ANY, _(
"Unknown"),
208 wxDefaultPosition, wxDefaultSize, 0);
209 m_sizeestimate_text->Wrap(-1);
210 m_separator_line->Add(m_sizeestimate_text, wxGBPosition(6, 2), wxGBSpan(1, 1),
213 this->SetSizer(m_separator_line);
215 m_separator_line->Fit(
this);
218XyGribPanel::~XyGribPanel() =
default;