/* This file is part of the KDE project
   Copyright (C) 2003 Lucijan Busch <lucijan@kde.org>

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
*/

#include <sys/types.h>
#include <unistd.h>

#include <tqdom.h>
#include <tqdir.h>
#include <tqfile.h>
#include <tqregexp.h>

#include <kglobal.h>
#include <kstandarddirs.h>
#include <kdebug.h>
#include <kio/netaccess.h>
#include <kurl.h>
#include <klocale.h>
#include <kmessagebox.h>

#include <kexidb/connectiondata.h>
#include <kexidb/drivermanager.h>
#include "kexiprojectconnectiondata.h"

KexiProjectConnectionData::KexiProjectConnectionData(): KexiDB::ConnectionData()
{
}

KexiProjectConnectionData::KexiProjectConnectionData(const TQString& driverName, const TQString& databaseName, const TQString &host, 
		unsigned short int rport, const TQString& user, const TQString &pass, const TQString& file):KexiDB::ConnectionData()
{
	m_driverName=driverName;
	m_databaseName=databaseName;
	hostName=host;
	port=rport;
	userName=user;
	password=pass;
	setFileName(file);
}

KexiProjectConnectionData::KexiProjectConnectionData(const TQString &driverName, const TQString &fileName)
 : KexiDB::ConnectionData()
{
	m_driverName=driverName;
	setFileName(fileName);
}

const TQString &
KexiProjectConnectionData::generateTmpName()
{
	return TQString();
}

KexiProjectConnectionData*
KexiProjectConnectionData::loadInfo(TQDomElement &rootElement)
{
	TQDomElement engineElement = rootElement.namedItem("engine").toElement();
	TQDomElement hostElement = rootElement.namedItem("host").toElement();
	TQDomElement portElement = rootElement.namedItem("port").toElement();
	TQDomElement nameElement = rootElement.namedItem("name").toElement();
	TQDomElement userElement = rootElement.namedItem("user").toElement();
	TQDomElement passElement = rootElement.namedItem("password").toElement();
	TQDomElement persElement = rootElement.namedItem("persistant").toElement();
	TQDomElement encodingElement = rootElement.namedItem("encoding").toElement();

	KexiProjectConnectionData *tmp=new KexiProjectConnectionData(
		engineElement.text(), nameElement.text(),hostElement.text(),portElement.text().toInt(),
		userElement.text(),passElement.text(),"");	

	return tmp;
}

void    KexiProjectConnectionData::setDriverName(const TQString &driverName) {
	m_driverName=driverName;
}

void KexiProjectConnectionData::setDatabaseName(const TQString &databaseName) {
	m_databaseName=databaseName;
}

TQString KexiProjectConnectionData::driverName() const {
	return m_driverName;
}

TQString KexiProjectConnectionData::databaseName() const {
	return m_databaseName;
}


void
KexiProjectConnectionData::writeInfo(TQDomDocument &domDoc)
{
	TQDomElement connectionElement = domDoc.createElement("KexiDBConnection");
	domDoc.documentElement().appendChild(connectionElement);

//DB ENGINE
	TQDomElement engineElement = domDoc.createElement("engine");
	connectionElement.appendChild(engineElement);

	TQDomText tEngine = domDoc.createTextNode(m_driverName);
	engineElement.appendChild(tEngine);

//HOST
	TQDomElement hostElement = domDoc.createElement("host");
	connectionElement.appendChild(hostElement);

	TQDomText tHost = domDoc.createTextNode(hostName);
	hostElement.appendChild(tHost);

//DATABASE NAME
	TQDomElement nameElement = domDoc.createElement("name");
	connectionElement.appendChild(nameElement);

	TQDomText tName = domDoc.createTextNode(m_databaseName);
	nameElement.appendChild(tName);

//USER
	TQDomElement userElement = domDoc.createElement("user");
	connectionElement.appendChild(userElement);

	TQDomText tUser = domDoc.createTextNode(userName);
	userElement.appendChild(tUser);

//PASSWORD STUFF
	TQDomElement passElement = domDoc.createElement("password");
	connectionElement.appendChild(passElement);

	TQDomText tPass=domDoc.createTextNode(password);
	passElement.appendChild(tPass);

}



KexiProjectConnectionData::~KexiProjectConnectionData()
{
}