description "Creates the XML or C++ code for a new black box (interface for bbCreateBlackBox)" author "eduardo.davila@creatis.insa-lyon.fr" category "toolsbbtk" load std load wx new OutputText windowTitle set windowTitle.In "Create new black box in folder :" new DirectorySelector dir set dir.Message "Select the location of your new black box" new InputText nameBlackbox set nameBlackbox.Title "Black box name (1 word)" set nameBlackbox.In "BLACKBOX_NAME" new InputText namePackage set namePackage.Title "Package name (1 word)" set namePackage.In "PACKAGE_NAME" new InputText author set author.Title "Author(s) (caracters '<', '>' not accepted...)" set author.In "_author_" new InputText description set description.Title "Description (caracters '<', '>' not accepted...)" set description.In "_description_" #--------------------------------------------------------------------- new RadioButton typeBlackbox set typeBlackbox.Title "Type of the black box :" set typeBlackbox.In0 "Basic (inherits AtomicBlackBox, no particular Input/Output)" set typeBlackbox.In1 "Widget (inherits WxBlackBox, has output 'Widget' of type 'wxWindow*')" set typeBlackbox.In2 "VTK PolyDataAlgorithm (inherits AtomicBlackBox and a vtkPolyDataAlgorithm, has standard vtk I/O)" set typeBlackbox.In3 "VTK ImageAlgorithm (inherits AtomicBlackBox and a vtkImageAlgorithm, has standard vtk I/O)" new StringSelect stringselectorType set stringselectorType.In0 "std" set stringselectorType.In1 "widget" set stringselectorType.In2 "VTK_PolyDataAlgorithm" set stringselectorType.In3 "VTK_ImageAlgorithm" connect typeBlackbox.Out stringselectorType.In #--------------------------------------------------------------------- new RadioButton formatBlackbox set formatBlackbox.Title "Format of the output file :" set formatBlackbox.In 0 set formatBlackbox.In0 "C++" set formatBlackbox.In1 "XML" new StringSelect stringselectorFormat set stringselectorFormat.In0 "C++" set stringselectorFormat.In1 "XML" connect formatBlackbox.Out stringselectorFormat.In #--------------------------------------------------------------------- new OutputText dirOutput connect dir.Out dirOutput.In new LayoutLine layoutTop connect windowTitle.Widget layoutTop.Widget1 connect dirOutput.Widget layoutTop.Widget2 connect nameBlackbox.Widget layoutTop.Widget3 connect namePackage.Widget layoutTop.Widget4 connect author.Widget layoutTop.Widget5 connect description.Widget layoutTop.Widget6 new LayoutSplit layoutTypeFormat connect typeBlackbox.Widget layoutTypeFormat.Widget1 connect formatBlackbox.Widget layoutTypeFormat.Widget2 set layoutTypeFormat.Proportion 60 new CommandButton createButton set createButton.In "print $concatStr.Out$; exec command; " set createButton.Label "Run" new LayoutLine layoutButtons set layoutButtons.Orientation Horizontal # connect cancelButton.Widget buttons.Widget1 connect createButton.Widget layoutButtons.Widget2 new LayoutSplit layoutBot connect layoutTypeFormat.Widget layoutBot.Widget1 connect layoutButtons.Widget layoutBot.Widget2 set layoutBot.Proportion 70 new LayoutSplit main connect layoutTop.Widget main.Widget1 connect layoutBot.Widget main.Widget2 set main.Proportion 50 set main.WinTitle "Create new black box" # set main.WinDialog true set main.WinWidth 700 set main.WinHeight 600 #--------------------------------------------------------------------- #----------------------------------------------------------------------------- new Configuration conf # on windows : enclose paths between double quotes # if system==0 (Linux) dquote=space (ascci code 32) # if system==1 (Win) dquote==" (ascii code 34) new StringSelect onsystem set onsystem.In0 "32" set onsystem.In1 "34" new ASCII dquote connect conf.SystemType onsystem.In connect onsystem.Out dquote.In #set dquote.In 34 # directory new ConcatStrings dirStr set dirStr.In1 " " connect dquote.Out dirStr.In2 connect dir.Out dirStr.In3 connect dquote.Out dirStr.In4 set dirStr.In5 " " # package name new ConcatStrings packageNameStr set packageNameStr.In1 " " connect namePackage.Out packageNameStr.In2 set packageNameStr.In3 " " # black box name new ConcatStrings blackboxNameStr set blackboxNameStr.In1 " " connect nameBlackbox.Out blackboxNameStr.In2 set blackboxNameStr.In3 " " # type of black box new ConcatStrings typeStr set typeStr.In1 " " connect stringselectorType.Out typeStr.In2 set typeStr.In3 " " # format of output new ConcatStrings formatStr set formatStr.In1 " " connect stringselectorFormat.Out formatStr.In2 set formatStr.In3 " " # author new ConcatStrings authorStr set authorStr.In1 " '" connect author.Out authorStr.In2 set authorStr.In3 "' " # description new ConcatStrings descriptionStr set descriptionStr.In1 " '" connect description.Out descriptionStr.In2 set descriptionStr.In3 "' " # Command string creation new ConcatStrings concatStrCommand set concatStrCommand.In1 " " connect dquote.Out concatStrCommand.In2 connect conf.BinPath concatStrCommand.In3 connect conf.FileSeparator concatStrCommand.In4 set concatStrCommand.In5 "bbCreateBlackBox" connect dquote.Out concatStrCommand.In6 set concatStrCommand.In7 " " # Params string creation new ConcatStrings concatStrParam connect dirStr.Out concatStrParam.In1 connect packageNameStr.Out concatStrParam.In2 connect blackboxNameStr.Out concatStrParam.In3 connect typeStr.Out concatStrParam.In4 connect formatStr.Out concatStrParam.In5 connect authorStr.Out concatStrParam.In6 connect descriptionStr.Out concatStrParam.In7 # Command + parameters string creation new ConcatStrings concatStr connect dquote.Out concatStr.In1 connect concatStrCommand.Out concatStr.In2 connect concatStrParam.Out concatStr.In3 connect dquote.Out concatStr.In4 # Box which executes the command new ExecSystemCommand command connect concatStr.Out command.In exec dir exec main