package net.ms.designer.ui;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import net.ms.designer.core.MsProject;
import net.ms.designer.core.IOStreams;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class WriteToProjectXML
{
// private String status;
// String conName;
// String dbType;
// String port;
// String username;
// String password;
// String server;
// String dbName;
// String url;
Object type;
MsProject cproject;
public WriteToProjectXML(Object type,MsProject cproject)
{
this.type = type;
this.cproject = cproject;
}
// public WriteToProjectXML()
// {
//
// }
//
public void accessXMLFile(String file)throws Exception
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
Document doc = null;
File f = new File(file);
if(f.exists()){
doc = db.parse(file);
doc.normalize();
}
// if the element to insert is project ,new a "project.xml" file
// if(status.equals("Project"))
// {
// this.writeXMLFile(file);
NodeList list = doc.getElementsByTagName("project");
Element project = (Element)list.item(0);
// name�����
Element name = doc.createElement("name");
Text name_model = doc.createTextNode(""+this.cproject.getProjectName());
name.appendChild(name_model);
project.appendChild(name);
//iname����ʻ�����
Element iname = doc.createElement("iname");
CDATASection iname_model = doc.createCDATASection(""+this.cproject.getIname());
iname.appendChild(iname_model);
project.appendChild(iname);
// desc���Ŀ����
Element desc = doc.createElement("desc");
CDATASection desc_model = doc.createCDATASection(""+this.cproject.getDesc());
desc.appendChild(desc_model);
project.appendChild(desc);
//locale���������
Element locale = doc.createElement("locale");
CDATASection locale_model = doc.createCDATASection(""+this.cproject.getLocale());
locale.appendChild(locale_model);
project.appendChild(locale);
//packagename���Ŀ�İ���
Element packagename = doc.createElement("packagename");
CDATASection packagename_model = doc.createCDATASection("com."+this.cproject.getCmpy_short()+"."+this.cproject.getProjectName());
packagename.appendChild(packagename_model);
project.appendChild(packagename);
//company��
Element company = doc.createElement("company");
CDATASection company_model = doc.createCDATASection(""+this.cproject.getCmpy_short());
company.appendChild(company_model);
project.appendChild(company);
// }
TransformerFactory tFactory =TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new java.io.File(file));
transformer.transform(source, result);
}
//
// /**
// * ������
// * @param outFile
// * @throws Exception
// */
public void writeProjectElement(String outFile) throws Exception{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
System.exit(1);
pce.printStackTrace();
}
Document doc = null;
doc = db.newDocument();
Element root = doc.createElement("richweb");
// ��Ԫ��������ĵ�
doc.appendChild(root);
Element project = doc.createElement("project");
root.appendChild(project);
// ��XML�ĵ������ָ�����ļ�
// FileOutputStream outStream = new FileOutputStream(outFile);
// OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
//// ((XmlDocument) doc).write(outWriter, "gb2312");
// ((XmlDocument) doc).write(outWriter, "UTF-8"); //Ӧ��utf-8���뷽ʽ
// outWriter.close();
// outStream.close();
IOStreams ioStreams = new IOStreams ();
ioStreams.transformToFile(doc,outFile);
}
public static void main(String[] args){
WriteToProjectXML write = new WriteToProjectXML(null,null);
try{
write.writeProjectElement("E:\\project.xml");
//System.out.println("finished");
}catch(Exception e){
e.printStackTrace();
}
}
// insert the datasource tag
// if(status.equals("DataSource"))
// {
// writeXMLFile(file);
//
// }
//// insert the package tag
// if(status.equals("Package"))
// {
// NodeList list = doc.getElementsByTagName("project");
// Element package1 = doc.createElement("package");
//
// //name�����
// Element p1name = doc.createElement("name");
// Text p1name_model = doc.createTextNode("�����������:pack1");
// p1name.appendChild(p1name_model);
// package1.appendChild(p1name);
//
// //iname����ʻ�����
// Element p1iname = doc.createElement("iname");
// CDATASection p1iname_model = doc.createCDATASection("���ʻ�����,�磺�����1");
// p1iname.appendChild(p1iname_model);
// package1.appendChild(p1iname);
//
// list.item(0).appendChild(package1);
// }
////
//// insert the component tag
//// not finished
// if(status.equals("Component"))
// {
// NodeList list = doc.getElementsByTagName("package");
//
// Element component = doc.createElement("component");
//
// // name�����
// Element compname = doc.createElement("name");
// Text compname_model = doc.createTextNode("�������,�磺����");
// compname.appendChild(compname_model);
// component.appendChild(compname);
//
// // iname����ʻ�����
// Element compiname = doc.createElement("iname");
// CDATASection compiname_model = doc.createCDATASection("���ʻ�����,�磺����");
// compiname.appendChild(compiname_model);
// component.appendChild(compiname);
//
// // desc��������
// Element compdesc = doc.createElement("desc");
// CDATASection compdesc_model = doc.createCDATASection("����������磺����һ�����Ե�����");
// compdesc.appendChild(compdesc_model);
// component.appendChild(compdesc);
//
// // path�·��(xml�ļ���)
// Element comppath = doc.createElement("path");
// CDATASection comppath_model = doc.createCDATASection("·��(xml�ļ���)���磺test.pack1.comp1");
// comppath.appendChild(comppath_model);
// component.appendChild(comppath);
//
// // hasWf��Ƿ������̣�0��1
// Element comphasWf = doc.createElement("hasWf");
// Text comphasWf_model = doc.createTextNode("�Ƿ�������,0��1");
// comphasWf.appendChild(comphasWf_model);
// component.appendChild(comphasWf);
//
// // workflow������������˲�����
// Element workflow = doc.createElement("workflow");
//
// Element wfName = doc.createElement("name");
// Text wfName_model = doc.createTextNode("������EN");
// wfName.appendChild(wfName_model);
// workflow.appendChild(wfName);
//
// Element wfIname = doc.createElement("iname");
// CDATASection wfIname_model = doc.createCDATASection("������CN�����ʻ�����");
// wfIname.appendChild(wfIname_model);
// workflow.appendChild(wfIname);
//
// Element wfPath = doc.createElement("path");
// CDATASection wfPath_model = doc.createCDATASection("������̵�xml�ļ���");
// wfPath.appendChild(wfPath_model);
// workflow.appendChild(wfPath);
//
// component.appendChild(workflow);
//
// for(int i = 0 ; i < list.getLength(); i++)
// {
// //select which package to insert by checking the package name
// if(((Element)list.item(i)).getElementsByTagName("name")
// .equals(""))
// {
// ((Element)list.item(i)).appendChild(component);
// }
// }
// }
//
//// insert the wfparticipants tag
// if(status.equals("wfparticipants"))
// {
// Element wfparticipants = doc.createElement("wfparticipants");
//
// //participant�һ������ߣ�����ж��ֻ��ѭ��participant�е����ݣ��кŷ�Χ�ǣ�152-178
// Element participant = doc.createElement("participant");
//
// Element partiName = doc.createElement("name");
// Text partiName_model = doc.createTextNode("ִ�������ƣ�Ҫ��Ӣ�ģ�");
// partiName.appendChild(partiName_model);
// participant.appendChild(partiName);
//
//// desc�ִ��������
// Element partidesc = doc.createElement("desc");
// CDATASection partidesc_model = doc.createCDATASection("ִ�����������磺����");
// partidesc.appendChild(partidesc_model);
// participant.appendChild(partidesc);
//
// //type�ִ��������,1��2���ֱ����java��ͽű�
// //����java�࣬Ҫ���ڽ�������path�����������������ƣ��ű�Ҫ��������ķ���
// Element partiType = doc.createElement("type");
// Text partiType_model = doc.createTextNode("ִ�������ͣ�1��2");
// partiType.appendChild(partiType_model);
// participant.appendChild(partiType);
//
// //����java�࣬Ҫ���������������ƣ��ű�Ҫ��������ķ���
// Element partiPath = doc.createElement("path");
// Text partiPath_model = doc.createTextNode("��������,�磺net.ms.part.parti1.getuser(session)");
// partiPath.appendChild(partiPath_model);
// participant.appendChild(partiPath);
//
// wfparticipants.appendChild(participant);
//
//// project.appendChild(wfparticipants);
// }
//// insert wfapplication tag
// if(status.equals("wfapplication"))
// {
// //wfapplications�СӦ�ÿ�
// Element wfapplication = doc.createElement("wfapplication");
//
// //application�һ��Ӧ�ã�����ж��Ӧ��ֻ��ѭ�������application�е����ݣ��к��ǣ�186-247
// Element application = doc.createElement("application");
//
//// name�Ӧ������
// Element appname = doc.createElement("name");
// CDATASection appname_model = doc.createCDATASection("����,�磺����");
// appname.appendChild(appname_model);
// application.appendChild(appname);
//
//// desc�Ӧ������
// Element appdesc = doc.createElement("desc");
// CDATASection appdesc_model = doc.createCDATASection("Ӧ���������磺����һ�����Ե�����");
// appdesc.appendChild(appdesc_model);
// application.appendChild(appdesc);
//
// //type�ִ��������,1��2���ֱ����ϵͳӦ�ú��û�Ӧ��
// //����javaӦ�õĴ�java����Ҫ���������path�������������ƣ�WEBӦ�������漰���ݽ϶࣬����ҳ�棬�ʹ�����
// Element appType = doc.createElement("type");
// Text appType_model = doc.createTextNode("Ӧ�����ͣ�1��2");
// appType.appendChild(appType_model);
// application.appendChild(appType);
//
//// ����javaӦ�õĴ�java����Ҫ�������������ƣ�WEBӦ�������漰���ݽ϶࣬����ҳ�棬�ʹ�����
// Element appPath = doc.createElement("path");
// Text appPath_model = doc.createTextNode("����������,�磺app1.action)");
// appPath.appendChild(appPath_model);
// application.appendChild(appPath);
//
// //params�Ӧ�õIJ����б�
// Element params = doc.createElement("params");
// //param�һ������������,����Ƕ��������ѭ���������ǣ�217-243��
// Element param = doc.createElement("param");
//
//// name���������
// Element paramName = doc.createElement("name");
// Text paramName_model = doc.createTextNode("�������ƣ�ֻ����Ӣ�ĺ�����,�磺id");
// paramName.appendChild(paramName_model);
// param.appendChild(paramName);
//
// //type���������
// Element paramType = doc.createElement("type");
// Text paramType_model = doc.createTextNode("�������ͣ��磺2");
// paramType.appendChild(paramType_model);
// param.appendChild(paramType);
//
// //isinput��Ƿ����������
// Element isinput = doc.createElement("isinput");
// Text isinput_model = doc.createTextNode("�Ƿ������������0��1");
// isinput.appendChild(isinput_model);
// param.appendChild(isinput);
//
// //isoutput��Ƿ����������
// Element isoutput = doc.createElement("isoutput");
// Text isoutput_model = doc.createTextNode("�Ƿ������������0��1");
// isoutput.appendChild(isoutput_model);
// param.appendChild(isoutput);
//
// params.appendChild(param);
//
// application.appendChild(params);
//
// wfapplication.appendChild(application);
//
//// project.appendChild(wfapplication);
// }
// }
// public void writeXMLFile(String outFile) throws Exception
// {
// DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// DocumentBuilder db = null;
// try
// {
// db = dbf.newDocumentBuilder();
// }
// catch (ParserConfigurationException pce)
// {
// System.err.println(pce);
// System.exit(1);
// }
// Document doc = null;
// doc = db.newDocument();
//
//
//// �����ǽ���XML�ĵ����ݵĹ��̣��Ƚ�����Ԫ��
// Element root = doc.createElement("richweb");
//// ��Ԫ��������ĵ�
// doc.appendChild(root);
//
// Element project = doc.createElement("project");
//
// Element ds = doc.createElement("DataSource");
//
// Element name = doc.createElement("DataSourceName");
// Text txtName = doc.createTextNode(getConName());
// name.appendChild(txtName);
// ds.appendChild(name);
//
// Element userName = doc.createElement("username");
// Text txtUserName = doc.createTextNode(getUsername());
// userName.appendChild(txtUserName);
// ds.appendChild(userName);
//
// Element passWord = doc.createElement("password");
// Text txtPassword = doc.createTextNode(getPassword());
// passWord.appendChild(txtPassword);
// ds.appendChild(passWord);
//
// Element type = doc.createElement("type");
// Text txtType = doc.createTextNode(getDbType());
// type.appendChild(txtType);
// ds.appendChild(type);
//
// Element database = doc.createElement("database");
// Text txtDB = doc.createTextNode(getDbName());
// database.appendChild(txtDB);
// ds.appendChild(database);
//
// Element ePort = doc.createElement("port");
// Text txtPort = doc.createTextNode(getPort());
// ePort.appendChild(txtPort);
// ds.appendChild(ePort);
//
// Element eServer = doc.createElement("server");
// Text txtServer = doc.createTextNode(getServer());
// eServer.appendChild(txtServer);
// ds.appendChild(eServer);
//
// Element max = doc.createElement("maxConnections");
// Text txtMax = doc.createTextNode("10");
// max.appendChild(txtMax);
// ds.appendChild(max);
//
// project.appendChild(ds);
// //wfparticipants��,������ִ����
//
//
// root.appendChild(project);
//
//// ��XML�ĵ������ָ�����ļ�
// FileOutputStream outStream = new FileOutputStream(outFile);
// OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
//// ((XmlDocument) doc).write(outWriter, "gb2312");
// ((XmlDocument) doc).write(outWriter, "UTF-8"); //Ӧ��utf-8���뷽ʽ
// outWriter.close();
// outStream.close();
//
// }
//// DBType
// public String getDbType()
// {
// return this.dbType;
// }
// public void setDbType(String str)
// {
// this.dbType = str;
// }
//// DBName
// public String getDbName()
// {
// return this.dbName;
// }
// public void setDbName(String str)
// {
// this.dbName = str;
// }
//// server
// public String getServer()
// {
// return this.server;
// }
// public void setServer(String str)
// {
// this.server = str;
// }
//// Port
// public String getPort()
// {
// return this.port;
// }
// public void setPort(String str)
// {
// this.port = str;
// }
//// userName
// public String getUsername()
// {
// return this.username;
// }
// public void setUsername(String str)
// {
// this.username = str;
// }
//// password
// public String getPassword()
// {
// return this.password;
// }
// public void setPassword(String str)
// {
// this.password = str;
// }
//// url
// public String getUrl()
// {
// return this.url;
// }
// public void setUrl(String str)
// {
// this.url = str;
// }
//// connect name
// public String getConName()
// {
// return this.conName;
// }
// public void setConName(String str)
// {
// this.conName = str;
// }
}