498{
499 if (m_checkBoxReplace->GetValue()) {
500 m_workspace->RemoveAllTextElements();
501 }
508
509 ElectricalUnit voltageUnit = voltageUnitList[m_radioBoxVoltage->GetSelection()];
510 ElectricalUnit currentUnit = currentUnitList[m_radioBoxCurrent->GetSelection()];
511 ElectricalUnit sUnit = sUnitList[m_radioBoxPower->GetSelection()];
512 ElectricalUnit pUnit = pUnitList[m_radioBoxPower->GetSelection()];
513 ElectricalUnit qUnit = qUnitList[m_radioBoxPower->GetSelection()];
514 ElectricalUnit angleUnit = angleUnitList[m_radioBoxAngle->GetSelection()];
515
516 auto elementList = m_workspace->GetElementList();
517 int numTxtElements = 0;
518 for (auto* element : elementList) {
519 ElementType elementType = element->GetElementType();
520 wxArrayInt checked;
521 switch (elementType)
522 {
523 case TYPE_BUS: {
524 TextID textOptions[7] = { ID_TXT_NAME, ID_TXT_VOLTAGE, ID_TXT_ANGLE, ID_TXT_FAULTCURRENT, ID_TXT_FAULTVOLTAGE, ID_TXT_SCC, ID_TXT_THD };
525 ElectricalUnit textUnits[7] = { ElectricalUnit::UNIT_NONE, voltageUnit, angleUnit, currentUnit, voltageUnit, sUnit, ElectricalUnit::UNIT_NONE };
526 m_checkListBoxBus->GetCheckedItems(checked);
527 for (int i : checked) {
528 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
529 numTxtElements++;
530 }
531 } break;
532 case TYPE_CAPACITOR: {
533 TextID textOptions[2] = { ID_TXT_NAME, ID_TXT_REACTIVE_POWER };
534 ElectricalUnit textUnits[2] = { ElectricalUnit::UNIT_NONE, qUnit };
535 m_checkListBoxCapacitor->GetCheckedItems(checked);
536 for (int i : checked) {
537 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
538 numTxtElements++;
539 }
540 } break;
541 case TYPE_IND_MOTOR: {
542 TextID textOptions[3] = { ID_TXT_NAME, ID_TXT_ACTIVE_POWER, ID_TXT_REACTIVE_POWER };
543 ElectricalUnit textUnits[3] = { ElectricalUnit::UNIT_NONE, pUnit, qUnit };
544 m_checkListBoxIndMotor->GetCheckedItems(checked);
545 for (int i : checked) {
546 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
547 numTxtElements++;
548 }
549 } break;
550 case TYPE_INDUCTOR: {
551 TextID textOptions[2] = { ID_TXT_NAME, ID_TXT_REACTIVE_POWER };
552 ElectricalUnit textUnits[2] = { ElectricalUnit::UNIT_NONE, qUnit };
553 m_checkListBoxInductor->GetCheckedItems(checked);
554 for (int i : checked) {
555 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
556 numTxtElements++;
557 }
558 } break;
559 case TYPE_LINE: {
560 TextID lineTextOptions[10] = { ID_TXT_NAME, ID_TXT_BRANCH_ACTIVE_POWER_1_2, ID_TXT_BRANCH_ACTIVE_POWER_2_1,
561 ID_TXT_BRANCH_REACTIVE_POWER_1_2, ID_TXT_BRANCH_REACTIVE_POWER_2_1, ID_TXT_BRANCH_LOSSES,
562 ID_TXT_BRANCH_CURRENT_1_2, ID_TXT_BRANCH_CURRENT_2_1, ID_TXT_BRANCH_FAULT_CURRENT_1_2, ID_TXT_BRANCH_FAULT_CURRENT_2_1 };
563 ElectricalUnit textUnits[10] = { ElectricalUnit::UNIT_NONE, pUnit, pUnit, qUnit, qUnit, pUnit, currentUnit, currentUnit, currentUnit, currentUnit };
564 m_checkListBoxLine->GetCheckedItems(checked);
565 for (int i : checked) {
566 m_workspace->InsertTextElement(lineTextOptions[i], element, textUnits[i], m_precision);
567 numTxtElements++;
568 }
569 } break;
570 case TYPE_LOAD: {
571 TextID textOptions[3] = { ID_TXT_NAME, ID_TXT_ACTIVE_POWER, ID_TXT_REACTIVE_POWER };
572 ElectricalUnit textUnits[3] = { ElectricalUnit::UNIT_NONE, pUnit, qUnit };
573 m_checkListBoxLoad->GetCheckedItems(checked);
574 for (int i : checked) {
575 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
576 numTxtElements++;
577 }
578 } break;
579 case TYPE_SYNC_GENERATOR: {
580 TextID textOptions[4] = { ID_TXT_NAME, ID_TXT_ACTIVE_POWER, ID_TXT_REACTIVE_POWER, ID_TXT_FAULTCURRENT };
581 ElectricalUnit textUnits[4] = { ElectricalUnit::UNIT_NONE, pUnit, qUnit, currentUnit };
582 m_checkListBoxGenerator->GetCheckedItems(checked);
583 for (int i : checked) {
584 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
585 numTxtElements++;
586 }
587 } break;
588 case TYPE_SYNC_MOTOR: {
589 TextID textOptions[3] = { ID_TXT_NAME, ID_TXT_ACTIVE_POWER, ID_TXT_REACTIVE_POWER };
590 ElectricalUnit textUnits[3] = { ElectricalUnit::UNIT_NONE, pUnit, qUnit };
591 m_checkListBoxSyncMotor->GetCheckedItems(checked);
592 for (int i : checked) {
593 m_workspace->InsertTextElement(textOptions[i], element, textUnits[i], m_precision);
594 numTxtElements++;
595 }
596 } break;
597 case TYPE_TRANSFORMER: {
598 TextID lineTextOptions[10] = { ID_TXT_NAME, ID_TXT_BRANCH_ACTIVE_POWER_1_2, ID_TXT_BRANCH_ACTIVE_POWER_2_1,
599 ID_TXT_BRANCH_REACTIVE_POWER_1_2, ID_TXT_BRANCH_REACTIVE_POWER_2_1, ID_TXT_BRANCH_LOSSES,
600 ID_TXT_BRANCH_CURRENT_1_2, ID_TXT_BRANCH_CURRENT_2_1, ID_TXT_BRANCH_FAULT_CURRENT_1_2, ID_TXT_BRANCH_FAULT_CURRENT_2_1 };
601 ElectricalUnit textUnits[10] = { ElectricalUnit::UNIT_NONE, pUnit, pUnit, qUnit, qUnit, pUnit, currentUnit, currentUnit, currentUnit, currentUnit };
602 m_checkListBoxTransformer->GetCheckedItems(checked);
603 for (int i : checked) {
604 m_workspace->InsertTextElement(lineTextOptions[i], element, textUnits[i], m_precision);
605 numTxtElements++;
606 }
607 } break;
608 default:
609 break;
610 }
611 }
612 if (numTxtElements != 0) {
613 m_workspace->SaveCurrentState();
614 m_workspace->UpdateTextElements();
615 }
616 EndModal(wxID_OK);
617}
ElectricalUnit
Electrical units.