#include "ymplatformwidget.h" #include "../Json/sjson.h" #include "../common.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define D_NOT_SELECT -1 #define SAFE_DELETE(x) if(x != NULL) { delete x; x = NULL; } #define SAFE_DELETEARRAY(x) if(x != NULL) { delete [] x; x = NULL; } #define SAFE_RELEASE(x) if(x != NULL) { x->Release(); x = NULL; } YMPlatformWidget::YMPlatformWidget(QWidget *parent) :YMorphereWidget(parent) { if(!setListMorphere(m_strlistMorphere, m_strlistMorphereko)) { m_strlistMorphere << "NNG" <<"NNP"<<"NNB"<<"NNBC"<<"NR"<<"NP"<<"VV"<<"VA"<<"VX"<<"VCP"<<"VCN"<<"MM"<<"MAG"<<"MAJ"<<"IC"<<"JKS"<<"JKC"<<"JKG"<<"JKO"<<"JKB"<<"JKV"<<"JKQ"<<"JX"<<"JC"<<"EP"<<"EF"<<"EC"<<"ETN"<<"ETM"<<"XPN"<<"XSN"<<"XSV"<<"XSA"<<"XR"<<"SF"<<"SE"<<"SSO"<<"SSC"<<"SC"<<"SY"<<"SL"<<"SH"<<"SN"; m_strlistMorphereko << "NNG" <<"NNP"<<"NNB"<<"NNBC"<<"NR"<<"NP"<<"VV"<<"VA"<<"VX"<<"VCP"<<"VCN"<<"MM"<<"MAG"<<"MAJ"<<"IC"<<"JKS"<<"JKC"<<"JKG"<<"JKO"<<"JKB"<<"JKV"<<"JKQ"<<"JX"<<"JC"<<"EP"<<"EF"<<"EC"<<"ETN"<<"ETM"<<"XPN"<<"XSN"<<"XSV"<<"XSA"<<"XR"<<"SF"<<"SE"<<"SSO"<<"SSC"<<"SC"<<"SY"<<"SL"<<"SH"<<"SN"; } m_strName = "platform"; QVBoxLayout *vMainLayout = new QVBoxLayout; vMainLayout->setAlignment(Qt::AlignVCenter); QVBoxLayout *vboxlayout = new QVBoxLayout; QGroupBox *gBox = setMorphereList(); QGroupBox *gDate = setDate(); QGroupBox *gData = setData(); QGroupBox *gFilter = setFilter(); QGroupBox *gFilter2 = setFilter2(); QGroupBox *gOther = setOther(); QGroupBox *gSort = setSort(); QHBoxLayout *hboxlayout = new QHBoxLayout; QGroupBox *gDictionary = setDictionary(); QGroupBox *gCenterKeyword = setCenterKeyword(); hboxlayout->addWidget(gBox,5); vboxlayout->addWidget(gData,3); vboxlayout->addWidget(gDate,3); //vboxlayout->addWidget(gFilter,3); vboxlayout->addWidget(gSort,2); vboxlayout->addWidget(gOther,2); vboxlayout->addWidget(gDictionary,2); hboxlayout->addLayout(vboxlayout,5); vMainLayout->addLayout(hboxlayout, 2); vMainLayout->addWidget(gCenterKeyword, 1); vMainLayout->addWidget(gFilter, 1); vMainLayout->addWidget(gFilter2, 1); m_ptwData = new QTabWidget; m_ptwData->setTabsClosable(true); connect(m_ptwData,SIGNAL(tabCloseRequested(int)),this,SLOT(CloseTab(int))); connect(m_ptwData,SIGNAL(tabBarDoubleClicked(int)),this,SLOT(DoubleClickTab(int))); AddTable("Start"); vMainLayout->addWidget(m_ptwData, 8); setLayout(vMainLayout); } QGroupBox *YMPlatformWidget::setMorphereList() { QVBoxLayout *vlayout = new QVBoxLayout; QVBoxLayout *vlayout1 = new QVBoxLayout; QHBoxLayout *hlayout = new QHBoxLayout; QGroupBox *groupBox = new QGroupBox(tr("Morphere List")); m_plwMorphereList = new QListWidget; m_plwMorphereAdd = new QListWidget; m_plwMorphereList->setSelectionMode(QAbstractItemView::MultiSelection); m_plwMorphereAdd->setSelectionMode(QAbstractItemView::ExtendedSelection); for(int i=0;isetData(Qt::UserRole, QVariant(m_strlistMorphere.at(i))); } for(int i=0;isetData(Qt::UserRole, QVariant(m_strlistMorphere.at(i))); } for(int i=0;icount();i++) { m_plwMorphereAdd->item(i)->setHidden(true); } QPushButton *ppbAdd = new QPushButton("Add"); QPushButton *ppbDel = new QPushButton("Del"); vlayout->addWidget(m_plwMorphereList); vlayout->addWidget(ppbAdd); vlayout1->addWidget(m_plwMorphereAdd); vlayout1->addWidget(ppbDel); connect(ppbAdd, SIGNAL(released()),this, SLOT(MorphereListAdd())); connect(ppbDel, SIGNAL(released()),this, SLOT(MorphereListDel())); hlayout->addLayout(vlayout); hlayout->addLayout(vlayout1); groupBox->setLayout(hlayout); groupBox->setCheckable(true); return groupBox; } QGroupBox *YMPlatformWidget::setDate() { QHBoxLayout *hlayout = new QHBoxLayout; QHBoxLayout *hlayout1 = new QHBoxLayout; QHBoxLayout *hlayout2 = new QHBoxLayout; QVBoxLayout *vlayout = new QVBoxLayout; QGroupBox *groupBox = new QGroupBox(tr("Date")); m_pdeStart = new QDateEdit(QDate::currentDate()); m_pdeEnd = new QDateEdit(QDate::currentDate()); m_pdeStart->setDateRange(QDate(2003, 5, 20),QDate::currentDate()); m_pdeEnd->setDateRange(QDate(2003, 5, 20),QDate::currentDate()); QCalendarWidget *pCalender = new QCalendarWidget(); m_pdeStart->setCalendarWidget(pCalender); m_pdeStart->setCalendarPopup(true); m_pdeEnd->setCalendarWidget(pCalender); m_pdeEnd->setCalendarPopup(true); m_pcbDate = new QComboBox; m_pcbDate->addItems(QStringList() << "ALL" << "NotAll"); m_pcbPeriod = new QComboBox; m_pcbPeriod->addItems(QStringList() << "None" << "1 Day" << "1 Week" << "1 Month"); m_pleDates = new QLineEdit; m_pleDates->setValidator(new QIntValidator(1, 100)); m_pcbDuring = new QComboBox; m_pcbDuring->addItems(QStringList() << "None" << "Days" << "Weeks" << "Months" << "Years"); hlayout->addWidget(m_pcbDate); hlayout->addWidget(new QLabel("Start:")); hlayout->addWidget(m_pdeStart); hlayout->addWidget(new QLabel("End:")); hlayout->addWidget(m_pdeEnd); hlayout1->addWidget(new QLabel("Period:")); hlayout1->addWidget(m_pcbPeriod); hlayout2->addWidget(new QLabel("Recent:")); hlayout2->addWidget(m_pleDates); hlayout2->addWidget(m_pcbDuring); vlayout->addLayout(hlayout2); vlayout->addLayout(hlayout); vlayout->addLayout(hlayout1); groupBox->setCheckable(true); groupBox->setLayout(vlayout); return groupBox; } QGroupBox *YMPlatformWidget::setFilter() { QHBoxLayout *hlayout = new QHBoxLayout; QHBoxLayout *hlayout2 = new QHBoxLayout; QHBoxLayout *hlayout3 = new QHBoxLayout; QVBoxLayout *vlayout = new QVBoxLayout; m_pleFilterRankALL = new QLineEdit; m_pleFilterRankSeparated = new QLineEdit; m_pleFilterKeyword = new QLineEdit; m_pleFilterKeywordLength = new QLineEdit; m_pleFilterExtractor = new QLineEdit; m_pleFilterKeywordLength->setValidator(new QIntValidator(1, 10)); m_pleFilterRankALL->setValidator(new QIntValidator(1, 10000)); m_pleFilterRankSeparated->setValidator(new QIntValidator(1, 10000)); hlayout->addWidget(new QLabel("RankALL: ")); hlayout->addWidget(m_pleFilterRankALL); hlayout->addWidget(new QLabel("RankSeparated: ")); hlayout->addWidget(m_pleFilterRankSeparated); hlayout->addWidget(new QLabel("Keyword Length: ")); hlayout->addWidget(m_pleFilterKeywordLength); hlayout2->addWidget(new QLabel("KeywordFilter: ")); hlayout2->addWidget(m_pleFilterKeyword); hlayout3->addWidget(new QLabel("Extract Keyword: ")); hlayout3->addWidget(m_pleFilterExtractor); vlayout->addLayout(hlayout3); vlayout->addLayout(hlayout2); vlayout->addLayout(hlayout); QGroupBox *groupBox = new QGroupBox(tr("1Depth Filter")); groupBox->setCheckable(true); groupBox->setLayout(vlayout); groupBox->setChecked(true); return groupBox; } QGroupBox *YMPlatformWidget::setFilter2() { QHBoxLayout *hlayout = new QHBoxLayout; QHBoxLayout *hlayout2 = new QHBoxLayout; QHBoxLayout *hlayout3 = new QHBoxLayout; QVBoxLayout *vlayout = new QVBoxLayout; m_pleFilterRankALL2 = new QLineEdit; m_pleFilterRankSeparated2 = new QLineEdit; m_pleFilterKeyword2 = new QLineEdit; m_pleFilterKeywordLength2 = new QLineEdit; m_pleFilterExtractor2 = new QLineEdit; m_pleFilterKeywordLength2->setValidator(new QIntValidator(1, 10)); m_pleFilterRankALL2->setValidator(new QIntValidator(1, 10000)); m_pleFilterRankSeparated2->setValidator(new QIntValidator(1, 10000)); hlayout->addWidget(new QLabel("RankALL: ")); hlayout->addWidget(m_pleFilterRankALL2); hlayout->addWidget(new QLabel("RankSeparated: ")); hlayout->addWidget(m_pleFilterRankSeparated2); hlayout->addWidget(new QLabel("Keyword Length: ")); hlayout->addWidget(m_pleFilterKeywordLength2); hlayout2->addWidget(new QLabel("KeywordFilter: ")); hlayout2->addWidget(m_pleFilterKeyword2); hlayout3->addWidget(new QLabel("Extract Keyword: ")); hlayout3->addWidget(m_pleFilterExtractor2); vlayout->addLayout(hlayout3); vlayout->addLayout(hlayout2); vlayout->addLayout(hlayout); QGroupBox *groupBox = new QGroupBox(tr("2Depth Filter")); groupBox->setCheckable(true); groupBox->setLayout(vlayout); groupBox->setChecked(true); return groupBox; } QGroupBox *YMPlatformWidget::setOther() { QHBoxLayout *hlayout = new QHBoxLayout; m_pcbThread = new QComboBox; hlayout->addWidget(new QLabel("Thread:")); hlayout->addWidget(m_pcbThread); m_pcbThread->addItems(QStringList() << "1" << "2" << "4" << "8"); QGroupBox *groupBox = new QGroupBox(tr("Other")); groupBox->setCheckable(true); groupBox->setLayout(hlayout); return groupBox; } QGroupBox *YMPlatformWidget::setSort() { QHBoxLayout *hlayout = new QHBoxLayout; m_rbDateMorphere = new QRadioButton("Date/Morphere"); m_rbMorphereDate = new QRadioButton("Morphere/Date"); m_bgRadioGroup = new QButtonGroup; m_bgRadioGroup->addButton(m_rbMorphereDate); m_bgRadioGroup->addButton(m_rbDateMorphere); m_rbMorphereDate->setChecked(true); hlayout->addWidget(m_rbMorphereDate); hlayout->addWidget(m_rbDateMorphere); QGroupBox *groupBox = new QGroupBox(tr("Sort")); groupBox->setCheckable(true); groupBox->setLayout(hlayout); return groupBox; } QGroupBox *YMPlatformWidget::setDictionary() { QHBoxLayout *hlayout = new QHBoxLayout; m_pcbDictionary = new QComboBox; m_pcbDictionary->setEditable(true); m_pcbDictionary->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); QPushButton* add = new QPushButton; QPushButton* del = new QPushButton; add->setText(tr("+")); del->setText(tr("-")); //hlayout->addWidget(new QLabel(tr("User-Dict: "))); hlayout->addWidget(m_pcbDictionary); hlayout->addWidget(add); hlayout->addWidget(del); connect(add, SIGNAL(released()),this, SLOT(AddDictionary())); connect(del, SIGNAL(released()),this, SLOT(DelDictionary())); QGroupBox *groupBox = new QGroupBox(tr("User Dictionary")); groupBox->setCheckable(true); groupBox->setLayout(hlayout); return groupBox; } QGroupBox *YMPlatformWidget::setCenterKeyword() { QHBoxLayout *hlayout = new QHBoxLayout; m_pleCKeyword = new QLineEdit; m_pcbCountMethod = new QComboBox; m_pcbCountMethod->addItems(QStringList() << "Duplicate" << "NonDuplicate"); hlayout->addWidget(new QLabel("Center Keyword: ")); hlayout->addWidget(m_pleCKeyword); hlayout->addWidget(new QLabel("CountMethod: ")); hlayout->addWidget(m_pcbCountMethod); QGroupBox *groupBox = new QGroupBox(tr("Center Keyword")); groupBox->setCheckable(true); groupBox->setLayout(hlayout); groupBox->setChecked(true); return groupBox; } void YMPlatformWidget::AddDictionary() { QStringList strFilenames = QFileDialog::getOpenFileNames(0,"Dictionary file",QDir::currentPath(), "dic files (*.dic);;All files (*.*)",new QString("Dictionary files (*.dic)")); foreach(QString strFilename, strFilenames) { QFile file(strFilename); if (!file.open(QIODevice::ReadOnly)) return; } for(int i = 0; i < m_pcbDictionary->count(); i++) { if(strFilenames.contains(m_pcbDictionary->itemText(i))) strFilenames.removeOne(m_pcbDictionary->itemText(i)); } m_pcbDictionary->addItems(strFilenames); } QString YMPlatformWidget::getUserDictList() { QStringList strList; for(int i = 0; i < m_pcbDictionary->count();i++) { strList << m_pcbDictionary->itemText(i); } return strList.join(","); } void YMPlatformWidget::DelDictionary() { m_pcbDictionary->removeItem(0); qDebug() << getUserDictList(); } bool YMPlatformWidget::isSortMorphereDateChecked() { return m_rbMorphereDate->isChecked(); } bool YMPlatformWidget::isSortDateMorphereChecked() { return m_rbDateMorphere->isChecked(); } void YMPlatformWidget::MorphereListAdd() { QList listitem = m_plwMorphereList->selectedItems(); foreach(QListWidgetItem *item, listitem) { for(int i = 0; i < m_plwMorphereAdd->count();i++) { if(item->data(Qt::UserRole) == m_plwMorphereAdd->item(i)->data(Qt::UserRole)) m_plwMorphereAdd->item(i)->setHidden(false); } } } void YMPlatformWidget::MorphereListDel() { for(int i = m_plwMorphereAdd->count() - 1; i >= 0 ;i--) { if(m_plwMorphereAdd->item(i)->isSelected()) { m_plwMorphereAdd->item(i)->setHidden(true); } } } QTableWidget *YMPlatformWidget::AddTable(QString _str) { STable *pTable = new STable; m_ptwData->addTab(pTable,_str); return (QTableWidget *)pTable; } void YMPlatformWidget::CloseTab(int index) { ((STable*)(m_ptwData->widget(index)))->clear(); m_ptwData->removeTab(index); } void YMPlatformWidget::DoubleClickTab(int index) { bool ok; if (index < 0) return; QString text = QInputDialog::getText(this,"Tab name change","Name : ", QLineEdit::Normal,m_ptwData->tabText(index), &ok); if (ok) { m_ptwData->setTabText(index,text); } } void YMPlatformWidget::FileImport() { QString strFilename = QFileDialog::getOpenFileName(0,"Import file",QDir::currentPath(), "csv files (*.csv);;All files (*.*)",new QString("Text files (*.csv)")); QFile file(strFilename); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; clearResult(); m_mapViewResult.clear(); //qDebug() << "clear is complete"; QTextStream in(&file); while(!in.atEnd()) { QString strLine = in.readLine(); strLine = strLine.replace("\"",""); //qDebug() << strLine; QStringList strListLine = strLine.split(","); if(strListLine.size() != 4) continue; //qDebug() << strListLine.at(4).trimmed().toInt(); QString strKey = strListLine.at(0).trimmed() + "~!@" + strListLine.at(1).trimmed() + "~!@" + strListLine.at(2).trimmed(); m_mapResult.insert(strKey, strListLine.at(3).trimmed().toInt()); } file.close(); for(QMap::iterator iterPos = m_mapResult.begin(); iterPos != m_mapResult.end(); iterPos++) { QString strkey = iterPos.key(); int count = iterPos.value(); QStringList strlistKey = strkey.split("~!@"); QString strDate = strlistKey.at(0); QString strMorphere = strlistKey.at(1); QString strKeyword = strlistKey.at(2); if(m_mapViewResult.contains(strDate)) { if(m_mapViewResult.value(strDate).contains(strMorphere)) { m_mapViewResult[(strDate)][(strMorphere)].insertMulti(count, strKeyword); } else { QMap qLast; qLast.insert(count, strKeyword); m_mapViewResult[(strDate)].insert(strMorphere, qLast); } } else { QMap qLast; qLast.insert(count , strKeyword); QMap > qMedium; qMedium.insert(strMorphere, qLast); m_mapViewResult.insert(strDate, qMedium); } } ViewResult(); } void YMPlatformWidget::FileExport() { QString strFilename = QFileDialog::getSaveFileName(0,"Exoprt file",QDir::currentPath(), "csv files (*.csv);;All files (*.*)",new QString("Text files (*.csv)")); if (strFilename.toLower().right(4) != QString(".csv")) strFilename += ".csv"; QFile file(strFilename); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); for (int i = 0; i < m_ptwData->count(); i++) { m_ptwData->setTabEnabled(i, true); QTabWidget* p_childWidget = (QTabWidget*)(m_ptwData->widget(i)); for (int j = 0; j < p_childWidget->count(); j++) { p_childWidget->setTabEnabled(j, true); STable *stable = (STable *) (p_childWidget->widget(j)); for (int nCount = 0 ; nCount < stable->rowCount(); nCount++ ) { QString str = stable->item(nCount,0)->text().trimmed() + "," + stable->item(nCount,1)->text().trimmed(); out << m_ptwData->tabText(i).trimmed() << "," << p_childWidget->tabText(j).trimmed() << ","; out << str << endl; } } } file.close(); } int YMPlatformWidget::getThread() { return m_pcbThread->currentText().toInt(); } unsigned int YMPlatformWidget::getDateStart() { return m_pdeStart->dateTime().toString("yyyy-MM-dd").replace("-","").trimmed().toInt(); } unsigned int YMPlatformWidget::getDateEnd() { return m_pdeEnd->dateTime().toString("yyyy-MM-dd").replace("-","").trimmed().toInt(); } int YMPlatformWidget::getPeriod() { return m_pcbPeriod->currentIndex(); } QStringList YMPlatformWidget::getMorphereList() { QStringList strList; for(int i = 0; i < m_plwMorphereAdd->count();i++) { if(m_plwMorphereAdd->item(i)->isHidden()) continue; else { strList << m_plwMorphereAdd->item(i)->data(Qt::UserRole).toString(); } } return strList; } bool YMPlatformWidget::getDateAll() { if(m_pcbDate->currentIndex() == 0) return true; else return false; } QTabWidget* YMPlatformWidget::getQTabWidget() { return m_ptwData; } void YMPlatformWidget::MemClear() { m_mapResult.clear(); m_mapViewResult.clear(); } bool YMPlatformWidget::setListMorphere(QStringList& MorphereEN, QStringList& MorphereKO) { QFile fHeader("morpherelist.txt"); if (!fHeader.open(QIODevice::ReadOnly | QIODevice::Text)) return false; QTextStream in(&fHeader); QString str = in.readLine(); if(str.at(0) == '#') { } else { qDebug() << "The wrong file is read"; return false; } while(!in.atEnd()) { str = in.readLine(); QStringList strList = str.trimmed().split("@",QString::SkipEmptyParts); if(strList.isEmpty()) break; if(strList.size() < 2) return false; MorphereEN << strList.at(0).trimmed().replace("\"","").trimmed(); MorphereKO << strList.at(1).trimmed().replace("\"","").trimmed(); } return true; } void YMPlatformWidget::RawFileExport() { QString strFilename = QFileDialog::getSaveFileName(0,"Exoprt file",QDir::currentPath(), "csv files (*.csv);;All files (*.*)",new QString("Text files (*.csv)")); if (strFilename.toLower().right(4) != QString(".csv")) strFilename += ".csv"; QFile file(strFilename); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); /* out << "#Head#,"; for (int nCount = 0;nCount < pCurrent->columnCount() ;nCount++ ) out << pCurrent->horizontalHeaderItem(nCount)->text() << ","; m_pProgress->setRange(0,pCurrent->rowCount()-1); */ for( QMap > >::iterator iterPos = m_mapViewResult.begin(); iterPos != m_mapViewResult.end(); iterPos++) { for(QMap >::iterator iterPos2 = iterPos.value().begin(); iterPos2 != iterPos.value().end(); iterPos2++) { QMapIterator i(m_mapViewResult[iterPos.key()][iterPos2.key()]); i.toBack(); while(i.hasPrevious()) { i.previous(); out << "\"" << iterPos.key() << "\"" << ","; out << "\"" << iterPos2.key() << "\"" << ","; out << "\"" << i.value() << "\"" << ","; out << "\"" << i.key() << "\"" << "\n"; } } } file.close(); } YMPlatformWidget::~YMPlatformWidget() { } void YMPlatformWidget::clearViewResult() { } QGroupBox *YMPlatformWidget::setData() { QHBoxLayout *hlayout = new QHBoxLayout; m_pcbData = new QComboBox; m_pcbData->addItems(QStringList() << "Title" << "Body" << "Title+Body" << "PlatformTitle"); m_pcbData->setCurrentIndex(2); hlayout->addWidget(new QLabel("Data: ")); hlayout->addWidget(m_pcbData); QGroupBox *groupBox = new QGroupBox(tr("Data")); groupBox->setCheckable(true); groupBox->setLayout(hlayout); groupBox->setChecked(true); return groupBox; } void YMPlatformWidget::clearView() { m_mapViewResult.clear(); m_mapViewResult2.clear(); } void YMPlatformWidget::SortViewResult() { if(isSortDateMorphereChecked()) { for(QMap::iterator iterPos = m_mapResult.begin(); iterPos != m_mapResult.end(); iterPos++) { QString strkey = iterPos.key(); int count = iterPos.value(); QStringList strlistKey = strkey.split("~!@"); QString strDate = strlistKey.at(0); QString strPlatformName = strlistKey.at(1); QString strPlatformForm = strlistKey.at(2); QString strMorphere = strlistKey.at(3); QString strKeyword = strlistKey.at(4); QString strMorphere2 = strlistKey.at(5); QString strKeyword2 = strlistKey.at(6); m_mapViewResult[(strDate)]["ALLMORPHERE"].insertMulti(count, QString(strPlatformName + "~!@" + strPlatformForm + "~!@" + strMorphere + "~!@" + strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2 )); // added if(m_mapViewResult.contains(strDate)) { if(m_mapViewResult.value(strDate).contains(strMorphere)) { m_mapViewResult[(strDate)][(strMorphere)].insertMulti(count, strPlatformName + "~!@" + strPlatformForm + "~!@" +strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2); //m_mapViewResult[(strDate)]["ALLMORPHERE"].insertMulti(count, QString(strMorphere + "~!@" + strKeyword )); // added } else { QMap qLast; qLast.insert(count, strPlatformName + "~!@" + strPlatformForm + "~!@" +strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2); m_mapViewResult[(strDate)].insert(strMorphere, qLast); /* qLast.clear(); //added qLast.insert(count, QString(strMorphere + "~!@" + strKeyword));//added m_mapViewResult[(strDate)].insert("ALLMORPHERE", qLast);//added */ } } else { QMap qLast; qLast.insert(count , strPlatformName + "~!@" + strPlatformForm + "~!@" +strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2); QMap > qMedium; qMedium.insert(strMorphere, qLast); m_mapViewResult.insert(strDate, qMedium); /* qLast.clear(); qMedium.clear(); qLast.insert(count, QString(strMorphere + "~!@" + strKeyword)); qMedium.insert("ALLMORPHERE", qLast); m_mapViewResult.insert(strDate, qMedium); */ } } } else { for(QMap::iterator iterPos = m_mapResult.begin(); iterPos != m_mapResult.end(); iterPos++) { QString strkey = iterPos.key(); int count = iterPos.value(); QStringList strlistKey = strkey.split("~!@"); QString strDate = strlistKey.at(0); QString strPlatformName = strlistKey.at(1); QString strPlatformForm = strlistKey.at(2); QString strMorphere = strlistKey.at(3); QString strKeyword = strlistKey.at(4); QString strMorphere2 = strlistKey.at(5); QString strKeyword2 = strlistKey.at(6); m_mapViewResult[("ALLMORPHERE")][(strDate)].insertMulti(count, QString(strPlatformName + "~!@" + strPlatformForm + "~!@" + strMorphere + "~!@" + strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2 )); if(m_mapViewResult.contains(strMorphere)) { if(m_mapViewResult.value(strMorphere).contains(strDate)) { m_mapViewResult[(strMorphere)][(strDate)].insertMulti(count, strPlatformName + "~!@" + strPlatformForm + "~!@" + strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2 ); //m_mapViewResult[("ALLMORPHERE")][(strDate)].insertMulti(count, QString(strMorphere + "~!@" + strKeyword )); } else { QMap qLast; qLast.insert(count, strPlatformName + "~!@" + strPlatformForm + "~!@" + strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2); m_mapViewResult[(strMorphere)].insert(strDate, qLast); /* qLast.clear(); qLast.insert(count, QString(strMorphere + "~!@" + strKeyword) ); m_mapViewResult[("ALLMORPHERE")].insert(strDate, qLast); */ } } else { QMap qLast; qLast.insert(count , strPlatformName + "~!@" + strPlatformForm + "~!@" + strKeyword + "~!@" + strMorphere2 + "~!@" + strKeyword2); QMap > qMedium; qMedium.insert(strDate, qLast); m_mapViewResult.insert(strMorphere, qMedium); /* qLast.clear(); qMedium.clear(); qLast.insert(count,QString(strMorphere + "~!@" + strKeyword)); qMedium.insert(strDate, qLast); m_mapViewResult.insert("ALLMORPHERE", qMedium); */ } } } /* for(QMap::iterator iterPos = m_mapResult.begin(); iterPos != m_mapResult.end(); iterPos++) { QString strkey = iterPos.key(); int count = iterPos.value(); QStringList strlistKey = strkey.split("~!@"); QString strDate = strlistKey.at(0); QString strMorphere = strlistKey.at(1); QString strKeyword = strlistKey.at(2); if(m_mapViewResult2.contains(strDate)) { if(m_mapViewResult2.value(strDate).contains(count)) { m_mapViewResult2[(strDate)][(count)].insertMulti(strMorphere, strKeyword); } else { QMap qLast; qLast.insert(strMorphere, strKeyword); m_mapViewResult2[(strDate)].insert(count, qLast); } } else { QMap qLast; qLast.insert(strMorphere , strKeyword); QMap > qMedium; qMedium.insert(count, qLast); m_mapViewResult2.insert(strDate, qMedium); } } */ } void YMPlatformWidget::ViewResult() { SortViewResult(); foreach(STable* ptable, m_lTable) { ptable->clear(); delete ptable; } m_lTable.clear(); foreach(QTabWidget* pwidget, m_lTabWidget) { pwidget->clear(); delete pwidget; } m_lTabWidget.clear(); m_ptwTable = getQTabWidget(); m_ptwTable->clear(); for( QMap > >::iterator iterPos = m_mapViewResult.begin(); iterPos != m_mapViewResult.end(); iterPos++) { QTabWidget* temp = new QTabWidget; for(QMap >::iterator iterPos2 = iterPos.value().begin(); iterPos2 != iterPos.value().end(); iterPos2++) { if( (iterPos2.key() == "ALLMORPHERE") || (iterPos.key() == "ALLMORPHERE") ) { int ncRow = 0; STable *pNew = new STable; pNew->setColumnCount(7); pNew->setRowCount(m_mapViewResult[iterPos.key()][iterPos2.key()].size()); pNew->setHorizontalHeaderItem(0 ,new QTableWidgetItem("Platform Name")); pNew->setHorizontalHeaderItem(1 ,new QTableWidgetItem("Platform Form")); pNew->setHorizontalHeaderItem(2 ,new QTableWidgetItem("1D Morphere")); pNew->setHorizontalHeaderItem(3 ,new QTableWidgetItem("1D Keyword")); pNew->setHorizontalHeaderItem(4 ,new QTableWidgetItem("2D Morphere")); pNew->setHorizontalHeaderItem(5 ,new QTableWidgetItem("2D Keyword")); pNew->setHorizontalHeaderItem(6 ,new STableWidgetItem("Count")); QMapIterator i(m_mapViewResult[iterPos.key()][iterPos2.key()]); i.toBack(); while(i.hasPrevious()) { i.previous(); pNew->setItem(ncRow,0,new QTableWidgetItem(QString(i.value().split("~!@").at(0)))); pNew->setItem(ncRow,1,new QTableWidgetItem(QString(i.value().split("~!@").at(1)))); pNew->setItem(ncRow,2,new QTableWidgetItem(QString(i.value().split("~!@").at(2)))); pNew->setItem(ncRow,3,new QTableWidgetItem(QString(i.value().split("~!@").at(3)))); pNew->setItem(ncRow,4,new QTableWidgetItem(QString(i.value().split("~!@").at(4)))); pNew->setItem(ncRow,5,new QTableWidgetItem(QString(i.value().split("~!@").at(5)))); pNew->setItem(ncRow,6,new STableWidgetItem(QString::number(i.key()))); ncRow++; } temp->addTab(pNew, iterPos2.key()); m_lTable << pNew; } else { int ncRow = 0; STable *pNew = new STable; pNew->setColumnCount(6); pNew->setRowCount(m_mapViewResult[iterPos.key()][iterPos2.key()].size()); pNew->setHorizontalHeaderItem(0 ,new QTableWidgetItem("Platform Name")); pNew->setHorizontalHeaderItem(1 ,new QTableWidgetItem("Platform Form")); pNew->setHorizontalHeaderItem(2 ,new QTableWidgetItem("1D Keyword")); pNew->setHorizontalHeaderItem(3 ,new QTableWidgetItem("2D Morphere")); pNew->setHorizontalHeaderItem(4 ,new QTableWidgetItem("2D Keyword")); pNew->setHorizontalHeaderItem(5 ,new STableWidgetItem("Count")); QMapIterator i(m_mapViewResult[iterPos.key()][iterPos2.key()]); i.toBack(); while(i.hasPrevious()) { i.previous(); pNew->setItem(ncRow,0,new QTableWidgetItem(QString(i.value().split("~!@").at(0)))); pNew->setItem(ncRow,1,new QTableWidgetItem(QString(i.value().split("~!@").at(1)))); pNew->setItem(ncRow,2,new QTableWidgetItem(QString(i.value().split("~!@").at(2)))); pNew->setItem(ncRow,3,new QTableWidgetItem(QString(i.value().split("~!@").at(3)))); pNew->setItem(ncRow,4,new QTableWidgetItem(QString(i.value().split("~!@").at(4)))); pNew->setItem(ncRow,5,new STableWidgetItem(QString::number(i.key()))); ncRow++; } temp->addTab(pNew, iterPos2.key()); m_lTable << pNew; } } m_ptwTable->addTab(temp, iterPos.key()); m_lTabWidget << temp; } /* QMap > >::iterator iterPosi = m_mapViewResult2.begin(); for( QMap > >::iterator iterPos = m_mapViewResult.begin(); iterPos != m_mapViewResult.end(); iterPos++, iterPosi++) { QTabWidget* temp = new QTabWidget; for(QMap >::iterator iterPos2 = iterPos.value().begin(); iterPos2 != iterPos.value().end(); iterPos2++) { int ncRow = 0; STable *pNew = new STable; pNew->setColumnCount(2); pNew->setRowCount(m_mapViewResult[iterPos.key()][iterPos2.key()].size()); pNew->setHorizontalHeaderItem(0 ,new QTableWidgetItem("Keyword")); pNew->setHorizontalHeaderItem(1 ,new QTableWidgetItem("Count")); QMapIterator i(m_mapViewResult[iterPos.key()][iterPos2.key()]); i.toBack(); while(i.hasPrevious()) { i.previous(); pNew->setItem(ncRow,0,new QTableWidgetItem(QString(i.value()))); pNew->setItem(ncRow,1,new QTableWidgetItem(QString::number(i.key()))); ncRow++; } temp->addTab(pNew, iterPos2.key()); m_lTable << pNew; } { int ncRow = 0; STable *pNew = new STable; pNew->setColumnCount(3); pNew->setRowCount(m_mapViewResult2[iterPosi.key()].size()); pNew->setHorizontalHeaderItem(0 ,new QTableWidgetItem("Morphere")); pNew->setHorizontalHeaderItem(1 ,new QTableWidgetItem("Keyword")); pNew->setHorizontalHeaderItem(2 ,new QTableWidgetItem("Count")); QMapIterator> j(m_mapViewResult2[iterPosi.key()]); j.toBack(); while(j.hasPrevious()) { j.previous(); for(QMap::iterator iterPosii = m_mapViewResult2[iterPosi.key()][j.key()].begin(); iterPosii != m_mapViewResult2[iterPosi.key()][j.key()].end(); iterPosii++) { pNew->setItem(ncRow,0,new QTableWidgetItem(QString(iterPosii.key()))); pNew->setItem(ncRow,1,new QTableWidgetItem(QString(iterPosii.value()))); pNew->setItem(ncRow,2,new QTableWidgetItem(QString::number(j.key()))); ncRow++; } } temp->addTab(pNew, "ALL"); m_lTable << pNew; } m_ptwTable->addTab(temp, iterPos.key()); m_lTabWidget << temp; } */ } void YMPlatformWidget::SaveFile() { QString strFilename = QFileDialog::getSaveFileName(0,"save file",QDir::currentPath(), "json files (*.json);;All files (*.*)",new QString("Text files (*.json)")); if (strFilename.toLower().right(5) != QString(".json")) strFilename += ".json"; QFile file(strFilename); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\": [\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\": [\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\": [\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\": [\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; out << strjson; file.close(); /* QString strFilename = QFileDialog::getSaveFileName(0,"save file",QDir::currentPath(), "csv files (*.csv);;All files (*.*)",new QString("Text files (*.csv)")); if (strFilename.toLower().right(4) != QString(".csv")) strFilename += ".csv"; QFile file(strFilename); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); QMap > mapResult; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strODKeyword)) { mapResult[strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult.insert(strODKeyword, qLast); } } } QString strCKeyword = m_pleCKeyword->text().trimmed(); for(QMap >::iterator iterPos = mapResult.begin(); iterPos != mapResult.end(); iterPos++) { int sum = 0; out << iterPos.key(); for(QMap::iterator iterPos2 = iterPos.value().begin(); iterPos2 != iterPos.value().end() ; iterPos2++) { sum += iterPos2.value(); for(int i = 0; i < iterPos2.value(); i++) { out << ";" << iterPos2.key(); } } out << "\n"; out << strCKeyword; for(int i = 0; i < sum; i++) { out << ";" << iterPos.key(); } out << "\n"; } file.close(); */ } void YMPlatformWidget::SaveFileSimple() { /* QString strFilename = QFileDialog::getSaveFileName(0,"save file",QDir::currentPath(), "dl files (*.dl);;All files (*.*)",new QString("Text files (*.dl)")); if (strFilename.toLower().right(3) != QString(".dl")) strFilename += ".dl"; QFile file(strFilename); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QMap > mapResult; QTextStream out(&file); QSet setKey; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); setKey.insert(strODKeyword); setKey.insert(strTDKeyword); if(mapResult.contains(strODKeyword)) { mapResult[strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult.insert(strODKeyword, qLast); } } } QString strCKeyword = m_pleCKeyword->text().trimmed(); out << "dl\nformat=edgelist1\nn=" + QString::number(setKey.size()) + "\ndata:\n"; setKey.clear(); for(QMap >::iterator iterPos = mapResult.begin(); iterPos != mapResult.end(); iterPos++) { int sum = 0; for(QMap::iterator iterPos2 = iterPos.value().begin(); iterPos2 != iterPos.value().end() ; iterPos2++) { sum += iterPos2.value(); out << iterPos.key() << " " << iterPos2.key() << " " << iterPos2.value() << "\n"; } out << strCKeyword << " " << iterPos.key() << " " << sum << "\n"; } file.close(); */ } QMap YMPlatformWidget::getResult() { return m_mapResult; } QString YMPlatformWidget::Json() { //QMap mapResult = m_mapResult; QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return QString(); int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\":[\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\":[\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\":[\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\":[\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; mapResult.clear(); return strjson; } void YMPlatformWidget::D3View() { //QMap mapResult = m_mapResult; QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\":[\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\":[\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\":[\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\":[\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; { QRegExp re("\\s"); strjson = strjson.replace(re,""); } QString strHtml; strHtml = "" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n"; QRegExp re("\\s{2,}"); qDebug() << strHtml; strHtml = strHtml.replace(re,""); /* QFile file("d3platform.html"); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); out << strHtml; file.close(); */ m_WVD3View.setHtml(strHtml.toUtf8()); //m_WVD3View.settings()->setObjectCacheCapacities(0,0,0); m_WVD3View.repaint(); m_WVD3View.show(); } void YMPlatformWidget::D3ViewFile() { //QMap mapResult = m_mapResult; QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\":[\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\":[\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\":[\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\":[\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; { QRegExp re("\\s"); strjson = strjson.replace(re,""); } QString strHtml; strHtml = "" "\n" "\n" "\n" "\n" "\n" "\n" "\n" "\n"; QRegExp re("\\s{2,}"); qDebug() << strHtml; strHtml = strHtml.replace(re,""); QFile file("d3platform.html"); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); out << strHtml; file.close(); QUrl url = QUrl::fromLocalFile(QDir::current().absoluteFilePath("d3platform.html")); m_WVD3View.load(url); //m_WVD3View.settings()->setObjectCacheCapacities(0,0,0); m_WVD3View.repaint(); m_WVD3View.show(); } void YMPlatformWidget::D3ViewTree() { //QMap mapResult = m_mapResult; QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\":[\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\":[\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\":[\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\":[\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; QRegExp re("\\s"); strjson = strjson.replace(re,""); QString strHtml; strHtml = "" "\n " "\n " "\n" "\n Tree Example" "\n" "\n " "\n" "\n " "\n" "\n " "\n" "\n " "\n" "\n " "\n" "\n " "\n " "\n"; qDebug() << strHtml; /* QFile file("d3platform.html"); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); out << strHtml; file.close(); */ m_WVD3View.setHtml(strHtml.toUtf8()); //m_WVD3View.settings()->setObjectCacheCapacities(0,0,0); m_WVD3View.repaint(); m_WVD3View.show(); } void YMPlatformWidget::D3ViewTreeFile() { //QMap mapResult = m_mapResult; QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\":[\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\":[\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\":[\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\":[\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; QRegExp re("\\s"); strjson = strjson.replace(re,""); QString strHtml; strHtml = "" "\n " "\n " "\n" "\n Tree Example" "\n" "\n " "\n" "\n " "\n" "\n " "\n" "\n " "\n" "\n " "\n" "\n " "\n " "\n"; qDebug() << strHtml; QFile file("d3platformtree.html"); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); out << strHtml; file.close(); QUrl url = QUrl::fromLocalFile(QDir::current().absoluteFilePath("d3platformtree.html")); m_WVD3View.load(url); //m_WVD3View.settings()->setObjectCacheCapacities(0,0,0); m_WVD3View.repaint(); m_WVD3View.show(); } void YMPlatformWidget::TestUpload() { //QMap mapResult = m_mapResult; QMap > > > mapResult; QString strCKeyword = getCenterKeyword(); //qDebug() << "executed"; { STable* pTable = (STable*)((QTabWidget*)(m_ptwTable->currentWidget()))->currentWidget(); if(pTable->columnCount() < 4) return; int nCountIndex = pTable->columnCount() - 1; int nTDKeywordIndex = pTable->columnCount() - 2; int nODKeywordIndex = pTable->columnCount() - 4; int nPlatformName = 0; int nPlatformForm = 1; for (int i = 0; i < pTable->rowCount(); i++) { QString strODKeyword = pTable->item(i, nODKeywordIndex)->text().trimmed(); QString strTDKeyword = pTable->item(i, nTDKeywordIndex)->text().trimmed(); QString strPlatformName = pTable->item(i, nPlatformName)->text().trimmed(); QString strPlatformForm = pTable->item(i, nPlatformForm)->text().trimmed(); int nCount = pTable->item(i, nCountIndex)->text().trimmed().toInt(); if(mapResult.contains(strPlatformName)) { if(mapResult[strPlatformName].contains(strPlatformForm)) { if(mapResult[strPlatformName][strPlatformForm].contains(strODKeyword)) { mapResult[strPlatformName][strPlatformForm][strODKeyword].insert(strTDKeyword, nCount); } else { QMap qLast; qLast.insert(strTDKeyword, nCount); mapResult[strPlatformName][strPlatformForm].insert(strODKeyword, qLast); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); mapResult[strPlatformName].insert(strPlatformForm, qMedium); } } else { QMap qLast; qLast.insert(strTDKeyword, nCount); QMap > qMedium; qMedium.insert(strODKeyword, qLast); QMap > > qFirst; qFirst.insert(strPlatformForm, qMedium); mapResult.insert(strPlatformName, qFirst); } } } QString strjson = "{\n\t\"name\":\" " + strCKeyword + "\",\n"; strjson += ("\t\"children\": [\n"); for(QMap > > >::iterator iterPos1 = mapResult.begin(); iterPos1 != mapResult.end(); iterPos1++) { int sum1 = 0; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum1 += iterPos4.value(); } } } strjson += "\t{\n"; //strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\n"); strjson += ("\t\t\"name\":\"" + iterPos1.key() + "\",\"size\":" + QString::number(sum1) + ",\n"); strjson += "\t\t\"children\": [\n"; for(QMap > >::iterator iterPos2 = iterPos1.value().begin(); iterPos2 != iterPos1.value().end(); iterPos2++) { int sum2 = 0; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum2 += iterPos4.value(); } } strjson += "\t\t{\n"; //strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\n"); strjson += ("\t\t\t\"name\":\"" + iterPos2.key() + "\",\"size\":" + QString::number(sum2) + ",\n"); strjson += "\t\t\t\"children\": [\n"; for(QMap >::iterator iterPos3 = iterPos2.value().begin(); iterPos3 != iterPos2.value().end(); iterPos3++) { int sum3 = 0; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { sum3 += iterPos4.value(); } strjson += "\t\t\t{\n"; strjson += ("\t\t\t\t\"name\":\"" + iterPos3.key() + + "\",\"size\":" + QString::number(sum3) + ",\n"); strjson += "\t\t\t\t\"children\": [\n"; for(QMap::iterator iterPos4 = iterPos3.value().begin(); iterPos4 != iterPos3.value().end(); iterPos4++) { strjson += ("\t\t\t\t\t{\"name\": \"" + iterPos4.key() + "\",\"size\":" + QString::number(iterPos4.value()) + "},\n"); } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t\t]\n\t\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t\t]\n\t\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t\t]\n\t},\n"; } strjson = strjson.trimmed(); strjson = strjson.left(strjson.length() - 1); strjson += "\n\t]\n}"; QFile file("c:/data/jsontest2.txt"); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QTextStream out(&file); out << strjson; file.close(); /* QSqlDatabase dbWeb = QSqlDatabase::addDatabase("QMYSQL"); dbWeb.setHostName("db.big-bird.co.kr"); dbWeb.setUserName("concepters"); dbWeb.setPassword("con97996655"); dbWeb.setDatabaseName("dbconcepters"); int nCompany = 90; if(!dbWeb.open()) qDebug() << "DB open Failed"; QSqlQuery query(QSqlDatabase::database(dbWeb.connectionName())); QString strquery; strquery = "insert into stats_json (jdata, company_num) values ('" + strjson + "', " + QString::number(nCompany) + ")"; if(!query.exec(strquery.toUtf8())) { strquery = "update stats_json set jdata='" + strjson + "' where company_num=" + QString::number(nCompany); if(!query.exec(strquery.toUtf8())) { qDebug() << query.lastError().text(); } } dbWeb.close(); */ } void YMPlatformWidget::setParam(QString strJson) { SJson json; { QString strMorphere = json.Get(strJson, "MorphereList"); QStringList slMorphere = strMorphere.split(" ", QString::SkipEmptyParts); for(int i = 0; i < m_plwMorphereAdd->count(); i++) { m_plwMorphereAdd->item(i)->setHidden(true); } for(int i = 0; i < m_plwMorphereAdd->count(); i++) { foreach(QString morphere, slMorphere) { if(m_plwMorphereAdd->item(i)->data(Qt::UserRole).toString().compare(morphere, Qt::CaseInsensitive) == 0) { m_plwMorphereAdd->item(i)->setHidden(false); } } } } { int nThread = json.Get(strJson, "Thread").toInt(); for(int i = 0; i < m_pcbThread->count(); i++) { //qDebug() << m_pcbThread->itemData(i).toInt(); if(m_pcbThread->itemText(i).trimmed().toInt() == nThread) { m_pcbThread->setCurrentIndex(i); break; } } } { QString strCountMethod = json.Get(strJson, "CountMethod").trimmed(); for(int i = 0; i < m_pcbCountMethod->count(); i++) { //qDebug() << m_pcbThread->itemData(i).toInt(); if(m_pcbCountMethod->itemText(i).trimmed().compare(strCountMethod) == 0) { m_pcbCountMethod->setCurrentIndex(i); break; } } } { QString strRecentPeriod = json.Get(strJson, "RecentPeriod").trimmed(); for(int i = 0; i < m_pcbDuring->count(); i++) { //qDebug() << m_pcbThread->itemData(i).toInt(); if(m_pcbDuring->itemText(i).trimmed().compare(strRecentPeriod) == 0) { m_pcbDuring->setCurrentIndex(i); break; } } } { int nPeriod = json.Get(strJson, "Period").toInt(); m_pcbPeriod->setCurrentIndex(nPeriod); } { int nBodyTitle = json.Get(strJson, "TitleBody").toInt(); m_pcbData->setCurrentIndex(nBodyTitle); } { QString strDateAll = json.Get(strJson, "DateALL").trimmed(); if(strDateAll.compare("true",Qt::CaseInsensitive) == 0) { m_pcbDate->setCurrentIndex(0); } else { m_pcbDate->setCurrentIndex(1); } } { QString strRecentDate = json.Get(strJson, "RecentDate"); m_pleDates->setText(strRecentDate); } { m_pdeStart->setDate(QDate::fromString(json.Get(strJson,"DateStart"),"yyyyMMdd")); m_pdeEnd->setDate(QDate::fromString(json.Get(strJson,"DateEnd"),"yyyyMMdd")); } { QString userdict = json.Get(strJson, "UserDict"); if(!userdict.isEmpty()) { m_pcbDictionary->clear(); QStringList sluserdict = userdict.split(","); foreach(QString dict, sluserdict) { m_pcbDictionary->addItem(dict); } } else { m_pcbDictionary->clear(); } } { QString extractor = json.Get(strJson, "Extractor"); m_pleFilterExtractor->setText(extractor); } { QString keywordfilter = json.Get(strJson, "KeywordFilter"); m_pleFilterKeyword->setText(keywordfilter); } { QString keywordlengthfilter = json.Get(strJson, "KeywordLengthFilter"); m_pleFilterKeywordLength->setText(keywordlengthfilter); } { QString RankFilterAll = json.Get(strJson, "RankFilterAll"); m_pleFilterRankALL->setText(RankFilterAll); } { QString RankSeparated = json.Get(strJson, "RankFilterSeparated"); m_pleFilterRankSeparated->setText(RankSeparated); } { QString CenterKeyword = json.Get(strJson, "CenterKeyword"); m_pleCKeyword->setText(CenterKeyword); } { QString extractor = json.Get(strJson, "Extractor2"); m_pleFilterExtractor2->setText(extractor); } { QString keywordfilter = json.Get(strJson, "KeywordFilter2"); m_pleFilterKeyword2->setText(keywordfilter); } { QString keywordlengthfilter = json.Get(strJson, "KeywordLengthFilter2"); m_pleFilterKeywordLength2->setText(keywordlengthfilter); } { QString RankFilterAll = json.Get(strJson, "RankFilterAll2"); m_pleFilterRankALL2->setText(RankFilterAll); } { QString RankSeparated = json.Get(strJson, "RankFilterSeparated2"); m_pleFilterRankSeparated2->setText(RankSeparated); } } QString YMPlatformWidget::getCenterKeyword() { return m_pleCKeyword->text().trimmed(); } QMap YMPlatformWidget::convertToParam() { QMap mapParam; mapParam.insert("Algorithm", "platform"); { QString strMorphereList = getMorphereList().join(" "); mapParam.insert("MorphereList",strMorphereList); } { int nThread = getThread(); mapParam.insert("Thread", QString::number(nThread)); } { QString strUserDict = getUserDictList(); if(strUserDict.trimmed().length() > 0) mapParam.insert("UserDict", strUserDict); } { if(getDateAll()) mapParam.insert("DateALL", "true"); else mapParam.insert("DateALL", "false"); } { mapParam.insert("DateStart", QString::number(getDateStart())); mapParam.insert("DateEnd", QString::number(getDateEnd())); } { mapParam.insert("Period", QString::number(getPeriod())); } { mapParam.insert("CenterKeyword", getCenterKeyword()); } { mapParam.insert("CountMethod", m_pcbCountMethod->currentText().trimmed()); } { if(!m_pleFilterExtractor->text().trimmed().isEmpty()) mapParam.insert("Extractor", m_pleFilterExtractor->text().trimmed()); } { if(!m_pleFilterKeyword->text().trimmed().isEmpty()) mapParam.insert("KeywordFilter",m_pleFilterKeyword->text().trimmed()); } { if(!m_pleFilterKeywordLength->text().trimmed().isEmpty()) mapParam.insert("KeywordLengthFilter", m_pleFilterKeywordLength->text().trimmed()); } { if(!m_pleFilterRankALL->text().trimmed().isEmpty()) mapParam.insert("RankFilterAll", m_pleFilterRankALL->text().trimmed()); } { if(!m_pleFilterRankSeparated->text().trimmed().isEmpty()) mapParam.insert("RankFilterSeparated", m_pleFilterRankSeparated->text().trimmed()); } { if(!m_pleFilterExtractor2->text().trimmed().isEmpty()) mapParam.insert("Extractor2", m_pleFilterExtractor2->text().trimmed()); } { if(!m_pleFilterKeyword2->text().trimmed().isEmpty()) mapParam.insert("KeywordFilter2",m_pleFilterKeyword2->text().trimmed()); } { if(!m_pleFilterKeywordLength2->text().trimmed().isEmpty()) mapParam.insert("KeywordLengthFilter2", m_pleFilterKeywordLength2->text().trimmed()); } { if(!m_pleFilterRankALL2->text().trimmed().isEmpty()) mapParam.insert("RankFilterAll2", m_pleFilterRankALL2->text().trimmed()); } { if(!m_pleFilterRankSeparated2->text().trimmed().isEmpty()) mapParam.insert("RankFilterSeparated2", m_pleFilterRankSeparated2->text().trimmed()); } { mapParam.insert("RecentDate", m_pleDates->text().trimmed()); mapParam.insert("RecentPeriod", m_pcbDuring->currentText().trimmed()); } { mapParam.insert("TitleBody", QString::number(m_pcbData->currentIndex())); } { mapParam.insert("Article",QString::number(((STable *)m_pTabWidget->currentWidget())->getArticleSelect())); } return mapParam; }