34 #ifndef ROI_MANAGEMENT_ACTION_H 35 #define ROI_MANAGEMENT_ACTION_H 42 #include <qstringlist.h> 50 class QListWidgetItem;
56 class Transformation ;
61 class RoiManagementAction ;
62 class RoiManagementActionSharedData ;
63 struct RoiManagementActionView_Private ;
73 std::set<std::string> regionsToBeFusioned() ;
74 std::string newRegionName() ;
77 void selectedRegionsChanged() ;
80 QStringList mySelectedRegions ;
81 QString myNewRegionName ;
82 QListWidget * selectRegions ;
83 QComboBox * selectRegionName ;
98 std::string askName(
const std::string& type,
99 const std::string& originalName,
100 const std::string& message,
bool noHierarchy =
true ) ;
104 void selectGraph(
int );
105 void renameGraph( QListWidgetItem * ) ;
106 void selectRegion(
int ) ;
107 void renameRegion( QListWidgetItem * ) ;
108 void selectImage(
int ) ;
109 void contextMenu(
const QPoint & );
110 void selectGraphContextMenu(
const QPoint & );
111 void selectRegionContextMenu(
const QPoint & );
112 void selectImageContextMenu(
const QPoint & );
114 void deleteGraph( ) ;
116 void saveGraphAs( ) ;
117 void reloadGraph( ) ;
120 void deleteRegion( ) ;
121 void exportAsMask( ) ;
122 void regionsFusion( ) ;
124 void neuroFrameWork() ;
125 void lateralNeuroFrameWork() ;
126 void sulciFrameWork() ;
127 void ratFrameWork() ;
128 void freeFrameWork() ;
129 void newUserDefinedFrameWork() ;
130 void loadUserDefinedFrameWork() ;
131 void saveUserDefinedFrameWork() ;
132 void defineNewFWRegionName() ;
133 void modifyFWRegionName() ;
134 void modifyFWRegionColor() ;
135 void deleteFWRegionName() ;
138 void createAxialWindow() ;
139 void createCoronalWindow() ;
140 void createSagittalWindow() ;
142 void create3DWindow() ;
143 void cleanSession() ;
145 void regionTransparencyChange(
int alpha ) ;
146 void graphTransparencyChange(
int alpha ) ;
150 anatomist::RoiManagementActionView_Private * _private ;
152 bool myUpdatingFlag ;
153 bool mySelectingImage ;
154 bool mySelectingGraph ;
155 bool mySelectingRegion ;
156 bool myChangingGraphTransparency ;
157 bool myChangingRegionTransparency ;
158 bool myGettingImageNames ;
159 bool myGettingGraphNames ;
160 bool myGettingRegionNames ;
161 bool myGettingHierarchyNames ;
162 bool myGettingHierarchyRegionNames ;
164 QString myHierarchyRoiName ;
165 QStringList myHierarchyRoiNames ;
169 const std::string& name =
"" ) ;
170 QStringList getImageNames() ;
171 QStringList getHierarchyNames( ) ;
172 QStringList getGraphNames() ;
173 QStringList getCurrentGraphRegions() ;
174 std::string getSelectedGraphName( ) ;
175 QStringList getCurrentHierarchyRoiNames( ) ;
177 QStringList myImageNames ;
178 QStringList myGraphNames ;
179 QStringList myRegions ;
180 QStringList myRecentFrameWorks ;
190 AObject * getObjectByName(
int objType,
191 const std::string& name =
"" )
const ;
196 AGraphObject * getGraphObjectByName(
const std::string& graphName,
197 const std::string& roiName )
const ;
199 virtual void update(
const Observable*,
void* );
202 virtual void unregisterObservable(
Observable* );
211 std::set<std::string> myHierarchyNames ;
212 bool myHierarchyNamesChanged ;
214 std::set<std::string> myGraphNames ;
215 bool myGraphNamesChanged ;
217 std::set<std::string> myImageNames ;
218 bool myImageNamesChanged ;
220 std::set<std::string> myCurrentGraphRegions ;
221 bool myCurrentGraphRegionsChanged ;
223 std::set<std::string> myCurrentHierarchyRoiNames ;
224 bool myCurrentHierarchyRoiNamesChanged ;
226 AObject * getSelectedObject(
int objType )
const ;
227 void completeSelection(
AGraph * g )
const ;
230 void refreshGraphs()
const ;
232 std::string mySelectedHierarchy ;
233 int mySelectedHierarchyId ;
234 std::string myUserDefinedHierarchy ;
235 std::string myGraphName ;
236 std::string myCurrentGraph ;
237 int myCurrentGraphId ;
238 std::string myCurrentImage ;
239 int myCurrentImageId ;
240 std::string myRegionName ;
241 std::string myPartialRegionName ;
242 int myCurrentRegionId ;
253 virtual std::string name()
const;
255 static Action * creator() ;
257 std::set<std::string> getHierarchyNames() ;
258 std::set<std::string> getGraphNames() ;
259 std::set<std::string> getImageNames() ;
260 std::set<std::string> getCurrentGraphRegions() ;
261 std::set<std::string> getCurrentHierarchyRoiNames( ) ;
263 void recursiveHierarchyNameExtraction(
Tree * subtree,
264 std::set<std::string>& names ) ;
265 bool getSelectedGraphName( std::string& ) ;
266 void addRegion(
const std::string& name ) ;
267 void selectHierarchy(
const std::string& hieName,
int hieId ) ;
268 void loadHierarchy( ) ;
269 std::string newUDHierarchy(
const std::string& name ) ;
270 std::string loadUDHierarchy(
const std::string& hierarchyName ) ;
271 bool saveUDHierarchy( ) ;
272 void defineNewFWRegionName(
const std::string & name,
int red,
int green,
int blue ) ;
273 void deleteFWRegionName(
const std::string & name) ;
274 void modifyUDFWRegionName(
const std::string & oldName,
const std::string & newName ) ;
275 void modifyUDFWRegionColor(
const std::string & name,
276 int red,
int green,
int blue ) ;
277 void selectGraph(
const std::string & graphName,
int graphId ) ;
278 void newGraph(
const std::string& name ) ;
279 void selectImage(
const std::string & imageName,
int imageId ) ;
281 void renameGraph(
const std::string& name,
int graphId ) ;
282 void deleteGraph( ) ;
283 void loadGraph(
const QStringList& ) ;
284 void saveGraphAs( ) ;
285 void reloadGraph( ) ;
287 void selectRegion(
const std::string& regionName,
int regionId ) ;
288 void selectRegionName(
const std::string& regionName ) ;
289 void smartSelectRegionName(
const std::string & partialRegionName ) ;
290 void newRegion(
const std::string& name ) ;
291 void renameRegion(
const std::string & name,
int regionId ) ;
292 void deleteRegion( ) ;
293 void exportAsMask( ) ;
295 void regionsFusion(
const std::set<std::string>& regions,
296 const std::string& newName) ;
297 void createWindow(
const std::string& type ) ;
301 {
return _sharedData->myCurrentGraphId ; }
305 virtual QWidget * actionView( QWidget * ) ;
309 void changeRegionTransparency(
float alpha ) ;
310 void changeGraphTransparency(
float alpha ) ;
311 float graphTransparency( ) ;
317 bool hasChanged ()
const {
return _sharedData->hasChanged() ; }
319 void cleanSession() ;
321 bool savableGraph() ;
virtual bool viewableAction() const
Anatomist graph object: a list that manages destruction of its sub-elements.
void deleteObserver(Observer *observer)
Base Anatomist object (abstract)
A class can implement the Observer interface when it wants to be informed of changes in observable ob...
const std::string & getCurrentHierarchy() const
3D window, OpenGL rendering
const std::string & selectedHierarchy() const
This class can be subclassed to represent an object that the programmer wants to have observed...
const std::string & userDefinedHierarchy() const
void addObserver(Observer *observer)
External object type (unknown from the base anatomist library)
void notifyObservers(void *arg=0)
ObjectType
Base object type identifiers.
std::string currentImage() const
int selectedHierarchyId()
std::string currentGraph() const
void notifyUnregisterObservers()