From ffed5ee9ae6c11acb5a7afa9fdc33b1047f5d5e9 Mon Sep 17 00:00:00 2001 From: Thales1330 Date: Fri, 16 Dec 2016 19:47:55 -0200 Subject: Basic copy paste methods implemented --- Project/ElementDataObject.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Project/ElementDataObject.cpp (limited to 'Project/ElementDataObject.cpp') diff --git a/Project/ElementDataObject.cpp b/Project/ElementDataObject.cpp new file mode 100644 index 0000000..e4752ea --- /dev/null +++ b/Project/ElementDataObject.cpp @@ -0,0 +1,39 @@ +#include "ElectricCalculation.h" +#include "ElementDataObject.h" + +ElementDataObject::ElementDataObject(Workspace* workspace) : wxDataObjectSimple(wxDataFormat("PSPCopy")) +{ + m_allElements.GetElementsFromList(workspace->GetElementList()); + std::vector textList = workspace->GetTextList(); + + std::vector busList = m_allElements.GetBusList(); + for(int i = 0; i<(int)busList.size(); i++) { + Bus* origBus = busList[i]; + if(origBus->IsSelected()) { + Bus* copyBus = new Bus(); + *copyBus = *origBus; + m_elementsLists->busList.push_back(copyBus); + } + } +} + +ElementDataObject::~ElementDataObject() +{ +} + +size_t ElementDataObject::GetDataSize() const +{ + return sizeof(void*); +} + +bool ElementDataObject::GetDataHere(void* buf) const +{ + *(ElementsLists**)buf = m_elementsLists; + return true; +} + +bool ElementDataObject::SetData(size_t len, const void* buf) +{ + m_elementsLists = *(ElementsLists**)buf; + return true; +} -- cgit From fb9de1b7935376897f1c93676ab1faeb1ea25f25 Mon Sep 17 00:00:00 2001 From: Thales1330 Date: Wed, 28 Dec 2016 20:06:41 -0200 Subject: Bus line and transformer copy/paste implemented Next step is try to generalize. Some graphical implementations in this commit. --- Project/ElementDataObject.cpp | 71 ++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 21 deletions(-) (limited to 'Project/ElementDataObject.cpp') diff --git a/Project/ElementDataObject.cpp b/Project/ElementDataObject.cpp index e4752ea..5df312c 100644 --- a/Project/ElementDataObject.cpp +++ b/Project/ElementDataObject.cpp @@ -1,39 +1,68 @@ #include "ElectricCalculation.h" #include "ElementDataObject.h" -ElementDataObject::ElementDataObject(Workspace* workspace) : wxDataObjectSimple(wxDataFormat("PSPCopy")) +ElementDataObject::ElementDataObject(Workspace* workspace) + : wxDataObjectSimple(wxDataFormat("PSPCopy")) { - m_allElements.GetElementsFromList(workspace->GetElementList()); - std::vector textList = workspace->GetTextList(); - - std::vector busList = m_allElements.GetBusList(); - for(int i = 0; i<(int)busList.size(); i++) { - Bus* origBus = busList[i]; - if(origBus->IsSelected()) { - Bus* copyBus = new Bus(); - *copyBus = *origBus; - m_elementsLists->busList.push_back(copyBus); + if(workspace) { + m_elementsLists = new ElementsLists(); + + ElectricCalculation m_allElements; + std::vector elementsList = workspace->GetElementList(); + std::vector textList = workspace->GetTextList(); + + m_allElements.GetElementsFromList(elementsList); + + std::vector busList = m_allElements.GetBusList(); + for(int i = 0; i < (int)busList.size(); i++) { + Bus* origBus = busList[i]; + + // Set bus number. + auto data = origBus->GetEletricalData(); + data.number = i; + origBus->SetElectricalData(data); + + if(origBus->IsSelected()) { + Bus* copyBus = new Bus(); + *copyBus = *origBus; + m_elementsLists->busList.push_back(copyBus); + } + } + + std::vector lineList = m_allElements.GetLineList(); + for(int i = 0; i < (int)lineList.size(); i++) { + Line* origLine = lineList[i]; + if(origLine->IsSelected()) { + Line* copyLine = new Line(); + *copyLine = *origLine; + m_elementsLists->lineList.push_back(copyLine); + } + } + + std::vector transformerList = m_allElements.GetTransformerList(); + for(int i = 0; i < (int)transformerList.size(); i++) { + Transformer* origTransformer = transformerList[i]; + if(origTransformer->IsSelected()) { + Transformer* copyTransformer = new Transformer(); + *copyTransformer = *origTransformer; + m_elementsLists->transformerList.push_back(copyTransformer); + } } } } -ElementDataObject::~ElementDataObject() -{ -} +ElementDataObject::~ElementDataObject() {} -size_t ElementDataObject::GetDataSize() const -{ - return sizeof(void*); -} +size_t ElementDataObject::GetDataSize() const { return sizeof(void*); } bool ElementDataObject::GetDataHere(void* buf) const { - *(ElementsLists**)buf = m_elementsLists; - return true; + *(ElementsLists**)buf = m_elementsLists; + return true; } bool ElementDataObject::SetData(size_t len, const void* buf) { m_elementsLists = *(ElementsLists**)buf; - return true; + return true; } -- cgit From d792fcf7b2a5862ac86ee69aa86021b5637ca8ee Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Thu, 29 Dec 2016 02:32:50 -0200 Subject: Copy paste implemented Some bugs on the text --- Project/ElementDataObject.cpp | 67 ++++++++++++------------------------------- 1 file changed, 18 insertions(+), 49 deletions(-) (limited to 'Project/ElementDataObject.cpp') diff --git a/Project/ElementDataObject.cpp b/Project/ElementDataObject.cpp index 5df312c..ff2feed 100644 --- a/Project/ElementDataObject.cpp +++ b/Project/ElementDataObject.cpp @@ -1,60 +1,29 @@ -#include "ElectricCalculation.h" #include "ElementDataObject.h" -ElementDataObject::ElementDataObject(Workspace* workspace) - : wxDataObjectSimple(wxDataFormat("PSPCopy")) +ElementDataObject::ElementDataObject() : wxDataObjectSimple(wxDataFormat("PSPCopy")) { - if(workspace) { - m_elementsLists = new ElementsLists(); - - ElectricCalculation m_allElements; - std::vector elementsList = workspace->GetElementList(); - std::vector textList = workspace->GetTextList(); - - m_allElements.GetElementsFromList(elementsList); - - std::vector busList = m_allElements.GetBusList(); - for(int i = 0; i < (int)busList.size(); i++) { - Bus* origBus = busList[i]; - - // Set bus number. - auto data = origBus->GetEletricalData(); - data.number = i; - origBus->SetElectricalData(data); - - if(origBus->IsSelected()) { - Bus* copyBus = new Bus(); - *copyBus = *origBus; - m_elementsLists->busList.push_back(copyBus); - } - } + m_elementsLists = new ElementsLists(); +} - std::vector lineList = m_allElements.GetLineList(); - for(int i = 0; i < (int)lineList.size(); i++) { - Line* origLine = lineList[i]; - if(origLine->IsSelected()) { - Line* copyLine = new Line(); - *copyLine = *origLine; - m_elementsLists->lineList.push_back(copyLine); - } - } - - std::vector transformerList = m_allElements.GetTransformerList(); - for(int i = 0; i < (int)transformerList.size(); i++) { - Transformer* origTransformer = transformerList[i]; - if(origTransformer->IsSelected()) { - Transformer* copyTransformer = new Transformer(); - *copyTransformer = *origTransformer; - m_elementsLists->transformerList.push_back(copyTransformer); - } - } - } +ElementDataObject::ElementDataObject(std::vector elementList) : wxDataObjectSimple(wxDataFormat("PSPCopy")) +{ + m_elementsLists = new ElementsLists(); + if(elementList.size() > 0) { + // Separate buses (parents) from the rest of the elements (childs). + for(auto it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) { + Element* copy = (*it)->GetCopy(); + if(copy) { + if(typeid(*copy) == typeid(Bus)) + m_elementsLists->parentList.push_back((Bus*)copy); + else + m_elementsLists->elementList.push_back(copy); + } + } + } } ElementDataObject::~ElementDataObject() {} - size_t ElementDataObject::GetDataSize() const { return sizeof(void*); } - bool ElementDataObject::GetDataHere(void* buf) const { *(ElementsLists**)buf = m_elementsLists; -- cgit From 3750a0691f4975045647f3f70d8215fb1884e6fb Mon Sep 17 00:00:00 2001 From: Thales1330 Date: Thu, 29 Dec 2016 14:07:52 -0200 Subject: Text element paste bug corrected --- Project/ElementDataObject.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'Project/ElementDataObject.cpp') diff --git a/Project/ElementDataObject.cpp b/Project/ElementDataObject.cpp index ff2feed..a5ac165 100644 --- a/Project/ElementDataObject.cpp +++ b/Project/ElementDataObject.cpp @@ -1,25 +1,27 @@ #include "ElementDataObject.h" -ElementDataObject::ElementDataObject() : wxDataObjectSimple(wxDataFormat("PSPCopy")) +ElementDataObject::ElementDataObject() + : wxDataObjectSimple(wxDataFormat("PSPCopy")) { m_elementsLists = new ElementsLists(); } -ElementDataObject::ElementDataObject(std::vector elementList) : wxDataObjectSimple(wxDataFormat("PSPCopy")) +ElementDataObject::ElementDataObject(std::vector elementList) + : wxDataObjectSimple(wxDataFormat("PSPCopy")) { m_elementsLists = new ElementsLists(); if(elementList.size() > 0) { - // Separate buses (parents) from the rest of the elements (childs). - for(auto it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) { - Element* copy = (*it)->GetCopy(); - if(copy) { - if(typeid(*copy) == typeid(Bus)) - m_elementsLists->parentList.push_back((Bus*)copy); - else - m_elementsLists->elementList.push_back(copy); - } - } - } + // Separate buses (parents) from the rest of the elements (childs). + for(auto it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) { + Element* copy = (*it)->GetCopy(); + if(copy) { + if(typeid(*copy) == typeid(Bus)) + m_elementsLists->parentList.push_back((Bus*)copy); + else + m_elementsLists->elementList.push_back(copy); + } + } + } } ElementDataObject::~ElementDataObject() {} -- cgit