Power System Platform  2026w10a-beta
Loading...
Searching...
No Matches
SumForm Class Reference

Form to edit the sum control data. More...

#include <SumForm.h>

Inheritance diagram for SumForm:
Collaboration diagram for SumForm:

Public Member Functions

 SumForm (wxWindow *parent, Sum *sum)
 
bool ValidateData ()
 

Protected Member Functions

virtual void OnCancelClick (wxCommandEvent &event)
 
virtual void OnOKClick (wxCommandEvent &event)
 

Protected Attributes

wxWindow * m_parent = nullptr
 
Summ_sum = nullptr
 

Detailed Description

Form to edit the sum control data.

Author
Thales Lima Oliveira thale.nosp@m.s@uf.nosp@m.u.br
Date
05/10/2017

Definition at line 32 of file SumForm.h.

Constructor & Destructor Documentation

◆ SumForm()

SumForm::SumForm ( wxWindow *  parent,
Sum sum 
)

Definition at line 21 of file SumForm.cpp.

21 : SumFormBase(parent)
22{
23 SetSize(GetBestSize());
24
25 m_parent = parent;
26 m_sum = sum;
27
28 wxString signalStr = "";
29 auto signalList = m_sum->GetSignalList();
30 for(auto it = signalList.begin(), itEnd = signalList.end(); it != itEnd; ++it) {
31 Sum::Signal signal = *it;
32 switch(signal) {
33 case Sum::SIGNAL_POSITIVE: {
34 signalStr += "+";
35 } break;
36 case Sum::SIGNAL_NEGATIVE: {
37 signalStr += "-";
38 } break;
39 }
40 if(it != itEnd - 1) signalStr += " ";
41 }
42 m_textCtrlSigns->SetValue(signalStr);
43}

◆ ~SumForm()

SumForm::~SumForm ( )
virtual

Definition at line 45 of file SumForm.cpp.

45{}

Member Function Documentation

◆ OnCancelClick()

virtual void SumForm::OnCancelClick ( wxCommandEvent &  event)
inlineprotectedvirtual

Definition at line 41 of file SumForm.h.

41{ EndModal(wxID_CANCEL); }

◆ OnOKClick()

void SumForm::OnOKClick ( wxCommandEvent &  event)
protectedvirtual

Definition at line 46 of file SumForm.cpp.

47{
48 if(ValidateData()) EndModal(wxID_OK);
49}

◆ ValidateData()

bool SumForm::ValidateData ( )

Definition at line 51 of file SumForm.cpp.

52{
53 wxString signalStr = "";
54 for(int i = 0; i < (int)m_textCtrlSigns->GetValue().length(); ++i) {
55 if(m_textCtrlSigns->GetValue()[i] != ' ') signalStr += m_textCtrlSigns->GetValue()[i];
56 }
57 if(signalStr.size() < 2) {
58 wxMessageDialog msg(this, _("You must assign at least two signals."), _("Error"),
59 wxOK | wxCENTRE | wxICON_ERROR);
60 msg.ShowModal();
61 return false;
62 }
63
64 std::vector<Sum::Signal> signalList;
65 for(int i = 0; i < (int)signalStr.length(); ++i) {
66 switch(signalStr[i].GetValue()) {
67 case '+': {
68 signalList.push_back(Sum::SIGNAL_POSITIVE);
69 } break;
70 case '-': {
71 signalList.push_back(Sum::SIGNAL_NEGATIVE);
72 } break;
73 default: {
74 wxMessageDialog msg(this, _("Value entered incorrectly in the field \"Signs\"."), _("Error"),
75 wxOK | wxCENTRE | wxICON_ERROR);
76 msg.ShowModal();
77 return false;
78 }
79 }
80 }
81
82 int diff = (int)signalList.size() - (int)m_sum->GetSignalList().size();
83
84 if(diff < 0) {
85 diff = std::abs(diff);
86 for(int i = 0; i < diff; ++i) {
87 m_sum->RemoveInNode();
88 }
89 } else if(diff > 0) {
90 for(int i = 0; i < diff; ++i) {
91 m_sum->AddInNode();
92 }
93 }
94 m_sum->SetSignalList(signalList);
95 m_sum->UpdatePoints();
96 return true;
97}

Member Data Documentation

◆ m_parent

wxWindow* SumForm::m_parent = nullptr
protected

Definition at line 43 of file SumForm.h.

◆ m_sum

Sum* SumForm::m_sum = nullptr
protected

Definition at line 44 of file SumForm.h.


The documentation for this class was generated from the following files: