| 701 | } |
| 702 | |
| 703 | void |
| 704 | Monitor::MonitorDataStorage::displayNvp( |
| 705 | TreeNode* parent, |
| 706 | const OpenDDS::Monitor::NVPSeq& data, |
| 707 | bool layoutChanged, |
| 708 | bool dataChanged |
| 709 | ) |
| 710 | { |
| 711 | // NAME / VALUE DATA |
| 712 | const DDS::UInt32 size = data.length(); |
| 713 | for (DDS::UInt32 index = 0; index < size; ++index) { |
| 714 | QString name(data[index].name); |
| 715 | const int row = parent->indexOf(0, name); |
| 716 | if (row == -1) { |
| 717 | // This is new data, insert it. |
| 718 | QList<QVariant> list; |
| 719 | list << name; |
| 720 | switch (data[index].value._d()) { |
| 721 | case OpenDDS::Monitor::INTEGER_TYPE: |
| 722 | list << QString::number(data[index].value.integer_value()); |
| 723 | break; |
| 724 | |
| 725 | case OpenDDS::Monitor::DOUBLE_TYPE: |
| 726 | list << QString::number(data[index].value.double_value()); |
| 727 | break; |
| 728 | |
| 729 | case OpenDDS::Monitor::STRING_TYPE: |
| 730 | list << QString(data[index].value.string_value()); |
| 731 | break; |
| 732 | |
| 733 | case OpenDDS::Monitor::STATISTICS_TYPE: |
| 734 | case OpenDDS::Monitor::STRING_LIST_TYPE: |
| 735 | list << QString(QObject::tr("<display unimplemented>")); |
| 736 | break; |
| 737 | } |
| 738 | TreeNode* node = new TreeNode(list, parent); |
| 739 | parent->append(node); |
| 740 | layoutChanged = true; |
| 741 | |
| 742 | } else { |
| 743 | // This is existing data, update the value. |
| 744 | TreeNode* node = (*parent)[row]; |
| 745 | switch (data[index].value._d()) { |
| 746 | case OpenDDS::Monitor::INTEGER_TYPE: |
| 747 | node->setData(1, QString::number(data[index].value.integer_value())); |
| 748 | break; |
| 749 | |
| 750 | case OpenDDS::Monitor::DOUBLE_TYPE: |
| 751 | node->setData(1, QString::number(data[index].value.double_value())); |
| 752 | break; |
| 753 | |
| 754 | case OpenDDS::Monitor::STRING_TYPE: |
| 755 | node->setData(1, QString(data[index].value.string_value())); |
| 756 | break; |
| 757 | |
| 758 | case OpenDDS::Monitor::STATISTICS_TYPE: |
| 759 | case OpenDDS::Monitor::STRING_LIST_TYPE: |
| 760 | break; |