1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
Function: CreateNode
Declaration: virtual bool CreateNode(DataNode *parentNode, bool completeSave, bool forceAdd);
Definition:
// ****************************************************************************
// Method: QueryOverTimeAttributes::CreateNode
//
// Purpose:
// This method creates a DataNode representation of the object so it can be
// saved to a config file.
//
// Programmer: Kathleen Bonnell
// Creation: May 26, 2004
//
// Modifications:
// Brad Whitlock, Fri Dec 14 15:59:43 PST 2007
// Made it use ids.
//
// ****************************************************************************
bool
QueryOverTimeAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool forceAdd)
{
if(parentNode == 0)
return false;
QueryOverTimeAttributes defaultObject;
bool addToParent = false;
// Create a node for QueryOverTimeAttributes.
DataNode *node = new DataNode("QueryOverTimeAttributes");
if(completeSave || !FieldsEqual(ID_timeType, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("timeType", TimeType_ToString(timeType)));
}
if(completeSave || !FieldsEqual(ID_startTimeFlag, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("startTimeFlag", startTimeFlag));
}
if(completeSave || !FieldsEqual(ID_startTime, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("startTime", startTime));
}
if(completeSave || !FieldsEqual(ID_endTimeFlag, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("endTimeFlag", endTimeFlag));
}
if(completeSave || !FieldsEqual(ID_endTime, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("endTime", endTime));
}
if(completeSave || !FieldsEqual(ID_stride, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("stride", stride));
}
if(completeSave || !FieldsEqual(ID_createWindow, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("createWindow", createWindow));
}
if(completeSave || !FieldsEqual(7, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("windowId", windowId));
}
// Add the node to the parent node.
if(addToParent || forceAdd)
parentNode->AddNode(node);
else
delete node;
return (addToParent || forceAdd);
}
Function: SetFromNode
Declaration: virtual void SetFromNode(DataNode *parentNode);
Definition:
// ****************************************************************************
// Method: QueryOverTimeAttributes::SetFromNode
//
// Purpose:
// This method sets attributes in this object from values in a DataNode
// representation of the object.
//
// Programmer: Kathleen Bonnell
// Creation: May 26, 2004
//
// Modifications:
//
// ****************************************************************************
void
QueryOverTimeAttributes::SetFromNode(DataNode *parentNode)
{
if(parentNode == 0)
return;
DataNode *searchNode = parentNode->GetNode("QueryOverTimeAttributes");
if(searchNode == 0)
return;
DataNode *node;
if((node = searchNode->GetNode("timeType")) != 0)
{
// Allow enums to be int or string in the config file
if(node->GetNodeType() == INT_NODE)
{
int ival = node->AsInt();
if(ival >= 0 && ival < 3)
SetTimeType(TimeType(ival));
}
else if(node->GetNodeType() == STRING_NODE)
{
TimeType value;
if(TimeType_FromString(node->AsString(), value))
SetTimeType(value);
}
}
if((node = searchNode->GetNode("startTimeFlag")) != 0)
SetStartTimeFlag(node->AsBool());
if((node = searchNode->GetNode("startTime")) != 0)
SetStartTime(node->AsInt());
if((node = searchNode->GetNode("endTimeFlag")) != 0)
SetEndTimeFlag(node->AsBool());
if((node = searchNode->GetNode("endTime")) != 0)
SetEndTime(node->AsInt());
if((node = searchNode->GetNode("stride")) != 0)
SetStride(node->AsInt());
if((node = searchNode->GetNode("createWindow")) != 0)
SetCreateWindow(node->AsBool());
if((node = searchNode->GetNode("windowId")) != 0)
SetWindowId(node->AsInt());
}
|