123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /*=============================================================================
- Library: CTK
- Copyright (c) 2010 CISTIB - Universtitat Pompeu Fabra
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- =============================================================================*/
- #include "ctkSlicerModuleStringConverter.h"
- #include <QVector>
- void ctkSlicerModuleStringConverter::update()
- {
- SetTarget( );
- SetAllParameters( );
- }
- const QVariant ctkSlicerModuleStringConverter::GetOutput()
- {
- return this->CommandLineAsString;
- }
- void ctkSlicerModuleStringConverter::SetAllParameters()
- {
- foreach( const ctkModuleParameterGroup* itGroup, this->ModuleDescription.parameterGroups())
- {
- foreach( const ctkModuleParameter* itParam, itGroup->parameters())
- {
- SetParameterValue( *itParam );
- }
- }
- }
- void ctkSlicerModuleStringConverter::SetParameterValue( const ctkModuleParameter ¶m )
- {
- QString prefix;
- QString flag;
- bool hasFlag = false;
- if ( param["LongFlag"] != "")
- {
- prefix = "--";
- flag = param["LongFlag"];
- hasFlag = true;
- }
- else if (param["Flag"] != "")
- {
- prefix = "-";
- flag = param["Flag"];
- hasFlag = true;
- }
- if (hasFlag)
- {
- if ( param["Tag"] != "boolean"
- && param["Tag"] != "file"
- && param["Tag"] != "directory"
- && param["Tag"] != "string"
- && param["Tag"] != "integer-vector"
- && param["Tag"] != "float-vector"
- && param["Tag"] != "double-vector"
- && param["Tag"] != "string-vector"
- && param["Tag"] != "image"
- && param["Tag"] != "point"
- && param["Tag"] != "region"
- && param["Tag"] != "transform"
- && param["Tag"] != "geometry"
- && param["Tag"] != "table"
- && param["Tag"] != "measurement")
- {
- // simple parameter, write flag and value
- this->CommandLineAsString.push_back(prefix + flag);
- this->CommandLineAsString.push_back(param["Default"]);
- }
- else if (param["Tag"] == "boolean" && param["Default"] == "true")
- {
- this->CommandLineAsString.push_back(prefix + flag);
- }
- else if (param["Tag"] == "file"
- || param["Tag"] == "directory"
- || param["Tag"] == "string"
- || param["Tag"] == "integer-vector"
- || param["Tag"] == "float-vector"
- || param["Tag"] == "double-vector"
- || param["Tag"] == "string-vector")
- {
- // Only write out the flag if value is not empty
- if ( param["Default"] != "")
- {
- this->CommandLineAsString.push_back(prefix + flag);
- this->CommandLineAsString.push_back( param["Default"] );
- }
- }
- // data passed as parameter
- else if ( param["Tag"] == "image"
- || param["Tag"] == "geometry"
- || param["Tag"] == "transform"
- || param["Tag"] == "table"
- || param["Tag"] == "measurement" )
- {
- if ( param["Default"] != "")
- {
- this->CommandLineAsString.push_back(prefix + flag);
- this->CommandLineAsString.push_back(param["Default"]);
- }
- }
- else if ( param["Tag"] == "region" )
- {
- this->CommandLineAsString.push_back(prefix + flag);
- this->CommandLineAsString.push_back( param["Default"] );
- }
- else if ( param["Tag"] == "point" )
- {
- QStringList points = param["Default"].split( ";");
- foreach ( const QString &it, points )
- {
- this->CommandLineAsString.push_back(prefix + flag);
- this->CommandLineAsString.push_back( it );
- }
- }
- }
- // If index is not empty -> It's a command line argument arg0, arg1, ... without flag prefix
- if ( param["Index"] != "")
- {
- this->CommandLineAsString.push_back( param["Default"] );
- }
- }
- void ctkSlicerModuleStringConverter::SetTarget()
- {
- this->CommandLineAsString.clear();
- if (!this->ModuleDescription["Location"].isEmpty() &&
- this->ModuleDescription["Location"] != this->ModuleDescription["Target"])
- {
- this->CommandLineAsString.push_back(this->ModuleDescription["Location"]);
- }
- this->CommandLineAsString.push_back( this->ModuleDescription["Target"] );
- }
|