2 // --------------------------
3 // TODO : Check if is works! (was in packages/wxvtk/bbs/old)
6 include wxvtk/boxes/bbDoubleSlicer
14 define BasicImageApplication
17 description "Interface of a 'standard' image application. Displays two images : before/after processing; Offers buttons : open/parameters/run/save/quit. See <a href='../demo/index.html#DemoBasicImageApplication'>DemoBasicImageApplication.bbs</a>."
18 author "laurent.guigues@creatis.insa-lyon.fr"
24 new LayoutSplit mainWindow
25 set mainWindow.Proportion 90
27 new DoubleSlicer viewer
29 new LayoutLine buttonsBar
31 new CommandButton openButton
32 new CommandButton paramButton
33 new CommandButton runButton
34 new CommandButton saveButton
35 new CommandButton quitButton
37 connect viewer.Widget mainWindow.Widget1
38 connect buttonsBar.Widget mainWindow.Widget2
40 connect openButton.Widget buttonsBar.Widget1
41 connect paramButton.Widget buttonsBar.Widget2
42 connect runButton.Widget buttonsBar.Widget3
43 connect saveButton.Widget buttonsBar.Widget4
44 connect quitButton.Widget buttonsBar.Widget5
46 set viewer.Orientation 0
47 set buttonsBar.Orientation 0
50 set openButton.Label "Open"
51 set paramButton.Label "Parameters"
52 set saveButton.Label "Save"
53 new FileSelector openFileDialog
54 connect openButton.BoxChange openFileDialog.BoxExecute
55 connect openButton.BoxChange viewer.RefreshSlicer1
56 set openFileDialog.Message "Select input image"
57 set openFileDialog.OpenSave "Open"
59 new MetaImageReader reader
60 connect openFileDialog.Out reader.In
62 connect reader.Out viewer.In1
66 set runButton.Label "Run"
67 new MultipleInputs refreshViewerOut
68 connect refreshViewerOut.Out viewer.RefreshSlicer2
69 connect runButton.BoxChange refreshViewerOut.In1
73 new ImageWriter writer
74 new FileSelector saveFileDialog
75 set saveFileDialog.BoxProcessMode Always
76 set saveFileDialog.DefaultFile "out.hdr"
77 set saveFileDialog.Message "Select output image"
78 set saveFileDialog.OpenSave "Save"
79 connect saveFileDialog.Out writer.Filename
80 connect saveButton.BoxChange refreshViewerOut.In2
81 connect saveButton.BoxChange writer.BoxExecute
84 new LayoutSplit paramWindow
85 set paramWindow.Proportion 80
86 set paramWindow.WinTitle "Parameters"
87 # new LayoutLine userParamWindow
88 # connect userParamWindow.Widget paramWindow.Widget1
89 new CommandButton paramWindowCloseButton
90 set paramWindowCloseButton.Label "Close"
91 connect paramWindowCloseButton.Widget paramWindow.Widget2
92 new MultipleInputs paramWindowHide
93 connect paramWindowHide.Out paramWindow.WinHide
94 connect paramWindowCloseButton.BoxChange paramWindowHide.In1
95 connect paramButton.BoxChange paramWindow.BoxExecute
98 set quitButton.Label "Quit"
99 connect quitButton.BoxChange mainWindow.WinHide
100 connect quitButton.BoxChange paramWindowHide.In2
101 set quitButton.In "reset"
106 new anyItkImagePointerRelay imageOut
107 connect imageOut.Out viewer.In2
108 connect imageOut.Out writer.In
110 input AlgorithmOutput imageOut.In "Plug here the output of your algorithm"
111 output AlgorithmInput reader.Out "Plug this output to the input of your algorithm"
112 input ParametersWidget paramWindow.Widget1 "Connect here your parameter tuning widget"
114 input ParametersWindowWidth paramWindow.WinWidth "The width of the parameters window"
115 input ParametersWindowHeight paramWindow.WinHeight "The height of the parameters window"
116 input WinTitle mainWindow.WinTitle "Title of the main window"
118 input Refresh viewer.BoxProcessModeSlicer2 "Set to 'Reactive' to have automatic refresh when image or parameters change"