Mass++ Common Libraries v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations Macros
DataManager.cpp
Go to the documentation of this file.
1 
12 #include "stdafx.h"
13 #include "DataManager.h"
14 
15 #include "Sample.h"
16 #include "Spectrum.h"
17 #include "Chromatogram.h"
18 #include "DataMapInfo.h"
19 #include "ActiveObjectsManager.h"
20 
21 
22 using namespace kome::objects;
23 
24 
25 #include <crtdbg.h>
26 #ifdef _DEBUG
27  #define new new( _NORMAL_BLOCK, __FILE__, __LINE__ )
28  #define malloc( s ) _malloc_dbg( s, _NORMAL_BLOCK, __FILE__, __LINE__ )
29 #endif // _DEBUG
30 
31 
32 
33 // static object
34 std::vector< DataManager* > DataManager::m_dataMgrs;
35 bool DataManager::m_sorted = true;
36 
37 
38 // constructor
40  m_order = 0;
41 
42  m_dataMgrs.push_back( this );
43  m_sorted = false;
44 }
45 
46 // destructor
48  for( int i = (int)m_dataMgrs.size() - 1; i >= 0; i-- ) {
49  if( this == m_dataMgrs[ i ] ) {
50  m_dataMgrs.erase( m_dataMgrs.begin() + i );
51  }
52  }
53 }
54 
55 // open sample
58  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
59  m_dataMgrs[ i ]->onOpenSample( sample );
60  }
61 }
62 
63 // close sample
64 void DataManager::closeSample( Sample* sample, const bool deleting ) {
65  // active object
67  if( sample == aoMgr.getActiveSample() ) {
68  aoMgr.setActiveSample( NULL );
69  }
70 
71  // each managers
73  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
74  m_dataMgrs[ i ]->onCloseSample( sample, deleting );
75  }
76 }
77 
78 // open spectrum
81  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
82  m_dataMgrs[ i ]->onOpenSpectrum( spec );
83  }
84 }
85 
86 // close spectrum
87 void DataManager::closeSpectrum( Spectrum* spec, const bool deleting ) {
89  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
90  m_dataMgrs[ i ]->onCloseSpectrum( spec, deleting );
91  }
92 }
93 
94 // open chromatogram
97  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
98  m_dataMgrs[ i ]->onOpenChromatogram( chrom );
99  }
100 }
101 
102 // close chromatogram
103 void DataManager::closeChromatogram( Chromatogram* chrom, const bool deleting ) {
105  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
106  m_dataMgrs[ i ]->onCloseChromatogram( chrom, deleting );
107  }
108 }
109 
110 // open data map
113  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
114  m_dataMgrs[ i ]->onOpenDataMap( dataMap );
115  }
116 }
117 
118 // close data map
119 void DataManager::closeDataMap( DataMapInfo* dataMap, const bool deleting ) {
121  for( unsigned int i = 0; i < m_dataMgrs.size(); i++ ) {
122  m_dataMgrs[ i ]->onCloseDataMap( dataMap, deleting );
123  }
124 }
125 
126 // compare data managers
128  return ( dm0->m_order < dm1->m_order );
129 }
130 
131 // sort data managers
133  if( m_sorted ) {
134  return;
135  }
136 
137  std::sort( m_dataMgrs.begin(), m_dataMgrs.end(), lessManager );
138  m_sorted = true;
139 }
static void closeDataMap(DataMapInfo *dataMap, const bool deleting)
This method is called when a data map is closed.
interfaces of ActiveObjectsManager class
static void openChromatogram(Chromatogram *chrom)
This method is called when a chromaogram is opened.
Definition: DataManager.cpp:95
interfaces of Chromatogram class
sample information management class
Definition: Sample.h:34
static void openSample(Sample *sample)
This method is called when a sample is opened.
Definition: DataManager.cpp:56
data management abstract class
Definition: DataManager.h:31
static ActiveObjectsManager & getInstance()
get active object manager object (This is the only object.)
active object management class
static void closeSample(Sample *sample, const bool deleting)
This method is called when a sample is closed.
Definition: DataManager.cpp:64
static std::vector< DataManager * > m_dataMgrs
Definition: DataManager.h:51
static void sortDataManagers()
sorts data managers
static void closeSpectrum(Spectrum *spec, const bool deleting)
This method is called when a spectrum is closed.
Definition: DataManager.cpp:87
deta map information
Definition: DataMapInfo.h:31
interfaces of Spectrum class
interfaces of Sample class
interfaces of GraphInfo class
void setActiveSample(Sample *sample)
sets the active sample
#define NULL
Definition: CoreMacros.h:18
static void openSpectrum(Spectrum *spec)
This method is called when a spectrum is opened.
Definition: DataManager.cpp:79
virtual ~DataManager()
destructor
Definition: DataManager.cpp:47
static bool lessManager(DataManager *dm0, DataManager *dm1)
conmapred data managers to sort
Sample * getActiveSample()
gets the active sample
spectrum information management class
Definition: Spectrum.h:30
chromatogram information management class
Definition: Chromatogram.h:33
interfaces of DataManager class
static void closeChromatogram(Chromatogram *chrom, const bool deleting)
This method is called when a chromatogram is closed.
static void openDataMap(DataMapInfo *dataMap)
This method is called when a data map is opened.