1 from SlicerVMTKAdvancedPageSkeleton import SlicerVMTKAdvancedPageSkeleton
2 from Slicer import slicer
3
4 vtkKWPushButton_InvokedEvent = 10000
5 vtkKWThumbWheel_ValueChangedEvent = 10001
6
7
8
10
11 - def __init__(self,parentFrame,parentClass):
12 SlicerVMTKAdvancedPageSkeleton.__init__(self,parentFrame,parentClass)
13
14 self._firstRowFrame = slicer.vtkKWFrame()
15
16 self._isosurfaceLevelFrame = slicer.vtkKWFrameWithLabel()
17
18 self._isosurfaceLevelThumbWheel = slicer.vtkKWThumbWheel()
19
20 self._startButton = slicer.vtkKWPushButton()
21
22
23 self._resetButton = slicer.vtkKWPushButton()
24
25
27 SlicerVMTKAdvancedPageSkeleton.Destructor(self)
28
29 self._firstRowFrame.SetParent(None)
30 self._firstRowFrame = None
31 self._isosurfaceLevelFrame.SetParent(None)
32 self._isosurfaceLevelFrame = None
33 self._isosurfaceLevelThumbWheel.SetParent(None)
34 self._isosurfaceLevelThumbWheel = None
35 self._startButton.SetParent(None)
36 self._startButton = None
37 self._resetButton.SetParent(None)
38 self._resetButton = None
39
47
58
59
60
62
63 self._isosurfaceLevelFrame.AllowFrameToCollapseOff()
64 self._isosurfaceLevelFrame.SetLabelText("Isosurface Level of Gray Values")
65 self._isosurfaceLevelFrame.SetReliefToSunken()
66
67 self._isosurfaceLevelThumbWheel.ClampMinimumValueOn()
68 self._isosurfaceLevelThumbWheel.ClampMaximumValueOn()
69
70 self._isosurfaceLevelThumbWheel.SetLength(150)
71
72 inVolumeNode = self._parentClass._inVolumeSelector.GetSelected()
73
74 if inVolumeNode:
75
76 imageMaxValue = round(inVolumeNode.GetImageData().ToArray().max(),1)
77 imageMinValue = round(inVolumeNode.GetImageData().ToArray().min(),1)
78 self._parentClass.SetUpdatingOn()
79 self._isosurfaceLevelThumbWheel.SetRange(imageMinValue,imageMaxValue)
80 self._isosurfaceLevelThumbWheel.SetValue(round(imageMaxValue/2))
81 self._parentClass.SetUpdatingOff()
82
83 else:
84
85 self._parentClass.SetUpdatingOn()
86 self._isosurfaceLevelThumbWheel.SetRange(0,100)
87 self._isosurfaceLevelThumbWheel.SetValue(15)
88 self._parentClass.SetUpdatingOff()
89
90 self._isosurfaceLevelThumbWheel.SetResolution(100)
91 self._isosurfaceLevelThumbWheel.DisplayLabelOn()
92 self._isosurfaceLevelThumbWheel.DisplayEntryOn()
93 self._isosurfaceLevelThumbWheel.DisplayEntryAndLabelOnTopOff()
94 self._isosurfaceLevelThumbWheel.GetLabel().SetText("Isosurface Level")
95
96 self._startButton.SetEnabled(1)
97 self._startButton.SetActiveBackgroundColor(0.9,0.9,0.9)
98 self._startButton.SetReliefToRaised()
99 self._startButton.SetBackgroundColor(0.9,0.9,0.9)
100 self._startButton.SetText("Start!")
101 self._startButton.SetHeight(2)
102 self._startButton.SetWidth(8)
103 self._startButton.SetBalloonHelpString("Click to start")
104
105 self._resetButton.SetEnabled(1)
106 self._resetButton.SetActiveBackgroundColor(0.9,0.9,0.9)
107 self._resetButton.SetReliefToRaised()
108 self._resetButton.SetBackgroundColor(0.9,0.9,0.9)
109 self._resetButton.SetText("Cancel")
110 self._resetButton.SetHeight(2)
111 self._resetButton.SetWidth(8)
112 self._resetButton.SetBalloonHelpString("Click to reset")
113
115 self._firstRowFrame.SetParent(self._parentFrame)
116 self._firstRowFrame.Create()
117
118 self._isosurfaceLevelFrame.SetParent(self._parentFrame)
119 self._isosurfaceLevelFrame.Create()
120
121 self._isosurfaceLevelThumbWheel.SetParent(self._isosurfaceLevelFrame.GetFrame())
122 self._isosurfaceLevelThumbWheel.Create()
123
124 self._startButton.SetParent(self._parentFrame)
125 self._startButton.Create()
126
127 self._resetButton.SetParent(self._parentFrame)
128 self._resetButton.Create()
129
130 self.UpdateGUIByState()
131
132 slicer.TkCall("pack %s -side top -expand y -padx 2 -pady 2 -in %s" % (self._firstRowFrame.GetWidgetName(), self._parentFrame.GetWidgetName()))
133
134 slicer.TkCall("pack %s -side left -expand y -padx 2 -pady 2 -in %s" % (self._isosurfaceLevelFrame.GetWidgetName(), self._firstRowFrame.GetWidgetName()))
135 slicer.TkCall("pack %s -side left -expand y -padx 2 -pady 2" % (self._isosurfaceLevelThumbWheel.GetWidgetName()))
136
137 slicer.TkCall("pack %s -side right -expand n -padx 2 -pady 2 -in %s" % (self._startButton.GetWidgetName(), self._parentFrame.GetWidgetName()))
138 slicer.TkCall("pack %s -side right -expand n -padx 2 -pady 2 -in %s" % (self._resetButton.GetWidgetName(), self._parentFrame.GetWidgetName()))
139
148
149
150
151
153 SlicerVMTKAdvancedPageSkeleton.RemoveGUIObservers(self)
154
155 self._parentClass.RemoveObserver(self._isosurfaceLevelThumbWheelTag)
156 self._parentClass.RemoveObserver(self._startButtonTag)
157 self._parentClass.RemoveObserver(self._resetButtonTag)
158
159
160
161
180
181
182
199
200
205