00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef MITK_DATATREEFILTEREVENTS_H_INCLUDED 00019 #define MITK_DATATREEFILTEREVENTS_H_INCLUDED 00020 00021 #include <itkEventObject.h> 00022 #include "MitkExtExports.h" 00023 00024 namespace mitk { 00025 00026 //------ TreeFilterUpdateAllEvent -------------------------------------------------------- 00027 00028 itkEventMacro( TreeFilterUpdateAllEvent, itk::ModifiedEvent ); 00029 itkEventMacro( TreeFilterRemoveAllEvent, itk::ModifiedEvent ); 00030 00031 //------ TreeFilterItemEvent ------------------------------------------------------------- 00032 class MitkExt_EXPORT TreeFilterItemEvent : public itk::ModifiedEvent 00033 { 00034 public: 00035 typedef TreeFilterItemEvent Self; 00036 typedef itk::ModifiedEvent Superclass; 00037 00038 TreeFilterItemEvent() 00039 : m_ChangedItem( NULL ){} 00040 00041 TreeFilterItemEvent( const mitk::DataTreeFilter::Item* item ) : 00042 m_ChangedItem(item) {} 00043 00044 virtual ~TreeFilterItemEvent() {} 00045 00046 virtual const char * GetEventName() const 00047 { 00048 return "TreeFilterItemEvent"; 00049 } 00050 00051 virtual bool CheckEvent(const ::itk::EventObject* e) const 00052 { 00053 return dynamic_cast<const Self*>(e); 00054 } 00055 00056 virtual ::itk::EventObject* MakeObject() const 00057 { 00058 return new Self( m_ChangedItem ); 00059 } 00060 00061 const mitk::DataTreeFilter::Item* GetChangedItem() const 00062 { 00063 return m_ChangedItem; 00064 } 00065 00066 TreeFilterItemEvent(const Self& s) : itk::ModifiedEvent(s), m_ChangedItem(s.m_ChangedItem) {}; 00067 00068 protected: 00069 const mitk::DataTreeFilter::Item* m_ChangedItem; 00070 00071 private: 00072 void operator=(const Self&); 00073 00074 }; 00075 00076 //------ TreeFilterEvent -------------------------------------------------------- 00077 class MitkExt_EXPORT TreeFilterNewItemEvent : public TreeFilterItemEvent 00078 { 00079 public: 00080 typedef TreeFilterNewItemEvent Self; 00081 typedef TreeFilterItemEvent Superclass; 00082 00083 TreeFilterNewItemEvent() : TreeFilterItemEvent() {} 00084 TreeFilterNewItemEvent(const mitk::DataTreeFilter::Item* item) : TreeFilterItemEvent(item) {} 00085 00086 virtual ~TreeFilterNewItemEvent() {} 00087 00088 virtual const char * GetEventName() const 00089 { 00090 return "TreeFilterNewItemEvent"; 00091 } 00092 00093 virtual bool CheckEvent(const ::itk::EventObject* e) const 00094 { 00095 return dynamic_cast<const Self*>(e); 00096 } 00097 00098 virtual ::itk::EventObject* MakeObject() const 00099 { 00100 return new Self( m_ChangedItem ); 00101 } 00102 00103 TreeFilterNewItemEvent(const Self& s) : TreeFilterItemEvent(s) {}; 00104 00105 private: 00106 void operator=(const Self&); 00107 00108 }; 00109 00110 00111 //------ TreeFilterItemAddedEvent -------------------------------------------------------- 00112 class MitkExt_EXPORT TreeFilterItemAddedEvent : public TreeFilterItemEvent 00113 { 00114 public: 00115 typedef TreeFilterItemAddedEvent Self; 00116 typedef TreeFilterItemEvent Superclass; 00117 00118 TreeFilterItemAddedEvent() : TreeFilterItemEvent() {} 00119 TreeFilterItemAddedEvent(const mitk::DataTreeFilter::Item* item) : TreeFilterItemEvent(item) {} 00120 00121 virtual ~TreeFilterItemAddedEvent() {} 00122 00123 virtual const char * GetEventName() const 00124 { 00125 return "TreeFilterItemAddedEvent"; 00126 } 00127 00128 virtual bool CheckEvent(const ::itk::EventObject* e) const 00129 { 00130 return dynamic_cast<const Self*>(e); 00131 } 00132 00133 virtual ::itk::EventObject* MakeObject() const 00134 { 00135 return new Self( m_ChangedItem ); 00136 } 00137 00138 TreeFilterItemAddedEvent(const Self& s) : TreeFilterItemEvent(s) {}; 00139 00140 private: 00141 void operator=(const Self&); 00142 00143 }; 00144 00145 //------ TreeFilterSelectionChangedEvent ------------------------------------------------- 00146 class MitkExt_EXPORT TreeFilterSelectionChangedEvent : public TreeFilterItemEvent 00147 { 00148 public: 00149 typedef TreeFilterSelectionChangedEvent Self; 00150 typedef TreeFilterItemEvent Superclass; 00151 00152 TreeFilterSelectionChangedEvent() : TreeFilterItemEvent() {} 00153 TreeFilterSelectionChangedEvent(const mitk::DataTreeFilter::Item* item, bool selected) : TreeFilterItemEvent(item), m_Selected(selected) {} 00154 00155 virtual ~TreeFilterSelectionChangedEvent() {} 00156 00157 virtual const char * GetEventName() const 00158 { 00159 return "TreeFilterSelectionChangedEvent"; 00160 } 00161 00162 virtual bool CheckEvent(const ::itk::EventObject* e) const 00163 { 00164 return dynamic_cast<const Self*>(e); 00165 } 00166 00167 virtual ::itk::EventObject* MakeObject() const 00168 { 00169 return new Self( m_ChangedItem, m_Selected ); 00170 } 00171 00172 virtual bool IsSelected() const { return m_Selected; } 00173 00174 TreeFilterSelectionChangedEvent(const Self&s) : TreeFilterItemEvent(s) {}; 00175 private: 00176 void operator=(const Self&); 00177 00178 bool m_Selected; 00179 00180 }; 00181 00182 //------ TreeFilterItemChangedEvent ------------------------------------------------------ 00183 class MitkExt_EXPORT TreeFilterItemChangedEvent : public TreeFilterItemEvent 00184 { 00185 public: 00186 typedef TreeFilterItemChangedEvent Self; 00187 typedef TreeFilterItemEvent Superclass; 00188 00189 TreeFilterItemChangedEvent() : TreeFilterItemEvent() {} 00190 TreeFilterItemChangedEvent(const mitk::DataTreeFilter::Item* item) : TreeFilterItemEvent(item) {} 00191 00192 virtual ~TreeFilterItemChangedEvent() {} 00193 00194 virtual const char * GetEventName() const 00195 { 00196 return "TreeFilterItemChangedEvent"; 00197 } 00198 00199 virtual bool CheckEvent(const ::itk::EventObject* e) const 00200 { 00201 return dynamic_cast<const Self*>(e); 00202 } 00203 00204 virtual ::itk::EventObject* MakeObject() const 00205 { 00206 return new Self( m_ChangedItem ); 00207 } 00208 00209 TreeFilterItemChangedEvent(const Self&s) : TreeFilterItemEvent(s) {}; 00210 00211 private: 00212 void operator=(const Self&); 00213 00214 }; 00215 00216 //------ TreeFilterRemoveItemEvent ------------------------------------------------------- 00217 class MitkExt_EXPORT TreeFilterRemoveItemEvent : public TreeFilterItemEvent 00218 { 00219 public: 00220 typedef TreeFilterRemoveItemEvent Self; 00221 typedef TreeFilterItemEvent Superclass; 00222 00223 TreeFilterRemoveItemEvent() : TreeFilterItemEvent() {} 00224 TreeFilterRemoveItemEvent(const mitk::DataTreeFilter::Item* item) : TreeFilterItemEvent(item) {} 00225 00226 virtual ~TreeFilterRemoveItemEvent() {} 00227 00228 virtual const char * GetEventName() const 00229 { 00230 return "TreeFilterRemoveItemEvent"; 00231 } 00232 00233 virtual bool CheckEvent(const ::itk::EventObject* e) const 00234 { 00235 return dynamic_cast<const Self*>(e); 00236 } 00237 00238 virtual ::itk::EventObject* MakeObject() const 00239 { 00240 return new Self( m_ChangedItem ); 00241 } 00242 00243 TreeFilterRemoveItemEvent(const Self&s) : TreeFilterItemEvent(s) {}; 00244 00245 private: 00246 void operator=(const Self&); 00247 00248 }; 00249 00250 //------ TreeFilterRemoveChildrenEvent ------------------------------------------------------- 00251 class MitkExt_EXPORT TreeFilterRemoveChildrenEvent : public TreeFilterItemEvent 00252 { 00253 public: 00254 typedef TreeFilterRemoveChildrenEvent Self; 00255 typedef TreeFilterItemEvent Superclass; 00256 00257 TreeFilterRemoveChildrenEvent() : TreeFilterItemEvent() {} 00258 TreeFilterRemoveChildrenEvent(const mitk::DataTreeFilter::Item* item) : TreeFilterItemEvent(item) {} 00259 00260 virtual ~TreeFilterRemoveChildrenEvent() {} 00261 00262 virtual const char * GetEventName() const 00263 { 00264 return "TreeFilterRemoveChildrenEvent"; 00265 } 00266 00267 virtual bool CheckEvent(const ::itk::EventObject* e) const 00268 { 00269 return dynamic_cast<const Self*>(e); 00270 } 00271 00272 virtual ::itk::EventObject* MakeObject() const 00273 { 00274 return new Self( m_ChangedItem ); 00275 } 00276 00277 TreeFilterRemoveChildrenEvent(const Self&s) : TreeFilterItemEvent(s) {}; 00278 00279 private: 00280 void operator=(const Self&); 00281 00282 }; 00283 } 00284 00285 #endif 00286 00287