From 070c8012d293156dc4e23da3273b4785cfa42337 Mon Sep 17 00:00:00 2001 From: Carsten Niehaus Date: Fri, 14 Oct 2005 10:28:41 +0000 Subject: [PATCH] first version of the cml-support. Need feedback from the cml-folks svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=470556 --- libscience/spectrumparser.cpp | 104 +++++++++++++++++++++++++++------- libscience/spectrumparser.h | 2 +- 2 files changed, 83 insertions(+), 23 deletions(-) diff --git a/libscience/spectrumparser.cpp b/libscience/spectrumparser.cpp index 3ce4e73..5e6ca45 100644 --- a/libscience/spectrumparser.cpp +++ b/libscience/spectrumparser.cpp @@ -12,13 +12,12 @@ email : cniehaus@kde.org ***************************************************************************/ #include "spectrumparser.h" #include "spectrum.h" +#include "element.h" -#include -#include #include -#include -#include -#include +#include +#include +#include #include #include @@ -40,31 +39,92 @@ void SpectrumParser::saveSpectrum( Spectrum *spectrum ) QDomDocument doc( "SpectrumDocument" ); QFile docfile( "/home/carsten/test.xml" ); -// QTextStream stream( m_file ); QList blist = spectrum->bandlist(); - QDomElement docelem = doc.createElement( "spectrum" ); - doc.appendChild( docelem ); + QDomElement cmlElement = doc.createElement( "cml" ); + QDomElement spectrumListElement = doc.createElement( "spectrumList" ); + QDomElement spectrumElement = doc.createElement( "spectrum" ); + QDomElement metadataListElement = doc.createElement( "metadataList" ); + + //metadata +//X QDomElement metadataElement = doc.createElement( "metadata" ); +//X if ( spectrum ) +//X { +//X metadataElement.setAttribute("content",spectrum->parentElement()->elname() ); +//X metadataElement.setAttribute("name","ElementName"); +//X } + + QDomElement metadataElement2 = doc.createElement( "metadata" ); + metadataElement2.setAttribute("content", "National Institute of Standards and Technology" ); + metadataElement2.setAttribute("name","OWNER"); + + QDomElement peakListElement = doc.createElement( "peakList" ); + + doc.appendChild( cmlElement ); + cmlElement.appendChild( spectrumListElement ); + spectrumListElement.appendChild( spectrumElement ); + spectrumElement.appendChild( metadataListElement ); +//X if ( spectrum ) +//X metadataListElement.appendChild( metadataElement ); + metadataListElement.appendChild( metadataElement2 ); + spectrumElement.appendChild( peakListElement ); foreach( Spectrum::band* band, blist ) { - QDomElement bandelem = doc.createElement( "band" ); - bandelem.setAttribute( "wavelength", band->wavelength ); - bandelem.setAttribute( "intensity", band->intensity ); - bandelem.setAttribute( "aki", band->aki ); - bandelem.setAttribute( "energy1", band->energy1 ); - bandelem.setAttribute( "energy2", band->energy2 ); - bandelem.setAttribute( "term1", band->term1 ); - bandelem.setAttribute( "term2", band->term2 ); - bandelem.setAttribute( "electronconfig1", band->electronconfig1 ); - bandelem.setAttribute( "electronconfig2", band->electronconfig2 ); - bandelem.setAttribute( "J1", band->J1 ); - bandelem.setAttribute( "J2", band->J2 ); - docelem.appendChild( bandelem ); - } + QDomElement peakElement = doc.createElement( "peak" ); + peakElement.setAttribute( "id" , "" ); + peakElement.setAttribute( "xUnits", "nm" ); + peakElement.setAttribute( "xValue", band->wavelength ); + peakElement.setAttribute( "yUnits", "Intensity relative to 1000" ); + peakElement.setAttribute( "yValue", band->intensity ); + //now the scalar values + QDomElement scalar = doc.createElement( "scalar" ); + QDomElement scalar2 = doc.createElement( "scalar" ); + QDomElement scalar3 = doc.createElement( "scalar" ); + QDomElement scalar4 = doc.createElement( "scalar" ); + QDomElement scalar5 = doc.createElement( "scalar" ); + QDomElement scalar6 = doc.createElement( "scalar" ); + QDomElement scalar7 = doc.createElement( "scalar" ); + QDomElement scalar8 = doc.createElement( "scalar" ); + QDomElement scalar9 = doc.createElement( "scalar" ); + scalar.setAttribute( "title","aki" ); + scalar2.setAttribute( "title","energy1" ); + scalar3.setAttribute( "title","energy2" ); + scalar4.setAttribute( "title","term1" ); + scalar5.setAttribute( "title","term2" ); + scalar6.setAttribute( "title","electronconfig1" ); + scalar7.setAttribute( "title","electronconfig2" ); + scalar8.setAttribute( "title","J1" ); + scalar9.setAttribute( "title","J2" ); + + scalar.setNodeValue( "test123" );//QString::number( band->aki ) ); + +//X peakElement.setAttribute( "aki", band->aki ); +//X peakElement.setAttribute( "energy1", band->energy1 ); +//X peakElement.setAttribute( "energy2", band->energy2 ); +//X peakElement.setAttribute( "term1", band->term1 ); +//X peakElement.setAttribute( "term2", band->term2 ); +//X peakElement.setAttribute( "electronconfig1", band->electronconfig1 ); +//X peakElement.setAttribute( "electronconfig2", band->electronconfig2 ); +//X peakElement.setAttribute( "J1", band->J1 ); +//X peakElement.setAttribute( "J2", band->J2 ); + + + peakElement.appendChild( scalar ); + peakElement.appendChild( scalar2 ); + peakElement.appendChild( scalar3 ); + peakElement.appendChild( scalar4 ); + peakElement.appendChild( scalar5 ); + peakElement.appendChild( scalar6 ); + peakElement.appendChild( scalar7 ); + peakElement.appendChild( scalar8 ); + peakElement.appendChild( scalar9 ); + + peakListElement.appendChild( peakElement ); + } kdDebug() << "Text: " << doc.toString() << endl; } diff --git a/libscience/spectrumparser.h b/libscience/spectrumparser.h index 776c005..e3e4e73 100644 --- a/libscience/spectrumparser.h +++ b/libscience/spectrumparser.h @@ -37,7 +37,7 @@ class SpectrumParser void saveSpectrum( Spectrum *spectrum ); - Spectrum* loadSpectrum( QFile *file ); + Spectrum* loadSpectrum( QFile *file, int elementnumber ); // private: QFile m_file; -- 2.47.3