DiagramDesigner/diagramCavas/source/baseInfoDlg.cpp

154 lines
5.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "baseInfoDlg.h"
#include "graphicsItem/electricBayItem.h"
#include "graphicsDataModel/fixedPortsModel.h"
#include "ui_baseInfoDlg.h"
#include "dataBase.h"
#include "global.h"
#include "baseProperty.h"
#include "basePropertyManager.h"
#include <QButtonGroup>
BaseInfoDlg::BaseInfoDlg(QWidget *parent)
: BaseContentDlg(parent)
, ui(new Ui::baseInfoDlg)
{
ui->setupUi(this);
_stateGroup = new QButtonGroup(this);
_stateGroup->addButton(ui->rb_inService,1);
_stateGroup->addButton(ui->rb_outService,0);
}
BaseInfoDlg::~BaseInfoDlg()
{
delete ui;
}
void BaseInfoDlg::createGroupView(groupStateInfo infos)
{
QList<gridInfo> lstGrid = DataBase::GetInstance()->getAllGrid();
QList<zoneInfo> lstZone = DataBase::GetInstance()->getAllZone();
QList<stationInfo> lstStation = DataBase::GetInstance()->getAllStation();
for(auto &info:lstGrid)
{
ui->cb_grid->addItem(info.name,info.id);
}
for(auto &info:lstZone)
{
ui->cb_zone->addItem(info.name,info.id);
}
for(auto &info:lstStation)
{
ui->cb_station->addItem(info.name,info.id);
}
}
QMap<QString,propertyStateInfo> BaseInfoDlg::getPropertyValue(BaseProperty* pPro)
{
QMap<QString,propertyStateInfo> map;
if(pPro)
{
pPro->setTag(ui->le_tag->text());
pPro->setPath(ui->le_nameSpace->text());
pPro->setName(ui->le_name->text());
pPro->setLabel(QJsonObject());
pPro->setDescription(ui->le_description->text());
pPro->setGrid(ui->cb_grid->currentText());
pPro->setZone(ui->cb_zone->currentText());
pPro->setStation(ui->cb_station->currentText());
QJsonObject connectBus;
connectBus["bay_name"] = ui->le_bayName->text();
connectBus["bay_offset_outer"] = ui->le_idx_1->text();
connectBus["bay_offset_inner"] = ui->le_idx_2->text();
connectBus["from_uuid"] = ui->le_from->text();
connectBus["to_uuid"] = ui->le_to->text();
pPro->setConnectedBus(connectBus);
pPro->setInService(_stateGroup->checkedId());
pPro->setState(ui->le_status->text().toInt());
emit BasePropertyManager::instance().dataChanged(pPro->uuid().toString());
}
return map;
}
void BaseInfoDlg::setPropertyValue(QVariant var)
{
BaseProperty* pPro = static_cast<BaseProperty*>(var.value<void*>());
if(pPro)
{
ui->le_uuid->setText(pPro->uuid().toString());
ui->le_tag->setText(pPro->tag());
ui->le_nameSpace->setText(pPro->path());
ui->le_name->setText(pPro->name());
ui->le_label->setText(""); //label josn格式暂不解析
ui->le_description->setText(pPro->description());
ui->cb_grid->setCurrentText(pPro->grid());
ui->cb_zone->setCurrentText(pPro->zone());
ui->cb_station->setCurrentText(pPro->station());
ui->le_status->setText(QString::number(pPro->state())); //page status字段将移动到component
QJsonObject connectBus = pPro->connectedBus();
QString bay_name = connectBus["bay_name"].toString();
QString bay_offset_outer = connectBus["bay_offset_outer"].toString();
QString bay_offset_inner = connectBus["bay_offset_inner"].toString();
QString from_uuid = connectBus["from_uuid"].toString();
QString to_uuid = connectBus["to_uuid"].toString();
//ui->le_bayName->setText(bay_name);
ui->le_idx_1->setText(bay_offset_outer);
ui->le_idx_2->setText(bay_offset_inner);
//ui->le_from->setText(from_uuid);
//ui->le_to->setText(to_uuid);
if(pPro->inService() == 1)
ui->rb_inService->setChecked(true);
else
ui->rb_outService->setChecked(true);
//间隔处理
BayProperty* pBay = nullptr;
QMap<QUuid,ElectricBayItem*> mapBay = _curModelController->allBayItem();
for(auto& item:mapBay){
AbstractProperty* p = item->getProperty();
BayProperty* pBayPro = dynamic_cast<BayProperty*>(p);
if(pBayPro){
QList<QUuid> lstCompo = pBayPro->getLstComponent(); //获取间隔下的component找到本component对应的间隔
for(auto& id:lstCompo){
if(id == pPro->uuid()){
pBay = pBayPro;
break;
}
}
}
}
if(pBay){
auto lstFrom = pBay->getLstFrom();
auto lstTo = pBay->getLstTo();
QStringList sLstFrom;
for(auto& fromId:lstFrom){
BaseProperty* pPro = BasePropertyManager::instance().findEntityData(fromId);
if(pPro){
sLstFrom.append(pPro->tag());
}
}
QStringList sLstTo;
for(auto& toId:lstTo){
BaseProperty* pPro = BasePropertyManager::instance().findEntityData(toId);
if(pPro){
sLstTo.append(pPro->tag());
}
}
ui->le_bayName->setText(pBay->tag());
ui->le_from->setText(sLstFrom.join(""));
ui->le_to->setText(sLstTo.join(""));
}
}
}