123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #include "DataTableWidget.h"
- #include "ProjectManager.h"
- #include <dbService/CNodeDataService.h>
- #include <dbService/ClassSet.h>
- #include <Widgets/Button.h>
- #include <QBoxLayout>
- #include <QTabWidget>
- #include <QLabel>
- #include <QTableView>
- #include <QDebug>
- DataTableWidget::DataTableWidget(ProjectInfo *proj, int indexType, QWidget *parent)
- : QWidget(parent), m_proj(proj), m_indexType(indexType)
- {
- m_mind1 = new CMind(this);
- m_mind2 = new CMind(this);
- initWidget();
- initLayout();
- connectSignalsAndSlots();
- setupMind();
- }
- void DataTableWidget::initWidget()
- {
- m_dataTab = new QTabWidget(this);
- m_dataTab->setTabPosition(QTabWidget::South);
- m_pageLab = new QLabel(this);
- m_previous = new PushButton("上一级指标", this);
- m_next = new PushButton("下一级指标", this);
- }
- void DataTableWidget::initLayout()
- {
- m_layout = new QVBoxLayout(this);
- m_layout->addWidget(m_dataTab);
- m_pageLayout = new QHBoxLayout();
- m_layout->addLayout(m_pageLayout);
- m_pageLayout->setSpacing(10);
- m_pageLayout->addStretch();
- m_pageLayout->addWidget(m_previous);
- m_pageLayout->addWidget(m_pageLab);
- m_pageLayout->addWidget(m_next);
- m_pageLayout->addStretch();
- }
- void DataTableWidget::connectSignalsAndSlots()
- {
- connect(m_previous, &PushButton::clicked, this, &DataTableWidget::slotPrevious);
- connect(m_next, &PushButton::clicked, this, &DataTableWidget::slotNext);
- }
- void DataTableWidget::setupMind()
- {
- ProjectManager::IndexType t = (ProjectManager::IndexType)m_indexType;
- QList<CNodeData> list;
- bool ret = CNodeDataService().QueryAll(list, m_proj->id, t);
- if (ret) {
- m_mind1->setNodeList(list);
- }
- if (t == ProjectManager::TechIndex) {
- QList<CNodeData> list;
- bool ret = CNodeDataService().QueryAll(list, m_proj->id, ProjectManager::AbilityIndex);
- if (ret) {
- m_mind2->setNodeList(list);
- }
- }
- setCurrentPage(1);
- }
- int DataTableWidget::currentPage() const
- {
- return m_currentPage;
- }
- void DataTableWidget::setCurrentPage(int p)
- {
- if (p < 1 || p >= m_mind1->levels()) {
- return;
- }
- m_currentPage = p;
- m_dataTab->clear();
- for (CNodeData n : m_mind1->nodesInLevel(p)) {
- QTableView *t = new QTableView(m_dataTab);
- m_dataTab->addTab(t, n.name);
- }
- m_pageLab->setText(QString("共 %1 页, 当前第 %2 页").arg(m_mind1->levels() - 1).arg(p));
- }
- void DataTableWidget::slotPrevious()
- {
- setCurrentPage(m_currentPage - 1);
- }
- void DataTableWidget::slotNext()
- {
- setCurrentPage(m_currentPage + 1);
- }
|