00001
00002
00003
00004
00005
00006
00007 #include "CurveStyle.h"
00008 #include "DocumentSerialize.h"
00009 #include "Logger.h"
00010 #include <QTextStream>
00011 #include <QXmlStreamReader>
00012 #include <QXmlStreamWriter>
00013 #include "Xml.h"
00014
00015 CurveStyle::CurveStyle()
00016 {
00017 }
00018
00019 CurveStyle::CurveStyle (const LineStyle &lineStyle,
00020 const PointStyle &pointStyle) :
00021 m_pointStyle (pointStyle),
00022 m_lineStyle (lineStyle)
00023 {
00024 }
00025
00026 LineStyle CurveStyle::lineStyle() const
00027 {
00028 return m_lineStyle;
00029 }
00030
00031 QString CurveStyle::loadXml(QXmlStreamReader &reader)
00032 {
00033 LOG4CPP_INFO_S ((*mainCat)) << "CurveStyle::loadXml";
00034
00035 bool success = true;
00036 QString curveName;
00037
00038 QXmlStreamAttributes attributes = reader.attributes();
00039
00040 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_CURVE_NAME)) {
00041
00042 curveName = attributes.value (DOCUMENT_SERIALIZE_CURVE_NAME).toString();
00043
00044
00045 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
00046 (reader.name() != DOCUMENT_SERIALIZE_POINT_STYLE)){
00047 loadNextFromReader(reader);
00048
00049 if (reader.atEnd()) {
00050 success = false;
00051 break;
00052 }
00053
00054 if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
00055 (reader.name() == DOCUMENT_SERIALIZE_LINE_STYLE)) {
00056
00057 m_lineStyle.loadXml (reader);
00058
00059 } else if ((reader.tokenType() == QXmlStreamReader::StartElement) &
00060 (reader.name() == DOCUMENT_SERIALIZE_POINT_STYLE)) {
00061
00062 m_pointStyle.loadXml (reader);
00063
00064 }
00065 }
00066 }
00067
00068 if (!success) {
00069 reader.raiseError (QObject::tr ("Cannot read curve style data"));
00070 }
00071
00072 return curveName;
00073 }
00074
00075 PointStyle CurveStyle::pointStyle() const
00076 {
00077 return m_pointStyle;
00078 }
00079
00080 void CurveStyle::printStream(QString indentation,
00081 QTextStream &str) const
00082 {
00083 str << indentation << "CurveStyle\n";
00084
00085 indentation += INDENTATION_DELTA;
00086
00087 m_pointStyle.printStream (indentation,
00088 str);
00089 m_lineStyle.printStream (indentation,
00090 str);
00091 }
00092
00093 void CurveStyle::saveXml(QXmlStreamWriter &writer,
00094 const QString &curveName) const
00095 {
00096 LOG4CPP_INFO_S ((*mainCat)) << "CurveStyle::saveXml";
00097
00098 writer.writeStartElement(DOCUMENT_SERIALIZE_CURVE_STYLE);
00099 writer.writeAttribute (DOCUMENT_SERIALIZE_CURVE_NAME, curveName);
00100 m_lineStyle.saveXml (writer);
00101 m_pointStyle.saveXml (writer);
00102 writer.writeEndElement();
00103 }
00104
00105 void CurveStyle::setLineColor (ColorPalette lineColor)
00106 {
00107 m_lineStyle.setPaletteColor(lineColor);
00108 }
00109
00110 void CurveStyle::setLineConnectAs (CurveConnectAs curveConnectAs)
00111 {
00112 m_lineStyle.setCurveConnectAs(curveConnectAs);
00113 }
00114
00115 void CurveStyle::setLineStyle(const LineStyle &lineStyle)
00116 {
00117 m_lineStyle = lineStyle;
00118 }
00119
00120 void CurveStyle::setLineWidth (int width)
00121 {
00122 m_lineStyle.setWidth(width);
00123 }
00124
00125 void CurveStyle::setPointColor (ColorPalette curveColor)
00126 {
00127 m_pointStyle.setPaletteColor(curveColor);
00128 }
00129
00130 void CurveStyle::setPointLineWidth (int width)
00131 {
00132 m_pointStyle.setLineWidth(width);
00133 }
00134
00135 void CurveStyle::setPointRadius (int radius)
00136 {
00137 m_pointStyle.setRadius(radius);
00138 }
00139
00140 void CurveStyle::setPointShape (PointShape shape)
00141 {
00142 m_pointStyle.setShape(shape);
00143 }
00144
00145 void CurveStyle::setPointStyle(const PointStyle &pointStyle)
00146 {
00147 m_pointStyle = pointStyle;
00148 }