00001 #include <QtGui>
00002 #include "generateshapetopology.h"
00003
00004 #include "../../pihmLIBS/generatePolyFile.h"
00005 #include "../../pihmLIBS/helpDialog/helpdialog.h"
00006
00007 #include <fstream>
00008 using namespace std;
00009
00010 generateShapeTopologyDlg::generateShapeTopologyDlg(QWidget *parent)
00011 {
00012 setupUi(this);
00013 connect(inputBrowseButton, SIGNAL(clicked()), this, SLOT(inputBrowse()));
00014 connect(outputBrowseButton, SIGNAL(clicked()), this, SLOT(outputBrowse()));
00015 connect(okButton, SIGNAL(clicked()), this, SLOT(run()));
00016 connect(helpButton, SIGNAL(clicked()), this, SLOT(help()));
00017 connect(cancelButton, SIGNAL(clicked()), this, SLOT(close()));
00018 }
00019
00020 void generateShapeTopologyDlg::inputBrowse()
00021 {
00022 QString str = QFileDialog::getOpenFileName(this, "Choose File", "~/","Shape File(*.shp *.SHP)");
00023 inputFileLineEdit->setText(str);
00024 }
00025
00026
00027 void generateShapeTopologyDlg::outputBrowse()
00028 {
00029 QString temp = QFileDialog::getSaveFileName(this, "Choose File", "~/","Poly File(*.poly)");
00030 QString tmp = temp;
00031 if(!(tmp.toLower()).endsWith(".poly")){
00032 tmp.append(".poly");
00033 temp = tmp;
00034 }
00035
00036 outputFileLineEdit->setText(temp);
00037 }
00038
00039
00040 void generateShapeTopologyDlg::run()
00041 {
00042
00043 QString logFileName("c:\log.html");
00044 ofstream log;
00045 log.open(logFileName.ascii());
00046 log<<"<html><body><font size=3 color=black><p> Verifying Files...</p></font></body></html>";
00047 log.close();
00048 MessageLog->setSource(logFileName);
00049 MessageLog->setFocus();
00050 MessageLog->setModified(TRUE);
00051
00052
00053 QString inputFileName((inputFileLineEdit->text()));
00054 QString outputFileName((outputFileLineEdit->text()));
00055
00056 ifstream inFile; inFile.open((inputFileLineEdit->text()).ascii());
00057 ofstream outFile; outFile.open((outputFileLineEdit->text()).ascii());
00058 int runFlag = 1;
00059
00060 log.open(logFileName.ascii(), ios::app);
00061 if(inputFileName.length()==0){
00062 log<<"<p><font size=3 color=red> Error! Please input Flow Acc. Grid Input File</p>";
00063 runFlag = 0;
00064 }
00065 else{
00066 log<<"<p>Checking... "<<inputFileName.ascii()<<"... ";
00067 if(inFile == NULL){
00068 log<<"<font size=3 color=red> Error!</p>";
00069 qWarning("\n%s doesn't exist!", (inputFileLineEdit->text()).ascii());
00070 runFlag = 0;
00071 }
00072 else
00073 log<<"Done!</p>";
00074 }
00075 log.close();
00076 MessageLog->reload();
00077 QApplication::processEvents();
00078
00079 log.open(logFileName.ascii(), ios::app);
00080 if(outputFileName.length()==0){
00081 log<<"<p><font size=3 color=red> Error! Please input Stream Grid Output File</p>";
00082 runFlag = 0;
00083 }
00084 else{
00085 log<<"<p>Checking... "<<outputFileName.ascii()<<"... ";
00086 if(outFile == NULL){
00087 log<<"<font size=3 color=red> Error!</p>";
00088 qWarning("\nCan not open output file name");
00089 runFlag = 0;
00090 }
00091 else
00092 log<<"Done!</p>";
00093 }
00094 log.close();
00095 MessageLog->reload();
00096 QApplication::processEvents();
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111 if(runFlag == 1){
00112 log.open(logFileName.ascii(), ios::app);
00113 log<<"<p>Running...";
00114 log.close();
00115 MessageLog->reload();
00116 QApplication::processEvents();
00117
00118 generatePolyFile(inputFileName.ascii(), outputFileName.ascii(), "dummy");
00119
00120 log.open(logFileName.ascii(), ios::app);
00121 log<<" Done!</p>";
00122 log.close();
00123 MessageLog->reload();
00124 QApplication::processEvents();
00125 }
00126 }
00127
00128
00129
00130 void generateShapeTopologyDlg::help()
00131 {
00132 helpDialog* hlpDlg = new helpDialog(this, "Read Shape Topology", 1, "helpFiles/readshapetopology.html", "Help :: Read Shape Topology");
00133 hlpDlg->show();
00134
00135 }