xml::XMLElement* DecisionTree::loadXMLSettings(xml::XMLElement* elem)
{
	xml::XMLElement*e;
	e=elem->getSubElement(mT("scheme"));
	if(e)
	{
		if(m_scheme)
			delete m_scheme;
		m_scheme=new AttributesScheme();
		m_scheme->loadXMLSettings(e);
	}
	e=elem->getSubElement(mT("training"));
	if(e)
	{
		xml::XMLAttribute*attr=e->getAttribute(mT("Target"));
		if(!attr)
			return elem;
		TrainingDataSet ds(m_scheme);
		ds.loadExamplesFromXML(e);
		Train(&ds,attr->value);

		//test
		
		xml::XMLElement e(mT("DT"));
		exportXMLSettings(&e);
		GCPtr<OS::IStream> stream=gFileSystem.openFile(mT("IDT.xml"),OS::TXT_WRITE);
		xml::XMLWriter w;
		w.addElement(&e);
		OS::StreamWriter ww(stream);
		ww.writeString(w.flush());
		stream->close();

	}
	return elem;
}
Example #2
0
//slot called when the save button is triggered
void ConnectionSettings::validationConnectionSettings(){
    QString argPres;
    if(nbArg->text()=="0"){
        argPres= "<font color=red> Without any Argument !</font>";
    }else{
        for(int i=0; i<nbArg->text().toInt(); i++){
            argPres = argPres +"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color= black><b>- Arg " + QString::number(i+1) + " : </b>("
                    + tabArgOutline[i]->text() +") </font>";

            QString az = tabArgSuf[i]->metaObject()->className();
            QString cond;
            if(az=="QLineEdit"){
               cond = reinterpret_cast<QLineEdit*>(tabArgSuf[i])->text();
            }

            if(cond =="" && az != "QSpinBox"){
                argPres += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=green>Without prefix</font>";
            }else if (az != "QSpinBox"){
                argPres += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color = green>Prefixe : " + cond + "</font>";
            }

            argPres += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Typed as : <font color = red>" + tabArgType[i]->currentText()+"</font>";
            int curseur =0;
            if(tabArgType[i]->currentText()=="Choice"){
                int curse = curseur;
                for(int j=curse; j<reinterpret_cast<QSpinBox*>(tabArgSuf[i])->text().toInt()+curse; j++){
                    if(tabChoixPrefix[j]->text()==""){
                    argPres+="<br>Witout Prefix ; Choice Name : "+ tabChoixNom[j]->text()+" ; Parametre : "+ tabChoixParam[j]->text();
                    curseur+=1;
                    }else{
                        argPres+="<br>Prefix : "+ tabChoixPrefix[j]->text() +" ; Choice Name : "+ tabChoixNom[j]->text()+" ; Parametre : "+ tabChoixParam[j]->text();
                        curseur+=1;
                    }
                }

            }
            if(tabArgfacul[i]->isChecked()){
                argPres += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color= blue>Facultative </font>";
            }else{
                argPres += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color = blue>Mandatory </font>";
            }
            argPres += "<br>";
        }
    }

    int reponse = QMessageBox::question(this, "Computation Settings Validation",
                "Do you really  want to save these settings ? <br><br> <font color= black><b>Function Name : </b></font>"
                                        + name->text()+"<br> <font color= black><b>Program Name : </b></font>"
                                        + program->text()+"<br>"
                                        + argPres,
                                        QMessageBox::No | QMessageBox::Yes);

    if (reponse == QMessageBox::Yes){
            exportXMLSettings();
            QMessageBox::information(this, "Computation Setting Validated", "Export done");
            this->quit();
    }
}