]> Git trees. - libqmvoc.git/commitdiff
* adding demo-xml for r/s phrases. emc2[]: please hand me the real data
authorCarsten Niehaus <cniehaus@gmx.de>
Fri, 2 Jun 2006 13:39:20 +0000 (13:39 +0000)
committerCarsten Niehaus <cniehaus@gmx.de>
Fri, 2 Jun 2006 13:39:20 +0000 (13:39 +0000)
* adding the reading code in the parser
* adding a demo in the datadialog so taht emc2[] sees how to do it

svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=547536

libscience/chemicaldataobject.cpp
libscience/chemicaldataobject.h
libscience/data/elements.xml
libscience/elementparser.cpp

index 8cdcbe6298f61230e533e89430e816814b489995..edd303f33375bb0bae10e1f5aac48fdd335b12bf 100644 (file)
@@ -224,6 +224,15 @@ QString ChemicalDataObject::dictRef() const
                case density:
                        botype ="density";
                        break;
+               case dangerSymbol:
+                       botype ="dangerSymbol";
+                       break;
+               case RPhrase:
+                       botype ="RPhrase";
+                       break;
+               case SPhrase:
+                       botype ="SPhrase";
+                       break;
        }
 
        botype = botype.prepend( "bo:" );
index 6b109ebf7f26131b6ad7afad9b50486a326a6017..fdb9bddc00f7c4b5add48b1dbb2933648927527c 100644 (file)
@@ -81,7 +81,10 @@ class EDUSCIENCE_EXPORT ChemicalDataObject
                        betaminuspercentage/**< The percentage of betaminusdecay */,
                        betaminusDecay/**< The decayenergy of betaminusdecay in MeV */,
                        ecpercentage/**< The percentage of ecdecay */,
-                       ecDecay/**< The decayenergy of ecminusdecay in MeV */
+                       ecDecay/**< The decayenergy of ecminusdecay in MeV */,
+                       dangerSymbol/**< the danger symbols are the dangers associated with an element, for example Xn,T+ */,
+                       RPhrase/**< */,
+                       SPhrase/**< */
                };
 
                /**
index 6300ff569017c80b9b926e568f8191a7f5605b34..b48f929996f61984091593de1886990ca0a26dfd 100644 (file)
@@ -58,6 +58,9 @@
     <scalar dataType="xsd:int" dictRef="bo:group">1</scalar>
     <scalar dataType="xsd:String" dictRef="bo:electronicConfiguration">1s1</scalar>
     <scalar dataType="xsd:String" dictRef="bo:family">Non-Metal</scalar>
+    <scalar dataType="xsd:String" dictRef="bo:dangerSymbol">Xn,T+,T</scalar>
+    <scalar dataType="xsd:String" dictRef="bo:R-phrase">1,2,34-45</scalar>
+    <scalar dataType="xsd:String" dictRef="bo:S-phrase">3,5,6</scalar>
   </elementType>
   <elementType id="He">
     <scalar dataType="xsd:Integer" dictRef="bo:atomicNumber">2</scalar>
@@ -82,6 +85,9 @@
     <scalar dataType="xsd:int" dictRef="bo:group">8</scalar>
     <scalar dataType="xsd:String" dictRef="bo:electronicConfiguration">1s2</scalar>
     <scalar dataType="xsd:String" dictRef="bo:family">Noblegas</scalar>
+    <scalar dataType="xsd:String" dictRef="bo:dangerSymbol">F,T</scalar>
+    <scalar dataType="xsd:String" dictRef="bo:R-phrase">1,2,34-45</scalar>
+    <scalar dataType="xsd:String" dictRef="bo:S-phrase">3,5,6</scalar>
   </elementType>
   <elementType id="Li">
     <scalar dataType="xsd:Integer" dictRef="bo:atomicNumber">3</scalar>
index 6c37e1f19192bb941af0140565c3c4279315c54b..45443a856ca45cfbb7a220e0ce99ff381744b106 100644 (file)
@@ -47,7 +47,10 @@ public:
        inFamily( false ),
        inGroup( false ),
        inElectronicconfiguration( false ),
-       inDensity( false )
+       inDensity( false ),
+       inDangerSymbol( false ),
+       inRPhrase( false ),
+       inSPhrase( false )
        {
        }
 
@@ -81,6 +84,9 @@ public:
        bool inGroup;
        bool inElectronicconfiguration;
        bool inDensity;
+       bool inDangerSymbol;
+       bool inRPhrase;
+       bool inSPhrase;
 };
 
 ElementSaxParser::ElementSaxParser()
@@ -151,6 +157,12 @@ bool ElementSaxParser::startElement(const QString&, const QString &localName, co
                                d->inElectronicconfiguration = true;
                        else if (attrs.value(i) == "bo:density")
                                d->inDensity = true;
+                       else if (attrs.value(i) == "bo:dangerSymbol")
+                               d->inDangerSymbol = true;
+                       else if (attrs.value(i) == "bo:RPhrase")
+                               d->inRPhrase = true;
+                       else if (attrs.value(i) == "bo:SPhrase")
+                               d->inSPhrase = true;
                }
        } else if (d->inElement && localName == "label")
        {
@@ -311,6 +323,21 @@ bool ElementSaxParser::characters(const QString &ch)
                type = ChemicalDataObject::density; 
                d->inDensity = false;
        }
+       else if (d->inDangerSymbol){
+               value = ch;
+               type = ChemicalDataObject::dangerSymbol; 
+               d->inDangerSymbol = false;
+       }
+       else if (d->inRPhrase){
+               value = ch;
+               type = ChemicalDataObject::RPhrase; 
+               d->inRPhrase = false;
+       }
+       else if (d->inSPhrase){
+               value = ch;
+               type = ChemicalDataObject::SPhrase; 
+               d->inSPhrase = false;
+       }
        else//it is a non known value. Do not create a wrong object but return
                return true;