Commit 0cd3b1a4 authored by Arnaud Schach's avatar Arnaud Schach
Browse files

Version 2.0.15 of the TASTE Editors

parent da028443
No preview for this file type
futur version 2.0.13
version 2.0.15 (30/05/2017)
* ticket 0000632 : Add an asynchronous start of external tool with error report functionality
* ticket 0000631 : Improve MSC ergonomics
* ticket 0000630 : Default value shall be mandatory for context parameter
* ticket 0000629 : Improve Function Binding ergonomics
* ticket 0000628 : Feature and connection are not exported
* ticket 0000627 : Exporting a not top level function with feature raise a Tcl error
* ticket 0000626 : Error when saving a function with a description
* ticket 0000625 : Dataview generation and external tools error shall be displayed in a popup
* ticket 0000624 : Add an automatic save of the dataview to TASTE Editor
* ticket 0000623 : Error in Search when search field is empty
version 2.0.14 (11/05/2017)
* ticket 0000616 : pb in AADL connection binding when the iv connection hierarchy label(s) is(are) modified
* ticket 0000617 : When a DV is reloaded the bound connection are removed
* ticket 0000618 : Changing Function color has side effect on new Functions
* ticket 0000619 : Error in load of Dataview
* ticket 0000620 : ctrl-s accelerators does not call the "save all" function
* ticket 0000621 : Undefined TASTE::Fill_Color in generated aadl
* ticket 0000622 : browser bind tooltip is not generated when a dv, with an iv, is loaded
version 2.0.13 (11/05/2017)
* ticket 0000585 : the parameters comparison between a PI and a RI shall be positional and not based on name
* ticket 0000586 : pb when a user try to load a dataview and no corresponding asn file exists
* ticket 0000588 : Error in external tools menu status
......
package provide DVConfig 0.1
lappend auto_path .
namespace eval DVConfig {
variable objectsConfig {
"ProcessorBoard" {"color" "black" "fillColor" "gray"} \
"Processor" {"color" "black" "fillColor" "yellow"} \
"Partition" {"color" "black" "fillColor" "yellow"} \
"Device" {"color" "black" "fillColor" "gray"} \
"Bus" {"color" "black" "fillColor" "gray"} \
"Driver" {"color" "black" "fillColor" "yellow"} \
"FunctionDV" {"color" "black" "fillColor" "yellow"} \
"ConnectionDV" {"color" "black" "fillColor" "yellow"} \
"Comment" {"color" "gray50" "fillColor" "white"} \
"GenericConnection" {"fillColor" "black"} \
"GenericConnector" {"fillColor" "black"} \
}
variable config {\
"diagramWidth" 297000 \
"diagramHeight" 210000 \
"diagramXUnit" 2 \
"diagramYUnit" 2 \
"zoomoutBound" "false" \
"gridSnap" "false" \
"selectionColor" "green" \
"editableColor" "orange" \
"emptyPercent" 3.0 \
"removeDialogBox" "false" \
"selectionPrecision" 2 \
"minInterfaceSize" 2 \
"maxInterfaceSize" 40 \
"zoomLabel" "false" \
"editablePercent" 0.9 \
"hidePercent" 0.1 \
"hideTextPercent" 0.3 \
"hideLabelPercent1" 0.5 \
"hideLabelPercent2" 0.5 \
"delayMaskInformation" 300 \
"zoomFactor" 0.9 \
"instanceSelectColor" "red" \
"logDirectory" "tmp/TASTE" \
"displayConnectionLabel" "false" \
}
}
package provide IVConfig 0.1
lappend auto_path .
namespace eval IVConfig {
variable objectsConfig {
"Function" {"color" "gray50" "fillColor" "gold" "nonTerminalColor" "gray"} \
"ProvidedInterface" {"color" "#1560BD" "fillColor" "blue"} \
"RequiredInterface" {"color" "#1560BD" "fillColor" "blue"} \
"FeatureGroup" {"color" "#1560BD" "fillColor" "blue"} \
"RelationGroup" {"color" "#1560BD" "fillColor" "black"} \
"GenericConnection" {"color" "#1560BD" "fillColor" "black"} \
"Comment" {"color" "gray50" "fillColor" "white"} \
}
variable config { \
"diagramWidth" 297000 \
"diagramHeight" 210000 \
"diagramXUnit" 2 \
"diagramYUnit" 2 \
"zoomoutBound" "false" \
"gridSnap" "true" \
"selectionColor" "green" \
"editableColor" "orange" \
"emptyPercent" 0.9 \
"removeDialogBox" "false" \
"asn2aadlPath" "asn2aadlPlus" \
"selectionPrecision" 2 \
"minInterfaceSize" 2 \
"maxInterfaceSize" 40 \
"zoomLabel" "false" \
"editablePercent" 0.9 \
"hidePercent" 0.1 \
"hideTextPercent" 0.3 \
"hideLabelPercent1" 0.5 \
"hideLabelPercent2" 0.5 \
"delayMaskInformation" 100 \
"zoomFactor" 0.9 \
"instanceSelectColor" "red" \
"logDirectory" "tmp/TASTE" \
"displayConnectionLabel" "false" \
}
}
......@@ -6,10 +6,9 @@ property set TASTE_IV_Properties is
-- MyBoolean: aadlboolean applies to (System, Package);
-- MyString: aadlstring applies to (System, Subprogram);
Version: aadlstring applies to (System);
is_Component_Type : aadlboolean applies to (System);
is_instance_of : aadlstring applies to (System);
-- MyInt: aadlinteger applies to (System);
-- MyReal: aadlreal applies to (System);
-- MyEnum: enumeration (val1, val2, val3, val4) applies to (System);
MSCFiles : aadlstring applies to (Subprogram);
-- MSCFiles : list of aadlstring applies to (Subprogram);
end TASTE_IV_Properties;
......@@ -13,6 +13,7 @@ namespace eval TasteConfig {
"interlineInPercentOfFont" "1.2" \
"gitExe" "C:/Program Files/TortoiseGit/bin/git.exe" \
"asn2aadlPath" "asn2aadlPlus" \
"mscEditor" "taste-edit-msc" \
}
variable accelerators { \
......@@ -85,6 +86,7 @@ namespace eval TasteConfig {
"FunctionDV" {"color" "black" "fillColor" "yellow"} \
"ConnectionDV" {"color" "black" "fillColor" "yellow"} \
"Comment" {"color" "gray50" "fillColor" "white"} \
"BindList" {"color" "gray50" "fillColor" "white"} \
"GenericConnection" {"fillColor" "black"} \
"GenericConnector" {"fillColor" "black"} \
}
......
......@@ -23,7 +23,12 @@ The list is of the form { { "objecttype" { "atribute1" "value1" }* }* }
If the list is [list "alwayson" ] then the external tool will be active all the time.
The getOutputManagement function shall return a list defining the way output result of
external tool is to be managed (either print it in statusBar or in dialogBox)
external tool is to be managed:
- print result in status bar ( statusBar in the list)
- print result in dialog box ( dialogBox in the list)
- print result in stdout ( stdout in the list)
- print error in dialog box ( dialogBoxOnError in the list )
- print error in stdout ( stdoutError in the list )
The myScript function is called by the Editor when clicking on the menu.
args is a list of parameters which can be retrieve using the followin command:
......
......@@ -22,7 +22,8 @@ namespace eval ada_kate {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list statusBar]
## Ticket mantis 0000625
return [list statusBar dialogBoxOnError]
}
proc ada_kate { args } {
......@@ -37,29 +38,36 @@ namespace eval ada_kate {
# to launch using the absolute path, read the template2.tcl_
# synchronous call
proc ada_internal { aadlFilePath aadlId } {
proc ada_internal { aadlFilePath aadlId } {
## Ticket mantis 0000625
set initialPath [pwd]
cd [file dirname $aadlFilePath]
set msg ""
set errNumb [catch { exec -ignorestderr {*}[auto_execok "taste-generate-skeletons"] } ]
set scriptPath [auto_execok "taste-generate-skeletons"]
if { $scriptPath != "" } {
set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg]
} else {
set errNumb -1
set errMsg "Unknown command taste-generate-skeletons."
}
## Ticket mantis 0000632
set aadlId [string tolower $aadlId 0 end]
if { $errNumb == 0 && [file exists [file normalize "[pwd]/$aadlId" ] ] } {
cd [file normalize "[pwd]/$aadlId" ]
set errNumb [catch { exec -ignorestderr {*}[auto_execok kate] ${aadlId}.ads ${aadlId}.adb & } ]
if { $errNumb == 0 } {
# TODO: check code - but we need to have C_ASN1_Types.h
# set errNumb [catch { exec -ignorestderr {*}[auto_execok gcc] -gnats -c ${aadlId}.c } ]
# if { $errNumb != 0 } {
# set msg "Note: There are syntax errors in your code - check it before you build"
# }
} else {
set msg "Error in execution of \"kate ${aadlId}.ads ${aadlId}.adb\""
}
set fileBaseName [file normalize "[pwd]/$aadlId" ]
if { $errNumb == 0 && [file exists $fileBaseName ] } {
if { [auto_execok kate] == "" } {
set errNumb -1
set msg [list "Error in execution of \"kate ${fileBaseName}/${aadlId}.ads ${fileBaseName}/${aadlId}.adb: unknown file kate" ]
} else {
ToolsOthers::execAsynchronouslyWithResponse [list "[auto_execok kate] ${fileBaseName}/${aadlId}.ads ${fileBaseName}/${aadlId}.adb" ] \
"::ada_kateres" "Kate error report" "The execution of kate stopped with error"
}
} elseif { $errNumb != 0 } {
set errNumb -1
set msg [list "Error in execution of \"taste-generate-skeletons $aadlFilePath\": $errMsg" ]
} else {
set msg "Error in execution of \"taste-generate-skeletons $aadlFilePath\""
set errNumb -1
set msg [list "Cannot find files:\n-${fileBaseName}/${aadlId}.ads \n-${fileBaseName}/${aadlId}.adb" ]
}
cd $initialPath
......
......@@ -22,7 +22,8 @@ namespace eval blackbox {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list statusBar]
## Ticket mantis 0000625
return [list statusBar dialogBoxOnError]
}
proc blackbox { args } {
......@@ -37,18 +38,25 @@ namespace eval blackbox {
# to launch using the absolute path, read the template2.tcl_
# synchronous call
proc bb_internal { aadlFilePath aadlId } {
proc bb_internal { aadlFilePath aadlId } {
## Ticket mantis 0000625
set initialPath [pwd]
cd [file dirname $aadlFilePath]
set msg ""
set errNumb [catch { exec -ignorestderr {*}[auto_execok "taste-generate-skeletons"] } ]
set scriptPath [auto_execok "taste-generate-skeletons"]
if { $scriptPath != "" } {
set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg]
} else {
set errNumb -1
set errMsg "Unknown command taste-generate-skeletons."
}
set aadlId [string tolower $aadlId 0 end]
if { $errNumb == 0 && [file exists [file normalize "[pwd]/$aadlId" ] ] } {
cd [file normalize "[pwd]/$aadlId" ]
set errNumb [catch { exec -ignorestderr {*}[auto_execok kate] ${aadlId}.h ${aadlId}.c & } ]
set errNumb [catch { exec -ignorestderr {*}[auto_execok kate] ${aadlId}.h ${aadlId}.c 2>@1 & } errMsg]
if { $errNumb == 0 } {
# TODO: check code - but we need to have C_ASN1_Types.h
# set errNumb [catch { exec -ignorestderr {*}[auto_execok gcc] -fsyntax-only -c ${aadlId}.c } ]
......@@ -56,10 +64,10 @@ namespace eval blackbox {
# set msg "Note: There are syntax errors in your code - check it before you build"
# }
} else {
set msg "Error in execution of \"kate ${aadlId}.c ${aadlId}.h\""
set msg [list "Error in execution of \"kate ${aadlId}.c ${aadlId}.h\": $errMsg" ]
}
} else {
set msg "Error in execution of \"taste-generate-skeletons $aadlFilePath\""
set msg [list "Error in execution of \"taste-generate-skeletons $aadlFilePath\": $errMsg" ]
}
cd $initialPath
......
......@@ -23,7 +23,8 @@ namespace eval build_c {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list statusBar]
## Ticket mantis 0000625
return [list statusBar dialogBoxOnError]
}
proc build_c { args } {
......@@ -35,15 +36,22 @@ namespace eval build_c {
# synchronous call
proc build_internal { aadlFilePath aadlId } {
## Ticket mantis 0000625
set initialPath [pwd]
cd [file dirname $aadlFilePath]
set msg ""
set ::env(ORCHESTRATOR_OPTIONS) "-p"
set errNumb [catch { exec [auto_execok "taste-build-system"] } ]
set scriptPath [auto_execok "taste-build-system"]
if { $scriptPath != "" } {
set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg]
} else {
set errNumb -1
set errMsg "Unknown command taste-build-system."
}
if { $errNumb == 0 } {
set msg "Everything went fine!"
set msg [list "Everything went fine!" ]
} else {
set msg "Some errors were reported - check the console"
set msg [list "Some errors were reported: $errMsg" ]
}
unset ::env(ORCHESTRATOR_OPTIONS)
......
......@@ -22,7 +22,8 @@ namespace eval c_kate {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list statusBar]
## Ticket mantis 0000625
return [list statusBar dialogBoxOnError]
}
proc c_kate { args } {
......@@ -37,29 +38,37 @@ namespace eval c_kate {
# to launch using the absolute path, read the template2.tcl_
# synchronous call
proc c_internal { aadlFilePath aadlId } {
proc c_internal { aadlFilePath aadlId } {
## Ticket mantis 0000625
set initialPath [pwd]
cd [file dirname $aadlFilePath]
set msg ""
set errNumb [catch { exec -ignorestderr {*}[auto_execok "taste-generate-skeletons"] } ]
set scriptPath [auto_execok "taste-generate-skeletons"]
if { $scriptPath != "" } {
set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg ]
} else {
set errNumb -1
set errMsg "Unknown command taste-generate-skeletons."
}
## Ticket mantis 0000632
set aadlId [string tolower $aadlId 0 end]
if { $errNumb == 0 && [file exists [file normalize "[pwd]/$aadlId" ] ] } {
cd [file normalize "[pwd]/$aadlId" ]
set errNumb [catch { exec -ignorestderr {*}[auto_execok kate] ${aadlId}.h ${aadlId}.c & } ]
if { $errNumb == 0 } {
# TODO: check code - but we need to have C_ASN1_Types.h
# set errNumb [catch { exec -ignorestderr {*}[auto_execok gcc] -fsyntax-only -c ${aadlId}.c } ]
# if { $errNumb != 0 } {
# set msg "Note: There are syntax errors in your code - check it before you build"
# }
} else {
set msg "Error in execution of \"kate ${aadlId}.c ${aadlId}.h\""
}
set fileBaseName [file normalize "[pwd]/$aadlId" ]
if { $errNumb == 0 && [file exists $fileBaseName ] } {
if { [auto_execok kate] == "" } {
set errNumb -1
set msg [list "Error in execution of \"kate ${fileBaseName}/${aadlId}.h ${fileBaseName}/${aadlId}.c: unknown file kate" ]
} else {
ToolsOthers::execAsynchronouslyWithResponse [list "[auto_execok kate] ${fileBaseName}/${aadlId}.h ${fileBaseName}/${aadlId}.c" ] \
"::c_kateres" "Kate error report" "The execution of kate stopped with error"
}
} elseif { $errNumb != 0 } {
set errNumb -1
set msg [list "Error in execution of \"taste-generate-skeletons $aadlFilePath\":\n$errMsg" ]
} else {
set msg "Error in execution of \"taste-generate-skeletons $aadlFilePath\""
set errNumb -1
set msg [list "Cannot find files:\n-${fileBaseName}/${aadlId}.h \n-${fileBaseName}/${aadlId}.c" ]
}
cd $initialPath
......
......@@ -23,11 +23,12 @@ namespace eval concurrencyview {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list ]
## Ticket mantis 0000625
return [list dialogBoxOnError ]
}
proc concurrencyview { args } {
if { [Object::getAttribute "concurrencyview" state] == "modified" } {
if { [Object::getAttribute "concurrencyview" state] == "deprecated" } {
Context::setAttribute "concurrencyview" state "normal"
if { [ string match win32*64 [::platform::identify]] || [ string match win32* [::platform::identify]] } {
return [concurrencyviewWindows_internal ]
......@@ -158,7 +159,7 @@ namespace eval concurrencyview {
set res [catch { exec taste-config --prefix } tasteConfigDir ]
if { $res != 0 } {
#~ an error happend
return [list 1 "taste-config error: $tasteConfigDir"]
return [list 1 [list "taste-config error: $tasteConfigDir"] ]
} else {
set AADL_IV_PROPERTIES "$tasteConfigDir/share/config_ellidiss/TASTE_IV_Properties.aadl"
set AADL_DV_PROPERTIES "$tasteConfigDir/share/config_ellidiss/TASTE_DV_Properties.aadl"
......@@ -168,7 +169,7 @@ namespace eval concurrencyview {
file delete -force $tempdir
file mkdir $tempdir
set res [ catch { exec buildsupport -i ${ivFilename} -c ${dvFilename} -d ${dtFilename} ${AADL_IV_PROPERTIES} ${AADL_DV_PROPERTIES} ${OCARINA_COMPONENTS} -glue -gw -o ${tempdir} } errMsg ]
set res [ catch { exec buildsupport -i ${ivFilename} -c ${dvFilename} -d ${dtFilename} ${AADL_IV_PROPERTIES} ${AADL_DV_PROPERTIES} ${OCARINA_COMPONENTS} -glue -gw -o ${tempdir} 2>@1 } errMsg ]
if { [file exists "$tempdir/ConcurrencyView/process.aadl" ] } {
file delete -force "$cvFilename"
......@@ -188,7 +189,7 @@ namespace eval concurrencyview {
puts $chan $content
close $chan
} else {
return [list 1 "buildsupport error: $errMsg"]
return [list 1 [list "buildsupport error:\n$errMsg" ] ]
}
::API::HMI::loadUI "$cvFilename" "concurrencyview"
......@@ -196,7 +197,7 @@ namespace eval concurrencyview {
return [list 0 ""]
} else {
return [ list -1 "Dataview, Interfaceview and Deploymentview shall be loaded." ]
return [ list -1 [list "Dataview, Interfaceview and Deploymentview shall be loaded." ] ]
}
}
}
......@@ -23,7 +23,8 @@ namespace eval generate_skeletons {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list statusBar]
## Ticket mantis 0000625
return [list statusBar dialogBoxOnError]
}
proc generate_skeletons { args } {
......@@ -35,16 +36,23 @@ namespace eval generate_skeletons {
# synchronous call
proc generate_skeletons_internal { aadlFilePath aadlId } {
## Ticket mantis 0000625
set initialPath [pwd]
cd [file dirname $aadlFilePath]
set msg ""
set ::env(FORCE) 1
set errNumb [catch { exec -ignorestderr {*}[auto_execok "taste-generate-skeletons"] } ]
set scriptPath [auto_execok "taste-generate-skeletons"]
if { $scriptPath != "" } {
set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg]
} else {
set errNumb -1
set errMsg "Unknown command taste-generate-skeletons."
}
if { $errNumb == 0 } {
set msg "Everything went fine!"
set msg [list "Everything went fine!" ]
unset ::env(FORCE)
} else {
set msg "Some errors were reported - check the console"
set msg [list "Some errors were reported: $errMsg" ]
}
cd $initialPath
......
......@@ -22,7 +22,8 @@ namespace eval mscEditor {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list "statusBar"]
## Ticket mantis 0000625
return [list statusBar dialogBoxOnError]
}
proc saveCurrentFile {} {
......@@ -30,6 +31,7 @@ namespace eval mscEditor {
}
proc mscEditor { args } {
## Ticket mantis 0000625
set errNumb -1
set msg "msc editor has not been executed"
......@@ -50,11 +52,11 @@ namespace eval mscEditor {
#dputs "msce.py -o $mscfile"
#set errNumb [catch { exec {*}[auto_execok $::installationPath/config/externalTools/test.bat] $aadlFilePath $aadlId } msg ]
} else {
set errNumb [catch { exec msce.py -o "$mscfile" &} msg ]
set errNumb [catch { exec msce.py -o "$mscfile" 2>@1 &} msg ]
}
} else {
set errNumb -1
set msg "the file $mscfile does not exist"
set msg [list "the file $mscfile does not exist" ]
}
}
......
......@@ -16,13 +16,14 @@ namespace eval opengeode {
# Names of the object this script can be used on
proc getApplyTo {} {
## Ticket mantis 0000625
return [list { "Function" {"Source_Language" "SDL"} } ]
}
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list statusBar]
return [list statusBar dialogBoxOnError]
}
proc opengeode { args } {
......@@ -38,27 +39,36 @@ namespace eval opengeode {
# synchronous call
proc opengeode_internal { aadlFilePath aadlId } {
## Ticket mantis 0000625
set initialPath [pwd]
cd [file dirname $aadlFilePath]
set msg ""
set errNumb [catch { exec -ignorestderr {*}[auto_execok "taste-generate-skeletons"] } ]
set scriptPath [auto_execok "taste-generate-skeletons"]
if { $scriptPath != "" } {
set errNumb [catch { exec -ignorestderr {*}$scriptPath 2>@1 } errMsg]
} else {
set errNumb -1
set errMsg "Unknown command taste-generate-skeletons."
}
## Ticket mantis 0000632
set aadlId [string tolower $aadlId 0 end]
if { $errNumb == 0 && [file exists [file normalize "[pwd]/$aadlId" ] ] } {
cd [file normalize "[pwd]/$aadlId" ]
set errNumb [catch { exec -ignorestderr {*}[auto_execok opengeode] system_structure.pr ${aadlId}.pr } ]
if { $errNumb == 0 } {
set errNumb [catch { exec -ignorestderr {*}[auto_execok opengeode] --toAda system_structure.pr ${aadlId}.pr } ]
if { $errNumb != 0 } {
set msg "Error in execution of \"opengeode --toAda system_structure.pr ${aadlId}.pr\""
}
} else {
set msg "Error in execution of \"opengeode system_structure.pr ${aadlId}.pr\""
}
set fileBaseName [file normalize "[pwd]/$aadlId" ]
if { $errNumb == 0 && [file exists $fileBaseName ] } {
if { [auto_execok opengeode] == "" } {
set errNumb -1
set msg [list "Error in execution of \"opengeode system_structure.pr ${fileBaseName}/${aadlId}.pr: unknown file opengeode" ]
} else {
ToolsOthers::execAsynchronouslyWithResponse [list "[auto_execok opengeode] ${fileBaseName}/system_structure.pr ${fileBaseName}/${aadlId}.pr " \
"[auto_execok opengeode] --toAda ${fileBaseName}/system_structure.pr ${fileBaseName}/${aadlId}.pr" ] \
"::opengeoderes" "Opengeode error report" "The execution of opengeode stopped with error"
}
} elseif { $errNumb != 0 } {
set errNumb -1
set msg [list "Error in execution of \"taste-generate-skeletons $aadlFilePath\": $errMsg" ]
} else {
set msg "Error in execution of \"taste-generate-skeletons $aadlFilePath\""
set errNumb -1
set msg [list "Cannot find file:\n-${fileBaseName}/${aadlId}.pr" ]
}
cd $initialPath
......
......@@ -22,7 +22,7 @@ namespace eval template {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list dialogBox statusBar]
return [list statusBar dialogBoxOnError]
}
proc template { args } {
......@@ -39,11 +39,11 @@ namespace eval template {
# synchronous call
proc template_internal { aadlFilePath aadlId } {
if { $::tcl_platform(platform) == "windows" } {
set errNumb [catch { exec {*}[auto_execok $::installationPath/config/externalTools/test.bat] $aadlFilePath $aadlId } msg ]
set errNumb [catch { exec {*}[auto_execok $::installationPath/config/externalTools/test.bat] $aadlFilePath $aadlId 2>@1 } msg ]
} else {
set errNumb [catch { exec $::installationPath/config/externalTools/test.sh $aadlFilePath $aadlId } msg ]
set errNumb [catch { exec $::installationPath/config/externalTools/test.sh $aadlFilePath $aadlId 2>@1 } msg ]
}
return [list $errNumb $msg]
return [list $errNumb [list $msg] ]
}
# asynchronous call
......
......@@ -22,7 +22,7 @@ namespace eval template2 {
# List of way to manage output in the Framework
# Could be an empty list or one or both of 'dialogBox' and 'statusBar'
proc getOutputManagement {} {
return [list dialogBox statusBar]
return [list statusBar dialogBoxOnError]
}
proc template2 { args } {
......@@ -34,7 +34,7 @@ namespace eval template2 {
# synchronous call
proc template2_internal { aadlFilePath aadlId } {
set msg "File path: $aadlFilePath \nAADL function id: $aadlId"
set msg [list "File path: $aadlFilePath \nAADL function id: