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 ;
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 ;
191 const std::string& name =
"" )
const ;
197 const std::string& roiName )
const ;
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;
264 std::set<std::string>& names ) ;
276 int red,
int green,
int blue ) ;
296 const std::string& newName) ;
301 {
return _sharedData->myCurrentGraphId ; }
3D window, OpenGL rendering
std::string newRegionName()
std::set< std::string > regionsToBeFusioned()
RegionsFusionWindow(QWidget *parent, const QStringList ®ions)
void selectedRegionsChanged()
~RoiManagementActionView()
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 *)
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)
This class can be subclassed to represent an object that the programmer wants to have observed.
void addObserver(Observer *observer)
Adds an observer to the set of observers for this object.
void setChanged() const
Indicates that this object has changed.
bool hasChanged() const
Tests if this object has changed.
virtual void notifyUnregisterObservers()
Notifies observable destruction to all observers and unregisters them.
void deleteObserver(Observer *observer)
Deletes an observer from the set of observers of this object.
virtual void notifyObservers(void *arg=0)
If this object has changed, as indicated by the hasChanged method, then notify all of its observers.
A class can implement the Observer interface when it wants to be informed of changes in observable ob...
AGraphObject * getGraphObjectByName(const std::string &graphName, const std::string &roiName) const
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.
AObject * getObjectByName(int objType, const std::string &name="") const
std::string currentGraph() const
virtual bool viewableAction() const
void selectHierarchy(const std::string &hieName, int hieId)
void changeRegionTransparency(float alpha)
virtual std::string name() const
std::set< std::string > getHierarchyNames()
void deleteFWRegionName(const std::string &name)
void addRegion(const std::string &name)
void selectGraph(const std::string &graphName, int graphId)
void renameRegion(const std::string &name, int regionId)
void newGraph(const std::string &name)
void notifyUnregisterObservers()
void cleanRegion(anatomist::AGraphObject *)
void loadGraph(const QStringList &)
void recursiveHierarchyNameExtraction(Tree *subtree, std::set< std::string > &names)
void selectRegion(const std::string ®ionName, int regionId)
void smartSelectRegionName(const std::string &partialRegionName)
bool getSelectedGraphName(std::string &)
float graphTransparency()
const std::string & getCurrentHierarchy() const
virtual ~RoiManagementAction()
void selectRegionName(const std::string ®ionName)
void changeGraphTransparency(float alpha)
std::set< std::string > getCurrentHierarchyRoiNames()
void modifyUDFWRegionName(const std::string &oldName, const std::string &newName)
void createWindow(const std::string &type)
void renameGraph(const std::string &name, int graphId)
std::set< std::string > getImageNames()
void regionsFusion(const std::set< std::string > ®ions, const std::string &newName)
void notifyObservers(void *arg=0)
void addObserver(Observer *observer)
void defineNewFWRegionName(const std::string &name, int red, int green, int blue)
std::set< std::string > getGraphNames()
void deleteObserver(Observer *observer)
static Action * creator()
std::set< std::string > getCurrentGraphRegions()
const std::string & userDefinedHierarchy() const
void newRegion(const std::string &name)
void modifyUDFWRegionColor(const std::string &name, int red, int green, int blue)
static void exportRegion(AGraphObject *o)
std::string newUDHierarchy(const std::string &name)
std::string loadUDHierarchy(const std::string &hierarchyName)
virtual QWidget * actionView(QWidget *)
const std::string & selectedHierarchy() const
int selectedHierarchyId()
void selectImage(const std::string &imageName, int imageId)