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
|
/*=========================================================================
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.kitware.com/VolViewCopyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include "XML/vtkXMLVVFileInstanceWriter.h"
#include "vtkObjectFactory.h"
#include "vtkXMLDataElement.h"
#include "vtkVVFileInstance.h"
#include "vtkVVWindowBase.h"
#include "vtkStringArray.h"
#include "vtkKWOpenFileProperties.h"
#include "XML/vtkXMLVVWindowBaseWriter.h"
#include "XML/vtkXMLKWOpenFilePropertiesWriter.h"
vtkStandardNewMacro(vtkXMLVVFileInstanceWriter);
vtkCxxRevisionMacro(vtkXMLVVFileInstanceWriter, "$Revision: 1.11 $");
//----------------------------------------------------------------------------
const char* vtkXMLVVFileInstanceWriter::GetRootElementName()
{
return "VVFileInstance";
}
//----------------------------------------------------------------------------
const char* vtkXMLVVFileInstanceWriter::GetFileNameElementName()
{
return "FileName";
}
//----------------------------------------------------------------------------
int vtkXMLVVFileInstanceWriter::AddAttributes(vtkXMLDataElement *elem)
{
if (!this->Superclass::AddAttributes(elem))
{
return 0;
}
vtkVVFileInstance *obj = vtkVVFileInstance::SafeDownCast(this->Object);
if (!obj)
{
vtkWarningMacro(<< "The VVFileInstance is not set!");
return 0;
}
elem->SetAttribute("Name", obj->GetName());
return 1;
}
//----------------------------------------------------------------------------
int vtkXMLVVFileInstanceWriter::AddNestedElements(vtkXMLDataElement *elem)
{
if (!this->Superclass::AddNestedElements(elem))
{
return 0;
}
vtkVVFileInstance *obj = vtkVVFileInstance::SafeDownCast(this->Object);
if (!obj)
{
vtkWarningMacro(<< "The VVFileInstance is not set!");
return 0;
}
// Open File Properties
if (obj->GetOpenFileProperties())
{
vtkXMLKWOpenFilePropertiesWriter *xmlw =
vtkXMLKWOpenFilePropertiesWriter::SafeDownCast(
obj->GetOpenFileProperties()->GetNewXMLWriter());
xmlw->DiscardFilePatternDirectoryOn();
xmlw->CreateInElement(elem);
xmlw->Delete();
}
// File Names
for (int i = 0; i < obj->GetNumberOfFileNames(); i++)
{
vtkXMLDataElement *nested_elem = this->NewDataElement();
nested_elem->SetName(this->GetFileNameElementName());
nested_elem->SetAttribute("Value", obj->GetNthFileName(i));
// URI's for remote downloading.
const char *sourceURI = obj->GetNthFileNameSourceURI(i);
const char *destinationURI = obj->GetNthFileNameDestinationURI(i);
if (sourceURI && destinationURI)
{
nested_elem->SetAttribute("SourceURI", sourceURI);
nested_elem->SetAttribute("DestinationURI", destinationURI);
}
// Preview URI's for remote downloading.
const char *previewSourceURI = obj->GetNthFileNamePreviewSourceURI(i);
const char *previewDestinationURI = obj->GetNthFileNamePreviewDestinationURI(i);
const char *previewFile = obj->GetNthFileNamePreviewFilename(i);
if (previewSourceURI && previewDestinationURI && previewFile)
{
nested_elem->SetAttribute("PreviewSourceURI", previewSourceURI);
nested_elem->SetAttribute("PreviewDestinationURI", previewDestinationURI);
nested_elem->SetAttribute("PreviewFile", previewFile);
}
elem->AddNestedElement(nested_elem);
nested_elem->Delete();
}
return 1;
}
//----------------------------------------------------------------------------
void vtkXMLVVFileInstanceWriter::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
}
|