vtkProstateNavTargetingStep.h

Go to the documentation of this file.
00001 /*==========================================================================
00002 
00003   Portions (c) Copyright 2008 Brigham and Women's Hospital (BWH) All Rights Reserved.
00004 
00005   See Doc/copyright/copyright.txt
00006   or http://www.slicer.org/copyright/copyright.txt for details.
00007 
00008   Program:   3D Slicer
00009   Module:    $HeadURL: $
00010   Date:      $Date: $
00011   Version:   $Revision: $
00012 
00013 ==========================================================================*/
00014 
00015 #ifndef __vtkProstateNavTargetingStep_h
00016 #define __vtkProstateNavTargetingStep_h
00017 
00018 #include "vtkProstateNavStep.h"
00019 
00020 class vtkKWEntry;
00021 class vtkKWEntrySet;
00022 class vtkKWEntryWithLabel;
00023 class vtkKWFrame;
00024 class vtkKWLabel;
00025 class vtkSlicerNodeSelectorWidget;
00026 class vtkKWMatrixWidgetWithLabel;
00027 class vtkKWMenuButton;
00028 class vtkKWMenuButtonWithLabel;
00029 class vtkKWMultiColumnList;
00030 class vtkKWMultiColumnListWithScrollbars;
00031 class vtkKWPushButton;
00032 class vtkKWText;
00033 class vtkImageData;
00034 class vtkMRMLScalarVolumeNode;
00035 class vtkMRMLSelectionNode;
00036 class vtkMRMLFiducialListNode;
00037 class vtkKWCheckButton;
00038 
00039 class VTK_PROSTATENAV_EXPORT vtkProstateNavTargetingStep : public vtkProstateNavStep
00040 {
00041 public:
00042   static vtkProstateNavTargetingStep *New();
00043   vtkTypeRevisionMacro(vtkProstateNavTargetingStep,vtkProstateNavStep);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00046   virtual void ShowUserInterface();
00047   virtual void HideUserInterface();
00048   virtual void TearDownGUI();
00049   virtual void ProcessGUIEvents(vtkObject *caller, unsigned long event, void *callData);  
00050   virtual void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData);
00051 
00052   virtual void UpdateGUI();
00053 
00054   void AddMRMLObservers();
00055   void RemoveMRMLObservers();
00056 
00057   void OnMultiColumnListUpdate(int row, int col, char * str);
00058   void OnMultiColumnListSelection();
00059   void UpdateTargetListGUI();
00060 
00061   void SetShowTargetOrientation(int show);
00062 
00063 protected:
00064   vtkProstateNavTargetingStep();
00065   ~vtkProstateNavTargetingStep();
00066 
00067 
00068   void ShowTargetPlanningFrame();
00069   void ShowTargetListFrame();
00070   void ShowTargetControlFrame();
00071 
00072   void EnableAddTargetsOnClickButton(bool enable);
00073 
00074   unsigned int PopulateListWithTargetDetails(unsigned int targetDescIndex);
00075 
00076   void AddGUIObservers();
00077   void RemoveGUIObservers();  
00078   
00079   //BTX
00080   // Description:
00081   // The column orders in the list box
00082   enum
00083     {
00084     TargetNumberColumn = 0,
00085     NeedleTypeColumn = 1,
00086     RASLocationColumn = 2,
00087     ReachableColumn = 3,
00088     RotationColumn = 4,
00089     NeedleAngleColumn = 5,    
00090     DepthColumn = 6,
00091     NumberOfColumns = 7,
00092     };
00093     
00094   //ETX
00095 
00096   bool ProcessingCallback;
00097 
00098   vtkKWFrame *MainFrame;
00099   
00100   // TargetPlanning
00101   vtkKWFrame *TargetPlanningFrame;
00102   vtkKWPushButton* LoadTargetingVolumeButton;
00103   vtkSlicerNodeSelectorWidget* VolumeSelectorWidget;
00104   vtkKWFrame *LoadVolumeDialogFrame;
00105   vtkKWCheckButton *ShowWorkspaceButton;  
00106   vtkKWCheckButton *ShowRobotButton;  
00107   vtkKWCheckButton *AddTargetsOnClickButton;
00108   vtkKWMenuButtonWithLabel *NeedleTypeMenuList;  
00109   vtkMRMLFiducialListNode *TargetPlanListNode;
00110 
00111   // TargetList frame
00112   vtkKWFrame *TargetListFrame;
00113   vtkKWMultiColumnListWithScrollbars* TargetList;
00114   vtkKWPushButton *DeleteButton;
00115 
00116   // TargetControl frame
00117   vtkKWFrame *TargetControlFrame;
00118   vtkKWMatrixWidgetWithLabel* NeedlePositionMatrix;
00119   vtkKWMatrixWidgetWithLabel* NeedleOrientationMatrix;
00120   vtkKWPushButton *MoveButton;
00121   vtkKWPushButton *StopButton;
00122 
00123   vtkKWText *Message;
00124 
00125   int ShowTargetOrientation;
00126 
00127 private:
00128   vtkProstateNavTargetingStep(const vtkProstateNavTargetingStep&);
00129   void operator=(const vtkProstateNavTargetingStep&);  
00130 };
00131 
00132 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1