0031687: Draw Harness, ViewerTest - extend command vrenderparams with option updating...
[occt.git] / src / XmlMXCAFDoc / XmlMXCAFDoc_ColorDriver.cxx
CommitLineData
b311480e 1// Created on: 2001-09-11
2// Created by: Julia DOROVSKIKH
973c2be1 3// Copyright (c) 2001-2014 OPEN CASCADE SAS
b311480e 4//
973c2be1 5// This file is part of Open CASCADE Technology software library.
b311480e 6//
d5f74e42 7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
b311480e 12//
973c2be1 13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
7fd59977 15
42cf5bc1 16
83ae3591 17#include <Message_Messenger.hxx>
42cf5bc1 18#include <Standard_Type.hxx>
19#include <TDF_Attribute.hxx>
7fd59977 20#include <XCAFDoc_Color.hxx>
42cf5bc1 21#include <XmlMXCAFDoc_ColorDriver.hxx>
22#include <XmlObjMgt.hxx>
23#include <XmlObjMgt_Persistent.hxx>
7fd59977 24
92efcf78 25IMPLEMENT_STANDARD_RTTIEXT(XmlMXCAFDoc_ColorDriver,XmlMDF_ADriver)
26
7fd59977 27//=======================================================================
28//function : XmlMXCAFDoc_ColorDriver
29//purpose : Constructor
30//=======================================================================
31XmlMXCAFDoc_ColorDriver::XmlMXCAFDoc_ColorDriver
83ae3591 32 (const Handle(Message_Messenger)& theMsgDriver)
7fd59977 33 : XmlMDF_ADriver (theMsgDriver, "xcaf", "Color")
34{}
35
36//=======================================================================
37//function : NewEmpty
38//purpose :
39//=======================================================================
40Handle(TDF_Attribute) XmlMXCAFDoc_ColorDriver::NewEmpty() const
41{
42 return (new XCAFDoc_Color());
43}
44
45//=======================================================================
46//function : Paste
47//purpose : persistent -> transient (retrieve)
48//=======================================================================
49Standard_Boolean XmlMXCAFDoc_ColorDriver::Paste
50 (const XmlObjMgt_Persistent& theSource,
51 const Handle(TDF_Attribute)& theTarget,
52 XmlObjMgt_RRelocationTable& ) const
53{
54 Standard_Integer aValue;
55 XmlObjMgt_DOMString anIntStr = XmlObjMgt::GetStringValue(theSource);
56
57 if (anIntStr.GetInteger(aValue) == Standard_False) {
58 TCollection_ExtendedString aMessageString =
59 TCollection_ExtendedString("Cannot retrieve Color attribute from \"")
60 + anIntStr + "\"";
83ae3591 61 myMessageDriver->Send (aMessageString, Message_Fail);
7fd59977 62 return Standard_False;
63 }
64
65 Handle(XCAFDoc_Color) anInt = Handle(XCAFDoc_Color)::DownCast(theTarget);
66 anInt->Set((Quantity_NameOfColor)aValue);
67
68 return Standard_True;
69}
70
71//=======================================================================
72//function : Paste
73//purpose : transient -> persistent (store)
74//=======================================================================
75void XmlMXCAFDoc_ColorDriver::Paste (const Handle(TDF_Attribute)& theSource,
76 XmlObjMgt_Persistent& theTarget,
77 XmlObjMgt_SRelocationTable& ) const
78{
79 Handle(XCAFDoc_Color) anInt = Handle(XCAFDoc_Color)::DownCast(theSource);
80 XmlObjMgt::SetStringValue (theTarget, (Standard_Integer)anInt->GetNOC());
81}