Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkLevelWindowPreset.h"
00019 #include "mitkStandardFileLocations.h"
00020 #include <vtkObjectFactory.h>
00021
00022 namespace mitk {
00023
00024 const std::string LevelWindowPreset::PRESET = "preset";
00025
00026 vtkStandardNewMacro(LevelWindowPreset);
00027
00028 LevelWindowPreset::LevelWindowPreset()
00029 {
00030 }
00031
00032 LevelWindowPreset::~LevelWindowPreset()
00033 {
00034 }
00035
00036 bool LevelWindowPreset::LoadPreset()
00037 {
00038 m_XmlFileName = mitk::StandardFileLocations::GetInstance()->FindFile("mitkLevelWindowPresets.xml", "Config");
00039
00040 if (!m_XmlFileName.empty())
00041 return LoadPreset(m_XmlFileName);
00042 else
00043 return false;
00044 }
00045
00046 bool LevelWindowPreset::LoadPreset(std::string fileName)
00047 {
00048 if ( fileName.empty() )
00049 return false;
00050
00051 vtkXMLParser::SetFileName( fileName.c_str() );
00052
00053 if ( !vtkXMLParser::Parse() )
00054 {
00055 #ifdef INTERDEBUG
00056 MITK_INFO<<"LevelWindowPreset::LoadPreset xml file cannot parse!"<<std::endl;
00057 #endif
00058 }
00059
00060 return true;
00061
00062 }
00063
00064 void LevelWindowPreset::StartElement (const char *elementName, const char **atts)
00065 {
00066 std::string elementNameString = elementName;
00067 if ( elementNameString == PRESET )
00068 {
00069 std::string name = ReadXMLStringAttribut( "NAME", atts );
00070 std::string level = ReadXMLStringAttribut( "LEVEL", atts );
00071 double lev = atof(level.c_str());
00072 std::string window = ReadXMLStringAttribut( "WINDOW", atts );
00073 double win = atof(window.c_str());
00074 m_Level[name] = lev;
00075 m_Window[name] = win;
00076 }
00077 }
00078
00079 std::string LevelWindowPreset::ReadXMLStringAttribut( std::string name, const char** atts )
00080 {
00081 if(atts)
00082 {
00083 const char** attsIter = atts;
00084
00085 while(*attsIter)
00086 {
00087 if ( name == *attsIter )
00088 {
00089 attsIter++;
00090 return *attsIter;
00091 }
00092 attsIter++;
00093 attsIter++;
00094 }
00095 }
00096
00097 return std::string();
00098 }
00099
00100 double LevelWindowPreset::getLevel(std::string name)
00101 {
00102 return m_Level[name];
00103 }
00104
00105 double LevelWindowPreset::getWindow(std::string name)
00106 {
00107 return m_Window[name];
00108 }
00109
00110 std::map<std::string, double>& LevelWindowPreset::getLevelPresets()
00111 {
00112 return m_Level;
00113 }
00114
00115 std::map<std::string, double>& LevelWindowPreset::getWindowPresets()
00116 {
00117 return m_Window;
00118 }
00119
00120 void LevelWindowPreset::save()
00121 {
00122
00123
00124 }
00125
00126 void LevelWindowPreset::newPresets(std::map<std::string, double> newLevel, std::map<std::string, double> newWindow)
00127 {
00128 m_Level = newLevel;
00129 m_Window = newWindow;
00130 save();
00131 }
00132
00133 }