34#ifndef ROI_MANAGEMENT_ACTION_H
35#define ROI_MANAGEMENT_ACTION_H
42#include <qstringlist.h>
63 struct RoiManagementActionView_Private ;
81 QStringList mySelectedRegions ;
82 QString myNewRegionName ;
83 QListWidget * selectRegions ;
84 QComboBox * selectRegionName ;
101 const std::string& originalName,
102 const std::string& message,
bool noHierarchy =
true ) ;
108 void selectGraph(
int );
109 void renameGraph( QListWidgetItem * ) ;
110 void selectRegion(
int ) ;
111 void renameRegion( QListWidgetItem * ) ;
112 void selectImage(
int ) ;
113 void contextMenu(
const QPoint & );
114 void selectGraphContextMenu(
const QPoint & );
115 void selectRegionContextMenu(
const QPoint & );
116 void selectImageContextMenu(
const QPoint & );
118 void deleteGraph( ) ;
120 void saveGraphAs( ) ;
121 void reloadGraph( ) ;
124 void deleteRegion( ) ;
125 void exportAsMask( ) ;
126 void regionsFusion( ) ;
128 void neuroFrameWork() ;
129 void lateralNeuroFrameWork() ;
130 void sulciFrameWork() ;
131 void ratFrameWork() ;
132 void freeFrameWork() ;
133 void newUserDefinedFrameWork() ;
134 void loadUserDefinedFrameWork() ;
135 void saveUserDefinedFrameWork() ;
136 void defineNewFWRegionName() ;
137 void modifyFWRegionName() ;
138 void modifyFWRegionColor() ;
139 void deleteFWRegionName() ;
142 void createAxialWindow() ;
143 void createCoronalWindow() ;
144 void createSagittalWindow() ;
146 void create3DWindow() ;
147 void cleanSession() ;
149 void regionTransparencyChange(
int alpha ) ;
150 void graphTransparencyChange(
int alpha ) ;
154 anatomist::RoiManagementActionView_Private * _private ;
156 bool myUpdatingFlag ;
157 bool mySelectingImage ;
158 bool mySelectingGraph ;
159 bool mySelectingRegion ;
160 bool myChangingGraphTransparency ;
161 bool myChangingRegionTransparency ;
162 bool myGettingImageNames ;
163 bool myGettingGraphNames ;
164 bool myGettingRegionNames ;
165 bool myGettingHierarchyNames ;
166 bool myGettingHierarchyRegionNames ;
168 QString myHierarchyRoiName ;
169 QStringList myHierarchyRoiNames ;
173 const std::string& name =
"" ) ;
174 QStringList getImageNames() ;
175 QStringList getHierarchyNames( ) ;
176 QStringList getGraphNames() ;
177 QStringList getCurrentGraphRegions() ;
178 std::string getSelectedGraphName( ) ;
179 QStringList getCurrentHierarchyRoiNames( ) ;
181 QStringList myImageNames ;
182 QStringList myGraphNames ;
183 QStringList myRegions ;
184 QStringList myRecentFrameWorks ;
195 const std::string& name =
"" )
const ;
201 const std::string& roiName )
const ;
211 RoiManagementActionSharedData() ;
212 static RoiManagementActionSharedData * _instance ;
215 std::set<std::string> myHierarchyNames ;
216 bool myHierarchyNamesChanged ;
218 std::set<std::string> myGraphNames ;
219 bool myGraphNamesChanged ;
221 std::set<std::string> myImageNames ;
222 bool myImageNamesChanged ;
224 std::set<std::string> myCurrentGraphRegions ;
225 bool myCurrentGraphRegionsChanged ;
227 std::set<std::string> myCurrentHierarchyRoiNames ;
228 bool myCurrentHierarchyRoiNamesChanged ;
230 AObject * getSelectedObject(
int objType )
const ;
231 void completeSelection(
AGraph * g )
const ;
234 void refreshGraphs()
const ;
236 std::string mySelectedHierarchy ;
237 int mySelectedHierarchyId ;
238 std::string myUserDefinedHierarchy ;
239 std::string myCurrentGraph ;
240 std::string myCurrentImage ;
241 std::string myRegionName ;
242 std::string myPartialRegionName ;
253 virtual std::string
name()
const;
264 std::set<std::string>& names ) ;
276 int red,
int green,
int blue ) ;
279 const std::string & regionName );
290 void selectRegion(
const std::string& regionName,
bool force =
false );
300 const std::string& newName) ;
304 std::string
currentGraph()
const {
return _sharedData->myCurrentGraph; }
306 std::string
currentImage()
const {
return _sharedData->myCurrentImage; }
320 bool hasChanged ()
const {
return _sharedData->hasChanged() ; }
3D window, OpenGL rendering
std::set< std::string > regionsToBeFusioned()
std::string newRegionName()
RegionsFusionWindow(QWidget *parent, const QStringList ®ions)
void selectedRegionsChanged()
~RoiManagementActionView()
int imageId(const std::string &imageName)
std::string askName(const std::string &type, const std::string &originalName, const std::string &message, bool noHierarchy=true)
RoiManagementActionView(anatomist::RoiManagementAction *myAction, QWidget *parent)
virtual void update(const anatomist::Observable *, void *)
This method is called whenever the observed object is changed.
static void objectLoaded(anatomist::Observable *)
int graphId(const std::string &graphName)
Anatomist graph object: a list that manages destruction of its sub-elements.
Base Anatomist object (abstract)
ObjectType
Base object type identifiers.
@ OTHER
External object type (unknown from the base anatomist library)
Nomenclature hierarchy object.
This class can be subclassed to represent an object that the programmer wants to have observed.
A class can implement the Observer interface when it wants to be informed of changes in observable ob...
virtual void update(const Observable *, void *)
This method is called whenever the observed object is changed.
std::string currentImage() const
virtual ~RoiManagementActionSharedData()
static RoiManagementActionSharedData * instance()
virtual void unregisterObservable(Observable *)
Called when an observable is destroyed, only called by Observable: don't use this function directly.
AGraphObject * getGraphObjectByName(const std::string &graphName, const std::string &roiName) const
AObject * getObjectByName(int objType, const std::string &name="") const
std::string currentGraph() const
friend class RoiManagementAction
void selectRegion(const std::string ®ionName, bool force=false)
use the general selection system to select a region
const std::string & selectedHierarchy() const
virtual bool viewableAction() const
void selectHierarchy(const std::string &hieName, int hieId)
void changeRegionTransparency(float alpha)
virtual std::string name() const
void deleteFWRegionName(const std::string &name)
void addRegion(const std::string &name)
void newGraph(const std::string &name)
void selectGraph(const std::string &graphName, const std::string ®ionName)
const std::string & getCurrentHierarchy() const
std::set< std::string > getHierarchyNames()
void notifyUnregisterObservers()
void cleanRegion(anatomist::AGraphObject *)
void loadGraph(const QStringList &)
std::string currentImage() const
void recursiveHierarchyNameExtraction(Tree *subtree, std::set< std::string > &names)
const std::string & userDefinedHierarchy() const
void smartSelectRegionName(const std::string &partialRegionName)
bool getSelectedGraphName(std::string &)
float graphTransparency()
virtual ~RoiManagementAction()
std::set< std::string > getImageNames()
std::set< std::string > getCurrentGraphRegions()
void selectRegionName(const std::string ®ionName)
just set the internal current region name
void changeGraphTransparency(float alpha)
void modifyUDFWRegionName(const std::string &oldName, const std::string &newName)
void createWindow(const std::string &type)
void renameRegion(const std::string &name)
void regionsFusion(const std::set< std::string > ®ions, const std::string &newName)
void notifyObservers(void *arg=0)
void addObserver(Observer *observer)
virtual QWidget * actionView(QWidget *)
void defineNewFWRegionName(const std::string &name, int red, int green, int blue)
void selectGraph(const std::string &graphName)
void deleteObserver(Observer *observer)
std::string currentRegionName() const
static Action * creator()
void renameGraph(const std::string &name)
void newRegion(const std::string &name)
void modifyUDFWRegionColor(const std::string &name, int red, int green, int blue)
static void exportRegion(AGraphObject *o)
std::set< std::string > getGraphNames()
std::string newUDHierarchy(const std::string &name)
std::string loadUDHierarchy(const std::string &hierarchyName)
void updateFromSelection()
void selectImage(const std::string &imageName)
int selectedHierarchyId()
std::set< std::string > getCurrentHierarchyRoiNames()
std::string currentGraph() const