vtkFetchMIGUI.h
Go to the documentation of this file.00001 #ifndef __vtkFetchMIGUI_h
00002 #define __vtkFetchMIGUI_h
00003
00004 #include "vtkSlicerBaseGUIWin32Header.h"
00005 #include "vtkSlicerModuleGUI.h"
00006
00007 #include "vtkMRMLScene.h"
00008 #include "vtkFetchMILogic.h"
00009 #include "vtkMRMLFetchMINode.h"
00010 #include "vtkIntArray.h"
00011 #include "vtkFetchMI.h"
00012
00013
00014
00015 #include "vtkTcl.h"
00016 extern "C" int Vtkslicerfetchmimodulelogic_Init(Tcl_Interp *interp);
00017
00018 class vtkSlicerNodeSelectorWidget;
00019 class vtkFetchMIQueryTermWidget;
00020 class vtkFetchMIFlatResourceWidget;
00021 class vtkFetchMIResourceUploadWidget;
00022 class vtkFetchMITagViewWidget;
00023 class vtkXNDHandler;
00024
00025 class vtkKWFrame;
00026 class vtkKWNotebook;
00027 class vtkKWLabel;
00028 class vtkKWFrameWithLabel;
00029 class vtkKWPushButton;
00030 class vtkKWEntry;
00031 class vtkKWEntryWithLabel;
00032 class vtkKWTopLevel;
00033 class vtkKWMenuButton;
00034 class vtkFetchMIIcons;
00035
00036
00037 class VTK_FETCHMI_EXPORT vtkFetchMIGUI : public vtkSlicerModuleGUI
00038 {
00039 public:
00040 static vtkFetchMIGUI *New();
00041 vtkTypeMacro(vtkFetchMIGUI,vtkSlicerModuleGUI);
00042 void PrintSelf(ostream& os, vtkIndent indent);
00043
00044
00045
00046
00047
00048 virtual void SetModuleLogic ( vtkSlicerLogic *logic )
00049 {
00050 this->SetLogic(reinterpret_cast<vtkFetchMILogic*> (logic));
00051 }
00052
00053
00054 vtkGetObjectMacro (Logic, vtkFetchMILogic);
00055 vtkSetObjectMacro (Logic, vtkFetchMILogic);
00056
00057
00058 vtkGetObjectMacro (FetchMINode, vtkMRMLFetchMINode);
00059 vtkSetObjectMacro (FetchMINode, vtkMRMLFetchMINode);
00060
00061 vtkGetObjectMacro ( QueryList, vtkFetchMIQueryTermWidget );
00062 vtkGetObjectMacro ( ResourceList, vtkFetchMIFlatResourceWidget );
00063 vtkGetObjectMacro ( TaggedDataList, vtkFetchMIResourceUploadWidget );
00064 vtkGetObjectMacro ( AddServerButton, vtkKWPushButton );
00065 vtkGetObjectMacro ( ServerMenuButton, vtkKWMenuButton );
00066 vtkGetObjectMacro ( NewServerLabel, vtkKWLabel );
00067 vtkGetObjectMacro ( RefreshButton, vtkKWPushButton );
00068 vtkGetObjectMacro ( AddServerEntry, vtkKWEntry );
00069 vtkGetObjectMacro ( FetchMIIcons, vtkFetchMIIcons );
00070 vtkGetObjectMacro ( QueryTagsButton, vtkKWPushButton );
00071 vtkGetObjectMacro ( TagViewer, vtkFetchMITagViewWidget);
00072 vtkGetObjectMacro ( ServerTypeMenuButton, vtkKWMenuButton );
00073 vtkGetObjectMacro ( CloseNewServerButton, vtkKWPushButton );
00074 vtkGetObjectMacro ( NewServerWindow, vtkKWTopLevel );
00075 vtkGetObjectMacro ( Notebook, vtkKWNotebook );
00076
00077 vtkGetMacro (GUIWidth, int );
00078 vtkSetMacro (GUIWidth, int );
00079
00080
00081
00082
00083 virtual void BuildGUI ( );
00084
00085 using vtkSlicerComponentGUI::BuildGUI;
00086
00087 virtual void TearDownGUI ( );
00088 void LoadTclPackage ( );
00089 virtual void SwallowGUIEvent();
00090
00091 vtkIntArray *NewObservableEvents();
00092
00093
00094
00095 virtual void AddGUIObservers ( );
00096
00097
00098
00099 virtual void RemoveGUIObservers ( );
00100 virtual void RemoveMRMLNodeObservers ( );
00101 virtual void RemoveLogicObservers ( );
00102
00103
00104
00105 virtual void ProcessLogicEvents ( vtkObject *vtkNotUsed(caller), unsigned long vtkNotUsed(event),
00106 void *vtkNotUsed(callData) ){};
00107
00108
00109
00110 virtual void ProcessGUIEvents ( vtkObject *caller, unsigned long event,
00111 void *callData );
00112
00113
00114
00115 virtual void ProcessMRMLEvents ( vtkObject *caller, unsigned long event,
00116 void *callData);
00117
00118
00119
00120
00121 void RaiseNewServerWindow();
00122 void WithdrawNewServerWindow();
00123 void DestroyNewServerWindow();
00124
00125
00126
00127 virtual void Enter ( );
00128
00129 using vtkSlicerComponentGUI::Enter;
00130
00131 virtual void Exit ( );
00132 virtual void Init ( );
00133
00134
00135
00136
00137 const char *GetCategory() const {return "Informatics";}
00138
00139 protected:
00140 vtkFetchMIGUI();
00141 ~vtkFetchMIGUI();
00142 vtkFetchMIGUI(const vtkFetchMIGUI&);
00143 void operator=(const vtkFetchMIGUI&);
00144
00145
00146
00147 void UpdateGUI();
00148 void UpdateTagTableFromGUI();
00149 void PopulateQueryListFromServer();
00150
00151
00152
00153
00154
00155
00156
00157
00158 void RestoreSelectedValuesForTagsFromMRML();
00159
00160
00161
00162 void UpdateTagTableFromMRML();
00163 void UpdateResourceTableFromMRML();
00164 void InitializeSceneTable();
00165 void UpdateSceneTableFromMRML();
00166 void AddMRMLSceneRow();
00167 void UpdateVolumeNodes();
00168 void UpdateModelNodes();
00169 void UpdateFiducialListNodes();
00170 void UpdateUnstructuredGridNodes();
00171 void UpdateColorTableNodes();
00172
00173
00174
00175 void TagSelectedData();
00176 void RemoveTagFromSelectedData();
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186 void DeleteSelectedResourcesFromServer();
00187
00188 void ShowAllTagView();
00189 void ShowSelectionTagView();
00190
00191
00192
00193 void SetStatusText( const char *txt);
00194
00195
00196 vtkFetchMILogic *Logic;
00197 vtkMRMLFetchMINode* FetchMINode;
00198 vtkFetchMIQueryTermWidget *QueryList;
00199 vtkFetchMIFlatResourceWidget *ResourceList;
00200 vtkFetchMIResourceUploadWidget *TaggedDataList;
00201 vtkKWPushButton *AddServerButton;
00202 vtkKWMenuButton *ServerTypeMenuButton;
00203 vtkKWPushButton *CloseNewServerButton;
00204 vtkKWTopLevel *NewServerWindow;
00205 vtkKWLabel *NewServerLabel;
00206 vtkKWMenuButton *ServerMenuButton;
00207 vtkKWPushButton *RefreshButton;
00208 vtkKWEntry *AddServerEntry;
00209 vtkKWPushButton *QueryTagsButton;
00210 vtkFetchMITagViewWidget *TagViewer;
00211 vtkFetchMIIcons *FetchMIIcons;
00212 vtkKWNotebook *Notebook;
00213
00214 int UpdatingGUI;
00215 int UpdatingMRML;
00216 int GUIWidth;
00217
00218
00219
00220
00221 bool Raised;
00222
00223 };
00224
00225 #endif
00226