diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-09-06 20:11:37 -0300 |
---|---|---|
committer | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-09-06 20:11:37 -0300 |
commit | 41b81949a92aad043caa28b0e1144348d06921f8 (patch) | |
tree | 9336697587beafbcca1ad8bcf90e750db550b927 | |
parent | 926af7f34aaf5aebdbac0cbc550ed75647874258 (diff) | |
download | PSP.git-41b81949a92aad043caa28b0e1144348d06921f8.tar.gz PSP.git-41b81949a92aad043caa28b0e1144348d06921f8.tar.xz PSP.git-41b81949a92aad043caa28b0e1144348d06921f8.zip |
Data report implementation start
-rw-r--r-- | Project/Bus.h | 2 | ||||
-rw-r--r-- | Project/DataReport.cpp | 383 | ||||
-rw-r--r-- | Project/DataReport.h | 46 | ||||
-rw-r--r-- | Project/DataReport.wxcp | 2188 | ||||
-rw-r--r-- | Project/DataReportBase.cpp | 277 | ||||
-rw-r--r-- | Project/DataReportBase.h | 94 | ||||
-rw-r--r-- | Project/DataReportBitmaps.cpp | 724 | ||||
-rw-r--r-- | Project/ElectricCalculation.cpp | 29 | ||||
-rw-r--r-- | Project/Line.cpp | 114 | ||||
-rw-r--r-- | Project/Line.h | 7 | ||||
-rw-r--r-- | Project/MainFrame.cpp | 17 | ||||
-rw-r--r-- | Project/MainFrame.h | 1 | ||||
-rw-r--r-- | Project/Project.mk | 44 | ||||
-rw-r--r-- | Project/Project.project | 6 | ||||
-rw-r--r-- | Project/Project.txt | 4 | ||||
-rw-r--r-- | Project/Transformer.cpp | 58 | ||||
-rw-r--r-- | Project/Transformer.h | 3 | ||||
-rw-r--r-- | Project/Workspace.cpp | 41 | ||||
-rw-r--r-- | Project/Workspace.h | 7 | ||||
-rw-r--r-- | Project/data/images/dataReport128.png | bin | 0 -> 3437 bytes | |||
-rw-r--r-- | Project/data/images/dataReport16.png | bin | 0 -> 658 bytes | |||
-rw-r--r-- | Project/data/images/dataReport256.png | bin | 0 -> 6518 bytes | |||
-rw-r--r-- | Project/data/images/dataReport32.png | bin | 0 -> 1105 bytes | |||
-rw-r--r-- | Project/data/images/dataReport64.png | bin | 0 -> 1844 bytes |
24 files changed, 4002 insertions, 43 deletions
diff --git a/Project/Bus.h b/Project/Bus.h index cbc8287..17d341b 100644 --- a/Project/Bus.h +++ b/Project/Bus.h @@ -16,6 +16,8 @@ struct BusElectricalData { // Power flow (p.u.) std::complex<double> voltage = std::complex<double>(1.0, 0.0); + std::complex<double> power = std::complex<double>(0.0, 0.0); + int busType = 2; // PQ // Fault bool hasFault = false; diff --git a/Project/DataReport.cpp b/Project/DataReport.cpp new file mode 100644 index 0000000..173f476 --- /dev/null +++ b/Project/DataReport.cpp @@ -0,0 +1,383 @@ +#include "DataReport.h" +#include "Workspace.h" +#include "ElectricCalculation.h" + +DataReport::DataReport(wxWindow* parent, Workspace* workspace) : DataReportBase(parent) +{ + m_workspace = workspace; + CreateGrids(); + SetHeaders(); + FillValues(); + + Layout(); +} + +DataReport::~DataReport() {} +void DataReport::SetHeaders() +{ + // Headers choices fill + m_voltageChoices.Add(_("Voltage (p.u.)")); + m_voltageChoices.Add(_("Voltage (V)")); + m_voltageChoices.Add(_("Voltage (kV)")); + + m_activePowerChoices.Add(_("Active Power (p.u.)")); + m_activePowerChoices.Add(_("Active Power (W)")); + m_activePowerChoices.Add(_("Active Power (kW)")); + m_activePowerChoices.Add(_("Active Power (MW)")); + + m_reactivePowerChoices.Add(_("Reactive Power (p.u.)")); + m_reactivePowerChoices.Add(_("Reactive Power (VAr)")); + m_reactivePowerChoices.Add(_("Reactive Power (kVAr)")); + m_reactivePowerChoices.Add(_("Reactive Power (MVAr)")); + + // Power flow + m_gridPowerFlow->SetCellValue(0, 0, _("Type")); + m_gridPowerFlow->SetCellValue(0, 1, _("Name")); + m_gridPowerFlow->SetCellValue(0, 2, _("From")); + m_gridPowerFlow->SetCellValue(0, 3, _("To")); + m_gridPowerFlow->SetCellEditor(0, 4, new wxGridCellChoiceEditor(m_activePowerChoices)); + m_gridPowerFlow->SetCellValue(0, 4, m_activePowerChoices[3]); + m_gridPowerFlow->SetCellEditor(0, 5, new wxGridCellChoiceEditor(m_reactivePowerChoices)); + m_gridPowerFlow->SetCellValue(0, 5, m_reactivePowerChoices[3]); + + // Power flow buses + m_gridPFBuses->SetCellValue(0, 0, _("Name")); + m_gridPFBuses->SetCellValue(0, 1, _("Type")); + m_gridPFBuses->SetCellEditor(0, 2, new wxGridCellChoiceEditor(m_voltageChoices)); + m_gridPFBuses->SetCellValue(0, 2, m_voltageChoices[0]); + m_gridPFBuses->SetCellValue(0, 3, _("Angle")); + m_gridPFBuses->SetCellEditor(0, 4, new wxGridCellChoiceEditor(m_activePowerChoices)); + m_gridPFBuses->SetCellValue(0, 4, m_activePowerChoices[3]); + m_gridPFBuses->SetCellEditor(0, 5, new wxGridCellChoiceEditor(m_reactivePowerChoices)); + m_gridPFBuses->SetCellValue(0, 5, m_reactivePowerChoices[3]); + + // Power flow brances + m_gridPFBranches->SetCellValue(0, 0, _("Type")); + m_gridPFBranches->SetCellValue(0, 1, _("Name")); + m_gridPFBranches->SetCellValue(0, 2, _("From")); + m_gridPFBranches->SetCellValue(0, 3, _("To")); + m_gridPFBranches->SetCellValue(0, 4, _("R (p.u.)")); + m_gridPFBranches->SetCellValue(0, 5, _("XL (p.u.)")); + m_gridPFBranches->SetCellValue(0, 6, _("B (p.u.)")); + m_gridPFBranches->SetCellValue(0, 7, _("TAP")); + m_gridPFBranches->SetCellValue(0, 8, _("Phase Shift")); + m_gridPFBranches->SetCellValue(0, 9, _("Online")); +} + +void DataReport::FillValues(GridSelection gridToFill) +{ + m_changingValues = true; + ElectricCalculation eCalc; + eCalc.GetElementsFromList(m_workspace->GetElementList()); + + double basePower = m_workspace->GetProperties()->GetSimulationPropertiesData().basePower; + switch(m_workspace->GetProperties()->GetSimulationPropertiesData().basePowerUnit) { + case UNIT_kVA: { + basePower *= 1e3; + } break; + case UNIT_MVA: { + basePower *= 1e6; + } break; + default: + break; + } + + int rowNumber = 1; + auto lineList = eCalc.GetLineList(); + auto transformerList = eCalc.GetTransformerList(); + auto busList = eCalc.GetBusList(); + + // Power Flow + if(gridToFill == GRID_ALL || gridToFill == GRID_PF) { + double kActivePower = 1.0; + if(m_gridPowerFlow->GetCellValue(0, 4) == m_activePowerChoices[1]) + kActivePower = basePower; + else if(m_gridPowerFlow->GetCellValue(0, 4) == m_activePowerChoices[2]) + kActivePower = basePower / 1e3; + else if(m_gridPowerFlow->GetCellValue(0, 4) == m_activePowerChoices[3]) + kActivePower = basePower / 1e6; + + double kReactivePower = 1.0; + if(m_gridPowerFlow->GetCellValue(0, 5) == m_reactivePowerChoices[1]) + kReactivePower = basePower; + else if(m_gridPowerFlow->GetCellValue(0, 5) == m_reactivePowerChoices[2]) + kReactivePower = basePower / 1e3; + else if(m_gridPowerFlow->GetCellValue(0, 5) == m_reactivePowerChoices[3]) + kReactivePower = basePower / 1e6; + + for(auto it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) { + Line* line = *it; + if(line->IsOnline()) { + auto data = line->GetElectricalData(); + + Bus* bus1 = static_cast<Bus*>(line->GetParentList()[0]); + Bus* bus2 = static_cast<Bus*>(line->GetParentList()[1]); + + m_gridPowerFlow->SetCellValue(rowNumber, 0, _("Line")); + m_gridPowerFlow->SetCellValue(rowNumber, 1, data.name); + m_gridPowerFlow->SetCellValue(rowNumber, 2, bus1->GetElectricalData().name); + m_gridPowerFlow->SetCellValue(rowNumber, 3, bus2->GetElectricalData().name); + m_gridPowerFlow->SetCellValue(rowNumber, 4, + line->StringFromDouble(std::real(data.powerFlow[0]) * kActivePower)); + m_gridPowerFlow->SetCellValue(rowNumber, 5, + line->StringFromDouble(std::imag(data.powerFlow[0]) * kReactivePower)); + rowNumber++; + + m_gridPowerFlow->SetCellValue(rowNumber, 0, _("Line")); + m_gridPowerFlow->SetCellValue(rowNumber, 1, data.name); + m_gridPowerFlow->SetCellValue(rowNumber, 2, bus2->GetElectricalData().name); + m_gridPowerFlow->SetCellValue(rowNumber, 3, bus1->GetElectricalData().name); + m_gridPowerFlow->SetCellValue(rowNumber, 4, + line->StringFromDouble(std::real(data.powerFlow[1]) * kActivePower)); + m_gridPowerFlow->SetCellValue(rowNumber, 5, + line->StringFromDouble(std::imag(data.powerFlow[1]) * kReactivePower)); + rowNumber++; + } + } + + for(auto it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) { + Transformer* transformer = *it; + if(transformer->IsOnline()) { + auto data = transformer->GetElectricalData(); + + Bus* bus1 = static_cast<Bus*>(transformer->GetParentList()[0]); + Bus* bus2 = static_cast<Bus*>(transformer->GetParentList()[1]); + + m_gridPowerFlow->SetCellValue(rowNumber, 0, _("Transformer")); + m_gridPowerFlow->SetCellValue(rowNumber, 1, data.name); + m_gridPowerFlow->SetCellValue(rowNumber, 2, bus1->GetElectricalData().name); + m_gridPowerFlow->SetCellValue(rowNumber, 3, bus2->GetElectricalData().name); + m_gridPowerFlow->SetCellValue( + rowNumber, 4, transformer->StringFromDouble(std::real(data.powerFlow[0]) * kActivePower)); + m_gridPowerFlow->SetCellValue( + rowNumber, 5, transformer->StringFromDouble(std::imag(data.powerFlow[0]) * kReactivePower)); + rowNumber++; + + m_gridPowerFlow->SetCellValue(rowNumber, 0, _("Transformer")); + m_gridPowerFlow->SetCellValue(rowNumber, 1, data.name); + m_gridPowerFlow->SetCellValue(rowNumber, 2, bus2->GetElectricalData().name); + m_gridPowerFlow->SetCellValue(rowNumber, 3, bus1->GetElectricalData().name); + m_gridPowerFlow->SetCellValue( + rowNumber, 4, transformer->StringFromDouble(std::real(data.powerFlow[1]) * kActivePower)); + m_gridPowerFlow->SetCellValue( + rowNumber, 5, transformer->StringFromDouble(std::imag(data.powerFlow[1]) * kReactivePower)); + rowNumber++; + } + } + m_gridPowerFlow->AutoSize(); + } + + // Power Flow buses + if(gridToFill == GRID_ALL || gridToFill == GRID_PFBUSES) { + double kActivePower = 1.0; + if(m_gridPFBuses->GetCellValue(0, 4) == m_activePowerChoices[1]) + kActivePower = basePower; + else if(m_gridPFBuses->GetCellValue(0, 4) == m_activePowerChoices[2]) + kActivePower = basePower / 1e3; + else if(m_gridPFBuses->GetCellValue(0, 4) == m_activePowerChoices[3]) + kActivePower = basePower / 1e6; + + double kReactivePower = 1.0; + if(m_gridPFBuses->GetCellValue(0, 5) == m_reactivePowerChoices[1]) + kReactivePower = basePower; + else if(m_gridPFBuses->GetCellValue(0, 5) == m_reactivePowerChoices[2]) + kReactivePower = basePower / 1e3; + else if(m_gridPFBuses->GetCellValue(0, 5) == m_reactivePowerChoices[3]) + kReactivePower = basePower / 1e6; + + rowNumber = 1; + for(auto it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) { + Bus* bus = *it; + auto data = bus->GetElectricalData(); + + double vb = std::abs(data.nominalVoltage); + if(data.nominalVoltageUnit == UNIT_kV) vb *= 1e3; + double kVoltage = 1.0; + if(m_gridPFBuses->GetCellValue(0, 2) == m_voltageChoices[1]) + kVoltage = vb; + else if(m_gridPFBuses->GetCellValue(0, 2) == m_voltageChoices[2]) + kVoltage = vb / 1e3; + + m_gridPFBuses->SetCellValue(rowNumber, 0, data.name); + wxString busTypeString = ""; + switch(data.busType) { + case BUS_SLACK: { + busTypeString = _("Slack"); + } break; + case BUS_PV: { + busTypeString = _("PV"); + } break; + case BUS_PQ: { + busTypeString = _("PQ"); + } break; + } + m_gridPFBuses->SetCellValue(rowNumber, 1, busTypeString); + m_gridPFBuses->SetCellValue(rowNumber, 2, bus->StringFromDouble(std::abs(data.voltage) * kVoltage)); + m_gridPFBuses->SetCellValue(rowNumber, 3, bus->StringFromDouble(wxRadToDeg(std::arg(data.voltage)))); + m_gridPFBuses->SetCellValue(rowNumber, 4, bus->StringFromDouble(std::real(data.power) * kActivePower)); + m_gridPFBuses->SetCellValue(rowNumber, 5, bus->StringFromDouble(std::imag(data.power) * kReactivePower)); + rowNumber++; + } + m_gridPFBuses->AutoSize(); + } + + // Power flow branches + if(gridToFill == GRID_ALL || gridToFill == GRID_PFBRANCHES) { + rowNumber = 1; + for(auto it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) { + Line* line = *it; + auto data = line->GetPUElectricalData(basePower); + + m_gridPFBranches->SetCellValue(rowNumber, 0, _("Line")); + m_gridPFBranches->SetCellValue(rowNumber, 1, data.name); + + wxString busName1 = "-"; + if(line->GetParentList()[0]) + busName1 = static_cast<Bus*>(line->GetParentList()[0])->GetElectricalData().name; + wxString busName2 = "-"; + if(line->GetParentList()[1]) + busName2 = static_cast<Bus*>(line->GetParentList()[1])->GetElectricalData().name; + m_gridPFBranches->SetCellValue(rowNumber, 2, busName1); + m_gridPFBranches->SetCellValue(rowNumber, 3, busName2); + + m_gridPFBranches->SetCellValue(rowNumber, 4, line->StringFromDouble(data.resistance)); + m_gridPFBranches->SetCellValue(rowNumber, 5, line->StringFromDouble(data.indReactance)); + m_gridPFBranches->SetCellValue(rowNumber, 6, line->StringFromDouble(data.capSusceptance)); + m_gridPFBranches->SetCellValue(rowNumber, 7, "-"); + m_gridPFBranches->SetCellValue(rowNumber, 8, "-"); + + wxString isOnline = _("Yes"); + if(!line->IsOnline()) isOnline = _("No"); + m_gridPFBranches->SetCellValue(rowNumber, 9, isOnline); + rowNumber++; + } + for(auto it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) { + Transformer* transformer = *it; + auto data = transformer->GetPUElectricalData(basePower); + + m_gridPFBranches->SetCellValue(rowNumber, 0, _("Transformer")); + m_gridPFBranches->SetCellValue(rowNumber, 1, data.name); + + wxString busName1 = "-"; + if(transformer->GetParentList()[0]) + busName1 = static_cast<Bus*>(transformer->GetParentList()[0])->GetElectricalData().name; + wxString busName2 = "-"; + if(transformer->GetParentList()[1]) + busName2 = static_cast<Bus*>(transformer->GetParentList()[1])->GetElectricalData().name; + m_gridPFBranches->SetCellValue(rowNumber, 2, busName1); + m_gridPFBranches->SetCellValue(rowNumber, 3, busName2); + + m_gridPFBranches->SetCellValue(rowNumber, 4, transformer->StringFromDouble(data.resistance)); + m_gridPFBranches->SetCellValue(rowNumber, 5, transformer->StringFromDouble(data.indReactance)); + m_gridPFBranches->SetCellValue(rowNumber, 6, "-"); + m_gridPFBranches->SetCellValue(rowNumber, 7, transformer->StringFromDouble(data.turnsRatio)); + m_gridPFBranches->SetCellValue(rowNumber, 8, transformer->StringFromDouble(data.phaseShift)); + + wxString isOnline = _("Yes"); + if(!transformer->IsOnline()) isOnline = _("No"); + m_gridPFBranches->SetCellValue(rowNumber, 9, isOnline); + rowNumber++; + } + m_gridPFBranches->AutoSize(); + } + + m_changingValues = false; +} + +void DataReport::CreateGrids() +{ + wxColour headerColour(200, 200, 200); + wxFont headerFont = m_gridPowerFlow->GetLabelFont(); + headerFont.SetWeight(wxFONTWEIGHT_BOLD); + + ElectricCalculation eCalc; + eCalc.GetElementsFromList(m_workspace->GetElementList()); + + // Power Flow + // Header + m_gridPowerFlow->AppendCols(6); + m_gridPowerFlow->AppendRows(); + m_gridPowerFlow->HideColLabels(); + m_gridPowerFlow->HideRowLabels(); + for(int i = 0; i < 6; ++i) { + m_gridPowerFlow->SetCellBackgroundColour(0, i, headerColour); + m_gridPowerFlow->SetCellFont(0, i, headerFont); + } + m_gridPowerFlow->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + // Values + auto lineList = eCalc.GetLineList(); + for(auto it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) { + Line* line = *it; + if(line->IsOnline()) { + m_gridPowerFlow->AppendRows(2); + } + } + auto transformerList = eCalc.GetTransformerList(); + for(auto it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) { + Transformer* transformer = *it; + if(transformer->IsOnline()) { + m_gridPowerFlow->AppendRows(2); + } + } + m_gridPowerFlow->AutoSize(); + + // Power Flow buses + // Header + m_gridPFBuses->AppendCols(6); + m_gridPFBuses->AppendRows(); + m_gridPFBuses->HideColLabels(); + m_gridPFBuses->HideRowLabels(); + for(int i = 0; i < 6; ++i) { + m_gridPFBuses->SetCellBackgroundColour(0, i, headerColour); + m_gridPFBuses->SetCellFont(0, i, headerFont); + } + m_gridPFBuses->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + // Values + auto busList = eCalc.GetBusList(); + m_gridPFBuses->AppendRows(busList.size()); + m_gridPFBuses->AutoSize(); + + // Power flow branches + // Header + m_gridPFBranches->AppendCols(10); + m_gridPFBranches->AppendRows(1); + m_gridPFBranches->HideColLabels(); + m_gridPFBranches->HideRowLabels(); + for(int i = 0; i < 10; ++i) { + m_gridPFBranches->SetCellBackgroundColour(0, i, headerColour); + m_gridPFBranches->SetCellFont(0, i, headerFont); + } + m_gridPFBranches->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + // Values + m_gridPFBranches->AppendRows(lineList.size() + transformerList.size()); + m_gridPFBranches->AutoSize(); +} + +void DataReport::OnPFBusGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_PFBUSES); +} +void DataReport::OnFaulrGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_FAULT); +} +void DataReport::OnFaultBranchesGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_FAULTBRANCHES); +} +void DataReport::OnFaultBusesGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_FAULTBUSES); +} +void DataReport::OnFaultGeneratorsGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_FAULTGENERATORS); +} +void DataReport::OnPFBranchesGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_PFBRANCHES); +} +void DataReport::OnPowerFlowGridChanged(wxGridEvent& event) +{ + if(!m_changingValues) FillValues(GRID_PF); +} diff --git a/Project/DataReport.h b/Project/DataReport.h new file mode 100644 index 0000000..61d8e15 --- /dev/null +++ b/Project/DataReport.h @@ -0,0 +1,46 @@ +#ifndef DATAREPORT_H +#define DATAREPORT_H + +#include "DataReportBase.h" + +class Workspace; +class ElectricCalculation; + +class DataReport : public DataReportBase +{ +public: + enum GridSelection { + GRID_ALL = 0, + GRID_PF, + GRID_PFBUSES, + GRID_PFBRANCHES, + GRID_FAULT, + GRID_FAULTBUSES, + GRID_FAULTBRANCHES, + GRID_FAULTGENERATORS, + }; + + DataReport(wxWindow* parent, Workspace* workspace); + virtual ~DataReport(); + + virtual void SetHeaders(); + virtual void CreateGrids(); + virtual void FillValues(GridSelection gridToFill = GRID_ALL); + + protected: + virtual void OnFaulrGridChanged(wxGridEvent& event); + virtual void OnFaultBranchesGridChanged(wxGridEvent& event); + virtual void OnFaultBusesGridChanged(wxGridEvent& event); + virtual void OnFaultGeneratorsGridChanged(wxGridEvent& event); + virtual void OnPFBranchesGridChanged(wxGridEvent& event); + virtual void OnPowerFlowGridChanged(wxGridEvent& event); + virtual void OnPFBusGridChanged(wxGridEvent& event); + Workspace* m_workspace = NULL; + bool m_changingValues = false; + + // Headers choices + wxArrayString m_voltageChoices; + wxArrayString m_activePowerChoices; + wxArrayString m_reactivePowerChoices; +}; +#endif // DATAREPORT_H diff --git a/Project/DataReport.wxcp b/Project/DataReport.wxcp new file mode 100644 index 0000000..e43aa2a --- /dev/null +++ b/Project/DataReport.wxcp @@ -0,0 +1,2188 @@ +{ + "metadata": { + "m_generatedFilesDir": ".", + "m_objCounter": 85, + "m_includeFiles": [], + "m_bitmapFunction": "wxC6A63InitBitmapResources", + "m_bitmapsFile": "DataReportBitmaps.cpp", + "m_GenerateCodeTypes": 1, + "m_outputFileName": "DataReportBase", + "m_firstWindowId": 10000, + "m_useEnum": true, + "m_useUnderscoreMacro": true, + "m_addHandlers": true, + "m_templateClasses": [] + }, + "windows": [{ + "m_type": 4402, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxDEFAULT_FRAME_STYLE"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "500,300" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "DataReportBase" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Enable Window Persistency:", + "m_value": true + }, { + "type": "string", + "m_label": "Title:", + "m_value": "Data report" + }, { + "type": "virtualFolderPicker", + "m_label": "Virtual Folder:", + "m_path": "Project:wxcrafter:resources" + }, { + "type": "choice", + "m_label": "Centre:", + "m_selection": 1, + "m_options": ["", "wxBOTH", "wxVERTICAL", "wxHORIZONTAL"] + }, { + "type": "string", + "m_label": "Inherited Class", + "m_value": "DataReport" + }, { + "type": "string", + "m_label": "File:", + "m_value": "DataReport" + }, { + "type": "string", + "m_label": "Class Decorator", + "m_value": "" + }, { + "type": "choice", + "m_label": "wxFrame Type", + "m_selection": 0, + "m_options": ["wxFrame", "wxDocMDIParentFrame", "wxDocMDIChildFrame", "wxDocParentFrame", "wxDocChildFrame"] + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (16x16) :", + "m_path": "data/images/chart16.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (32x32) :", + "m_path": "data/images/chart32.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (64x64) :", + "m_path": "data/images/chart64.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (128x128):", + "m_path": "data/images/chart128.png" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File (256x256):", + "m_path": "data/images/chart256.png" + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl1_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl2_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 1, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4442, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBK_DEFAULT"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebookPowerFlowData" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelPowerFlowData" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Power flow data" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl3_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4442, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBK_LEFT", "wxBK_DEFAULT"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebookPowerFlow" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelPowerFlow" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Power flow" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_1" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridPowerFlow" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnPowerFlowGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelPFBuses" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Buses" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridPFBuses" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnPFBusGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelPFBranches" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Branches" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_3" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridPFBranches" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnPFBranchesGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelFaultData" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Fault data" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl3_2" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4442, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxBK_LEFT", "wxBK_DEFAULT"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_notebookFault" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }], + "m_events": [], + "m_children": [{ + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelFault" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Fault" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_4" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridFault" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnFaulrGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelFaultBuses" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Buses" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_5" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridFaultBuses" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnFaultBusesGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelFaultBranches" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Branches" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_6" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridFaultBranches" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnFaultBranchesGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }, { + "m_type": 4441, + "proportion": 0, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxTAB_TRAVERSAL"], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_panelFaultGenerators" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "string", + "m_label": "Label:", + "m_value": "Generators" + }, { + "type": "bitmapPicker", + "m_label": "Bitmap File:", + "m_path": "" + }, { + "type": "bool", + "m_label": "Selected", + "m_value": false + }, { + "type": "bool", + "m_label": "Null Page", + "m_value": false + }], + "m_events": [], + "m_children": [{ + "m_type": 4401, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": [], + "m_sizerFlags": ["wxALL", "wxLEFT", "wxRIGHT", "wxTOP", "wxBOTTOM", "wxEXPAND"], + "m_properties": [{ + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "boxSizerLvl4_118" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "choice", + "m_label": "Orientation:", + "m_selection": 0, + "m_options": ["wxVERTICAL", "wxHORIZONTAL"] + }], + "m_events": [], + "m_children": [{ + "m_type": 4426, + "proportion": 1, + "border": 5, + "gbSpan": "1,1", + "gbPosition": "0,0", + "m_styles": ["wxWANTS_CHARS"], + "m_sizerFlags": ["wxEXPAND"], + "m_properties": [{ + "type": "winid", + "m_label": "ID:", + "m_winid": "wxID_ANY" + }, { + "type": "string", + "m_label": "Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Minimum Size:", + "m_value": "-1,-1" + }, { + "type": "string", + "m_label": "Name:", + "m_value": "m_gridFaultGenerators" + }, { + "type": "multi-string", + "m_label": "Tooltip:", + "m_value": "" + }, { + "type": "colour", + "m_label": "Bg Colour:", + "colour": "<Default>" + }, { + "type": "colour", + "m_label": "Fg Colour:", + "colour": "<Default>" + }, { + "type": "font", + "m_label": "Font:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Hidden", + "m_value": false + }, { + "type": "bool", + "m_label": "Disabled", + "m_value": false + }, { + "type": "bool", + "m_label": "Focused", + "m_value": false + }, { + "type": "string", + "m_label": "Class Name:", + "m_value": "" + }, { + "type": "string", + "m_label": "Include File:", + "m_value": "" + }, { + "type": "string", + "m_label": "Style:", + "m_value": "" + }, { + "type": "bool", + "m_label": "Fit Content to Columns", + "m_value": true + }, { + "type": "bool", + "m_label": "Use Native Header", + "m_value": true + }, { + "type": "integer", + "m_label": "Height:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Col Label Horizontal Align", + "m_selection": 1, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Col Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "integer", + "m_label": "Width:", + "m_value": -1 + }, { + "type": "choice", + "m_label": "Row Label Horizontal Align", + "m_selection": 2, + "m_options": ["wxALIGN_LEFT", "wxALIGN_CENTRE", "wxALIGN_RIGHT"] + }, { + "type": "choice", + "m_label": "Row Label Vertical Align", + "m_selection": 1, + "m_options": ["wxALIGN_TOP", "wxALIGN_CENTRE", "wxALIGN_BOTTOM"] + }, { + "type": "bool", + "m_label": "Allow Cell Editing", + "m_value": true + }], + "m_events": [{ + "m_eventName": "wxEVT_GRID_CELL_CHANGED", + "m_eventClass": "wxGridEvent", + "m_eventHandler": "wxGridEventHandler", + "m_functionNameAndSignature": "OnFaultGeneratorsGridChanged(wxGridEvent& event)", + "m_description": "The user changed the data in a cell. The old cell value as string is available from GetString() event object method. Notice that vetoing this event still works for backwards compatibility reasons but any new code should only veto EVT_GRID_CELL_CHANGING event and not this one. Processes a wxEVT_GRID_CELL_CHANGED event type.", + "m_noBody": false + }], + "m_children": [] + }] + }] + }] + }] + }] + }] + }] + }] + }] + }] +}
\ No newline at end of file diff --git a/Project/DataReportBase.cpp b/Project/DataReportBase.cpp new file mode 100644 index 0000000..92d511f --- /dev/null +++ b/Project/DataReportBase.cpp @@ -0,0 +1,277 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: DataReport.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#include "DataReportBase.h" + + +// Declare the bitmap loading function +extern void wxC6A63InitBitmapResources(); + +static bool bBitmapLoaded = false; + + +DataReportBase::DataReportBase(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxFrame(parent, id, title, pos, size, style) +{ + if ( !bBitmapLoaded ) { + // We need to initialise the default bitmap handler + wxXmlResource::Get()->AddHandler(new wxBitmapXmlHandler); + wxC6A63InitBitmapResources(); + bBitmapLoaded = true; + } + // Set icon(s) to the application/dialog + wxIconBundle app_icons; + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart16")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart32")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart64")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart128")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + { + wxBitmap iconBmp = wxXmlResource::Get()->LoadBitmap(wxT("chart256")); + wxIcon icn; + icn.CopyFromBitmap(iconBmp); + app_icons.AddIcon( icn ); + } + SetIcons( app_icons ); + + + wxBoxSizer* boxSizerLvl1_1 = new wxBoxSizer(wxVERTICAL); + this->SetSizer(boxSizerLvl1_1); + + wxBoxSizer* boxSizerLvl2_1 = new wxBoxSizer(wxHORIZONTAL); + + boxSizerLvl1_1->Add(boxSizerLvl2_1, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_notebookPowerFlowData = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), wxBK_DEFAULT); + m_notebookPowerFlowData->SetName(wxT("m_notebookPowerFlowData")); + + boxSizerLvl2_1->Add(m_notebookPowerFlowData, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelPowerFlowData = new wxPanel(m_notebookPowerFlowData, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlowData, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookPowerFlowData->AddPage(m_panelPowerFlowData, _("Power flow data"), false); + + wxBoxSizer* boxSizerLvl3_1 = new wxBoxSizer(wxVERTICAL); + m_panelPowerFlowData->SetSizer(boxSizerLvl3_1); + + m_notebookPowerFlow = new wxNotebook(m_panelPowerFlowData, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPowerFlowData, wxSize(-1,-1)), wxBK_LEFT|wxBK_DEFAULT); + m_notebookPowerFlow->SetName(wxT("m_notebookPowerFlow")); + + boxSizerLvl3_1->Add(m_notebookPowerFlow, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelPowerFlow = new wxPanel(m_notebookPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlow, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookPowerFlow->AddPage(m_panelPowerFlow, _("Power flow"), false); + + wxBoxSizer* boxSizerLvl4_1 = new wxBoxSizer(wxVERTICAL); + m_panelPowerFlow->SetSizer(boxSizerLvl4_1); + + m_gridPowerFlow = new wxGrid(m_panelPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPowerFlow, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridPowerFlow->CreateGrid(0, 0); + m_gridPowerFlow->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridPowerFlow->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridPowerFlow->UseNativeColHeader(true); + #endif + m_gridPowerFlow->EnableEditing(true); + + boxSizerLvl4_1->Add(m_gridPowerFlow, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelPFBuses = new wxPanel(m_notebookPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlow, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookPowerFlow->AddPage(m_panelPFBuses, _("Buses"), false); + + wxBoxSizer* boxSizerLvl4_2 = new wxBoxSizer(wxVERTICAL); + m_panelPFBuses->SetSizer(boxSizerLvl4_2); + + m_gridPFBuses = new wxGrid(m_panelPFBuses, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPFBuses, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridPFBuses->CreateGrid(0, 0); + m_gridPFBuses->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridPFBuses->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridPFBuses->UseNativeColHeader(true); + #endif + m_gridPFBuses->EnableEditing(true); + + boxSizerLvl4_2->Add(m_gridPFBuses, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelPFBranches = new wxPanel(m_notebookPowerFlow, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlow, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookPowerFlow->AddPage(m_panelPFBranches, _("Branches"), false); + + wxBoxSizer* boxSizerLvl4_3 = new wxBoxSizer(wxVERTICAL); + m_panelPFBranches->SetSizer(boxSizerLvl4_3); + + m_gridPFBranches = new wxGrid(m_panelPFBranches, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPFBranches, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridPFBranches->CreateGrid(0, 0); + m_gridPFBranches->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridPFBranches->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridPFBranches->UseNativeColHeader(true); + #endif + m_gridPFBranches->EnableEditing(true); + + boxSizerLvl4_3->Add(m_gridPFBranches, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelFaultData = new wxPanel(m_notebookPowerFlowData, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookPowerFlowData, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookPowerFlowData->AddPage(m_panelFaultData, _("Fault data"), false); + + wxBoxSizer* boxSizerLvl3_2 = new wxBoxSizer(wxVERTICAL); + m_panelFaultData->SetSizer(boxSizerLvl3_2); + + m_notebookFault = new wxNotebook(m_panelFaultData, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultData, wxSize(-1,-1)), wxBK_LEFT|wxBK_DEFAULT); + m_notebookFault->SetName(wxT("m_notebookFault")); + + boxSizerLvl3_2->Add(m_notebookFault, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelFault = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookFault->AddPage(m_panelFault, _("Fault"), false); + + wxBoxSizer* boxSizerLvl4_4 = new wxBoxSizer(wxVERTICAL); + m_panelFault->SetSizer(boxSizerLvl4_4); + + m_gridFault = new wxGrid(m_panelFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFault, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridFault->CreateGrid(0, 0); + m_gridFault->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridFault->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridFault->UseNativeColHeader(true); + #endif + m_gridFault->EnableEditing(true); + + boxSizerLvl4_4->Add(m_gridFault, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelFaultBuses = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookFault->AddPage(m_panelFaultBuses, _("Buses"), false); + + wxBoxSizer* boxSizerLvl4_5 = new wxBoxSizer(wxVERTICAL); + m_panelFaultBuses->SetSizer(boxSizerLvl4_5); + + m_gridFaultBuses = new wxGrid(m_panelFaultBuses, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultBuses, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridFaultBuses->CreateGrid(0, 0); + m_gridFaultBuses->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridFaultBuses->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridFaultBuses->UseNativeColHeader(true); + #endif + m_gridFaultBuses->EnableEditing(true); + + boxSizerLvl4_5->Add(m_gridFaultBuses, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelFaultBranches = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookFault->AddPage(m_panelFaultBranches, _("Branches"), false); + + wxBoxSizer* boxSizerLvl4_6 = new wxBoxSizer(wxVERTICAL); + m_panelFaultBranches->SetSizer(boxSizerLvl4_6); + + m_gridFaultBranches = new wxGrid(m_panelFaultBranches, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultBranches, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridFaultBranches->CreateGrid(0, 0); + m_gridFaultBranches->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridFaultBranches->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridFaultBranches->UseNativeColHeader(true); + #endif + m_gridFaultBranches->EnableEditing(true); + + boxSizerLvl4_6->Add(m_gridFaultBranches, 1, wxEXPAND, WXC_FROM_DIP(5)); + + m_panelFaultGenerators = new wxPanel(m_notebookFault, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebookFault, wxSize(-1,-1)), wxTAB_TRAVERSAL); + m_notebookFault->AddPage(m_panelFaultGenerators, _("Generators"), false); + + wxBoxSizer* boxSizerLvl4_118 = new wxBoxSizer(wxVERTICAL); + m_panelFaultGenerators->SetSizer(boxSizerLvl4_118); + + m_gridFaultGenerators = new wxGrid(m_panelFaultGenerators, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelFaultGenerators, wxSize(-1,-1)), wxWANTS_CHARS); + m_gridFaultGenerators->CreateGrid(0, 0); + m_gridFaultGenerators->SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE); + m_gridFaultGenerators->SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); + #if wxVERSION_NUMBER >= 2904 + m_gridFaultGenerators->UseNativeColHeader(true); + #endif + m_gridFaultGenerators->EnableEditing(true); + + boxSizerLvl4_118->Add(m_gridFaultGenerators, 1, wxEXPAND, WXC_FROM_DIP(5)); + + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebookPowerFlowData)){ + wxPersistenceManager::Get().RegisterAndRestore(m_notebookPowerFlowData); + } else { + wxPersistenceManager::Get().Restore(m_notebookPowerFlowData); + } + #endif + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebookPowerFlow)){ + wxPersistenceManager::Get().RegisterAndRestore(m_notebookPowerFlow); + } else { + wxPersistenceManager::Get().Restore(m_notebookPowerFlow); + } + #endif + + #if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(m_notebookFault)){ + wxPersistenceManager::Get().RegisterAndRestore(m_notebookFault); + } else { + wxPersistenceManager::Get().Restore(m_notebookFault); + } + #endif + + SetName(wxT("DataReportBase")); + SetMinClientSize(wxSize(500,300)); + SetSize(-1,-1); + if (GetSizer()) { + GetSizer()->Fit(this); + } + if(GetParent()) { + CentreOnParent(wxBOTH); + } else { + CentreOnScreen(wxBOTH); + } +#if wxVERSION_NUMBER >= 2900 + if(!wxPersistenceManager::Get().Find(this)) { + wxPersistenceManager::Get().RegisterAndRestore(this); + } else { + wxPersistenceManager::Get().Restore(this); + } +#endif + // Connect events + m_gridPowerFlow->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPowerFlowGridChanged), NULL, this); + m_gridPFBuses->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBusGridChanged), NULL, this); + m_gridPFBranches->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBranchesGridChanged), NULL, this); + m_gridFault->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaulrGridChanged), NULL, this); + m_gridFaultBuses->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBusesGridChanged), NULL, this); + m_gridFaultBranches->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBranchesGridChanged), NULL, this); + m_gridFaultGenerators->Connect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultGeneratorsGridChanged), NULL, this); + +} + +DataReportBase::~DataReportBase() +{ + m_gridPowerFlow->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPowerFlowGridChanged), NULL, this); + m_gridPFBuses->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBusGridChanged), NULL, this); + m_gridPFBranches->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnPFBranchesGridChanged), NULL, this); + m_gridFault->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaulrGridChanged), NULL, this); + m_gridFaultBuses->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBusesGridChanged), NULL, this); + m_gridFaultBranches->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultBranchesGridChanged), NULL, this); + m_gridFaultGenerators->Disconnect(wxEVT_GRID_CELL_CHANGED, wxGridEventHandler(DataReportBase::OnFaultGeneratorsGridChanged), NULL, this); + +} diff --git a/Project/DataReportBase.h b/Project/DataReportBase.h new file mode 100644 index 0000000..aa3f721 --- /dev/null +++ b/Project/DataReportBase.h @@ -0,0 +1,94 @@ +////////////////////////////////////////////////////////////////////// +// This file was auto-generated by codelite's wxCrafter Plugin +// wxCrafter project file: DataReport.wxcp +// Do not modify this file by hand! +////////////////////////////////////////////////////////////////////// + +#ifndef _PSP_PROJECT_DATAREPORT_BASE_CLASSES_H +#define _PSP_PROJECT_DATAREPORT_BASE_CLASSES_H + +#include <wx/settings.h> +#include <wx/xrc/xmlres.h> +#include <wx/xrc/xh_bmp.h> +#include <wx/frame.h> +#include <wx/iconbndl.h> +#include <wx/artprov.h> +#include <wx/sizer.h> +#include <wx/notebook.h> +#include <wx/panel.h> +#include <wx/imaglist.h> +#include <wx/grid.h> +#if wxVERSION_NUMBER >= 2900 +#include <wx/persist.h> +#include <wx/persist/toplevel.h> +#include <wx/persist/bookctrl.h> +#include <wx/persist/treebook.h> +#endif + +#ifdef WXC_FROM_DIP +#undef WXC_FROM_DIP +#endif +#if wxVERSION_NUMBER >= 3100 +#define WXC_FROM_DIP(x) wxWindow::FromDIP(x, NULL) +#else +#define WXC_FROM_DIP(x) x +#endif + + +class DataReportBase : public wxFrame +{ +protected: + wxNotebook* m_notebookPowerFlowData; + wxPanel* m_panelPowerFlowData; + wxNotebook* m_notebookPowerFlow; + wxPanel* m_panelPowerFlow; + wxGrid* m_gridPowerFlow; + wxPanel* m_panelPFBuses; + wxGrid* m_gridPFBuses; + wxPanel* m_panelPFBranches; + wxGrid* m_gridPFBranches; + wxPanel* m_panelFaultData; + wxNotebook* m_notebookFault; + wxPanel* m_panelFault; + wxGrid* m_gridFault; + wxPanel* m_panelFaultBuses; + wxGrid* m_gridFaultBuses; + wxPanel* m_panelFaultBranches; + wxGrid* m_gridFaultBranches; + wxPanel* m_panelFaultGenerators; + wxGrid* m_gridFaultGenerators; + +protected: + virtual void OnPowerFlowGridChanged(wxGridEvent& event) { event.Skip(); } + virtual void OnPFBusGridChanged(wxGridEvent& event) { event.Skip(); } + virtual void OnPFBranchesGridChanged(wxGridEvent& event) { event.Skip(); } + virtual void OnFaulrGridChanged(wxGridEvent& event) { event.Skip(); } + virtual void OnFaultBusesGridChanged(wxGridEvent& event) { event.Skip(); } + virtual void OnFaultBranchesGridChanged(wxGridEvent& event) { event.Skip(); } + virtual void OnFaultGeneratorsGridChanged(wxGridEvent& event) { event.Skip(); } + +public: + wxGrid* GetGridPowerFlow() { return m_gridPowerFlow; } + wxPanel* GetPanelPowerFlow() { return m_panelPowerFlow; } + wxGrid* GetGridPFBuses() { return m_gridPFBuses; } + wxPanel* GetPanelPFBuses() { return m_panelPFBuses; } + wxGrid* GetGridPFBranches() { return m_gridPFBranches; } + wxPanel* GetPanelPFBranches() { return m_panelPFBranches; } + wxNotebook* GetNotebookPowerFlow() { return m_notebookPowerFlow; } + wxPanel* GetPanelPowerFlowData() { return m_panelPowerFlowData; } + wxGrid* GetGridFault() { return m_gridFault; } + wxPanel* GetPanelFault() { return m_panelFault; } + wxGrid* GetGridFaultBuses() { return m_gridFaultBuses; } + wxPanel* GetPanelFaultBuses() { return m_panelFaultBuses; } + wxGrid* GetGridFaultBranches() { return m_gridFaultBranches; } + wxPanel* GetPanelFaultBranches() { return m_panelFaultBranches; } + wxGrid* GetGridFaultGenerators() { return m_gridFaultGenerators; } + wxPanel* GetPanelFaultGenerators() { return m_panelFaultGenerators; } + wxNotebook* GetNotebookFault() { return m_notebookFault; } + wxPanel* GetPanelFaultData() { return m_panelFaultData; } + wxNotebook* GetNotebookPowerFlowData() { return m_notebookPowerFlowData; } + DataReportBase(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Data report"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(-1,-1), long style = wxDEFAULT_FRAME_STYLE); + virtual ~DataReportBase(); +}; + +#endif diff --git a/Project/DataReportBitmaps.cpp b/Project/DataReportBitmaps.cpp new file mode 100644 index 0000000..5d547ad --- /dev/null +++ b/Project/DataReportBitmaps.cpp @@ -0,0 +1,724 @@ +// +// This file was automatically generated by wxrc, do not edit by hand. +// + +#include <wx/wxprec.h> + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include <wx/filesys.h> +#include <wx/fs_mem.h> +#include <wx/xrc/xmlres.h> +#include <wx/xrc/xh_all.h> + +#if wxCHECK_VERSION(2,8,5) && wxABI_VERSION >= 20805 + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFileWithMimeType(name, data, size, mime) +#else + #define XRC_ADD_FILE(name, data, size, mime) \ + wxMemoryFSHandler::AddFile(name, data, size) +#endif + +static size_t xml_res_size_0 = 3278; +static unsigned char xml_res_file_0[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,128,0,0,0,128,8,6,0, +0,0,195,62,97,203,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,21,211,0,0,21,211,1,251,209,60,11,0,0,0,25,116,69,88,116, +83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112, +101,46,111,114,103,155,238,60,26,0,0,12,75,73,68,65,84,120,156,237,157, +121,116,21,213,25,192,127,55,9,33,33,160,64,136,85,64,212,82,168,162,162, +30,212,163,7,212,138,130,27,214,106,177,5,165,81,17,194,86,15,160,213,138, +138,68,20,42,10,138,11,178,184,69,80,118,227,82,177,238,90,197,189,173, +82,80,4,142,82,203,81,34,88,1,129,188,240,150,220,254,17,34,9,121,239,101, +238,125,119,150,100,238,239,63,242,230,155,249,14,243,155,111,230,125,247, +206,187,130,73,31,74,178,178,176,132,147,44,98,17,168,174,246,59,15,139, +79,100,33,37,86,130,240,82,83,251,173,4,161,101,223,205,223,74,16,74,234, +63,253,89,9,66,71,78,131,191,236,149,160,251,193,237,24,126,226,65,142, +118,178,112,245,15,124,82,81,105,58,55,139,7,52,20,0,64,74,58,231,199,25, +127,114,17,217,217,217,141,238,100,85,69,196,10,208,68,73,221,0,144,146, +221,187,119,147,72,36,60,76,199,226,53,105,59,64,210,74,16,40,218,178,147, +92,98,70,247,217,104,11,208,74,16,28,238,22,247,179,65,92,194,88,177,152, +150,68,141,236,211,81,15,216,74,224,63,135,179,153,98,86,208,133,10,102, +50,131,117,98,32,37,60,67,14,153,157,19,199,131,0,86,2,127,41,21,243,234, +149,255,195,216,204,92,49,149,245,226,18,74,120,134,108,244,190,186,43, +141,2,213,74,16,143,199,181,14,102,209,163,27,155,184,156,191,37,253,236, +8,190,101,174,152,202,106,49,136,98,86,40,139,160,60,12,40,165,164,178, +178,210,74,224,33,147,196,188,70,75,253,81,108,228,9,81,202,191,247,138, +144,229,80,4,173,113,96,43,129,119,28,197,70,6,241,138,227,237,123,236, +21,225,53,49,198,209,246,218,19,1,172,4,222,80,42,230,105,221,223,223,164, +151,163,237,50,154,9,82,43,129,180,15,134,174,112,52,95,49,144,55,148,227, +254,199,129,220,39,7,59,218,54,227,169,64,82,74,226,123,34,80,109,37,48, +205,100,230,56,190,151,215,101,6,67,248,145,2,71,219,26,154,11,38,33,86, +101,37,48,200,9,172,227,98,241,150,114,220,247,180,229,65,249,59,199,219, +155,155,12,40,173,4,38,185,77,204,69,32,149,227,166,201,43,216,73,43,199, +219,155,157,13,106,37,48,66,47,214,50,128,149,202,113,21,20,242,16,3,149, +98,204,79,7,182,18,100,204,237,98,142,246,213,95,73,158,82,140,59,243,193, +173,4,218,156,202,106,206,227,61,229,184,205,116,96,46,151,40,199,185,247, +66,128,149,64,139,201,204,209,138,155,194,80,34,180,84,142,115,247,141, +16,43,129,18,189,89,197,217,226,35,229,184,77,252,140,71,228,69,90,199, +116,255,149,32,43,129,99,238,96,182,86,220,20,134,178,135,92,173,88,111, +222,9,179,18,52,74,95,241,49,191,18,255,84,142,251,154,67,120,92,94,168, +125,92,239,94,10,148,18,162,182,99,152,138,73,242,97,173,184,201,114,24, +81,90,104,31,215,251,183,66,173,4,13,56,135,247,57,93,124,162,28,247,37, +157,153,207,5,25,29,219,159,215,130,173,4,245,40,69,255,234,143,211,248, +180,253,116,248,247,94,120,52,2,9,59,148,124,1,43,57,69,172,86,142,219, +192,161,44,228,220,140,143,239,239,15,3,196,170,66,47,193,36,161,119,245, +79,146,35,50,190,250,193,111,1,32,212,18,252,70,188,197,73,124,174,28,247, +57,71,176,132,126,70,114,240,95,0,8,165,4,2,201,36,205,123,127,169,44,161, +218,208,169,11,134,0,16,58,9,126,43,222,224,120,214,43,199,173,161,43,79, +211,215,88,30,193,17,0,66,35,65,22,213,76,228,81,173,216,137,140,52,118, +245,215,228,18,52,66,32,193,239,121,149,158,108,80,142,251,23,71,242,156, +60,195,104,46,193,19,0,154,181,4,217,84,51,81,232,93,253,147,40,65,34,140, +230,147,252,247,1,130,64,172,10,200,131,236,250,41,150,240,12,125,196,167, +188,207,177,188,39,143,99,13,93,73,4,212,227,100,92,198,75,28,197,70,229, +184,143,228,209,188,192,105,198,243,9,174,0,80,79,130,150,68,121,80,220, +205,48,158,5,224,15,188,8,2,118,147,207,167,116,103,165,60,158,119,57,142, +247,57,150,239,105,235,111,222,41,200,166,154,155,197,99,90,177,183,50, +194,112,54,53,4,91,0,128,88,21,93,216,78,121,206,77,244,98,109,131,143, +11,136,208,155,85,244,22,171,0,144,8,214,114,56,15,113,41,179,228,165,94, +103,155,150,98,86,240,75,190,86,142,123,79,246,228,101,78,117,33,163,160, +62,3,212,161,143,248,148,215,227,67,233,153,104,120,242,147,33,144,244, +96,35,211,120,128,131,248,193,229,236,156,211,130,56,183,104,222,251,111, +101,164,225,108,246,17,88,1,4,146,113,98,17,207,113,29,69,108,163,50,6, +49,133,241,163,2,34,252,137,39,221,75,80,145,171,248,43,63,231,27,229,184, +149,242,120,94,231,36,23,50,170,33,144,2,180,161,146,5,226,86,74,169,255, +94,156,170,4,163,197,242,64,84,129,150,68,181,239,253,55,139,209,134,179, +169,79,224,4,232,198,38,94,21,163,83,206,139,87,145,160,128,8,215,137,167, +12,102,167,199,48,241,28,93,168,80,142,123,77,158,204,219,242,4,23,50,218, +71,160,4,56,159,119,121,93,140,226,200,70,30,148,84,36,24,195,50,95,171, +64,30,81,110,164,76,43,118,50,195,204,38,147,132,64,8,144,77,53,165,204, +227,41,49,145,3,216,237,40,198,169,4,126,87,129,17,162,156,206,108,81,142, +123,73,158,202,59,184,123,245,67,0,4,40,100,7,79,115,3,227,196,34,229,183, +97,156,74,224,87,21,200,35,202,245,204,215,138,45,165,196,112,54,201,241, +85,128,19,89,203,59,98,184,214,108,216,90,156,72,224,215,55,130,49,98,41, +157,216,170,28,247,130,236,195,135,28,227,66,70,13,241,77,128,65,188,204, +11,98,60,29,53,254,131,246,199,137,4,94,127,35,40,32,194,13,44,80,142,147, +8,38,51,220,133,140,146,227,185,0,45,137,114,191,152,206,28,113,39,121, +236,49,182,223,198,36,240,250,89,224,26,150,104,9,247,44,103,240,49,61, +92,200,40,57,158,10,208,137,45,188,200,88,138,89,225,202,254,43,99,16,77, +35,129,87,207,2,173,169,228,90,177,80,57,78,34,184,77,122,115,239,175,197, +51,1,206,228,31,188,45,74,232,37,190,48,178,191,84,195,162,145,52,18,120, +85,5,198,177,136,34,182,41,199,45,231,44,86,209,205,133,140,82,227,186, +0,181,45,221,229,226,207,20,178,195,200,62,215,208,149,115,121,128,72,138, +119,225,211,73,224,118,21,56,144,93,140,215,184,250,171,201,226,118,121, +181,11,25,165,199,85,1,90,19,161,140,219,26,180,116,51,97,25,103,211,79, +206,226,67,121,116,218,119,226,82,73,80,64,132,107,81,63,65,78,25,207,66, +218,243,163,114,220,98,250,179,154,95,184,144,81,122,92,19,160,27,155,120, +77,140,226,34,241,119,35,251,139,147,77,41,37,12,151,55,255,244,30,252, +125,12,74,89,5,32,181,4,127,20,75,93,169,2,109,217,201,88,177,88,57,46, +225,211,213,15,46,9,224,180,165,235,148,173,180,227,98,121,55,51,247,251, +237,187,239,104,79,25,3,210,198,38,147,192,173,42,112,189,88,64,91,118, +42,199,61,201,249,124,193,225,198,243,113,130,81,1,116,90,186,141,241,129, +60,150,211,228,195,41,219,162,51,229,224,180,85,0,146,75,96,186,10,20,178, +131,107,88,162,28,151,32,139,169,242,42,99,121,168,98,76,128,76,90,186, +169,40,99,0,191,102,6,21,20,166,220,198,73,21,128,134,18,20,16,97,188,88, +100,34,77,0,110,16,243,105,131,250,186,73,101,92,200,122,186,24,203,67, +21,35,2,116,97,51,111,137,145,25,181,116,235,82,69,46,163,229,141,140,147, +215,57,122,247,221,73,21,128,134,18,232,54,107,246,167,136,109,140,102, +185,114,92,140,28,166,200,161,25,31,63,19,140,8,112,189,152,207,161,26, +227,221,201,248,138,78,156,37,31,98,33,231,56,142,113,90,5,160,190,4,166, +170,192,4,202,104,173,113,245,63,202,69,108,164,99,198,199,207,4,35,2,228, +102,184,108,73,45,175,200,83,232,43,103,243,25,93,149,99,157,86,1,168,47, +65,166,85,224,16,190,103,132,40,87,142,139,210,130,105,242,10,237,227,154, +194,247,225,96,168,233,234,205,148,131,25,196,20,182,211,70,107,31,42,85, +0,246,73,144,105,21,152,64,25,173,168,82,142,155,199,197,252,135,67,180, +143,107,10,223,5,216,73,43,134,48,153,82,50,127,227,117,166,28,76,149,194, +111,229,213,74,160,91,5,58,178,149,97,226,89,229,184,42,114,185,83,94,169, +28,231,6,190,10,176,134,174,156,46,31,102,133,236,99,100,127,223,209,158, +50,233,188,10,64,141,4,45,18,122,85,96,162,120,148,124,141,17,205,217,114, +32,223,80,164,28,231,6,190,9,176,132,126,244,147,179,140,63,4,205,68,173, +10,64,141,4,37,137,165,116,96,187,227,152,195,216,204,80,158,87,77,143, +74,242,184,139,98,229,56,183,240,92,128,218,150,238,8,121,147,214,79,155, +54,70,5,133,202,85,0,32,59,86,201,216,132,243,9,28,183,136,199,180,86,241, +156,37,47,77,219,215,240,26,79,5,72,213,210,53,205,189,92,166,92,5,0,174, +142,47,165,40,209,248,12,165,218,69,28,85,217,77,62,211,25,162,28,231,38, +158,9,208,88,75,215,36,58,207,2,0,173,168,98,84,236,73,72,164,191,178,247, +95,196,209,41,247,49,136,45,180,87,142,115,19,79,4,112,210,210,53,141,110, +21,24,41,202,233,16,251,14,226,201,215,230,77,183,136,99,58,118,209,202, +245,202,167,131,171,2,168,182,116,77,162,218,23,168,165,21,85,140,102,89, +141,0,73,36,112,178,136,99,50,238,225,50,182,210,78,57,206,109,92,19,64, +167,165,107,26,213,190,64,45,35,69,121,205,55,130,253,36,232,206,127,149, +22,113,172,101,7,173,3,121,245,131,75,2,100,210,210,53,73,5,133,218,85, +96,148,216,59,184,83,71,130,219,197,108,173,153,77,51,184,156,109,28,160, +28,231,5,70,5,48,209,210,53,141,118,21,160,124,95,95,32,30,165,71,124,157, +235,139,56,250,129,49,1,76,182,116,77,162,91,5,10,136,236,171,2,192,132, +248,92,98,113,245,171,127,186,116,190,136,163,31,24,57,83,203,101,95,78, +147,143,24,107,233,154,102,166,28,68,149,198,138,26,35,40,167,61,63,210, +147,13,12,16,43,169,138,195,30,133,31,47,219,74,59,30,196,249,34,142,126, +96,68,128,87,57,37,16,35,91,169,168,160,3,79,104,244,5,90,19,97,140,88, +202,77,226,241,159,102,57,169,72,112,151,44,102,151,194,34,142,126,16,156, +90,237,50,247,50,88,171,10,140,97,57,231,240,65,189,191,57,145,64,103,17, +71,63,8,141,0,186,85,32,143,61,73,231,56,54,38,129,206,34,142,126,16,26, +1,64,191,59,152,138,84,18,232,46,226,232,7,161,18,160,130,66,158,144,153, +173,177,179,63,201,36,208,93,196,209,15,66,37,0,152,175,2,80,95,130,76, +22,113,244,131,208,9,224,70,21,128,125,18,100,178,136,163,31,132,78,0,112, +167,10,0,108,136,31,204,227,177,204,23,114,242,146,80,10,80,65,33,243,57, +223,248,126,167,201,98,162,241,234,148,67,201,65,36,148,2,0,220,35,47,55, +90,5,54,210,145,197,244,175,249,71,138,161,228,32,18,90,1,76,87,129,105, +178,184,254,50,110,77,68,130,208,10,0,230,170,192,151,116,98,57,103,55, +252,160,9,72,16,106,1,76,85,129,191,200,171,82,47,226,24,112,9,66,45,0, +100,94,5,190,224,48,202,57,51,253,70,1,150,32,244,2,84,80,200,2,121,158, +118,252,157,242,74,103,243,31,2,42,65,232,5,128,154,190,128,78,243,230, +51,186,242,60,167,59,15,8,160,4,86,0,224,91,138,152,47,213,159,5,166,226, +240,234,175,75,192,36,176,2,236,101,6,67,148,158,5,86,209,157,23,101,111, +189,131,5,72,130,224,175,26,230,17,21,20,114,164,92,70,91,118,57,218,126, +7,173,51,91,196,177,86,128,28,127,199,13,172,0,117,216,78,27,111,103,51, +7,64,2,123,11,240,27,159,111,7,86,128,32,224,163,4,86,128,160,224,147,4, +86,128,32,17,143,66,204,220,34,26,78,176,2,4,141,68,204,83,9,172,0,65,196, +67,9,172,0,65,197,35,9,172,0,65,198,3,9,172,0,65,199,101,9,172,0,77,1,23, +37,176,2,52,21,92,146,192,10,208,148,112,65,2,43,64,83,195,176,4,41,71, +3,115,178,156,15,117,182,201,205,166,168,192,14,44,122,135,132,236,4,162, +133,179,249,11,219,171,18,68,19,201,151,241,73,121,214,142,57,40,223,113, +58,211,251,119,102,122,255,206,142,183,183,152,33,55,55,151,252,252,198, +207,211,185,79,173,231,229,47,147,175,101,104,111,1,77,152,104,52,74,36, +18,201,104,31,86,128,38,78,166,18,88,1,154,1,209,104,148,202,74,245,69, +171,192,10,208,108,136,197,98,90,18,88,1,154,17,58,18,88,1,154,25,170,18, +88,1,154,33,42,18,88,1,154,41,78,37,176,2,52,99,156,72,144,178,19,248,252, +186,29,180,207,115,214,222,149,134,86,11,183,184,195,87,91,146,119,1,1, +4,19,222,180,103,47,12,100,231,64,139,134,63,93,107,111,1,97,33,17,135, +88,195,53,142,173,0,97,34,137,4,86,128,176,177,159,4,86,128,48,82,71,2, +59,139,35,172,36,226,64,21,255,7,181,153,56,45,184,129,88,206,0,0,0,0,73, +69,78,68,174,66,96,130}; + +static size_t xml_res_size_1 = 560; +static unsigned char xml_res_file_1[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0, +0,31,243,255,97,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,2,186,0,0,2,186,1,219,5,165,194,0,0,0,25,116,69,88,116,83, +111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,1,173,73,68,65,84,56,141,149,147,63,72, +28,65,28,133,191,209,185,91,148,104,226,33,130,160,32,92,115,136,141,145, +112,130,85,42,17,141,40,241,76,229,191,78,33,54,169,44,130,70,16,212,11, +8,130,162,156,26,8,4,133,96,170,84,73,8,136,49,218,120,133,34,8,162,22, +34,68,137,133,38,81,55,187,115,55,22,114,171,203,90,172,175,154,249,189, +121,31,143,97,70,24,111,86,117,121,241,67,182,79,76,76,149,230,190,202, +42,123,32,88,235,8,19,46,48,124,135,6,196,12,79,89,191,6,0,152,166,137, +86,150,175,112,5,123,244,51,75,139,248,126,3,0,72,219,22,248,128,12,137, +41,108,36,195,186,203,13,0,174,1,202,34,136,125,103,184,138,109,26,89,38, +161,155,57,164,232,14,0,80,157,74,178,147,122,198,174,104,38,143,11,151, +55,40,18,152,4,25,166,211,153,185,0,221,124,226,51,175,200,86,151,148,168, +67,94,138,143,142,23,101,139,122,86,152,162,133,95,20,122,1,175,197,28, +35,98,130,36,17,158,232,247,252,180,35,244,170,15,78,139,65,145,224,156, +28,226,186,221,213,202,1,52,240,131,25,221,68,163,30,227,136,66,70,69,39, +185,234,140,158,212,2,53,108,80,203,26,147,196,56,38,228,2,200,204,162, +143,94,166,41,119,140,175,58,74,146,8,221,106,158,58,86,249,43,115,121, +171,219,60,23,235,52,88,210,85,30,51,78,7,33,254,80,169,54,25,179,99,156, +240,200,115,70,122,38,183,244,133,106,190,17,165,148,35,198,213,115,192, +2,25,244,15,0,136,233,145,155,77,230,161,221,130,200,236,44,1,64,73,94, +128,255,62,63,147,144,32,2,6,7,103,22,178,52,63,0,192,98,107,216,87,56, +35,195,48,120,252,110,23,185,114,240,143,23,139,251,252,190,176,81,105, +125,47,200,254,105,154,43,206,33,140,175,150,245,39,228,0,0,0,0,73,69,78, +68,174,66,96,130}; + +static size_t xml_res_size_2 = 6410; +static unsigned char xml_res_file_2[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,0,0,0,1,0,8,6,0,0,0, +92,114,168,102,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112,72, +89,115,0,0,43,165,0,0,43,165,1,137,102,26,50,0,0,0,25,116,69,88,116,83, +111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,24,135,73,68,65,84,120,156,237,221,105, +120,85,213,185,192,241,255,10,73,152,81,68,20,84,174,181,22,171,32,85,107, +181,173,15,125,180,74,65,64,133,130,85,164,14,113,66,172,94,161,106,69, +171,64,64,173,120,169,138,67,85,16,209,160,12,82,172,114,11,181,181,150, +58,161,60,90,43,215,214,129,50,22,28,65,40,40,25,200,25,214,253,16,3,9, +156,36,103,88,251,221,211,251,251,210,199,152,179,223,45,37,255,189,206, +201,58,251,24,38,189,153,2,138,80,74,197,78,17,181,213,126,159,131,82,202, +39,69,164,147,104,4,148,138,167,186,165,127,58,165,17,80,42,134,118,63, +247,215,8,40,21,59,141,95,252,211,8,40,21,43,123,191,250,175,17,80,42,54, +50,255,250,79,35,160,84,44,52,253,251,255,250,8,88,43,120,58,74,41,73,205, +111,0,74,167,32,81,163,17,80,42,162,90,222,1,168,17,80,42,178,178,219,2, +172,17,80,42,146,138,179,254,206,250,8,148,180,161,67,235,86,180,47,105, +229,244,68,118,166,210,108,171,73,57,61,166,82,170,121,217,7,0,118,69,96, +226,143,122,114,253,73,221,156,158,200,31,87,111,103,224,220,85,78,143, +169,148,106,94,238,239,2,76,167,72,212,84,99,245,233,128,82,161,151,215, +219,128,211,169,36,85,85,85,26,1,165,66,46,239,251,0,36,147,26,1,165,194, +174,160,27,129,104,4,148,10,183,130,239,4,164,17,80,42,188,156,220,10,76, +35,160,212,222,78,53,111,114,32,91,253,62,141,102,57,187,23,96,50,153,164, +178,178,82,35,160,20,208,158,106,230,113,11,107,205,16,238,53,119,209,141, +45,126,159,82,70,78,111,6,154,74,165,52,2,74,1,99,152,207,1,108,165,29, +53,92,195,124,86,155,31,115,175,185,43,112,43,2,231,119,3,214,8,168,184, +235,68,37,215,153,39,27,125,173,61,213,187,66,48,133,7,232,204,23,62,157, +93,99,158,220,14,92,35,160,226,108,44,243,216,175,137,31,240,14,84,49,206, +84,240,111,115,38,83,120,128,125,249,82,248,236,26,243,236,243,0,52,2,42, +142,246,97,7,99,205,188,22,191,175,227,87,33,88,99,134,82,206,12,246,97, +135,192,217,237,205,211,15,4,209,8,168,184,185,142,57,57,45,239,247,227, +11,38,154,71,118,133,160,19,149,30,158,221,222,60,255,68,32,141,128,138, +139,46,108,103,76,22,87,255,166,30,91,31,130,113,166,130,182,236,116,124, +118,153,137,124,36,152,70,64,197,193,245,230,201,130,175,224,251,179,141, +41,60,192,122,115,22,227,76,5,109,168,117,116,118,153,137,125,38,160,70, +64,69,217,254,108,227,42,22,56,59,222,1,108,101,10,15,240,47,51,140,49, +102,190,103,33,16,253,80,80,141,128,138,170,113,166,130,142,84,57,63,110, +15,62,99,26,119,177,210,12,103,140,153,79,107,199,33,16,255,84,96,141,128, +138,154,110,108,225,103,44,244,116,198,127,241,41,211,184,139,119,205,185, +92,200,18,12,110,126,126,124,249,88,112,141,128,138,146,27,121,156,118, +212,136,204,58,156,15,185,208,44,193,98,156,28,207,151,0,128,70,64,69,67, +119,62,103,148,121,70,116,230,100,46,119,118,44,223,2,0,26,1,21,126,55, +51,75,236,87,118,0,127,226,251,188,108,143,115,118,60,95,3,0,26,1,21,94, +61,248,140,203,204,34,209,153,229,14,175,254,16,128,0,64,93,4,106,170,171, +244,115,7,84,168,220,98,30,117,254,170,124,115,22,219,190,44,183,125,156, +30,51,16,1,0,72,167,82,144,208,207,34,84,225,112,40,159,80,198,98,209,153, +46,159,251,215,11,76,0,0,72,167,53,2,42,20,38,152,153,148,146,16,155,247, +172,61,133,55,233,229,252,184,193,10,0,104,4,84,224,29,206,135,92,200,18, +177,121,22,195,36,15,174,254,16,196,0,128,70,64,5,218,4,51,147,98,228,62, +198,110,33,167,177,130,35,60,57,118,48,3,0,26,1,21,72,61,217,200,72,254, +40,54,47,77,17,183,217,75,60,59,126,112,3,0,117,17,168,213,8,168,224,152, +100,166,139,94,253,159,226,71,188,67,79,207,142,31,236,0,0,88,141,128,10, +134,94,172,227,92,254,44,54,47,69,17,183,218,75,61,157,17,252,0,128,70, +64,5,66,185,153,65,17,105,177,121,115,24,200,251,28,230,233,140,112,4,0, +52,2,202,87,71,179,134,225,44,21,155,151,162,136,95,217,139,61,159,19,158, +0,128,70,64,249,230,86,30,22,189,250,87,112,6,43,57,212,243,57,225,10,0, +104,4,148,184,111,243,1,67,204,75,98,243,18,20,115,187,135,175,252,55,20, +190,0,64,131,8,200,21,89,197,215,36,166,59,187,1,71,54,102,217,179,88,203, +193,34,179,194,25,0,248,42,2,53,26,1,229,169,239,152,247,25,108,150,137, +205,171,165,132,41,148,137,205,11,111,0,64,35,160,60,119,27,15,137,94,253, +31,177,67,89,79,119,177,121,225,14,0,104,4,148,103,78,50,239,48,128,215, +197,230,213,80,42,122,245,135,40,4,0,52,2,202,19,147,121,88,116,222,195, +12,231,67,14,16,157,25,141,0,128,70,64,57,213,215,172,224,52,222,20,155, +87,67,41,83,237,5,98,243,234,69,39,0,160,17,80,206,220,198,67,162,243,30, +224,28,62,166,171,232,76,136,90,0,64,35,160,10,214,207,188,193,201,252, +93,108,94,37,109,125,185,250,67,20,3,0,26,1,85,144,9,204,20,157,119,63, +231,178,137,253,68,103,214,139,102,0,64,35,160,242,114,186,121,157,31,240, +182,216,188,29,180,227,110,59,82,108,222,158,162,27,0,208,8,168,156,149, +51,67,116,222,61,118,36,155,233,44,58,179,161,104,7,0,52,2,42,107,103,242, +10,223,229,159,98,243,182,211,129,105,156,39,54,47,147,232,7,0,52,2,170, +69,6,203,120,35,251,220,255,110,251,83,182,210,73,116,230,158,226,17,0, +208,8,168,102,13,229,37,78,224,61,177,121,219,232,200,125,156,43,54,175, +41,241,9,0,104,4,84,70,6,203,68,35,251,220,127,170,189,128,109,116,20,157, +153,73,188,2,0,26,1,181,151,159,240,23,142,97,149,216,188,45,236,195,253, +1,184,250,67,28,3,0,26,1,181,75,17,105,110,49,143,138,206,188,147,139,248, +146,118,162,51,155,18,207,0,128,70,64,1,48,130,231,233,195,106,177,121, +155,233,204,67,118,184,216,188,150,196,55,0,160,17,136,185,86,164,25,47, +124,245,191,131,50,118,4,228,234,15,113,15,0,104,4,98,236,124,254,192,145, +172,23,155,247,9,251,51,221,14,19,155,151,13,13,0,104,4,98,168,21,105,126, +105,30,19,157,249,43,123,49,85,180,17,157,217,18,13,64,61,141,64,172,148, +241,123,142,96,131,216,188,143,233,202,163,12,17,155,151,45,13,64,67,26, +129,88,40,33,41,126,245,191,213,94,74,53,173,69,103,102,67,3,176,39,141, +64,228,93,202,34,190,206,71,98,243,54,208,141,89,156,37,54,47,23,26,128, +76,244,115,7,34,171,148,4,227,76,133,232,204,201,246,50,106,41,17,157,153, +45,13,64,83,172,213,8,68,208,40,158,225,107,124,34,54,111,61,221,121,130, +65,98,243,114,165,1,104,142,70,32,82,218,80,43,126,245,47,183,163,2,123, +245,7,13,64,203,52,2,145,113,165,89,200,33,108,18,155,183,138,30,204,97, +160,216,188,124,104,0,178,81,31,129,180,70,32,172,218,178,147,235,121,82, +116,102,185,29,69,146,86,162,51,115,165,1,200,150,181,144,208,8,132,213, +213,102,1,7,177,89,108,222,123,28,198,124,250,139,205,203,151,6,32,23,26, +129,80,106,79,181,248,213,127,146,29,69,58,4,63,94,193,63,195,160,201,35, +2,39,154,119,185,136,197,162,59,207,212,110,215,152,167,56,128,173,98,243, +254,193,55,88,200,169,98,243,10,81,236,247,9,132,82,125,4,74,218,66,81, +243,13,29,197,51,220,207,84,74,77,2,128,47,104,207,27,182,55,203,56,134, +183,56,138,87,56,54,16,119,134,137,170,14,84,241,115,230,138,206,44,39, +28,87,127,208,0,228,175,133,8,180,161,150,251,205,84,46,227,217,70,95,239, +68,37,253,204,27,244,227,13,0,82,20,177,146,67,121,149,99,89,102,235,162, +240,30,135,97,49,34,255,25,81,119,45,115,233,202,127,196,230,189,205,55, +121,198,158,34,54,175,80,26,128,66,52,17,129,30,124,198,66,198,113,34,239, +182,120,136,86,164,233,197,58,122,177,142,81,230,25,0,62,165,11,127,179, +71,241,22,71,241,170,169,11,67,16,247,145,7,221,62,236,96,172,153,39,58, +115,162,189,34,84,241,214,0,20,106,143,8,244,55,203,153,203,45,116,97,123, +222,135,236,198,22,206,48,175,114,6,175,2,80,107,74,248,187,61,146,229, +230,104,94,179,223,226,105,78,13,205,18,211,79,215,49,135,206,124,33,54, +239,77,122,177,152,190,98,243,92,208,191,69,46,88,139,73,84,113,131,125, +156,63,48,166,160,31,254,76,74,73,240,61,243,15,198,50,143,5,230,38,206, +102,169,211,227,71,81,23,182,51,70,175,254,45,210,0,56,208,129,106,42,152, +200,205,137,223,136,252,138,112,162,153,65,17,250,171,200,230,92,199,147, +116,162,82,108,222,235,244,225,57,78,18,155,231,138,6,160,64,61,217,200, +11,230,74,206,226,101,172,133,202,4,164,60,254,217,236,197,58,93,5,52,99, +127,182,113,181,89,32,58,115,2,163,69,231,185,162,1,40,192,32,150,177,212, +140,230,72,254,189,235,107,82,17,208,85,64,211,198,153,10,58,82,37,54,111, +25,199,240,130,61,81,108,158,75,26,128,60,20,147,162,156,25,204,49,227, +51,254,69,147,136,128,174,2,50,235,198,22,126,198,66,209,153,183,112,165, +232,60,151,52,0,57,234,202,127,120,150,235,25,107,230,97,176,77,126,159, +68,4,38,152,71,116,21,176,135,113,166,130,118,212,136,205,91,106,79,224, +69,123,188,216,60,215,52,0,57,56,150,149,44,53,63,163,175,89,145,213,247, +123,29,129,222,172,213,85,64,3,221,249,156,43,248,157,232,204,73,230,114, +209,121,174,105,0,178,84,198,98,158,55,255,77,15,62,205,233,113,94,71,64, +95,11,216,237,102,102,209,150,157,98,243,254,196,247,121,217,30,39,54,207, +11,26,128,22,180,161,150,251,204,175,153,102,238,162,148,68,94,199,240, +50,2,189,88,199,112,93,5,208,131,207,184,204,44,18,157,89,78,184,175,254, +160,1,104,214,193,108,98,9,99,184,144,37,5,31,203,203,8,76,212,215,2,184, +153,89,180,166,86,108,222,18,250,178,220,246,17,155,231,21,13,64,19,250, +154,21,188,104,70,115,188,249,192,217,49,189,138,64,111,214,198,122,21, +112,40,159,112,177,249,189,232,204,73,54,252,87,127,208,0,236,197,96,185, +142,57,44,226,58,79,222,69,230,85,4,38,152,153,177,93,5,140,55,143,230, +253,244,44,31,139,56,153,55,233,37,54,207,75,26,128,6,58,80,77,133,41,103, +188,153,73,43,15,127,152,188,136,192,209,172,137,229,42,224,112,62,228, +34,22,139,205,179,24,202,237,40,177,121,94,211,0,124,165,225,150,94,9,94, +68,32,142,175,5,76,48,51,41,38,37,54,239,105,123,42,43,56,66,108,158,215, +52,0,100,222,210,43,193,117,4,226,246,90,64,79,54,50,146,63,138,205,75, +83,196,173,92,42,54,79,66,172,3,80,76,138,219,205,67,77,110,233,149,224, +58,2,227,205,163,177,89,5,148,155,25,162,87,255,5,244,227,29,122,138,205, +147,16,219,0,116,97,59,11,25,199,85,44,104,118,75,175,4,151,17,232,195, +106,134,153,191,22,126,160,128,235,197,58,70,240,188,216,188,20,69,76,182, +151,137,205,147,18,203,0,28,203,74,94,52,163,57,197,188,229,247,169,236, +82,31,129,164,131,8,148,19,253,221,129,229,194,59,32,231,114,58,239,115, +152,216,60,41,177,11,64,190,91,122,37,88,11,85,14,34,208,155,181,145,94, +5,72,255,198,35,69,17,183,219,75,196,230,73,138,77,0,92,108,233,149,224, +42,2,81,94,5,220,202,195,162,255,109,21,156,193,74,14,21,155,39,41,22,1, +112,185,165,87,130,139,8,68,117,21,240,109,62,96,136,121,73,108,94,130, +226,200,94,253,33,6,1,240,98,75,175,4,23,17,136,226,42,96,18,211,69,95, +180,125,140,51,89,203,193,98,243,164,69,54,0,6,203,88,51,207,179,45,189, +18,10,141,64,111,214,242,99,94,116,122,78,126,58,158,247,25,108,150,137, +205,171,165,132,41,182,76,108,158,31,34,25,128,250,45,189,229,204,240,116, +75,175,132,66,35,48,201,76,143,204,42,224,118,243,144,232,213,255,17,59, +148,117,28,36,54,207,15,145,11,192,145,172,231,69,51,74,108,75,111,62,82, +57,254,177,23,18,129,168,172,2,78,50,239,48,128,215,197,230,213,80,202, +29,92,44,54,207,47,145,10,192,32,150,241,103,115,21,223,224,67,191,79,37, +35,139,225,97,134,243,115,123,109,238,143,45,32,2,81,88,5,76,230,97,209, +121,211,237,48,62,162,171,232,76,63,68,34,0,173,72,55,123,151,222,32,216, +65,91,202,152,200,141,246,106,230,48,144,213,28,146,243,49,242,141,64,216, +87,1,125,205,10,78,227,77,177,121,53,148,50,149,11,197,230,249,41,244,1, +232,194,118,158,230,134,22,239,210,235,167,213,28,66,63,251,32,139,236, +201,64,221,83,128,123,236,79,243,58,86,190,17,8,243,42,224,86,43,123,245, +127,128,115,98,113,245,135,144,7,32,136,91,122,247,244,156,61,137,83,237, +195,124,192,215,26,125,125,62,253,243,90,5,64,126,17,8,235,42,160,159,121, +67,244,255,223,74,218,50,213,94,32,54,207,111,161,13,64,144,183,244,66, +221,85,190,156,81,140,228,54,190,160,125,198,127,159,239,42,0,242,139,64, +24,87,1,19,152,41,58,239,126,206,101,19,251,137,206,244,83,232,2,208,58, +4,91,122,183,176,15,103,219,59,153,102,207,107,246,211,98,11,89,5,64,238, +17,232,205,90,134,10,238,162,43,212,233,230,117,126,192,219,98,243,118, +208,142,187,237,72,177,121,65,16,170,0,28,204,38,254,16,240,45,189,255, +199,17,252,208,78,231,175,124,167,197,239,45,116,21,0,95,189,139,176,54, +251,8,76,34,60,171,128,114,102,136,206,187,199,142,100,51,157,69,103,250, +45,52,1,8,195,150,222,249,244,103,128,189,143,13,28,152,211,99,10,89,5, +212,203,54,2,71,179,38,20,171,128,51,204,43,124,151,127,138,205,219,78, +7,166,113,158,216,188,160,8,124,0,194,176,165,119,39,165,140,177,215,51, +218,222,68,13,173,115,122,172,139,85,64,189,108,35,16,244,85,128,193,138, +63,247,191,135,145,108,165,147,232,204,32,8,116,0,194,176,165,247,99,186, +50,216,78,163,130,193,121,31,99,62,253,89,227,232,13,39,149,181,144,104, +225,46,89,65,95,5,12,229,37,78,224,61,177,121,219,232,200,189,118,132,216, +188,32,9,108,0,164,239,210,155,143,101,28,195,41,118,58,127,227,168,130, +142,227,114,21,0,117,47,12,182,20,129,160,174,2,12,150,137,70,246,185,255, +84,123,1,219,232,40,58,51,40,2,25,128,65,44,227,47,230,74,241,187,244,102, +171,126,75,239,16,123,23,155,28,189,104,52,143,1,206,86,1,208,114,4,130, +186,10,56,155,191,112,12,171,196,230,109,97,31,238,231,92,177,121,65,19, +168,0,52,220,210,219,137,74,191,79,39,163,134,91,122,147,180,114,118,92, +215,171,0,104,57,2,65,91,5,20,145,102,188,121,84,116,230,255,216,11,249, +146,118,162,51,131,36,48,1,40,37,25,186,45,189,174,185,94,5,64,243,17,56, +154,53,12,9,208,83,172,17,60,79,31,86,139,205,219,76,103,30,228,108,177, +121,65,20,152,0,156,104,222,13,229,150,94,151,188,88,5,64,243,17,152,108, +100,239,175,215,148,86,62,92,253,239,160,140,29,49,190,250,67,128,2,208, +134,157,126,159,66,70,45,109,233,117,205,139,85,0,52,29,129,160,172,2,126, +202,115,28,201,122,177,121,159,176,63,211,237,48,177,121,65,21,152,0,4, +81,182,91,122,93,242,106,21,0,77,71,192,239,85,64,43,210,220,108,102,137, +206,188,131,50,170,104,35,58,51,136,52,0,77,200,101,75,175,107,94,173,2, +32,115,4,252,94,5,148,241,123,142,96,131,216,188,143,233,202,76,59,84,108, +94,144,105,0,50,200,103,75,175,75,41,138,152,230,225,155,82,50,69,192,175, +85,64,9,73,126,105,30,19,157,121,171,189,148,234,28,119,108,70,149,6,160, +129,66,182,244,186,54,159,254,172,167,187,103,199,223,51,2,126,173,2,46, +49,255,203,215,249,72,108,222,6,186,49,139,179,196,230,5,157,6,224,43,46, +182,244,186,148,160,152,187,236,249,158,206,216,51,2,19,204,35,162,191, +130,45,37,193,141,60,46,54,15,234,174,254,181,148,136,206,12,50,13,0,238, +182,244,186,230,245,42,0,26,71,224,88,254,37,250,169,59,163,120,134,175, +241,137,216,188,245,116,103,118,64,2,31,20,177,14,128,23,91,122,93,146, +88,5,64,227,8,76,68,102,21,208,134,90,198,153,10,207,231,52,84,110,71,233, +213,127,15,177,13,128,87,91,122,93,147,88,5,192,238,8,72,173,2,70,243,52, +135,176,201,243,57,245,86,209,131,57,12,20,155,23,22,177,12,128,215,91, +122,93,146,90,5,192,238,8,120,189,10,104,203,78,126,97,158,240,236,248, +153,76,178,163,2,29,122,191,196,46,0,139,236,201,156,98,103,120,186,165, +215,181,249,244,231,223,116,19,153,85,149,128,222,41,111,87,1,87,241,91, +14,98,179,103,199,223,211,251,28,198,124,250,139,205,11,147,216,4,160,126, +75,111,25,19,217,65,91,191,79,39,39,146,171,0,168,139,192,205,169,25,158, +172,2,218,83,45,126,245,47,183,163,114,254,56,182,184,136,197,159,138,31, +91,122,93,155,199,0,145,215,2,234,245,76,172,226,204,244,82,231,199,189, +198,60,197,1,108,117,126,220,166,188,203,215,89,200,169,98,243,194,38,242, +1,240,115,75,175,75,9,138,185,219,163,247,8,52,229,23,137,153,152,148,187, +91,175,119,160,138,159,51,215,217,241,178,49,129,209,164,163,255,215,60, +111,145,254,147,241,123,75,175,107,210,171,128,62,172,102,96,98,41,164, +146,78,142,119,45,115,69,111,236,250,54,223,228,25,123,138,216,188,48,138, +100,0,130,180,165,215,37,63,86,1,55,154,10,76,162,26,10,92,9,236,195,14, +198,154,121,142,206,42,59,19,237,21,161,125,202,39,37,114,1,8,218,150,94, +215,164,87,1,223,98,21,3,121,13,18,59,11,138,192,181,102,14,157,249,194, +225,153,53,239,45,142,98,49,125,197,230,133,85,164,2,16,212,45,189,46,249, +182,10,192,230,29,129,125,249,146,107,120,202,131,51,107,218,120,59,90, +175,254,89,136,68,0,130,190,165,215,181,121,12,16,219,23,0,13,86,1,144, +87,4,110,96,54,251,242,165,7,103,150,217,235,244,225,57,78,18,155,23,102, +161,15,64,88,182,244,186,84,183,10,144,219,23,0,13,86,1,144,83,4,246,103, +27,87,155,5,30,158,217,222,38,48,90,116,94,152,133,58,0,97,218,210,235, +218,92,63,87,1,144,117,4,110,96,54,29,169,242,240,204,26,91,198,49,188, +96,79,20,155,23,118,161,13,128,196,93,122,131,204,247,85,0,180,24,129,110, +108,225,42,243,91,129,51,219,237,22,174,20,157,23,118,161,11,64,138,34, +166,216,139,196,238,210,27,100,126,172,2,78,55,175,55,254,98,51,17,24,103, +42,104,71,141,192,153,213,89,106,79,224,69,123,188,216,188,40,8,85,0,234, +183,244,78,161,76,95,225,197,159,85,192,77,60,190,247,123,4,50,68,160,59, +159,115,5,191,19,60,51,152,100,46,23,157,23,5,161,9,64,84,182,244,186,22, +136,85,0,236,21,129,95,154,199,104,43,248,89,15,127,226,251,188,108,143, +19,155,23,21,161,8,64,212,182,244,186,148,160,216,179,207,17,104,74,198, +85,0,236,138,64,15,62,227,114,158,21,61,167,114,244,234,159,143,64,7,32, +170,91,122,93,155,195,233,193,88,5,0,36,118,50,46,53,147,214,212,138,157, +207,18,250,178,220,246,17,155,23,37,129,13,64,212,183,244,186,20,164,85, +64,15,62,227,156,228,18,106,155,249,84,98,215,38,115,153,220,176,136,9, +100,0,226,176,165,215,181,160,172,2,110,48,179,41,37,65,117,2,145,8,60, +107,79,225,13,219,219,251,65,17,21,152,0,108,176,221,99,183,165,215,165, +32,172,2,14,227,99,70,240,252,174,127,246,58,2,22,195,36,125,238,95,144, +192,4,96,21,135,48,132,95,199,106,75,175,107,115,56,157,13,194,171,128, +1,44,223,245,207,227,204,108,74,104,124,239,0,47,35,240,59,126,200,10,142, +240,230,224,49,17,152,0,88,12,47,219,111,251,125,26,161,230,199,59,5,111, +50,117,171,128,195,249,136,179,121,33,227,247,120,17,129,52,69,76,182,250, +220,191,80,129,9,128,114,67,250,181,128,99,248,23,3,88,206,141,230,113, +138,105,250,167,220,117,4,22,208,143,119,232,233,238,128,49,165,1,136,24, +63,94,11,184,195,60,192,112,90,190,129,104,117,2,118,58,184,187,88,138, +34,38,89,125,238,239,130,6,32,130,164,87,1,135,241,113,214,31,45,94,147, +44,60,2,115,57,61,182,111,2,115,77,3,16,65,9,138,153,198,72,191,79,163, +73,133,68,32,69,17,183,219,75,220,158,80,140,105,0,34,234,73,59,80,116, +21,144,171,124,35,48,155,193,172,228,80,247,39,20,83,26,128,136,10,250, +42,0,114,143,64,130,98,110,179,151,122,119,66,49,164,1,136,176,160,175, +2,32,183,8,60,198,153,172,229,96,111,79,40,102,52,0,17,22,134,85,0,100, +23,129,4,197,76,177,101,34,231,19,39,26,128,136,123,210,14,20,221,29,152, +175,150,34,240,8,67,89,199,65,114,39,20,19,26,128,136,75,80,204,52,123, +158,223,167,145,149,166,34,80,67,41,119,216,139,229,79,40,6,52,0,49,240, +4,131,66,177,10,128,204,17,152,110,135,241,33,7,248,115,66,17,167,1,136, +129,48,173,2,160,113,4,106,40,101,42,23,250,123,66,17,166,1,136,137,48, +173,2,96,119,4,126,99,207,225,35,186,250,125,58,145,165,1,136,137,176,173, +2,0,182,38,219,112,103,114,132,223,167,17,105,26,128,24,9,219,42,96,58, +195,216,156,108,15,73,185,251,11,198,141,6,32,70,194,180,10,168,164,45, +191,177,63,169,251,135,100,173,70,192,35,26,128,152,9,203,42,224,65,206, +230,115,246,221,253,5,141,128,39,52,0,49,147,160,152,123,9,246,243,234, +47,104,207,131,245,87,255,134,52,2,206,105,0,98,104,182,29,28,232,85,192, +131,252,132,255,208,49,243,191,212,8,56,165,1,136,161,32,175,2,182,211, +129,135,236,240,230,191,73,35,224,140,6,32,166,130,186,10,184,207,142,96, +59,29,90,254,70,141,128,19,26,128,152,10,226,42,96,43,157,152,206,176,236, +31,160,17,40,152,6,32,198,130,182,10,184,215,158,199,14,218,230,246,32, +141,64,65,52,0,49,22,164,85,192,38,58,243,8,67,243,123,176,70,32,111,26, +128,152,123,194,14,98,99,0,86,1,247,218,17,84,209,38,255,3,104,4,242,162, +1,136,185,90,74,184,215,250,187,10,248,148,46,204,98,72,225,7,210,8,228, +76,3,160,152,141,191,171,128,123,24,73,53,173,221,28,76,35,144,19,13,128, +242,117,21,240,41,251,83,97,7,187,61,168,70,32,107,26,0,5,248,183,10,152, +202,249,212,184,186,250,55,164,17,200,138,6,64,1,117,171,128,105,194,191, +17,216,72,55,158,176,131,188,27,160,17,104,145,6,64,237,34,253,27,129,169, +246,124,106,41,241,118,136,70,160,89,26,0,181,139,228,107,1,27,232,198, +124,250,139,204,34,89,11,137,157,50,179,66,70,3,160,26,145,122,45,96,138, +45,243,254,234,223,80,42,161,17,200,64,3,160,26,169,165,132,251,56,215, +211,25,107,56,152,5,244,243,116,70,70,26,129,189,104,0,212,94,42,236,96, +79,87,1,119,218,50,146,180,242,236,248,205,210,8,52,82,236,247,9,168,224, +169,165,132,65,118,26,93,216,214,236,247,181,50,150,142,84,230,124,252, +87,56,46,223,83,115,35,149,168,251,223,18,15,126,253,24,50,26,0,149,209, +70,14,100,35,7,54,255,77,86,230,92,60,161,17,0,244,41,128,138,51,125,58, +160,1,80,49,23,243,8,104,0,148,138,113,4,52,0,74,65,108,35,160,1,80,170, +94,12,35,160,1,80,170,161,152,69,64,3,160,212,158,98,20,1,13,128,82,153, +196,36,2,26,0,165,154,18,131,8,104,0,148,106,78,42,1,137,26,191,207,194, +51,26,0,165,90,146,74,70,54,2,26,0,165,178,17,209,8,104,0,148,202,86,4, +35,160,1,80,42,23,17,139,128,6,64,169,92,69,40,2,26,0,165,242,17,145,8, +104,0,148,202,87,4,34,160,1,80,170,16,33,143,128,6,64,169,66,133,56,2,26, +0,165,92,8,105,4,52,0,74,185,18,194,8,104,0,148,114,41,100,17,208,0,40, +229,90,136,34,160,1,80,202,11,169,36,212,86,251,125,22,45,210,0,40,229, +149,116,42,240,17,208,0,40,229,165,128,71,64,3,160,148,215,2,28,1,13,128, +82,18,2,26,1,13,128,82,82,2,24,129,188,62,29,184,93,137,251,110,116,40, +109,69,175,174,109,157,31,87,169,160,49,69,80,212,218,237,223,245,205,85, +73,62,221,145,200,249,113,121,5,224,184,238,237,243,121,88,179,190,119, +72,123,94,187,228,72,231,199,85,42,136,138,139,139,105,223,222,221,207, +209,61,203,63,227,218,231,55,230,252,56,125,10,160,148,15,146,201,36,149, +149,149,126,159,134,6,64,41,191,4,33,2,26,0,165,124,228,119,4,52,0,74,249, +172,62,2,214,90,241,217,26,0,165,2,32,153,76,82,85,85,37,30,1,13,128,82, +1,225,71,4,52,0,74,5,136,116,4,52,0,74,5,140,100,4,52,0,74,5,144,84,4,52, +0,74,5,148,68,4,52,0,74,5,152,215,17,208,0,40,21,112,94,70,64,3,160,84, +8,120,21,1,13,128,82,33,225,69,4,52,0,74,133,136,235,8,104,0,148,10,25, +151,239,29,208,0,40,21,66,169,84,202,73,4,52,0,74,133,148,139,8,104,0,148, +10,177,66,35,144,87,0,94,219,248,101,94,195,148,82,238,165,82,41,106,107, +170,32,143,8,24,110,90,154,170,187,79,105,246,218,151,22,121,114,103,96, +165,84,126,170,18,105,42,147,64,73,91,48,38,235,199,229,117,87,224,202, +218,52,149,181,233,124,30,170,148,242,82,162,58,167,8,232,101,92,169,40, +73,167,235,34,144,229,211,1,13,128,82,81,147,67,4,52,0,74,69,81,150,17, +208,0,40,21,85,89,68,64,3,160,84,148,181,16,1,13,128,82,81,215,76,4,52, +0,74,197,65,19,17,208,0,40,21,23,25,34,160,1,80,42,78,246,136,128,6,64, +169,184,105,16,1,13,128,82,113,244,85,4,254,31,121,241,55,153,214,40,101, +56,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_3 = 987; +static unsigned char xml_res_file_3[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,32,0,0,0,32,8,6,0,0, +0,115,122,122,244,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,5,98,0,0,5,98,1,172,97,92,156,0,0,0,25,116,69,88,116,83,111, +102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46, +111,114,103,155,238,60,26,0,0,3,88,73,68,65,84,88,133,197,151,123,104,141, +97,24,192,127,239,217,185,76,10,209,140,105,229,210,92,74,174,115,89,91, +20,139,134,48,127,80,194,220,134,63,8,145,63,196,54,119,43,33,252,97,182, +154,40,162,200,106,214,148,132,153,68,211,102,180,37,119,25,67,238,235, +236,59,231,59,123,253,113,182,119,59,190,239,59,151,156,195,243,215,251, +60,207,251,188,207,239,125,222,219,247,9,242,238,74,226,28,252,47,177,227, +213,72,238,233,100,250,144,62,0,220,122,253,147,151,223,180,127,6,96,3, +24,213,219,70,81,86,18,165,243,6,50,105,64,247,152,36,74,166,153,25,226, +158,57,0,128,219,237,198,227,241,196,36,57,192,78,81,194,53,54,80,69,46, +233,212,25,1,58,32,218,116,111,212,147,15,162,137,229,148,3,144,33,106, +25,79,131,57,0,128,207,211,10,122,116,43,145,39,138,113,160,3,240,142,4, +138,88,96,13,0,248,1,162,4,145,194,91,150,82,161,244,253,114,37,26,206, +16,0,81,132,200,19,197,196,209,6,192,27,250,81,194,188,0,191,53,64,20,32, +134,243,138,197,92,83,250,94,185,10,15,129,119,78,112,128,63,32,250,243, +57,34,128,2,113,10,91,251,236,95,146,196,105,230,24,250,132,6,0,156,122, +11,39,244,125,52,137,44,62,136,153,28,17,135,67,198,140,228,57,11,185,174, +244,61,114,53,94,236,145,3,36,241,137,10,177,145,37,190,43,104,58,36,242, +133,77,156,39,85,52,4,141,219,69,17,2,9,192,51,146,57,195,108,211,126,65, +1,50,68,45,183,196,90,82,219,207,109,171,14,154,255,52,145,47,139,45,227, +198,240,148,108,113,179,19,70,230,226,179,72,101,9,176,94,92,160,140,45, +36,240,85,217,170,25,173,32,230,136,170,128,11,165,171,116,157,125,35,3, +57,199,76,75,88,3,128,11,141,82,177,139,189,156,84,199,199,131,131,77,114, +11,179,229,81,106,25,166,32,242,133,177,10,169,162,129,185,226,118,39,140, +204,165,45,72,161,13,158,29,162,148,108,110,42,189,137,4,178,56,166,118, +240,65,153,3,248,151,99,134,94,197,56,26,3,226,119,115,82,181,159,48,152, +139,100,90,38,55,5,72,226,147,106,87,49,150,41,242,20,53,114,184,178,85, +146,70,29,67,21,196,118,189,72,249,210,168,39,139,187,74,47,96,77,208,217, +155,2,116,200,113,22,49,95,30,226,51,189,12,190,66,185,76,181,51,125,119, +24,163,63,6,2,103,95,71,10,151,228,180,160,201,77,1,126,208,157,28,10,216, +41,215,89,238,220,10,210,121,68,138,210,183,249,74,72,215,31,144,41,238, +43,91,190,92,139,68,68,14,176,77,110,160,76,78,13,25,88,72,103,21,102,81, +205,81,223,1,90,219,143,104,13,35,40,35,244,24,166,0,94,194,251,62,172, +144,233,60,102,136,210,83,120,139,166,251,247,69,190,92,19,214,24,166,0, +225,138,68,80,72,142,193,94,173,143,224,170,62,49,246,0,0,229,50,131,39, +93,170,0,176,159,21,17,189,162,198,215,33,2,145,8,246,176,138,173,156,5, +224,5,3,184,33,39,248,157,29,0,118,167,69,116,20,0,0,42,101,26,149,164, +153,59,195,128,248,171,37,8,75,66,44,71,236,1,66,64,216,1,122,184,226,148, +97,100,223,110,124,215,124,49,225,176,57,156,216,28,46,0,30,190,111,225, +99,139,238,7,24,218,59,94,117,218,60,57,145,205,147,19,99,2,0,224,114,185, +136,143,143,39,251,226,51,174,52,126,251,251,77,24,169,104,90,224,127,167, +29,224,114,227,87,117,107,127,248,229,229,135,167,45,230,32,53,239,90,1, +225,7,168,111,118,83,223,236,142,121,82,131,216,157,252,6,173,114,47,95, +172,143,154,9,0,0,0,0,73,69,78,68,174,66,96,130}; + +static size_t xml_res_size_4 = 1881; +static unsigned char xml_res_file_4[] = { +137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0, +0,170,105,113,222,0,0,0,4,115,66,73,84,8,8,8,8,124,8,100,136,0,0,0,9,112, +72,89,115,0,0,10,233,0,0,10,233,1,253,117,206,211,0,0,0,25,116,69,88,116, +83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112, +101,46,111,114,103,155,238,60,26,0,0,6,214,73,68,65,84,120,156,229,155, +121,108,84,69,28,199,63,211,61,186,96,57,228,80,17,84,130,136,8,65,140, +26,60,162,81,84,98,168,128,130,130,45,32,10,4,80,140,114,41,90,64,40,162, +65,81,20,8,162,128,66,41,8,114,40,209,152,200,81,4,131,9,40,136,26,84,136, +86,228,16,139,128,96,45,236,118,119,223,238,248,199,186,237,110,119,222, +219,247,246,173,108,91,190,255,237,252,126,111,102,222,103,102,126,115, +188,89,193,212,29,18,135,147,243,85,89,4,43,33,164,101,186,30,25,83,22, +192,249,12,161,186,239,7,43,153,114,123,59,114,59,54,139,115,216,118,176, +130,73,159,31,61,215,245,58,103,138,27,252,151,93,16,226,198,139,179,113, +185,92,85,105,199,206,4,207,121,165,236,202,73,136,16,89,72,68,82,223,172, +154,9,94,175,151,96,176,238,189,116,172,158,20,107,217,43,242,232,79,9, +2,105,232,155,0,0,234,54,4,15,1,158,165,152,206,28,96,141,40,224,123,49, +208,16,132,18,0,212,93,8,163,89,75,107,78,84,253,238,66,41,107,68,1,59, +196,48,186,242,75,130,191,46,0,136,64,8,105,117,7,194,5,248,152,40,138, +149,182,235,217,79,5,13,19,210,13,1,0,248,125,62,8,213,13,8,79,177,154, +139,57,165,180,21,209,139,3,180,78,72,79,10,0,128,160,191,214,67,200,193, +203,120,177,82,105,11,226,100,166,28,170,180,153,3,0,181,30,194,88,86,209, +146,211,74,219,98,30,224,55,46,85,218,204,3,128,90,11,161,9,103,24,167, +211,250,126,220,186,173,15,86,1,64,173,132,48,142,149,52,227,31,165,109, +33,253,248,157,139,116,159,181,14,0,106,21,132,166,84,48,70,124,160,180, +85,226,102,150,28,98,248,124,106,0,160,214,64,120,134,21,52,165,66,105, +123,75,14,224,40,45,13,159,79,29,0,100,28,66,115,202,121,90,167,245,207, +210,128,215,120,36,105,30,246,0,64,70,33,76,20,197,52,194,171,180,205,151, +3,248,147,102,74,91,172,236,3,128,140,64,104,193,223,140,102,157,210,118, +134,134,188,193,64,83,249,164,7,0,36,64,184,75,236,162,3,135,211,150,125, +77,21,136,34,114,116,90,127,174,204,227,184,137,214,135,26,231,1,182,21, +244,227,33,192,91,206,55,24,198,39,32,224,36,77,217,65,23,118,202,46,44, +163,87,210,160,100,70,173,56,201,19,58,173,95,78,14,179,25,100,58,175,180, +2,184,148,19,20,107,211,184,93,236,3,71,36,173,5,127,211,155,237,244,22, +219,233,196,1,6,203,25,182,203,41,160,136,6,248,149,182,57,50,159,211,52, +54,157,87,218,134,64,119,118,179,93,140,224,70,246,225,11,66,32,148,232, +147,199,38,58,114,208,86,57,109,56,206,8,177,94,105,59,77,99,222,52,57, +246,163,178,13,64,32,25,199,74,214,137,231,104,78,121,85,186,10,130,131, +48,47,136,247,108,149,55,137,165,120,8,40,109,179,25,68,57,57,150,242,179, +5,160,17,94,150,139,169,76,19,139,113,16,78,176,171,32,60,108,163,23,92, +65,25,195,197,199,74,219,73,154,50,79,230,89,206,51,101,0,87,113,132,205, +98,52,189,248,210,208,175,38,4,7,97,38,139,37,41,149,57,69,44,193,141,122, +186,125,157,193,202,3,143,100,74,9,192,253,226,11,182,138,81,116,228,144, +41,255,154,16,242,217,200,213,38,159,141,170,29,71,121,148,79,149,182,227, +52,99,190,28,96,41,191,168,44,1,112,16,166,144,69,20,49,157,28,124,134, +190,171,233,193,100,249,68,213,111,95,16,252,90,117,62,83,44,198,130,23, +196,187,184,80,127,188,121,85,14,225,44,13,44,229,23,149,105,0,205,41,231, +67,38,50,86,172,50,60,106,214,112,80,200,72,70,201,73,44,162,31,135,185, +164,202,86,169,85,67,200,103,163,233,88,208,158,35,12,230,51,165,237,24, +205,121,135,7,205,190,70,130,76,1,232,202,207,108,21,143,115,167,248,198, +208,175,140,22,228,202,121,204,145,249,64,228,40,106,46,241,129,41,10,193, +74,44,40,20,139,112,162,152,87,129,153,242,49,188,120,76,229,163,82,82, +0,109,56,206,70,241,52,151,115,204,208,111,7,215,114,167,92,200,215,116, +138,75,47,150,247,197,245,2,168,134,96,166,23,116,224,48,121,108,82,218, +202,104,193,98,250,38,123,5,67,37,5,112,29,63,227,209,89,117,69,85,68,47, +250,200,217,202,221,151,170,23,64,4,130,166,37,239,5,47,138,119,148,83, +44,192,12,134,227,35,219,240,249,100,178,181,14,56,75,3,134,201,169,140, +149,19,8,26,172,170,85,189,0,34,16,250,105,250,51,66,103,14,208,159,45, +74,219,97,46,97,137,236,147,90,197,99,148,50,128,82,218,112,183,92,192, +71,116,79,234,27,196,89,21,23,18,108,90,152,231,67,139,149,182,233,98,33, +89,58,173,255,146,28,142,31,183,249,10,235,40,37,0,27,228,205,220,45,223, +102,63,109,77,63,179,156,92,101,47,0,232,163,109,166,131,86,26,151,214, +133,82,250,178,77,233,127,136,86,44,227,62,211,101,27,201,18,0,137,96,142, +204,103,32,47,91,94,115,235,197,2,136,204,8,227,67,75,65,171,94,227,191, +196,219,186,173,95,40,71,18,192,165,180,89,149,105,0,167,104,204,67,242, +21,10,25,73,56,197,145,179,92,230,114,68,167,23,244,167,132,171,180,95, +65,11,112,3,251,232,45,182,43,253,74,185,140,21,244,76,169,124,149,146, +190,73,5,13,217,75,123,186,203,133,108,161,155,173,194,2,184,152,171,179, +97,113,16,102,130,88,1,90,128,169,161,5,186,139,173,233,114,4,90,244,176, +33,13,74,10,224,43,58,211,67,206,231,144,78,203,89,213,114,122,114,84,231, +67,69,127,74,200,99,35,119,104,59,171,86,140,177,218,79,91,86,113,111,90, +234,17,85,82,0,149,100,83,105,115,174,141,149,31,183,238,129,165,131,48, +11,196,172,72,185,49,203,230,168,166,203,17,132,210,120,140,9,233,60,20, +181,32,163,88,16,27,248,98,33,252,72,59,214,112,79,218,235,146,17,0,70, +177,160,166,162,16,166,201,81,41,7,95,35,101,4,0,64,49,250,189,160,166, +246,104,237,88,175,221,250,191,212,35,99,0,172,244,130,25,12,39,172,105, +113,235,132,116,41,99,0,192,120,70,136,234,91,121,53,27,228,45,145,31,90, +32,237,16,50,10,192,143,155,57,168,247,8,81,205,20,67,227,47,60,166,25, +66,70,1,0,20,203,92,221,94,176,75,118,98,147,188,41,209,144,70,8,25,191, +39,239,199,205,24,38,112,155,252,46,46,189,17,94,214,136,30,232,158,190, +69,1,56,237,237,8,51,14,0,160,68,118,163,68,181,204,54,190,229,154,22,8, +25,31,2,182,101,115,56,212,125,0,96,11,66,253,0,0,41,67,168,63,0,32,37, +8,245,11,0,88,134,80,255,0,128,37,8,113,211,224,21,77,18,247,253,215,180, +244,48,163,187,250,158,109,109,151,211,157,141,211,29,255,78,123,202,188, +172,250,161,250,70,121,28,128,86,57,137,203,130,43,47,244,240,84,183,212, +63,61,101,90,217,217,217,120,60,213,245,127,127,239,95,113,0,234,231,16, +136,145,223,239,199,231,211,255,146,93,239,1,0,4,2,1,93,8,181,98,41,124, +46,20,8,168,131,98,28,128,221,101,94,92,89,241,255,181,243,6,195,156,170, +84,127,154,174,123,58,203,79,127,84,198,165,8,10,182,38,219,114,212,63, +57,92,224,138,204,14,231,69,12,72,80,40,24,185,218,203,121,20,3,18,244, +223,189,230,127,1,145,119,128,141,62,61,149,199,0,0,0,0,73,69,78,68,174, +66,96,130}; + +static size_t xml_res_size_5 = 626; +static unsigned char xml_res_file_5[] = { +60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101, +110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,63,62,10,60,114,101, +115,111,117,114,99,101,32,120,109,108,110,115,61,34,104,116,116,112,58, +47,47,119,119,119,46,119,120,119,105,100,103,101,116,115,46,111,114,103, +47,119,120,120,114,99,34,62,10,32,32,60,33,45,45,32,72,97,110,100,108,101, +114,32,71,101,110,101,114,97,116,105,111,110,32,105,115,32,79,78,32,45, +45,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119, +120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116, +49,50,56,34,62,68,97,116,97,82,101,112,111,114,116,66,105,116,109,97,112, +115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,99,104, +97,114,116,49,50,56,46,112,110,103,60,47,111,98,106,101,99,116,62,10,32, +32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34,119,120,66,105,116, +109,97,112,34,32,110,97,109,101,61,34,99,104,97,114,116,49,54,34,62,68, +97,116,97,82,101,112,111,114,116,66,105,116,109,97,112,115,46,99,112,112, +36,100,97,116,97,95,105,109,97,103,101,115,95,99,104,97,114,116,49,54,46, +112,110,103,60,47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99, +116,32,99,108,97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110, +97,109,101,61,34,99,104,97,114,116,50,53,54,34,62,68,97,116,97,82,101,112, +111,114,116,66,105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95, +105,109,97,103,101,115,95,99,104,97,114,116,50,53,54,46,112,110,103,60, +47,111,98,106,101,99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108, +97,115,115,61,34,119,120,66,105,116,109,97,112,34,32,110,97,109,101,61, +34,99,104,97,114,116,51,50,34,62,68,97,116,97,82,101,112,111,114,116,66, +105,116,109,97,112,115,46,99,112,112,36,100,97,116,97,95,105,109,97,103, +101,115,95,99,104,97,114,116,51,50,46,112,110,103,60,47,111,98,106,101, +99,116,62,10,32,32,60,111,98,106,101,99,116,32,99,108,97,115,115,61,34, +119,120,66,105,116,109,97,112,34,32,110,97,109,101,61,34,99,104,97,114, +116,54,52,34,62,68,97,116,97,82,101,112,111,114,116,66,105,116,109,97,112, +115,46,99,112,112,36,100,97,116,97,95,105,109,97,103,101,115,95,99,104, +97,114,116,54,52,46,112,110,103,60,47,111,98,106,101,99,116,62,10,60,47, +114,101,115,111,117,114,99,101,62,10}; + +void wxC6A63InitBitmapResources() +{ + + // Check for memory FS. If not present, load the handler: + { + wxMemoryFSHandler::AddFile(wxT("XRC_resource/dummy_file"), wxT("dummy one")); + wxFileSystem fsys; + wxFSFile *f = fsys.OpenFile(wxT("memory:XRC_resource/dummy_file")); + wxMemoryFSHandler::RemoveFile(wxT("XRC_resource/dummy_file")); + if (f) delete f; + else wxFileSystem::AddHandler(new wxMemoryFSHandlerBase); + } + + XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart128.png"), xml_res_file_0, xml_res_size_0, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart16.png"), xml_res_file_1, xml_res_size_1, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart256.png"), xml_res_file_2, xml_res_size_2, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart32.png"), xml_res_file_3, xml_res_size_3, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$data_images_chart64.png"), xml_res_file_4, xml_res_size_4, wxT("image/png")); + XRC_ADD_FILE(wxT("XRC_resource/DataReportBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_DataReportBitmaps.xrc"), xml_res_file_5, xml_res_size_5, wxT("text/xml")); + wxXmlResource::Get()->Load(wxT("memory:XRC_resource/DataReportBitmaps.cpp$C__Users_NDSE-69_Documents_GitHub_PSP_Project_DataReportBitmaps.xrc")); +} diff --git a/Project/ElectricCalculation.cpp b/Project/ElectricCalculation.cpp index e67c9b4..95810fc 100644 --- a/Project/ElectricCalculation.cpp +++ b/Project/ElectricCalculation.cpp @@ -41,6 +41,16 @@ void ElectricCalculation::GetElementsFromList(std::vector<Element*> elementList) else if(Transformer* transformer = dynamic_cast<Transformer*>(element)) m_transformerList.push_back(transformer); } + + // Set buses numbers + int busNumber = 0; + for(auto itb = m_busList.begin(); itb != m_busList.end(); itb++) { + Bus* bus = *itb; + BusElectricalData data = bus->GetElectricalData(); + data.number = busNumber; + bus->SetElectricalData(data); + busNumber++; + } } bool ElectricCalculation::GetYBus(std::vector<std::vector<std::complex<double> > >& yBus, @@ -274,15 +284,24 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector<std::complex<doubl std::vector<ReactiveLimits> reactiveLimit, double systemPowerBase) { - for(int i = 0; i < (int)reactiveLimit.size(); ++i) { - if(reactiveLimit[i].maxLimit > -1e-5 && reactiveLimit[i].maxLimit < 1e-5) reactiveLimit[i].maxLimit = 1e-5; - if(reactiveLimit[i].minLimit > -1e-5 && reactiveLimit[i].minLimit < 1e-5) reactiveLimit[i].minLimit = 1e-5; - } - // Buses voltages + double zeroLimit = 1e-4; + for(unsigned int i = 0; i < reactiveLimit.size(); ++i) { + if(reactiveLimit[i].maxLimit > -zeroLimit && reactiveLimit[i].maxLimit < zeroLimit) reactiveLimit[i].maxLimit = zeroLimit; + if(reactiveLimit[i].minLimit > -zeroLimit && reactiveLimit[i].minLimit < zeroLimit) reactiveLimit[i].minLimit = zeroLimit; + } + for(unsigned int i = 0; i < power.size(); ++i) { + if(std::real(power[i]) > -zeroLimit && std::real(power[i]) < zeroLimit) + power[i] = std::complex<double>(0.0, std::imag(power[i])); + if(std::imag(power[i]) > -zeroLimit && std::imag(power[i]) < zeroLimit) + power[i] = std::complex<double>(std::real(power[i]), 0.0); + } + // Buses for(int i = 0; i < (int)m_busList.size(); i++) { Bus* bus = m_busList[i]; BusElectricalData data = bus->GetElectricalData(); data.voltage = voltage[i]; + data.power = power[i]; + data.busType = busType[i]; bus->SetElectricalData(data); } diff --git a/Project/Line.cpp b/Project/Line.cpp index 350d3f5..637e45b 100644 --- a/Project/Line.cpp +++ b/Project/Line.cpp @@ -4,7 +4,7 @@ Line::Line() : Branch() { for(int i = 0; i < 2; i++) { for(int j = 0; j < 3; j++) { - m_electricaData.faultCurrent[i][j] = std::complex<double>(0.0, 0.0); + m_electricalData.faultCurrent[i][j] = std::complex<double>(0.0, 0.0); } } } @@ -13,10 +13,10 @@ Line::Line(wxString name) : Branch() { for(int i = 0; i < 2; i++) { for(int j = 0; j < 3; j++) { - m_electricaData.faultCurrent[i][j] = std::complex<double>(0.0, 0.0); + m_electricalData.faultCurrent[i][j] = std::complex<double>(0.0, 0.0); } } - m_electricaData.name = name; + m_electricalData.name = name; } Line::~Line() {} bool Line::Contains(wxPoint2DDouble position) const @@ -136,16 +136,16 @@ bool Line::AddParent(Element* parent, wxPoint2DDouble position) UpdateSwitches(); Bus* parentBus = static_cast<Bus*>(parent); - m_electricaData.nominalVoltage = parentBus->GetElectricalData().nominalVoltage; - m_electricaData.nominalVoltageUnit = parentBus->GetElectricalData().nominalVoltageUnit; + m_electricalData.nominalVoltage = parentBus->GetElectricalData().nominalVoltage; + m_electricalData.nominalVoltageUnit = parentBus->GetElectricalData().nominalVoltageUnit; return false; } // Second bus. else if(parent != m_parentList[0]) { Bus* parentBus = static_cast<Bus*>(parent); - if(m_electricaData.nominalVoltage != parentBus->GetElectricalData().nominalVoltage || - m_electricaData.nominalVoltageUnit != parentBus->GetElectricalData().nominalVoltageUnit) { + if(m_electricalData.nominalVoltage != parentBus->GetElectricalData().nominalVoltage || + m_electricalData.nominalVoltageUnit != parentBus->GetElectricalData().nominalVoltageUnit) { wxMessageDialog msgDialog(NULL, _("Unable to connect two buses with different nominal voltages.\n" "Use a transformer or edit the bus properties."), _("Error"), wxOK | wxCENTRE | wxICON_ERROR); @@ -341,8 +341,8 @@ bool Line::ShowForm(wxWindow* parent, Element* element) void Line::SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit) { if(nominalVoltage.size() > 0) { - m_electricaData.nominalVoltage = nominalVoltage[0]; - m_electricaData.nominalVoltageUnit = nominalVoltageUnit[0]; + m_electricalData.nominalVoltage = nominalVoltage[0]; + m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0]; } } @@ -368,10 +368,10 @@ bool Line::SetNodeParent(Element* parent) // two different voltages buses Bus* parentBus = static_cast<Bus*>(parent); if(!m_parentList[0] && !m_parentList[1]) { - m_electricaData.nominalVoltage = parentBus->GetElectricalData().nominalVoltage; - m_electricaData.nominalVoltageUnit = parentBus->GetElectricalData().nominalVoltageUnit; - } else if(m_electricaData.nominalVoltage != parentBus->GetElectricalData().nominalVoltage || - m_electricaData.nominalVoltageUnit != parentBus->GetElectricalData().nominalVoltageUnit) { + m_electricalData.nominalVoltage = parentBus->GetElectricalData().nominalVoltage; + m_electricalData.nominalVoltageUnit = parentBus->GetElectricalData().nominalVoltageUnit; + } else if(m_electricalData.nominalVoltage != parentBus->GetElectricalData().nominalVoltage || + m_electricalData.nominalVoltageUnit != parentBus->GetElectricalData().nominalVoltageUnit) { wxMessageDialog msgDialog(NULL, _("Unable to connect two buses with different nominal voltages.\n" "Use a transformer or edit the bus properties."), _("Error"), wxOK | wxCENTRE | wxICON_ERROR); @@ -485,7 +485,7 @@ Element* Line::GetCopy() wxString Line::GetTipText() const { - wxString tipText = m_electricaData.name; + wxString tipText = m_electricalData.name; if(m_online) { tipText += "\n"; @@ -494,14 +494,92 @@ wxString Line::GetTipText() const busNumber[1] = static_cast<Bus*>(m_parentList[1])->GetElectricalData().number + 1; tipText += _("\nP") + wxString::Format("(%d-%d) = ", busNumber[0], busNumber[1]) + - wxString::FromDouble(m_electricaData.powerFlow[0].real(), 5) + _(" p.u."); + wxString::FromDouble(m_electricalData.powerFlow[0].real(), 5) + _(" p.u."); tipText += _("\nQ") + wxString::Format("(%d-%d) = ", busNumber[0], busNumber[1]) + - wxString::FromDouble(m_electricaData.powerFlow[0].imag(), 5) + _(" p.u."); + wxString::FromDouble(m_electricalData.powerFlow[0].imag(), 5) + _(" p.u."); tipText += _("\nP") + wxString::Format("(%d-%d) = ", busNumber[1], busNumber[0]) + - wxString::FromDouble(m_electricaData.powerFlow[1].real(), 5) + _(" p.u."); + wxString::FromDouble(m_electricalData.powerFlow[1].real(), 5) + _(" p.u."); tipText += _("\nQ") + wxString::Format("(%d-%d) = ", busNumber[1], busNumber[0]) + - wxString::FromDouble(m_electricaData.powerFlow[1].imag(), 5) + _(" p.u."); + wxString::FromDouble(m_electricalData.powerFlow[1].imag(), 5) + _(" p.u."); } return tipText; } + +LineElectricalData Line::GetPUElectricalData(double basePower) const +{ + LineElectricalData data = m_electricalData; + double lineBasePower = basePower; + if(m_electricalData.useLinePower) { + lineBasePower = m_electricalData.nominalPower; + switch(m_electricalData.nominalPowerUnit) { + case UNIT_MVA: { + lineBasePower *= 1e6; + } break; + case UNIT_kVA: { + lineBasePower *= 1e3; + } break; + default: + break; + } + } + double vb = m_electricalData.nominalVoltage; + if(m_electricalData.nominalVoltageUnit == UNIT_kV) vb *= 1e3; + double zb = (vb * vb) / basePower; + + // Resistance + double r = data.resistance; + switch(data.resistanceUnit) { + case UNIT_PU: { + if(m_electricalData.useLinePower) data.resistance = (basePower / lineBasePower) * r; + } break; + case UNIT_OHM: { + data.resistance = r / zb; + data.resistanceUnit = UNIT_PU; + } break; + case UNIT_OHM_km: { + data.resistance = (r * data.lineSize) / zb; + data.resistanceUnit = UNIT_PU; + } break; + default: + break; + } + + // Indutive reactance + double xl = data.indReactance; + switch(data.indReactanceUnit) { + case UNIT_PU: { + if(m_electricalData.useLinePower) data.indReactance = (basePower / lineBasePower) * xl; + } break; + case UNIT_OHM: { + data.indReactance = xl / zb; + data.indReactanceUnit = UNIT_PU; + } break; + case UNIT_OHM_km: { + data.indReactance = (xl * data.lineSize) / zb; + data.indReactanceUnit = UNIT_PU; + } break; + default: + break; + } + + // Capacitive susceptance + double b = data.capSusceptance; + switch(data.capSusceptanceUnit) { + case UNIT_PU: { + if(m_electricalData.useLinePower) data.capSusceptance = (basePower / lineBasePower) * b; + } break; + case UNIT_S: { + data.capSusceptance = b / zb; + data.capSusceptanceUnit = UNIT_PU; + } break; + case UNIT_S_km: { + data.capSusceptance = (b * data.lineSize) / zb; + data.capSusceptanceUnit = UNIT_PU; + } break; + default: + break; + } + + return data; +} diff --git a/Project/Line.h b/Project/Line.h index 0abcd82..9cea359 100644 --- a/Project/Line.h +++ b/Project/Line.h @@ -59,14 +59,15 @@ public: virtual void CalculateBoundaries(wxPoint2DDouble& leftUp, wxPoint2DDouble& rightBottom) const; virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection); virtual bool ShowForm(wxWindow* parent, Element* element); - virtual LineElectricalData GetElectricalData() const { return m_electricaData; } - virtual void SetElectricalData(LineElectricalData electricalData) { m_electricaData = electricalData; } + virtual LineElectricalData GetElectricalData() const { return m_electricalData; } + virtual LineElectricalData GetPUElectricalData(double basePower) const; + virtual void SetElectricalData(LineElectricalData electricalData) { m_electricalData = electricalData; } virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit); virtual void SetPointList(std::vector<wxPoint2DDouble> pointList); protected: void UpdatePowerFlowArrowsPosition(); - LineElectricalData m_electricaData; + LineElectricalData m_electricalData; }; #endif // LINE_H diff --git a/Project/MainFrame.cpp b/Project/MainFrame.cpp index 6604722..d113385 100644 --- a/Project/MainFrame.cpp +++ b/Project/MainFrame.cpp @@ -15,6 +15,7 @@ #include "SimulationsSettingsForm.h" #include "PropertiesData.h" #include "ChartView.h" +#include "DataReport.h" MainFrame::MainFrame() : MainFrameBase(NULL) {} MainFrame::MainFrame(wxWindow* parent, wxLocale* locale, PropertiesData* initProperties) : MainFrameBase(parent) @@ -156,7 +157,14 @@ void MainFrame::OnChartsClick(wxRibbonButtonBarEvent& event) void MainFrame::OnCloseClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnCopyClick(wxRibbonButtonBarEvent& event) {} -void MainFrame::OnDataReportClick(wxRibbonButtonBarEvent& event) {} + +void MainFrame::OnDataReportClick(wxRibbonButtonBarEvent& event) +{ + if(Workspace* workspace = dynamic_cast<Workspace*>(m_auiNotebook->GetCurrentPage())) { + DataReport* dataReport = new DataReport(workspace, workspace); + dataReport->Show(); + } +} void MainFrame::OnDeleteClick(wxRibbonButtonBarEvent& event) { Workspace* workspace = static_cast<Workspace*>(m_auiNotebook->GetCurrentPage()); @@ -166,6 +174,9 @@ void MainFrame::OnDeleteClick(wxRibbonButtonBarEvent& event) } void MainFrame::OnDisableSolutionClick(wxRibbonButtonBarEvent& event) { + if(Workspace* workspace = dynamic_cast<Workspace*>(m_auiNotebook->GetCurrentPage())) { + workspace->SetContinuousCalculationActive(false); + } m_ribbonButtonBarContinuous->ToggleButton(ID_RIBBON_DISABLESOL, true); m_ribbonButtonBarContinuous->ToggleButton(ID_RIBBON_ENABLESOL, false); } @@ -173,6 +184,10 @@ void MainFrame::OnDisableSolutionClick(wxRibbonButtonBarEvent& event) void MainFrame::OnDragClick(wxRibbonButtonBarEvent& event) {} void MainFrame::OnEnableSolutionClick(wxRibbonButtonBarEvent& event) { + if(Workspace* workspace = dynamic_cast<Workspace*>(m_auiNotebook->GetCurrentPage())) { + workspace->SetContinuousCalculationActive(true); + workspace->RunStaticStudies(); + } m_ribbonButtonBarContinuous->ToggleButton(ID_RIBBON_ENABLESOL, true); m_ribbonButtonBarContinuous->ToggleButton(ID_RIBBON_DISABLESOL, false); } diff --git a/Project/MainFrame.h b/Project/MainFrame.h index f9d9523..47bc5ee 100644 --- a/Project/MainFrame.h +++ b/Project/MainFrame.h @@ -15,6 +15,7 @@ class GeneralPropertiesForm; class SimulationsSettingsForm; class PropertiesData; class ChartView; +class DataReport; enum { ID_ADDMENU_BUS = 20000, diff --git a/Project/Project.mk b/Project/Project.mk index d8000b1..e33928b 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=04/09/2017 +Date :=06/09/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC @@ -65,16 +65,16 @@ CodeLiteDir:=C:\Program Files\CodeLite WXWIN:=C:\wxWidgets-3.1.0 WXCFG:=gcc_dll\mswu Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirectory)/win_resources.rc$(ObjectSuffix) $(IntermediateDirectory)/PropertiesData.cpp$(ObjectSuffix) $(IntermediateDirectory)/ArtMetro.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxGLString.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBitmaps.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/PropertiesFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/PropertiesForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) $(IntermediateDirectory)/Electromechanical.cpp$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/Camera.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/ControlEditor.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementSolver.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/Text.cpp$(ObjectSuffix) $(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/GeneralPropertiesForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SimulationsSettingsForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlSystemTest.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix) + $(IntermediateDirectory)/ChartViewBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/PropertiesFormBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/DataReportBitmaps.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/PropertiesForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/DataReportBase.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) $(IntermediateDirectory)/Electromechanical.cpp$(ObjectSuffix) $(IntermediateDirectory)/Element.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementDataObject.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementPlotData.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/Camera.cpp$(ObjectSuffix) $(IntermediateDirectory)/MainFrame.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Workspace.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartView.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditor.cpp$(ObjectSuffix) $(IntermediateDirectory)/DataReport.cpp$(ObjectSuffix) $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementSolver.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/Text.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneralPropertiesForm.cpp$(ObjectSuffix) -Objects1=$(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) \ - $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) +Objects1=$(IntermediateDirectory)/SimulationsSettingsForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlSystemTest.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) \ + $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) @@ -196,6 +196,14 @@ $(IntermediateDirectory)/PropertiesFormBitmaps.cpp$(DependSuffix): PropertiesFor $(IntermediateDirectory)/PropertiesFormBitmaps.cpp$(PreprocessSuffix): PropertiesFormBitmaps.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/PropertiesFormBitmaps.cpp$(PreprocessSuffix) PropertiesFormBitmaps.cpp +$(IntermediateDirectory)/DataReportBitmaps.cpp$(ObjectSuffix): DataReportBitmaps.cpp $(IntermediateDirectory)/DataReportBitmaps.cpp$(DependSuffix) + $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/DataReportBitmaps.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/DataReportBitmaps.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/DataReportBitmaps.cpp$(DependSuffix): DataReportBitmaps.cpp + @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/DataReportBitmaps.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/DataReportBitmaps.cpp$(DependSuffix) -MM DataReportBitmaps.cpp + +$(IntermediateDirectory)/DataReportBitmaps.cpp$(PreprocessSuffix): DataReportBitmaps.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/DataReportBitmaps.cpp$(PreprocessSuffix) DataReportBitmaps.cpp + $(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix): MainFrameBase.cpp $(IntermediateDirectory)/MainFrameBase.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/MainFrameBase.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/MainFrameBase.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/MainFrameBase.cpp$(DependSuffix): MainFrameBase.cpp @@ -244,6 +252,14 @@ $(IntermediateDirectory)/PropertiesForm.cpp$(DependSuffix): PropertiesForm.cpp $(IntermediateDirectory)/PropertiesForm.cpp$(PreprocessSuffix): PropertiesForm.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/PropertiesForm.cpp$(PreprocessSuffix) PropertiesForm.cpp +$(IntermediateDirectory)/DataReportBase.cpp$(ObjectSuffix): DataReportBase.cpp $(IntermediateDirectory)/DataReportBase.cpp$(DependSuffix) + $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/DataReportBase.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/DataReportBase.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/DataReportBase.cpp$(DependSuffix): DataReportBase.cpp + @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/DataReportBase.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/DataReportBase.cpp$(DependSuffix) -MM DataReportBase.cpp + +$(IntermediateDirectory)/DataReportBase.cpp$(PreprocessSuffix): DataReportBase.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/DataReportBase.cpp$(PreprocessSuffix) DataReportBase.cpp + $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix): ElectricCalculation.cpp $(IntermediateDirectory)/ElectricCalculation.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ElectricCalculation.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/ElectricCalculation.cpp$(DependSuffix): ElectricCalculation.cpp @@ -348,6 +364,14 @@ $(IntermediateDirectory)/ControlEditor.cpp$(DependSuffix): ControlEditor.cpp $(IntermediateDirectory)/ControlEditor.cpp$(PreprocessSuffix): ControlEditor.cpp $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ControlEditor.cpp$(PreprocessSuffix) ControlEditor.cpp +$(IntermediateDirectory)/DataReport.cpp$(ObjectSuffix): DataReport.cpp $(IntermediateDirectory)/DataReport.cpp$(DependSuffix) + $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/DataReport.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/DataReport.cpp$(ObjectSuffix) $(IncludePath) +$(IntermediateDirectory)/DataReport.cpp$(DependSuffix): DataReport.cpp + @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/DataReport.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/DataReport.cpp$(DependSuffix) -MM DataReport.cpp + +$(IntermediateDirectory)/DataReport.cpp$(PreprocessSuffix): DataReport.cpp + $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/DataReport.cpp$(PreprocessSuffix) DataReport.cpp + $(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix): FileHanding.cpp $(IntermediateDirectory)/FileHanding.cpp$(DependSuffix) $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/FileHanding.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/FileHanding.cpp$(ObjectSuffix) $(IncludePath) $(IntermediateDirectory)/FileHanding.cpp$(DependSuffix): FileHanding.cpp diff --git a/Project/Project.project b/Project/Project.project index a65be5b..601ee38 100644 --- a/Project/Project.project +++ b/Project/Project.project @@ -104,6 +104,7 @@ <VirtualDirectory Name="simulation GUI"> <File Name="ChartView.cpp"/> <File Name="ControlEditor.cpp"/> + <File Name="DataReport.cpp"/> </VirtualDirectory> <VirtualDirectory Name="files"> <File Name="FileHanding.cpp"/> @@ -216,6 +217,7 @@ <VirtualDirectory Name="simulation GUI"> <File Name="ChartView.h"/> <File Name="ControlEditor.h"/> + <File Name="DataReport.h"/> </VirtualDirectory> </VirtualDirectory> </VirtualDirectory> @@ -231,6 +233,7 @@ <File Name="ControlEditorBitmaps.cpp"/> <File Name="ChartViewBitmaps.cpp"/> <File Name="PropertiesFormBitmaps.cpp"/> + <File Name="DataReportBitmaps.cpp"/> </VirtualDirectory> <VirtualDirectory Name="base"> <File Name="MainFrameBase.h"/> @@ -245,6 +248,8 @@ <File Name="ChartViewBase.cpp"/> <File Name="PropertiesForm.h"/> <File Name="PropertiesForm.cpp"/> + <File Name="DataReportBase.h"/> + <File Name="DataReportBase.cpp"/> </VirtualDirectory> <File Name="MainFrame.wxcp"/> <File Name="Workspace.wxcp"/> @@ -252,6 +257,7 @@ <File Name="ControlEditor.wxcp"/> <File Name="ChartView.wxcp"/> <File Name="PropertiesForm.wxcp"/> + <File Name="DataReport.wxcp"/> </VirtualDirectory> <Settings Type="Executable"> <GlobalSettings> diff --git a/Project/Project.txt b/Project/Project.txt index 6a3e440..2eb8d56 100644 --- a/Project/Project.txt +++ b/Project/Project.txt @@ -1,2 +1,2 @@ -./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/PropertiesData.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/PropertiesFormBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/PropertiesForm.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Electromechanical.cpp.o ./Release/Element.cpp.o ./Release/ElementDataObject.cpp.o ./Release/ElementPlotData.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/Camera.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/ChartView.cpp.o ./Release/ControlEditor.cpp.o ./Release/FileHanding.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Constant.cpp.o ./Release/ControlElement.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/ControlElementSolver.cpp.o ./Release/Exponential.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/Limiter.cpp.o ./Release/Multiplier.cpp.o ./Release/RateLimiter.cpp.o ./Release/Sum.cpp.o ./Release/TransferFunction.cpp.o ./Release/GraphicalElement.cpp.o ./Release/Text.cpp.o ./Release/Branch.cpp.o ./Release/Bus.cpp.o ./Release/Capacitor.cpp.o ./Release/IndMotor.cpp.o ./Release/Inductor.cpp.o ./Release/Line.cpp.o ./Release/Load.cpp.o ./Release/Machines.cpp.o ./Release/PowerElement.cpp.o ./Release/Shunt.cpp.o ./Release/SyncGenerator.cpp.o ./Release/SyncMotor.cpp.o ./Release/Transformer.cpp.o ./Release/GeneralPropertiesForm.cpp.o ./Release/SimulationsSettingsForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/ControlSystemTest.cpp.o ./Release/ExponentialForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o -./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/SumForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/TextForm.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/LineForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TransformerForm.cpp.o +./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/PropertiesData.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/PropertiesFormBitmaps.cpp.o ./Release/DataReportBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/PropertiesForm.cpp.o ./Release/DataReportBase.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Electromechanical.cpp.o ./Release/Element.cpp.o ./Release/ElementDataObject.cpp.o ./Release/ElementPlotData.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/Camera.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/ChartView.cpp.o ./Release/ControlEditor.cpp.o ./Release/DataReport.cpp.o ./Release/FileHanding.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Constant.cpp.o ./Release/ControlElement.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/ControlElementSolver.cpp.o ./Release/Exponential.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/Limiter.cpp.o ./Release/Multiplier.cpp.o ./Release/RateLimiter.cpp.o ./Release/Sum.cpp.o ./Release/TransferFunction.cpp.o ./Release/GraphicalElement.cpp.o ./Release/Text.cpp.o ./Release/Branch.cpp.o ./Release/Bus.cpp.o ./Release/Capacitor.cpp.o ./Release/IndMotor.cpp.o ./Release/Inductor.cpp.o ./Release/Line.cpp.o ./Release/Load.cpp.o ./Release/Machines.cpp.o ./Release/PowerElement.cpp.o ./Release/Shunt.cpp.o ./Release/SyncGenerator.cpp.o ./Release/SyncMotor.cpp.o ./Release/Transformer.cpp.o ./Release/GeneralPropertiesForm.cpp.o +./Release/SimulationsSettingsForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/ControlSystemTest.cpp.o ./Release/ExponentialForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/SumForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/TextForm.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/LineForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TransformerForm.cpp.o diff --git a/Project/Transformer.cpp b/Project/Transformer.cpp index 584a139..9ac1e97 100644 --- a/Project/Transformer.cpp +++ b/Project/Transformer.cpp @@ -444,3 +444,61 @@ wxString Transformer::GetTipText() const return tipText; } + +TransformerElectricalData Transformer::GetPUElectricalData(double basePower) const +{ + TransformerElectricalData data = m_electricalData; + double transformerBasePower = basePower; + if(m_electricalData.useTransformerPower) { + transformerBasePower = m_electricalData.nominalPower; + switch(m_electricalData.nominalPowerUnit) { + case UNIT_MVA: { + transformerBasePower *= 1e6; + } break; + case UNIT_kVA: { + transformerBasePower *= 1e3; + } break; + default: + break; + } + } + double vb = 0.0; + if(m_electricalData.baseVoltage == 0) { + vb = m_electricalData.primaryNominalVoltage; + if(m_electricalData.primaryNominalVoltageUnit == UNIT_kV) vb *= 1e3; + } else { + vb = m_electricalData.secondaryNominalVoltage; + if(m_electricalData.secondaryNominalVoltageUnit == UNIT_kV) vb *= 1e3; + } + double zb = (vb * vb) / basePower; + + // Resistance + double r = data.resistance; + switch(data.resistanceUnit) { + case UNIT_PU: { + if(m_electricalData.useTransformerPower) data.resistance = (basePower / transformerBasePower) * r; + } break; + case UNIT_OHM: { + data.resistance = r / zb; + data.resistanceUnit = UNIT_PU; + } break; + default: + break; + } + + // Indutive reactance + double xl = data.indReactance; + switch(data.indReactanceUnit) { + case UNIT_PU: { + if(m_electricalData.useTransformerPower) data.indReactance = (basePower / transformerBasePower) * xl; + } break; + case UNIT_OHM: { + data.indReactance = xl / zb; + data.indReactanceUnit = UNIT_PU; + } break; + default: + break; + } + + return data; +} diff --git a/Project/Transformer.h b/Project/Transformer.h index 723a5df..04b114f 100644 --- a/Project/Transformer.h +++ b/Project/Transformer.h @@ -73,7 +73,8 @@ public: virtual bool SetNodeParent(Element* parent); virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection); virtual bool ShowForm(wxWindow* parent, Element* element); - virtual TransformerElectricalData GetElectricalData() { return m_electricalData; } + virtual TransformerElectricalData GetElectricalData() const { return m_electricalData; } + virtual TransformerElectricalData GetPUElectricalData(double basePower) const; virtual void SetElectricaData(TransformerElectricalData electricalData) { m_electricalData = electricalData; } virtual void SetNominalVoltage(std::vector<double> nominalVoltage, std::vector<ElectricalUnit> nominalVoltageUnit); diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp index 4ef610d..12a4ace 100644 --- a/Project/Workspace.cpp +++ b/Project/Workspace.cpp @@ -135,6 +135,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) bool foundElement = false; Element* newElement = NULL; bool showNewElementForm = false; + bool clickOnSwitch = false; if(m_mode == MODE_INSERT_TEXT || m_mode == MODE_PASTE || m_mode == MODE_DRAG_PASTE) { m_mode = MODE_EDIT; } else if(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT) { @@ -204,6 +205,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) // Click in a switch. else if(element->SwitchesContains(m_camera->ScreenToWorld(clickPoint))) { element->SetOnline(element->IsOnline() ? false : true); + clickOnSwitch = true; } } @@ -232,8 +234,12 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) UpdateStatusBar(); if(showNewElementForm) { - if(newElement) newElement->ShowForm(this, newElement); + if(newElement) { + newElement->ShowForm(this, newElement); + if(m_continuousCalc) RunStaticStudies(); + } } + if(clickOnSwitch && m_continuousCalc) RunStaticStudies(); event.Skip(); } @@ -241,6 +247,7 @@ void Workspace::OnLeftClickDown(wxMouseEvent& event) void Workspace::OnLeftDoubleClick(wxMouseEvent& event) { bool elementEdited = false; + bool clickOnSwitch = false; bool redraw = false; for(auto it = m_elementList.begin(); it != m_elementList.end(); ++it) { @@ -293,6 +300,7 @@ void Workspace::OnLeftDoubleClick(wxMouseEvent& event) // Click in a switch. else if(element->SwitchesContains(m_camera->ScreenToWorld(event.GetPosition()))) { element->SetOnline(element->IsOnline() ? false : true); + clickOnSwitch = true; } } @@ -304,7 +312,12 @@ void Workspace::OnLeftDoubleClick(wxMouseEvent& event) redraw = true; } } - if(elementEdited) UpdateTextElements(); + if(elementEdited) { + UpdateTextElements(); + if(m_continuousCalc) RunStaticStudies(); + } + if(clickOnSwitch && m_continuousCalc) RunStaticStudies(); + if(redraw) Redraw(); m_timer->Start(); } @@ -1444,3 +1457,27 @@ void Workspace::OnMiddleDoubleClick(wxMouseEvent& event) Fit(); event.Skip(); } + +bool Workspace::RunStaticStudies() +{ + bool pfStatus, faultStatus, scStatus; + pfStatus = faultStatus = scStatus = false; + + pfStatus = RunPowerFlow(); + + if(m_properties->GetSimulationPropertiesData().faultAfterPowerFlow) { + if(pfStatus) faultStatus = RunFault(); + } else { + faultStatus = true; + } + + if(m_properties->GetSimulationPropertiesData().scPowerAfterPowerFlow) { + if(pfStatus) scStatus = RunSCPower(); + } else { + scStatus = true; + } + + if(pfStatus && faultStatus && scStatus) return true; + + return false; +} diff --git a/Project/Workspace.h b/Project/Workspace.h index 2a8b9b6..7eb82ba 100644 --- a/Project/Workspace.h +++ b/Project/Workspace.h @@ -116,10 +116,14 @@ public: PropertiesData* GetProperties() const { return m_properties; } std::vector<double> GetStabilityTimeVector() const { return m_stabilityTimeVector; } + + bool IsContinuousCalculationActive() const { return m_continuousCalc; } + void SetContinuousCalculationActive(bool value = true) { m_continuousCalc = value; } bool RunPowerFlow(); bool RunFault(); bool RunSCPower(); + bool RunStaticStudies(); bool RunStability(); protected: @@ -162,7 +166,8 @@ protected: PropertiesData* m_properties = NULL; std::vector<double> m_stabilityTimeVector; - + + bool m_continuousCalc = false; bool m_justOpened = false; }; diff --git a/Project/data/images/dataReport128.png b/Project/data/images/dataReport128.png Binary files differnew file mode 100644 index 0000000..0e1adba --- /dev/null +++ b/Project/data/images/dataReport128.png diff --git a/Project/data/images/dataReport16.png b/Project/data/images/dataReport16.png Binary files differnew file mode 100644 index 0000000..fce3fd8 --- /dev/null +++ b/Project/data/images/dataReport16.png diff --git a/Project/data/images/dataReport256.png b/Project/data/images/dataReport256.png Binary files differnew file mode 100644 index 0000000..5d5eec0 --- /dev/null +++ b/Project/data/images/dataReport256.png diff --git a/Project/data/images/dataReport32.png b/Project/data/images/dataReport32.png Binary files differnew file mode 100644 index 0000000..a485fab --- /dev/null +++ b/Project/data/images/dataReport32.png diff --git a/Project/data/images/dataReport64.png b/Project/data/images/dataReport64.png Binary files differnew file mode 100644 index 0000000..63a1b95 --- /dev/null +++ b/Project/data/images/dataReport64.png |